It's been awhile, seven months to while. A lot has happened during those seven months. I did some game jams (http://mindshaftgames.appspot.com/games/LD26/ld26.jsp), switched technologies, and started developing a game that will truly be my first real, full release.
After Ludum Dare 26, I began to really think about my next game, which I wanted to be my first real release. A full, complete, polished game that people would (hopefully) pay money for. This required me to really start growing my game design and project planning skills. I had an initial idea of doing an elaborate Metroidvania game in ImpactJS (can you immediately see the impending failure?). I created a bunch of design docs and even prototyped something in ImpactJS but ultimately killed it. It was too ambitious and to be honest, there was another genre of game that I simply would like to play much more. We'll get to that in a minute, but let's talk about ImpactJS more.
ImpactJS is a great, fantastic game engine. As new as HTML5/JavaScript game development might be, ImpactJS showed me that it's a very viable solution for developing a tile based 2D game. Not only can it be deployed to the web with no plugin (sweet!) but to mobile and even as a desktop .exe through Node Webkit , which I got up and running and was very impressed with; the performance is incredible.
All that said, I ultimately decided to switch (back?) to Unity. There are few reasons why I did, the main one being the JavaScript language itself. Firstly, I greatly enjoy first class functions (I truly feel functional programming is on the rise due to its implications with concurrency, but that's another blog post in itself), but if you give me the choice of a dynamic or static language, I'm taking the static language. And for the scale of the project I had envisioned, doing it in a dynamic language seemed crazy. Doable, absolutely, but crazy.
Also, Unity handles a few things better, primarily networking, split-screen cameras and gamepad controllers. ImpactJS can technically handle gamepads through the Gamepad API (which I did get implemented and working in the prototype), and networking through WebSockets, but right now, all of that is a lot of trouble and kinda hacky. Also, no split-screen camera support is a deal breaker, and while I never tried to actually implement them, from what I gather from the ImpactJS documents and source code, it doesn't seem possible.
And to be completely honest, the other reason for switching to Unity was simply because I tried doing a 2D platformer Unity in the past, but ultimately failed to figure out collision detection properly and couldn't grasp how to doing things "The Unity Way", as I've coined (just look a few posts back). That nagged the shit out of me. I had to go back and figure it out. It was a defeat I couldn't leave alone. I ultimately did begin to grasp the concept of using Raycasts to detect collisions, and started to understand the Component-Entity system that Unity enforces. It must sound crazy that this was a driver for me dropping ImpactJS, but there was a problem that I couldn't initially solve, and it bugged me to no end.
Also, with my original Metroidvania idea, I was aiming not only desktop, but mobile, and ImpactJS didn't provide ideal performance on Android through CocoonJS. This is my own individual findings, and it could be due to my shitty code, but I've experienced better performance in Unity, so that was another deciding factor. All that said, I've ultimately decided to drop porting to mobile with my new game design.
So what exactly have I've been developing the past several months?
*drumroll*
I don't have a title yet. *fart sound*. However, imagine if Unreal Tournament was developed for SNES. That's essentially the game I'm out to make. A 4-player arena platformer. This genre has seen a recent influx with games like TowerFall, Gun Monkey, The Showdown Effect and Atomic Ninjas. I've only played Gun Monkey and The Showdown Effect so far, and watched many videos of TowerFall (I will buy and play the PC release when it comes out!), but they seem to offer a much different experience than what I'm aiming to provide. I want to recreate that intense, 90s/early 00s competitive FPS experience, but in 2D platformer form. I've done an initial playtest with some close friends recently, and I seem to be on the right track! There was tons of shouting, screaming, and intense action.
I want to get into further technical details of what I'm doing in Unity, as well as some creative details, but I'm going to save all that for future (near future, I promise) posts, because there's a lot to talk about. Even though this is exactly what this blog may seem like so far, I hate opinions, give me facts with insights. I'll be sure to give you plenty of facts with some crazy insights. I hope you find it useful.
No comments:
Post a Comment