As you might know from my previous post, or if you are following me on twitter (Shameless plug : Follow @upandcrawling). I am currently working on my first Android Game!
As I have learned from my previous Android Application (a Time’s Up application). It takes a lot of time to develop and finish an application. You HAVE to cut features if you ever want to release a first version, so I was aiming pretty low (as it turns out I wasn’t aiming low enough yet!)
Younger, I once had the opportunity to play Ikaruga at one of my friends place, lucky owner of a Dreamcast at the time :) Unfortunately, I couldn’t last more than 30 or so second before dying so I didn’t stuck with the game, but the game stuck with me, or rather the principle of changing colors to beat enemies. So years later, I set out to do a game around this concept.
I also have some nice ideas about limited visibility in game (fog of war like, with light and shadows). You wouldn’t be able to see too far off and enemy behavior would change based on the fact that they were within the field of vision or not.
- It is my first “real” game. Years ago, I followed a tutorial to create a platformer game in html5, nothing really came out of it, but it was a great learning experience and helped me get around the concept of frame rates and many game effects such as parallax scrolling or sprite sheets.
- First time I would use OpenGL, I looked around a bit for various engines/libs, I wanted to stick with Java since it’s a language I already know and also wanted to target mobiles (Android, IOS) since it would easily solve the packaging/distributions issues. I decided to pick libgdx, which brings me to my next point.
- First time using libgdx
- One man team, no visual designers, no artist, no ability to create my own graphics (low level of Photoshop skills)
- While I had a basic concept (changing colors) I did not have a clear vision for the game, and I even had other ideas I wanted to implement, more or less (in)compatible with this concept.
- Programming knowledge
- Strong willingness to finish my game.
- Very strong willingness to cut corners/features and not get distracted by unnecessary issues
What I set up to do : A shoot em up style game (in space) but without any shooting ! The logic being the plan was that I needed to pick something very simple, and then make it even simpler. So removing the shooting would fit this needs:
- Less sprite to display
- Less effects
- Less collision detection
- Less everything :)
I would then try to implement features based on my inspirations stated above.
Hit the road Jack!
I first started by following the basic libgdx tutorial (here) then modified it to try to fit to my vision of the game. Fortunately, it turns out libgdx is quite easy to use and solves many of the problems I thought I would meet in openGL. I but I soon hit a roadblock: Graphics, I couldn’t find images resources that would fit my theme (space, spaceships etc..) and my concepts. I had tons of ideas but couldn’t find the right art for them, and all my Photoshop attempts ended up in utter failure. For example I did find some images for a spaceships but couldn’t with my poor Photoshops skills, turn it into a good looking red/blue spaceship (if I had known about the hue/saturation option in Photoshop at the time, things might be different now >_<).
So I scoured the web for game resources that I could use freely and that would be adapted to my game, I decided to adapt the theme (spaceships) but kept the original concept (changing color/mode). For example I thought of replacing the spaceship by a boat (viking style) flowing through a river, and instead of changing colors, the boat would switch from a combat boat (to fight foes) to a fishing boat (to collect fishes ^^) by spinning on itself (the other boat mode would then be “underwater” whatever that means).
Unfortunately I couldn’t find suitable graphics for that either…
So I kept scouring, filling my file system with various resources that seemed useful, and looking for inspiration.
If anyone is interested, I used the following to find resources (among others):
- LostGarden (also a very nice blog)
- Reddit’s game asset subreddit
- Resources from the libgdx tutorials projects
I finally found something very simple (hint: it involves blocks) that would fit my needs so I based my games on that, and tried to find/make other graphics that would fit within that theme. I also ended up completely setting aside (for another game!) the light/shadow/visibility concept.
Embrace constraints : Constraints are good. Having too many options isn’t so, it spreads your attention between too many subjects. Limitations in one subject let you focus on another. Since I had no artists and no desire to spend too much time on arts, I spent some time looking for some graphics, letting it set the “theme” of my game, allowing me to focus on other aspects (concept, gameplay etc..). This is why one game month or game jams concepts are great, with great time constraints, it becomes absolutely necessary to cut graphics, features etc…allowing you to focus on other parts of your game.
Be adaptable : Cut corners/features when necessary, be willing to make concessions. Especially for a first game. I really liked my idea with the boat/river as the theme but once I saw that I couldn’t find any good resources and that I had no idea how I would do a good looking water (flowing effect, waves around the boat, boat entering/exiting water when spinning etc…) I changed to something much simpler for which I had available resources. Here is a great article on this subjects.
While in my case my specific problem had a lot to do about graphics, those principles can be applied in many more aspect of game design.
Just thoughts of a very cool game feature that would require you to rewrite most of your code ? Unless you are in the very early stages of your game and doing prototyping, put the idea on the side for another project and move on. Better yet, did you try to implement this feature through a little trick that would be much cheaper but yield similar results ? Something you would consider an ugly hack is actually a clever hack if it can make your game better and helps you finish it in time.