Original GameMaker8 screenshot of Retro Runner.
As my familiarity of Unity continued to grow and with steady progress being made on my 3D platforming game: Besus: Journey for Vitality, one night the thought to resurrect my Retro Runner project in Unity popped in to my head. My only hesitation came from how I would go about porting a project I started in GameMaker 8 to Unity 3D. After exploring the 2D functionality offered in Unity, I knew it could be done with relative ease and decided to pursue this new endeavor.
In order to get started with 2D in Unity, I downloaded the “official” 2d platformer tutorial/asset from the asset store to familiarize myself with 2D rigidbodies and Vector2’s. After taking a look at how everything worked, I stripped away what I didn’t need and ended up just using the Rigidbody2D forces being applied for movement and jumping. Even then, I only needed to apply a constant force to the player as horizontal force would always be applied (with the exception of slowing down while sliding). With the movement established I created a simple camera script which set the camera transform to the equivalent of the player transform (with an adjustable x-axis offset). Now that the core mechanics were in place, I moved on to getting the graphics portion of the game ported over.
Although the video was uploaded a few days ago, I just now realized that I never created a blog post for it… With that being said, here is the latest video showcasing the current most-recent enhancements and additions made. Among which are:
- Power-up/Transformation cards
- Explosive crates (affects all rigidbodies)
- Ground Slam Ability
- Swimming; both on and under the surface
- Enhanced wall jump with proper Vector3 Reflection
After having discovered the potential of Unity (namely in a web demo for the Complete Physics Platformer Kit) while working with UDK, it didn’t take long for me to jump ship. Upon opening the Unity editor, between the hierarchy and the lack of the standard quad-window layout used in UDK and Hammer, I was definitely intimidated. A handful of video tutorials later and not only did it all make sense, but I felt quite comfortable navigating the application. A few more tutorials and I understood GameObjects and how scripts are used create actual gameplay. It wasn’t too long thereafter that I felt as comfortable in Unity as I had ever felt in UDK or Hammer.
My next task was making up for “lacking” functionality I had come to expect. Namely a visual scripting editor and a way to manipulate the camera for cutscene purposes. It was then that I found out how addicting the Unity Asset store can be – it was amazing seeing all of the potential in the assets for expanding my project. Eventually however I did acquire the base assets that I needed: PlayMaker (visual scripting) and Camera Path Animator. With a base game foundation, knowledge of Unity, and the assets that I know would be required to accomplish what I envisioned, I set to work.
Although it has been quite a while since I’ve posted anything regarding my Unity 3D platforming game, rest-assured development has been ongoing. To prove so, I present an actual video demonstrating the gameplay:
All of the basic functionality and gameplay are present and working with just a few lingering placeholder items and animations. I have also nearly finished a much more extensive blog post regarding the development process from when this project first began to where it is now. I should be posting it in the (very) near-future once I’ve compiled screenshots and other media to go along with it.
Starting with UDK and venturing in to Unreal Script.
After working in RPG Maker and getting a grasp on Valve’s Hammer Editor I decided I wanted to pursue a standalone 3D creation utility. Having watched many tutorials and created a basic map using the editor with Unreal Tournament 3, I decided to give the UDK a go. Many of the things I learned in the Unreal Tournament 3 editor carried over to UDK so straight away I was presented with a familiar interface. This was great for level creation however there was still so much more to UDK that I never had to learn with Unreal Tournament 3. Items such as importing resources, creating materials, and working with skeletal mesh physics and animations to name a few.
I would learn to address these over the coming weeks as I decided on the type of game I wanted to create. Given the abundance of first-person shooters churned out with UDK, I wanted to take a slightly different approach; the platformer (which there is also no shortage of using UDK). Given I am far too inexperienced to create a platformer akin to Mario 64 or Banjo-Kazooie, I decided to go with the sidescrolling platformer route – ala Contra. I eventually came across a blog on the Vectorform Labs website with some great starter code to create a sidescrolling shooter through UnrealScript. It was implementing this when the realization set in that I would need to gain at least a basic understanding of this programming language.