I finished Speeder, put it out on the Android Market and of course get no sales. The free version is doing okay and it’s generating more ad revenue then any of my other apps but that’s still nothing. It’s unfortunate but if nothing changes I’ll probably be looking for another job in July. I haven’t given up though as the idea of getting a regular job sounds dreadful. I had an idea for another new game that I’ve started work on already.
The new game is going to be a math game, and force you to try and do simple math problems quickly in order to do well. I like this because it’s something you can get better at over time, the more you play the easier it will be to work quickly. I’ll post more about it as I get more finished on it but it’s coming along really nicely I think.
I’m using libgdx to make it, previously I’ve worked just in the Android Canvas to write things, but I wanted to try out something using OpenGL and nice game framework. Libgdx seems to have the best documentation and demos and tutorials and such of the game frameworks I looked at. I’ve been able to figure out how to do anything I need to do in it by looking over their website and forums so I’ve been happy.
I’ve also been goofing around with Haskell in order to learn it. Haskell is a completely functional programming language as opposed to Java which is an imperative programming language. It’s a different way of thinking when you write programs in a functional language and a lot of people think it will be the way to go in the future. I’m starting to feel good about what I’ve learned in it so I’ll probably fiddle around with writing some stuff from Project Euler, algorithm stuff like that seems perfect for what Haskell does.
Not much else to talk about, it’s getting nice out so I’ll probably start going to the beach soon, I’ll post some pictures from there because that place is rad.
Well I’ve mostly been tweaking Speeder and levels for the last week and I’m pretty sure I’m ready for a testing release. I’ve posted on Facebook but I’ll post here as well: If you are interested in testing Speeder please let me know, I can always use more points of view. It is definitely not complete but I have most things in and two levels for each difficulty. There are no instructions in game yet and you need Android 2.0 or higher to run it.
I always feel like I need a better way to get feedback, I don’t always get as much as I’d like, but we’ll see how it goes.
No updates last week, I was out of town at the beginning of the week and working on a separate project the rest of the week, but I’m back at it today.
Today was mostly about rewriting how level selection and such works. Now you select a difficulty, then select the level in that difficulty you want to play. I have switched to only tracking a single high score for these individual levels which I think should be fine. I might add in the ability to add a name, but right now it’s just a score for each individual level. I’ll probably do something similar for continuous mode. Making all the lists interact with each other the way I wanted was a pain, but it worked out in the end after a bit of research and now it is a smooth experience.
With that put together I really need to make more levels for testing and get it out in front of some people. That will be my goal for the next few days, put together several interesting levels for testing.
No screenshot today, instead a Kids in the Hall sketch that is rad, like all of them.
The last two days have mostly been graphic work for me. I have the launcher icon finished and button graphics done, for now at least, I might go back and do something different with the buttons. I also added in the Level Complete state and the dialog to go along with it. It displays your score for the level, your bonus for remaining health, and then your total score. I updated the Game Over screen to display your total score as well. I set everything up to return the score and difficulty when you finish a game as well so that I can use it for high scores, but I need to do some work on that end before I actually save anything. I’m inching ever closer to a testing release. I still mostly need to finish high scores and a starter level for Medium and Hard difficulty.
Screenshot for today is the level complete screen on my test Hard level
I put together a list of things I need to finish for Speeder before I can send it out to people to test, so I started work on those today. Some of them are game features, others are just general features for the look and feel and such.
Today I started with game features. First I changed how speed and crashes work a bit. When you crash into the back of a car you will take damage and your overall speed will slow down. The change is now that while still behind the car you will slow down even further until you get out from behind the car at which time you speed back up to your base starting speed. While fully slowed down behind a car you do not get points so you want to avoid this situation.
Second I added in taking damage for going off-road. If you have more then half your car off-road for several seconds you will start taking damage to the car. The idea here is that on 4 and 5 lane levels you could in theory just drive off the road the entire time and never have to worry about hitting cars. I’m thinking about suspending scoring during that time as well, to further encourage staying on the road.
Lastly, I put in a finish line mechanism so that I can write full levels with an ending and track scoring on those individual levels. I still need to put in a level complete dialog, right now I just show the game over dialog, but it is working as intended.
Still to be added this week, a proper main screen which just consists of a play button right now, high score saving, and putting together at least one proper level for each difficulty.
So I was distracted for a few days last week working on other things. For a few days I put together a dissociated press program, to see how it works and play around with it. I didn’t get anything that interesting out of it to be honest. Then I spent a few days writing an Android Game of Life program. It looks pretty good and works well, I might turn it into a live wallpaper as I think that’s where it would do well. Either way it was an interesting thing to implement and can be amusing to watch for a while. The patterns you get can be really neat.
Today I got back to working on Speeder though and did some important work. I created the Object Pattern Handler that will make it so I can define patterns of cars, obstacles, and powerups to show up in the game and let me design more closely how levels will play out. Previously I was just randomly adding objects to lanes with the only prerequisite being they didn’t overlap when placed. With this added I now place objects based on predesigned patterns. This makes it much easier to define how a level will play out, and allow me to change how difficult a certain part of the game is. There will still be some dynamic things added, specifically nitros to speed you up because you can slow down so easily right now, but cars and other obstacles will all be defined patterns to drive though.
I now need to design a bunch of good patterns, I’ve made sure this new part of the game works by testing it out on some simple patterns and letting it randomly choose other patterns when the first one is done. Everything looks great so far. I even defined one slightly more complex and longer pattern and works perfectly.
For screenshots today, here are two that show several of the simple patterns I defined.
Some more work today, fully implemented pausing, which doesn’t seem like much but is handy. Also returning to the main screen after game over is in. I’ve put a background on the health meter so it’s not just white when you lose health, it looks better that way. I’ve also fixed the grass texture so it doesn’t have an annoying white line at the bottom.
I need to start working on how the game will actually play when I’m done with some of this engine stuff. I have some ideas of how I want it to go but I need them better defined.
Here is a screenshot of the game paused, the button to pause it is in the bottom right corner
I was a lazyass last week but I’ve started this week off strong.
I made a number of additions to the game today. First I was looking at getting to game over, I need more damage in the game. To that end you now take damage if your speed is high enough and you hit a car from behind, you also slow down when that happens but I think I’m going to look at that one a bit more. I also made it so that if you hit a car in the side hard enough it will switch lanes, though if it is at the edge of the road and can’t switch lanes it will hold its ground and you take damage. I’ve also made it so rocks cause more damage.
To encourage you to go faster I’ve made it so you don’t actually accumulate points if you are going the slowest speed possibly, you still accumulate multipliers but you don’t start scoring again until you can speed up. To go with that I’m going to adjust the rate at which nitros to speed you up appear in accordance with your speed, at slower speeds there will be more of them and fewer at higher speeds.
I’ve added in text under the info displays as well. To go along with that I’m using a custom font that I think fits the game well, HandelGothic BT. I found it online at this Car Fonts site and it appears to be free to use so I shall.
Since you can more easily get there, I’ve also added the game over display which is what you will see in the screenshot for today.
I hope to stay on task better this week and get a bunch more done.
So I took a few days off of developing and screwed around, big deal, wanna fight about it?
I got back to work today and focused on putting together the information display for the game. In previous screenshots you can see what I had done up until now, just list them on the side of the screen, mostly as debug output to help me along. Now I am making them for actual game use.
First I decided I wanted to give the number displays a digital look so I put together some digital numbers to use, here is the display sheet for them:
A blank and then numbers 0-9. They came out looking really good and are especially nice in game. I put together some methods to grab the right number out of the sheet and put together a passed number to display in a passed area of the screen, so if I wanted 10589 to display in a box on the bottom of the screen for some reason I just had to give it the number and the box. I’ve used similar methods in Wordel and it seems to do a great job.
I could use that for the score and the score modifier you currently have but I needed something different for health so I decided to make a health bar. It basically ended up being a gradient from green (high) to red (low). You max out at 10 health in the game so I basically have it divided up into 10 sections, each time you take damage it drops down a section. Here is the health bar and overlay for it:
These worked great and the health display looks good on the screen.
Lastly I needed a good border and background for all of these. I didn’t want it to be anything to complicated so I just made a white background with a black rounded border to go around each section. You can see the results of it in the 2nd screenshot I post here.
Speaking of which, here are 2 screenshots from my work today. The 1st is before I added the background but it still has the debug output for the info section turned on, the 2nd has the debug output off and the background added in and I think it looks good.