July 13, 2013 —

So, what am I working on now?

Well a co-worker and I are slowly working on a game project that's still pretty early along. Not quite ready to talk about that one yet, but hopefully will be in the next month or so.

For that project though, we've been using Java and libgdx. I initially scoffed at the idea of Java, but after using libgdx for a while, well.. it's kind of made me rethink that. libgdx is pretty damn sweet. Lot's of well thought-out API's and other goodies. I feel like now that I've attempted to implement a bunch of game framework stuff on my own, that I'm much better able to appreciate building a project off a good, stable, well-tested library and not having to reinvent the wheel yet again. It was a good learning experience, but I think it's well past time for me to move on and let someone else do the heavy lifting.

Working with libgdx re-kindled my enthusiasm for finishing up the 3D tile system that I made for a couple of unfinished projects last year in C++. For reference, by "3D tile system" I'm referring to something like what is done in some of the Pokemon DS games:

If you study those screenshots somewhat closely, you can kind of tell that the levels shown are put together using repeating "tile" elements that probably are arranged in a uniform 3D grid. I always liked this graphical style. A neat extension of an "old-school" 2D tile system.

I started a roguelike game and built up my own implementation of this kind of system:

Custom 3D tile system example

I put that game aside though as I felt that the scope had crept up a bit too much and that I might not be able make it as I had envisioned in the time that I had left (this was last year when I had no day job). Instead, I took the same engine with the same 3D tile system and started making a simpler game:

Another 3D tile system example

This game was also never finished (maybe one day!), but I did get a number of other important gameplay elements developed and further fleshed out including some refinements to my 3D tile system.

With my excitement over using libgdx, I've decided I want to pick this stuff up again and actually finish something with it, god dammit! What I've decided that I want to do is:

  • Finish porting my C++ code to Java/libgdx. As I write this post, this work is mostly done. Should be fully complete by tonight or tomorrow.
  • Write some super simple "games" with it. I use quotes there as I'd be super hesistant to call any of what I have in mind for this a game. It'll be really super simple game design platformer type stuff. Far, far less scope then even that "Monster Defense" game was. This is mostly to help further flesh out various gameplay subsystem stuff through real-world use.
  • Create a 3D tile level editor. This will be made a bit easier by having all my code ported to Java. Currently nothing really exists out there for 3D tile level editing. Think of something to 3D as, say, Tiled is to 2D. But for now this will be very specific to my engine and workflow so as not to get bogged down trying to make a very general purpose tool. That can come later on if I want to tackle that kind of a project.
  • Finish Monster Defense.
  • Finish the original roguelike game I started over a year ago (couldn't help but laugh to myself as I wrote that. hrmm).

Having a regular day job as I work on all of this is both a benefit and a downside. A benefit as I won't feel stressed that I really need to finish all this or else. A downside because obviously it means I have less time to work on it. But I think I can make it happen now, especially now that I'm sort of getting over my NIH syndrome by using something like libgdx.

I'm actually looking forward to posting some really stupid games that I make as part of working on step two from the above work plan. Should be both fun and cringe-inducing!