I've been working on my platformer game a tiny bit. It has been bugging me how the lava works. It just ramps up in speed until it overtakes the player and they lose. Even if the player does everything right, the lava will eventually flow over them. I want the player to be able stay ahead of the lava wave if they are playing well. Now, the lava has a steady speed that moves slower than the player can run. However, the lava now has a maximum distance that it can get from the player so the threat of the lava catching up is always there if the player messes up a little bit. The problem with this is that the player doesn't have much of a bubble if they come upon a room where they are required to backtrack a little bit. To solve this problem, I made the lava move slightly slower when the player is facing to the left, so when the player has to go up zigzagging platforms or run backwards, they don't get punished so much for it.
I've also been working on a space themed game that I did as a concept a while back. I didn't do much work on it, but it was playable. Original, you controlled the player's "spaceship" with the accelerometers, but I didn't like those controls much, so I recently changed it to just thrust towards the locations of the player's touch. The game has some physics involved so you have to overcome the momentum in the direction you're already moving to change directions. The power of the thrust is directly related to the distance between the player's touch location and the spaceship. The more distance between the two points, the more power behind the thrust. I wanted to illustrate this in game, so I put a thruster flame that comes out of the ship and points in the opposite direction that the player is thrusting, as you would expect. To display to the player the power of the thrust, the flame changes size based on the thrust force.
Here are a couple pictures of the game. In the first picture, the touch point is close to the player and in the second picture the player's touch is farther away, so the flame is much bigger.
Tuesday, December 31, 2013
Saturday, November 30, 2013
More Refactoring and Progress Meter Fix
Haven't been doing much lately that is interesting gameplay wise. Just some more refactoring of my vertical scrolling arcade shooter. Previously I was setting up all my textures for minions in my main game class but after the refactor the texture code for each individual minion is now in the minion class itself. Additionally, I made it so all my minions are set in a certain size since I never ended up making them different sizes anyway. As a result, my constructors for my minions have shrunk significantly in number of arguments required and everything is getting even more self contained. I've also been going through all of my classes and fixing some naming conventions that I had used when first starting the project that I'm no longer particularly fond of. Again, as this is a refactor, a person playing the game would not actually notice anything different about the game.
One thing I've done that isn't a refactor, however, is to fix the level progress meter on the side of the screen. The way it was setup originally was never really great, but it was close enough for what I originally wanted it to do. After I changed up the levels a while back to include waves that were a mix of the two minions of the level, the progress meter code broke down. Yesterday I looked into it for 15 minutes or so and now the progress meter is working even better than it was before it was broken, so I'm pretty happy with the outcome there.
Besides more refactoring and minor performance tweaks, the scrolling shooter is basically how I want it to be now. I just need to get some in-app purchasing going, but for weird Google related reasons, I can't really test any of this stuff without a new test phone. Conveniently though, I'll be getting a new phone soon, so I can do a factory reset on my current one and use that for testing, so I'm pretty excited about that. Once the in-app billing stuff is taken care of, I can start looking around for artists that might be interested in working on the game. I'm a little worried that people might not be into it though as it seems like a very large project with a bunch of animated sprites. Over 20 different minion types that all need to have animations. That seems like a pretty daunting task, but I'm hoping to find somebody who is up to the task because I think its a fun game already and when it looks good as well, it will be really solid.
One thing I've done that isn't a refactor, however, is to fix the level progress meter on the side of the screen. The way it was setup originally was never really great, but it was close enough for what I originally wanted it to do. After I changed up the levels a while back to include waves that were a mix of the two minions of the level, the progress meter code broke down. Yesterday I looked into it for 15 minutes or so and now the progress meter is working even better than it was before it was broken, so I'm pretty happy with the outcome there.
Besides more refactoring and minor performance tweaks, the scrolling shooter is basically how I want it to be now. I just need to get some in-app purchasing going, but for weird Google related reasons, I can't really test any of this stuff without a new test phone. Conveniently though, I'll be getting a new phone soon, so I can do a factory reset on my current one and use that for testing, so I'm pretty excited about that. Once the in-app billing stuff is taken care of, I can start looking around for artists that might be interested in working on the game. I'm a little worried that people might not be into it though as it seems like a very large project with a bunch of animated sprites. Over 20 different minion types that all need to have animations. That seems like a pretty daunting task, but I'm hoping to find somebody who is up to the task because I think its a fun game already and when it looks good as well, it will be really solid.
Sunday, November 10, 2013
Fire Geysers
I've been a little bugged with my platformer game recently because the lava pits are generally too easy to jump over, and the lava wave is far too easy to avoid. To make things a little harder, I started the lava at a slightly faster speed and additionally I have its speed ramp up faster.
I also have added a new obstacle to the game: the Fire Geyser. This obstacle is a little mound on the ground that spits flames that will kill the player if they touch them. As a warning, the geyser shoots out a puff of smoke twice, then the flames shoot out. The smoke doesn't hurt you, but simply serves as an indicator that the flames are coming. It repeats on this cycle in a loop. Some times you need to run back and forth to wait out the flames, and since you cant actually stop running the closest thing to standing still is switching direction fast enough that you don't really go anywhere. Here are some pictures of the Fire Geyser in action:
I also have added a new obstacle to the game: the Fire Geyser. This obstacle is a little mound on the ground that spits flames that will kill the player if they touch them. As a warning, the geyser shoots out a puff of smoke twice, then the flames shoot out. The smoke doesn't hurt you, but simply serves as an indicator that the flames are coming. It repeats on this cycle in a loop. Some times you need to run back and forth to wait out the flames, and since you cant actually stop running the closest thing to standing still is switching direction fast enough that you don't really go anywhere. Here are some pictures of the Fire Geyser in action:
Wednesday, October 16, 2013
Refactoring and New Tweaks
Not a whole lot to report lately. I did a significant amount of refactoring over the past weekend however. Refactoring, by definition results in no real change in the way the client interacts with the code base. As such, the game seems to work in the same way it did before the refactoring, except behind the scenes it is now much more encapsulated after I pulled out a lot of the minion functionality out of the EnemyMinion class and into minion specific classes like Sprayer and and Exploder.
Though it isn't really significant, I made a minor tweak to the way the Boomerang class minion shoots. Previously it would shoot a bullet down that would make a U-Turn to the right side of the screen and then would proceed back up and off the screen. After my little change, there is now a 50/50 chance that the bullet will either U-Turn towards the left side of the screen rather than the right. Very minor tweak but it make the boomerang bullets a little less predictable as before you could just dodge to the left and not have to worry about the return hit.
That's all for now, but I've determined that in the platformer game, the levels need to be significantly more dangerous. At this point it seems far too easy to outrun the lava for long periods of time, and the lava pits aren't all that hard to avoid. It needs to be more of a challenge, but I'm still not sure what obstacles I could add to make it harder. Maybe something like a counterpart of the lava pit but on the ceiling so you can't jump too high. I'll have to keep thinking about that one.
Though it isn't really significant, I made a minor tweak to the way the Boomerang class minion shoots. Previously it would shoot a bullet down that would make a U-Turn to the right side of the screen and then would proceed back up and off the screen. After my little change, there is now a 50/50 chance that the bullet will either U-Turn towards the left side of the screen rather than the right. Very minor tweak but it make the boomerang bullets a little less predictable as before you could just dodge to the left and not have to worry about the return hit.
That's all for now, but I've determined that in the platformer game, the levels need to be significantly more dangerous. At this point it seems far too easy to outrun the lava for long periods of time, and the lava pits aren't all that hard to avoid. It needs to be more of a challenge, but I'm still not sure what obstacles I could add to make it harder. Maybe something like a counterpart of the lava pit but on the ceiling so you can't jump too high. I'll have to keep thinking about that one.
Friday, September 27, 2013
Minion Mixing and Results Popup
I haven't been working on too many projects recently, but I've made a couple improvements to some of my games. First off, in the scrolling shooter, I switched up some of the minion waves. Each level has two types of minions, and previously waves of minions would alternate between the first type and then the second type. Now, every once in a while there will be a wave that is a mix of the two minion types. Also, my cousin Mitch has been testing the shooter for me. I fixed one bug with the reset button he found and he's helping me get the difficulty of the levels more in line with what they should be sequentially. Here is a screenshot of the ghost level with both minion types in the same wave:
Additionally, I've been working on the platformer game and I've put in a results popup window when the level is over. It show how many points you got from collecting gems, how many you got from just surviving in the level, your total score, and what caused your death. It also shows how much distance you've traveled horizontally through the level. That doesn't really factor into your score but I'll probably use it for an achievement of some sort eventually. The popup box also has a "done" button that will close the window and set you up for the next game. Here are a couple screenshots of the results popups:
Additionally, I've been working on the platformer game and I've put in a results popup window when the level is over. It show how many points you got from collecting gems, how many you got from just surviving in the level, your total score, and what caused your death. It also shows how much distance you've traveled horizontally through the level. That doesn't really factor into your score but I'll probably use it for an achievement of some sort eventually. The popup box also has a "done" button that will close the window and set you up for the next game. Here are a couple screenshots of the results popups:
Tuesday, September 3, 2013
Platformer Start Screen and Menu
I haven't added a whole lot to any of my projects recently, but just prior to leaving for the beach over Labor Day weekend, I managed to add some simple (but significant) additions to my platforming game.
First off, I added an actual start screen so you no longer just start running the second that you enter the game, but can now get a little set up and ready, then tap the screen to start running. It isn't anything major, but I think it has a large benefit on the game. Here is a screenshot of my little start screen text graphic:
Additionally, I added a pause menu so the player can now pause, resume, reset, and quit the game. Pausing, resuming, and quitting are basically all taken care of for you, but getting the reset to work actually took more time than I was expecting, mostly because I needed to do some garbage collection on my physics world objects and then set them up again. That is all figured out and working though, so it is quite nice to be able to play a new game without having to quit out first. Here is a screenshot of my super basic pause menu:
Readers of my last post might also notice a slight change to the thermometer gauge. I added a semi transparent background behind the meter to make it a little more visible. Near the top of the gauge there is an orange section of the background. This indicates the real "Danger Zone" because when the thermometer level gets to the orange part, it means that the lava wave chasing you is now on the screen and you are in trouble at this point. I like the way everything is going at this point, but I still want to add a few more UI things.
I would like to have a player report box pop up after the level over that shows how long you lasted on the level, how many gems you collected, and maybe a distance traveled type thing. If you got taken down by the lava wave it could indicate that or show a different icon if you fell in lava pit. Those are the only two things that can kill the player at the moment, but there is likely to be more hazards and traps in the future, so those could all be shown on a results popup.
First off, I added an actual start screen so you no longer just start running the second that you enter the game, but can now get a little set up and ready, then tap the screen to start running. It isn't anything major, but I think it has a large benefit on the game. Here is a screenshot of my little start screen text graphic:
Additionally, I added a pause menu so the player can now pause, resume, reset, and quit the game. Pausing, resuming, and quitting are basically all taken care of for you, but getting the reset to work actually took more time than I was expecting, mostly because I needed to do some garbage collection on my physics world objects and then set them up again. That is all figured out and working though, so it is quite nice to be able to play a new game without having to quit out first. Here is a screenshot of my super basic pause menu:
Readers of my last post might also notice a slight change to the thermometer gauge. I added a semi transparent background behind the meter to make it a little more visible. Near the top of the gauge there is an orange section of the background. This indicates the real "Danger Zone" because when the thermometer level gets to the orange part, it means that the lava wave chasing you is now on the screen and you are in trouble at this point. I like the way everything is going at this point, but I still want to add a few more UI things.
I would like to have a player report box pop up after the level over that shows how long you lasted on the level, how many gems you collected, and maybe a distance traveled type thing. If you got taken down by the lava wave it could indicate that or show a different icon if you fell in lava pit. Those are the only two things that can kill the player at the moment, but there is likely to be more hazards and traps in the future, so those could all be shown on a results popup.
Saturday, August 24, 2013
Game Syncing and Thermometers
I've been working with the Google Play Game Services some more trying to get a player's unlocked levels to sync for accounts across different devices in the scrolling shooter. The Game Services have some cloud saving abilities, but after spending a lot of time trying (and failing) to get it working, I decided to go a different route. Google's documentation of the cloud saving services leaves a lot to be desired, and I found their one example of how to implement it to be a bit of a complicated mess. For my solution, I tried something else, and it is not what Google would ever intend for someone to do and it probably isn't very good practice, but it's working well for me. What I'm doing is when the player starts up a game, I use the Game Services API to get a buffer filled with all the available achievements for the account. Then I step through the buffer and record how many of the achievements are unlocked. Since in the scrolling shooter game, the only achievements will be for completing a level, the number of achievements that are unlocked for the account is the same number of levels completed. Obviously this method wouldn't work if I had achievements for other things like reaching a certain score or beating a level in a certain time, but I have no intention of adding any such achievements so this works out pretty well. The game has a saved preference of how many levels are unlocked, so after I get how many achievements the player has, I compare that to the saved value of unlocked levels. If the number of unlocked levels is less than the number of achievements, I update the unlocked levels to be correct for the account. If the max number of unlocked levels is already saved in the preferences then I don't have to check for this level syncing in the first place and I just avoid any unnecessary calls to the Game Services. It's not how Google intends for people to do things and it's a bit of a hack job, but it's also pretty solid and it seems to be working well, so I'm going to stick with it on this particular app.
In addition to working on the Game Services for my scrolling shooter, I've been adding a bit to my platformer as well. Just recently I added my "danger meter" to the HUD. Its a thermometer and it shows how close the lava wave chasing the player is. As the lava wave gets closer, the level of the thermometer rises, filling the gauge when the lava actually reaches the player. It's really nice because you now have a way of telling when the lava is getting close before it actually appears on the screen. For the most part, its easy to keep the lava far enough away that the thermometer is empty, but since the lava speed ramps up over time, it will eventually catch up and the level of the meter rising lets you know its coming.
Here are a couple screenshots of the thermometer in action:
In addition to working on the Game Services for my scrolling shooter, I've been adding a bit to my platformer as well. Just recently I added my "danger meter" to the HUD. Its a thermometer and it shows how close the lava wave chasing the player is. As the lava wave gets closer, the level of the thermometer rises, filling the gauge when the lava actually reaches the player. It's really nice because you now have a way of telling when the lava is getting close before it actually appears on the screen. For the most part, its easy to keep the lava far enough away that the thermometer is empty, but since the lava speed ramps up over time, it will eventually catch up and the level of the meter rising lets you know its coming.
Here are a couple screenshots of the thermometer in action:
Subscribe to:
Posts (Atom)











