From Prototype to Playable in One Year

Almost exactly one year ago I began production on what I consider my dream project – a 3D platformer akin to the greats I loved growing up. My biggest obstacle however was my lack of programming knowledge as I mentioned in my other blog post about transitioning from UDK to Unity. I had played many other projects and seen the great things that they had implemented, but I knew I could never do this unless I learned to program. Not only was the language itself foreign to me, but an even more important element escaped my understanding: the logic. So I began to dissect the existing code base or “starter kits” from the asset store and see how it all worked. I was in luck as I was learning as the logic behind the code began to make sense almost immediately. Before long I knew what I wanted to do and how I could go about it, so now it was just a matter of putting that in to code. Continue reading

Humble Unity Beginnings

Unity-Platformer01After 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.

Continue reading

Venture in to UDK – That ended with Unity

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.

Sidescroll2-UDKI 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.

Continue reading

The SHMUP – UDK Project Deviation

SHMUP1While working on my UDK project (tentative title: AI Uprise), I decided to take a bit of a deviation and try out a different style of game in UDK: The Shoot ‘Em Up – created entirely in Kismet. For now I decided to go with the top-down camera but I may look in to creating a sidescroll variation of it as well.

After I got the gameplay up and running, I thought about how I can integrate this in to AI Uprise. I may play with the idea of making this an assault mission on a target, or a way to get to another location. If it flows well, there’s no doubt I would love to integrate this in to my final game.

Worst-case scenario, I could always just create some additional levels and release this as an entirely standalone game. 😀

Project: AI Uprise

As mentioned in my last post, I am following-up with some additional game information (and screenshots). First and foremost, I have a tentative working title: AI Uprise. Given the premise of the game is stopping rebellious artificial intelligence, it may or may not stick as the final title. It does sound better than constantly referring to it as my “UDK Project”.

Now on to the screenshots. Here are some work-in-progress shots of the outdoor landscape/overworld and the initial training level (used to introduce the player to various gameplay mechanics).

Project Update

Progress certainly hasn’t stopped on my UDK project. In-fact it’s coming along quite nicely.

Since the last update, I have made some code changes to the underlying engine. For example, instead of creating the camera zooms by changing the offset value by a small amount and then repeating it until the desired zoom is reached. Instead now, I use a linear interpolation to get to the final value which starts off fast and then slows down toward the end, creating a much more smooth, natural motion. Beyond that I have created the base landscape for the overworld and began work on the introduction level (which teaches the player all of the controls).

Screenshots and videos will follow in the coming days.

Level Streaming in UDK

Progress has been slow on this project to say the least, however I have recently decided to get some of the more important core functionality tested and working – level changes!

I could have created multiple maps, and when making the transition I could have used a hard load time, but then items, weapons and pickups wouldn’t carry over in to the next level. Instead using level streaming I am able to import all levels in to a single level and load them in and out as needed. Doing this I can near eliminate load times and carry items through multiple levels without any performance hits.

Check the below video for this (rough) level streaming in action.

Putting the Raspberry Pi to Use

After countless months just sitting in my closet, I have finally found a practical use for my Raspberry Pi. I made a previous post about making a power box for it, and I finally decided to finish it. The box itself was all wired and basically set to go but after sanding it, I never painted it. Well the paint is (finally) drying on it as I type this.

Before doing that however, I hooked it up and began to configure some software for it. After installing the newest version of Raspbian (Debian), I took to installing PHP, Apache, MySQL, and Mantis Bug Tracker; the later being the most important. I’ve been considering bug tracking solutions for a while now, but popular ones such as Jira are just too expensive and the WordPress plugin was a bit too simplistic. Finally comparing Mantis to Bugzilla, I decided to go the Mantis route.

Continue reading