I haven't really been messing with any games much lately. I have been tweaking my maze game a bit, trying to get the zombie movements working better and better encapsulating some stuff. The zombie stuff is just kinda boring though. I've done it all before, I'm just translating it in to Java and integrating AndEngine. So, I need to take a break from it every once in a while.
Two days ago I stepped away from working on the maze game to play around with another idea I had. I want to make an app that is a collection of at least four circus/carnival themed mini-games. Yesterday I made one where you have to juggle a couple balls for as long as you can. Its working pretty much how I want it to (still need to add in a pause menu and a reset function) and it is fully playable, although not particularly good looking. My longest time is just over three minutes. I'm still brainstorming some simple little carnival games that I can add. I'm thinking maybe a whack-a-mole type game or something. I expect this to be a project that I play around with when I'm taking a break from other, more involved games. It is also serving as a way to experiment with some of AndEngine's physics features.
Wednesday, March 21, 2012
Tuesday, March 13, 2012
Lite Versions of Color Coder
So pretty much all the work I did yesterday was getting the Lite versions of Color Coder ready for an update. This entailed getting the content centered on the screen, adding Scoreloop, setting up music, and changing game sounds over from MediaPlayer to SoundPool. It was all pretty easy but also very tedious and time consuming, especially since there were two Lite versions I needed to update.
I added Scoreloop to the Lite versions and they share the same leader boards as the Full version. This means that people with either of the Lite versions can put their scores up on the Classic mode leader boards, but not the Time Trial one.
I asked the Scoreloop support staff about the possibility of not showing the info that was irrelevant to the game mode (like I mentioned in an earlier post) but apparently that isn't currently an implemented feature. The good news is that there is already an "enhancement request" for that feature, so hopefully they will be adding it soon. I don't know when that request was added to their queue or how fast they add requested features, but this seems like a problem that would be fairly common so maybe they will get to it pretty soon. I hope they do at least because I plan to have several more games with similar modes and it going to get pretty annoying if all their leader boards look like that.
I added Scoreloop to the Lite versions and they share the same leader boards as the Full version. This means that people with either of the Lite versions can put their scores up on the Classic mode leader boards, but not the Time Trial one.
I asked the Scoreloop support staff about the possibility of not showing the info that was irrelevant to the game mode (like I mentioned in an earlier post) but apparently that isn't currently an implemented feature. The good news is that there is already an "enhancement request" for that feature, so hopefully they will be adding it soon. I don't know when that request was added to their queue or how fast they add requested features, but this seems like a problem that would be fairly common so maybe they will get to it pretty soon. I hope they do at least because I plan to have several more games with similar modes and it going to get pretty annoying if all their leader boards look like that.
Sunday, March 11, 2012
Zombie Movements
I've been working on getting my zombies to navigate around the maze without getting stuck. It still isn't organized extremely well (I plan on cleaning it up a bit later) but it is working decently. I hope to make the zombies even 'smarter' but right now they are good enough that you can't stop moving or they will get to you. They don't pile up in corners and will sometimes take different routes if there are a bunch of them piling up in one area. Sometimes they act a little dumb, but they are still good enough that you have to keep moving to avoid them, and that's the main thing I'm going for.
I had some trouble getting the zombies to move properly. They were getting stuck on each other sometimes and then the two zombies that collided would fail to start moving again. Now that they are successfully moving around the maze without stopping or getting hung up, I can start working on some of the other functionality. I'll most likely come back to the zombie movements and get that working better, but even if I didn't do any more work on it, it will work just fine for the game. Now I can start working on projectile stuff, special zombie types, and more mazes. Also HUD stuff like life gauge, ammo, kill count, etc. In my opinion, the hardest part of this project is likely giving the zombies a way to move around without getting stuck, and since that is completed in a working (though not well refined) manner, the rest of the project should be pretty straight forward. That's not to say that the rest of the project will be easy, but that it isn't going to be as hard as some of the zombie movement AI stuff.
I had some trouble getting the zombies to move properly. They were getting stuck on each other sometimes and then the two zombies that collided would fail to start moving again. Now that they are successfully moving around the maze without stopping or getting hung up, I can start working on some of the other functionality. I'll most likely come back to the zombie movements and get that working better, but even if I didn't do any more work on it, it will work just fine for the game. Now I can start working on projectile stuff, special zombie types, and more mazes. Also HUD stuff like life gauge, ammo, kill count, etc. In my opinion, the hardest part of this project is likely giving the zombies a way to move around without getting stuck, and since that is completed in a working (though not well refined) manner, the rest of the project should be pretty straight forward. That's not to say that the rest of the project will be easy, but that it isn't going to be as hard as some of the zombie movement AI stuff.
Friday, March 9, 2012
A New Game
I'm pretty much done coding Color Coder and my puzzle game so I've started working on a new game in the last couple days. Well, it's a new Android game. It's a conversion of the Zombie Maze game I worked on when I was playing around with OpenGL. You can see a video of that project HERE. I have a lot of the basic code done already from that project, so this new project has been going very well. There are only a couple conversion issues that have been hard to deal with switching from OpenGL C++ to AndEngine Java. With the OpenGL I did all the collision detection myself, and now I can handle it with AndEngine. This sounds like it would be way easier, but it has actually left me with a couple of problems to work through. For example, with the OpenGL project, the walls were all individual, but with the Android project, the walls were all a single image so they couldn't be differentiated. The solution I came up with was to use the AndEngine Line class to outline all the walls and then detect collisions with those instead of the wall pictures.
Right now the game is actually a tiny bit playable. I've added an AndEngine control that looks a bit like a thumb stick and that moves around the player. Eight zombies randomly spawn, each in one of 16 predetermined spawn points. When the game starts, the zombies move through the maze towards the player. When a zombie reaches the player and makes contact, the zombie dies, and the player takes a point in damage. If the player takes 4 hits, they also die. The zombie movements are the extremely simple for now. If the player is above the zombie, the zombie moves up. If the player is below the zombie, the zombie moves down. Same deal with left and right. I'll be making the movement stuff better like it was the OpenGL version. That way the zombies negotiate around walls instead of just stopping at them if they are lined up with the player. I'm going to take this opportunity to clean it up a bit from the way it was in old version. A lot of my work today was creating a hero class and a zombie class, and then the different playable characters will inherit from the hero class.
I'm going to start with just the first character, get the game all working with that, then make the rest of the characters. Getting the game working means I need to add projectiles and weapons, zombie respawning, at least 2 more maps, and a few smaller things like player/zombie animations depending on what direction they are moving, etc. But the next thing I'll be working on is the better zombie movements.
Right now the game is actually a tiny bit playable. I've added an AndEngine control that looks a bit like a thumb stick and that moves around the player. Eight zombies randomly spawn, each in one of 16 predetermined spawn points. When the game starts, the zombies move through the maze towards the player. When a zombie reaches the player and makes contact, the zombie dies, and the player takes a point in damage. If the player takes 4 hits, they also die. The zombie movements are the extremely simple for now. If the player is above the zombie, the zombie moves up. If the player is below the zombie, the zombie moves down. Same deal with left and right. I'll be making the movement stuff better like it was the OpenGL version. That way the zombies negotiate around walls instead of just stopping at them if they are lined up with the player. I'm going to take this opportunity to clean it up a bit from the way it was in old version. A lot of my work today was creating a hero class and a zombie class, and then the different playable characters will inherit from the hero class.
I'm going to start with just the first character, get the game all working with that, then make the rest of the characters. Getting the game working means I need to add projectiles and weapons, zombie respawning, at least 2 more maps, and a few smaller things like player/zombie animations depending on what direction they are moving, etc. But the next thing I'll be working on is the better zombie movements.
Tuesday, March 6, 2012
Leaderboards Working
The Scoreloop leaderboards are working. After tinkering with them for about a week, they are finally showing codes found for Classic Easy and Hard modes, and times for Time Trial mode. The only issue now is that the scores for both modes show on the leaderboards, so instead of a score for Classic Easy mode showing as "12" it shows up as "12 00:00.00" and instead of a Time Trial mode time showing up as "01:02.34" it shows up as "0 01:02.34". It isn't the worst of problems, and it is barely noticeable for the Time Trial leaderboard since it is a single additional character. For the Classic modes, it is a little bit more annoying since it is actually 8 characters of meaningless information. I asked about showing just the relevant info for different leaderboards on the support "forums" on the Scoreloop website. The reply I got from the support staff was that they weren't even sure if it was possible to show only the time for Time Trial and only the score for Classic modes. While it isn't a big deal, and I'm actually quite happy with how it is currently working, I find it a bit odd that they don't already support this option. It's hard to believe that I'm the only one that wants to have a time leaderboard and a score leaderboard in the same game. The new game that I'm working on has both of those modes as well, so apparently, not only am I the only one who wants both mode types in the same game, I've also made two games that use them.
I'm going to have something similar going on with a new game I'm thinking up. It'll have like a speed run mode where you try to beat it as fast as you can, but also a survival mode where you try to stay alive as long as you can. The problem here is that one of leaderboards will be ascending and the other descending. It can be done with Scoreloop, but it will look terrible on the leaderboard. Something like "00:00.00 01:23.45" or "01:23.45 00:00.00", which isn't the best look. Again, I'm just surprised that Scoreloop, which has gotten pretty huge in mobile gaming, hasn't accounted for this kind of stuff already. It seems like making it so it doesn't show up if the score was set to null or something would work out nicely, but they haven't done anything like that apparently so I'm out of luck in that department for now.
I'm going to have something similar going on with a new game I'm thinking up. It'll have like a speed run mode where you try to beat it as fast as you can, but also a survival mode where you try to stay alive as long as you can. The problem here is that one of leaderboards will be ascending and the other descending. It can be done with Scoreloop, but it will look terrible on the leaderboard. Something like "00:00.00 01:23.45" or "01:23.45 00:00.00", which isn't the best look. Again, I'm just surprised that Scoreloop, which has gotten pretty huge in mobile gaming, hasn't accounted for this kind of stuff already. It seems like making it so it doesn't show up if the score was set to null or something would work out nicely, but they haven't done anything like that apparently so I'm out of luck in that department for now.
Saturday, March 3, 2012
Music, Sounds, and Waiting
I'm hoping that it won't take many more back and forth posts on Scoreloop's support discussions before everything is set up. I feel like I'm close enough that the problem will be solved in one or two more replies. I kinda got my hopes up today, thinking that the final reply post that solves my leader board issues once and for all might be on the board when I woke up. Unfortunately, I forgot it is now the weekend and Scoreloop support team members probably don't spend their time replying to help messages on their days off. So, now I just have to wait a little longer. Here's hoping that I get the leader boards fully working on Monday or Tuesday.
I've got the music in my new game working just as well as the "music" in Color Coder. I ended up going with a background service so that I can keep the music going across all my activities (or different screens) without it restarting every time. As a result of using a service, the music is just being played with the Android MediaPlayer stuff, instead of something Android specific, but it seems to be working out well in my current play testing. When I was trying to understand services better, I saw a couple topics on programming support forums like stackoverflow.com where people asked for help with services and then people replied saying to avoid using them. The only thing is, nobody seems to explain why services should be avoided, and when I even attempted to look up why services might be bad or their pros and cons, I didn't find anything that described them negatively at all. As far as I can tell, most people just tend to steer clear because they can get complicated and a lot of people that use them don't understand their life-cycles or something. The background music that I've been doing with them isn't that complicated though, and I'm not attempting to do any complex data management or anything in a background service, so I think I'll be fine. If I come across an explanation to why services or bad, or somebody manages to convince me of a better way of doing things, I'll likely go back and reformat the code for my music playing, but for now it is working out quite well.
Oh, I also went back and switched the sound effects in Color Coder to being played with SoundPool instead of MediaPlayer. When I initially added the sound effects in I didn't really understand the difference between the two. I looked into it a bit more and it turns out that SoundPool is the better choice for short little clips (like the cell selection sound) while MediaPlayer is better for playing longer sound files, like music. So, I switched it all out and boom: my sound effects work better. Sometimes before they weren't playing in a way that felt very responsive. If you clicked cells too fast you would only hear 2 animations when you had clearly tapped 3 or 4 cells. Now (as far as I can tell) you get a sound for every tap, so I'm pretty happy with that. The sound only playing once or twice for 3 or 4 cell selections was one of my pet peeves in Color Coder.
I've got the music in my new game working just as well as the "music" in Color Coder. I ended up going with a background service so that I can keep the music going across all my activities (or different screens) without it restarting every time. As a result of using a service, the music is just being played with the Android MediaPlayer stuff, instead of something Android specific, but it seems to be working out well in my current play testing. When I was trying to understand services better, I saw a couple topics on programming support forums like stackoverflow.com where people asked for help with services and then people replied saying to avoid using them. The only thing is, nobody seems to explain why services should be avoided, and when I even attempted to look up why services might be bad or their pros and cons, I didn't find anything that described them negatively at all. As far as I can tell, most people just tend to steer clear because they can get complicated and a lot of people that use them don't understand their life-cycles or something. The background music that I've been doing with them isn't that complicated though, and I'm not attempting to do any complex data management or anything in a background service, so I think I'll be fine. If I come across an explanation to why services or bad, or somebody manages to convince me of a better way of doing things, I'll likely go back and reformat the code for my music playing, but for now it is working out quite well.
Oh, I also went back and switched the sound effects in Color Coder to being played with SoundPool instead of MediaPlayer. When I initially added the sound effects in I didn't really understand the difference between the two. I looked into it a bit more and it turns out that SoundPool is the better choice for short little clips (like the cell selection sound) while MediaPlayer is better for playing longer sound files, like music. So, I switched it all out and boom: my sound effects work better. Sometimes before they weren't playing in a way that felt very responsive. If you clicked cells too fast you would only hear 2 animations when you had clearly tapped 3 or 4 cells. Now (as far as I can tell) you get a sound for every tap, so I'm pretty happy with that. The sound only playing once or twice for 3 or 4 cell selections was one of my pet peeves in Color Coder.
Friday, March 2, 2012
Color Coder Upgrades
So lately I've been focusing primarily on adding new stuff to Color Coder. Still sorting out the Scoreloop issues, but I'm close to resolving them. Contrary to what I said in an earlier post, the Scoreloop support "forums" have been pretty helpful. I've been getting tips from a member of the support staff and that has been nice. I'm pretty sure that we are in way different time zones. Scoreloop is based in Germany and while that doesn't necessarily mean the support staff is from there, I think its a pretty safe bet that they are, and so all my posted questions get answered while I'm asleep. So, I pretty much get a single reply a day. As such, trying the tips I get in those replies has been a pretty slow process. Attempt the solution they describe, it helps but doesn't fully solve the problem, post what the outcome is and what I still need it to do, wait until the next day when I have another reply. Hopefully the next time I add Scoreloop to a game it will be much easier because of this experience, but that would be too easy, so I will probably run in to just as many new problems next time.
I've also been getting music set up in Color Coder. It was actually a little more complicated than I thought it would be, but I have it all working now. It turns off when you hit the home button and doesn't restart when you switch activities. Right now the "music" isn't really music, but actually the game over sound playing on a loop. It will all be good to go when there is an actual music file to play. As a result of adding music to the game, I've also added a music on/off radio button toggle to the settings page. Because of that addition I rearranged the specific sound check boxes to be a 2x2 setup instead of a 4x1 arrangement. This has the additional benefit of giving me some room on the setting page to put a "more games" button in the future. The space isn't really a problem on the full version, but on the Lite versions of the game there isn't much room with the ad on it.
I've also been getting music set up in Color Coder. It was actually a little more complicated than I thought it would be, but I have it all working now. It turns off when you hit the home button and doesn't restart when you switch activities. Right now the "music" isn't really music, but actually the game over sound playing on a loop. It will all be good to go when there is an actual music file to play. As a result of adding music to the game, I've also added a music on/off radio button toggle to the settings page. Because of that addition I rearranged the specific sound check boxes to be a 2x2 setup instead of a 4x1 arrangement. This has the additional benefit of giving me some room on the setting page to put a "more games" button in the future. The space isn't really a problem on the full version, but on the Lite versions of the game there isn't much room with the ad on it.
Subscribe to:
Posts (Atom)