Game Project WIP Update

code java games

Screenshot 1
Screenshot 2

Since I've been posting about stuff I've been working on recently (oh hey, that was why I started a blog way back in the first place!) I figured I'd write something about this project. I don't have a final title for this game yet, but it's essentially a re-do of the "Monster Defense" game I mentioned briefly in this post, except the direction I'm going with the gameplay is more fleshed out.

So what is this game about? Probably the closest explanation would be that it's a kind of tower defense meets twin-stick shooter game. You directly control a character which you move around with one directional control (ASWD keys / joystick), and aim/shoot with the other direction control (JKIL keys / second joystick). You have a set of stationary crystals on each level that must be defended against from waves of bad guys that enemy crystals will spawn as the wave progresses. Your crystals also double as automated defenses (they will shoot nearby bad guys), while the enemy crystals will also shoot you if you get too close, but if you can destroy these crystals, bad guys will stop spawning from them. You win by either outlasting all of the waves of bad guys, or by destroying all of the enemy crystals. You lose by either getting killed, or losing all of your own crystals to the bad guys.

I've got a bunch of plans for extra things to add in the form of power-ups the player can collect from bad guys, random special buffs you can collect to gain temporary special powers, different unique and varied weapon types and a bunch of different types of enemies and behaviours.

As it stands right now, basic gameplay is all implemented. You can pick a level from a level selection list and start it, the waves will progress, enemies will spawn as they should and seek out the player crystals and try to destroy them or the player if he gets in the way. Levels end either in success or defeat. All of that works just fine. What is missing at the moment is any semblance of balance.

I can easily see at this point that balancing this game will be one of the hardest things to do. Of course by balance, I'm talking about tweaking numbers. Things like the strength and defensive power of the player, the good and bad guy crystals, the bad guys themselves. Various other attributes and behaviours of enemies (how fast / slow they move, what is their attack range / speed, what weapon(s) do they possess ...). The exact composition of the lists of bad guys to spawn in each wave, how to space out the bad guys, how many waves per level, etc. Lots of questions to answer, and lots of play testing will need to be done. It seems like the hard parts of development are behind me at this point in this project when I think of all that kind of stuff.

Under the hood, this game is being developed in Java using libgdx. I also make use of my own libraries, gdx-toolbox and gdx-tilemap3d. I've posted a bit about gdx-tilemap3d before. In the past month I've made some good overall changes to it with respect to asset loading. Now I integrated with libgdx's AssetManager system, something that should have been done from the beginning.

Artwork is pretty much all placeholder stuff at the moment. The level models (floors, walls, pillars, etc.) are from the Low Poly 3D Pixel Dungeon Set by Bitgem. The "8-bit" styled character sprites and most of the particle / item sprites are from the Lo-fi Fantasy Sprite Set by Oryx with the animations taken somewhere out of this big forum topic on the TIGForums. Lava and water textures temporarily borrowed from Minecraft due to not having any sufficient placeholder art for those things handy, but that will be remedied very soon.

At present, I am only targeting Windows/Mac/Linux. This game does run on Android due to libgdx's excellent cross-platform support (probably would even run on iOS with RoboVM since libgdx officially supports it, but I have not tried), but being a twin-stick shooter type of game, I'm pretty firmly convinced that touchscreen controls would make it entirely "un-fun" and I don't see how I could really change the control scheme around for mobile specifically and keep the same fast-action feel for this game that I want for it.

More to come!