Showing posts with label puzzle. Show all posts
Showing posts with label puzzle. Show all posts

Thursday, July 18, 2013

Sounds and Stories

Haven't done much that is noteworthy lately, but I have been tinkering with some stuff. In my puzzle game, I've been adding sound effects and getting that all ready. I already has some in place for a while, but they weren't quite playing in the right places. Now I've gotten it all set up and working properly. I'm thinking this game is all set up correctly now. I just need some music assets and such to throw in and it should be already for release.

I've also been adding in some story elements (or preparations for them) to the scrolling shooter. When a new level is started, before the player sprite enters the screen, a dialog type window will pop up on the screen that will eventually show some sort of story graphics. The player clicks on it, it shows the next one, they click the second one and it goes away and the player sprite enters. When the player beats the boss, another box pops up with the same kind of deal only when its over the player sprite leaves the screen. Each level will have 2 intro "slides" and 2 outro slides. When strung together in the order of the levels, this will hopefully create some sort of cohesive overarching storyline. I only have a vague and general idea of the direction of this story, but I don't think it will be too hard to figure out. I don't plan on making it anything complicated with plot twists or anything. I just want it to be pretty straight forward and maybe have some dialog between the player character and the enemy characters. I'm pretty happy with how its looking.

Tuesday, June 11, 2013

Puzzle Game Commenting

All the functions of my puzzle game are pretty much done. Now I just want to get it all commented up, but that task is easier said than done. With the recent refactoring of the main game activity and the major overhaul of my story page, there is a lot of new code to document. It needs to be done though. Just good practice and really helpful in the future if I need to update anything. It's a bit daunting though.

Wednesday, June 5, 2013

Refactoring and Multiplayer Possibilities

Been working on my puzzle game lately. Changed up the story page a bit and it is working real well. I took out the previous/next buttons the player was supposed to use to navigate the map, and now your player sprite slides to the level you click on, following the path on the screen. It's working really well. I also did a major refactor on some of the main game activity to incorporate some swipe detection. There is some stuff where I had it set up to just rotate 90 degrees on every click, but I found that it wasn't super intuitive for players, so now if you swipe in a direction things will get rotated in that direction. I also left in the clicking to rotate it 90 degrees though so I personally don't have to relearn the controls. You have both options and the player can go with what they prefer.

I've also been reconsidering working on my zombie maze game. I had some issues with it before that made me put it on the back burner, but now I have a few more ideas of how to go about things. In addition, Google just recently came out with a real time multiplayer API where they do a lot of the heavy lifting for you. They do some quick matching and connection stuff and apparently you just have to format the info you are going to send. It occurs to me that the maze game would be a great candidate for having a 2 player cooperative mode. I might play around with some of the multiplayer stuff a little but I don't think I'll be focusing on it any time soon. I got this puzzle game nearing 100% completion and my scrolling shooter is almost finished too, so now is not the best time to be jumping on to a new big project, but the possibilities this multiplayer API presents are too good not to at least look into.

Sunday, May 26, 2013

Puzzle Game Story Mode

For the last year, the story activity in my puzzle game was just a little slideshow the player could flip through to get the little back story that I made up for the game's visual setting. It was pretty lame and kind of misleading since when people see "story modes" they generally think there is going to be some sort of level setup and not just a couple images explaining things. So, I went back and I significantly expanded the story mode. Now there are 10 levels the player can play, each with a specific game mode and a target score. If the player beats the target score, they pass the level and can move on to the next. I've made it so that initially, only "Classic Mode" is available in the game through the normal play menu. By beating a certain levels in story, you gain access to the other game types. Beating all of the 10 levels awards you with a Scoreloop achievement.

Using some of the path modifier stuff I've learned by working on my scrolling shooter, I've made a cool little navigation setup. It's kind of like moving around levels in Super Mario Bros. in that you have a little player sprite, and going in the direction of the next level moves the sprite to the next level area and the camera follows. To explain the story, I still have something similar to the "slideshow" I mention previously, but now that is brought up on the screen by tapping a little circle with an "i" in it, which is a common symbol for 'additional information'. You flip through the slideshow using the same previous/next buttons that you use to move your character through the level. It still isn't the greatest way to get story elements across to the player, but the 10 challenge levels is something that I'm really happy about adding to the game.

Saturday, February 9, 2013

Puzzle Game and Scrolling Backgrounds

Been a while since I posted but I've got a little bit going on. Nearly a year after starting work on my puzzle game (and my first taste of AndEngine) I finally feel like it is ready for release. It still needs good graphics (the ones I made are terrible MS Paint things) and some sound effects to go with the new graphics. Other than that, all the functionality is there, Scoreloop leaderboards for the 5 game modes, a cool power-up I added, and some pretty cool achievements to earn by doing specific things and playing the additional game modes. I'm pretty excited about how far the game has come. It is somewhat similar to games like Bejeweled so fans of that type of game will enjoy it, but at the same time has elements that make it unlike any puzzle game I've personally seen. I'm pretty happy with how original of a concept it is.

The other project I've just started recently is a top down, vertical scrolling shooter. I haven't done much work on the actual code yet, but Tia and I have spent quite a bit of time hashing out things like characters, a little bit of the storyline, bosses, power-ups, and some of the general look of the game. Going only off of the notes I have in my notebook and the images I have in my head, its looking pretty great.

With this game I'm trying to do a significantly better job of encapsulating code, and I'm off to a pretty good start with the very little I've done so far. I'm starting with the aspects of AndEngine I'm unfamiliar with in an attempt to figure them out before there is a lot of other pieces fit in. So far I've just scratched the surface with some Parallax Background work. Basically a parallax background is set up so you have a main background that slowly scrolls, and then another background layer composed of background objects like clouds, that move at a slightly faster rate, giving a "realistic" appearance to the background. Since the player in this new game will be flying at what is presumably a great height, the ground should appear to be moving underneath them at a slower rate than the closer objects, like the clouds, and then both backgrounds continuously scroll on repeat. AndEngine has a nice Parallax Background class, but for some reason the official stuff only supports horizontal scrolling (not good for a vertical scrolling shooter). Luckily, a quick search of the AndEngine forums turned up some modified code some community members had worked on that fix the issue.

So, I started out by just having a light blue background with a big black X on it so I could tell if it was moving. For the foreground I put some oddly colored triangles pointing out. I don't know why I went with that decision, but it worked out all right. This is what it looks like:
Then, partially to test out my encapsulated background code but more to have a better example of the reasoning behind the parallax background, I made a second set of background that are clouds over a grassy area with a lake, some streams, and what I guess is a road leading up to the lake, again in MS Paint. It turned out surprisingly good for the time I put in:
This second background really illustrates what I'm going for here. The clouds scroll downward at a little over twice the speed of the "ground" under them. I'm really happy with how it turned out and I'm excited with the possibilities for additional "levels". Canyons, cities, some sort of volcano. All good options. I just need to keep myself motivated with this new game. The amount of stuff I have to work on to bring it to where I want it to be is a little daunting to be doing solo, especially given the fact that my most complicated game took a year to finish and probably wont see release for quite some time. We'll see how it all goes.

Wednesday, September 5, 2012

Database App Released and Puzzle Game

We've released the database app. It's called the Nail Polish Cataloger and as you might expect, it catalogs a person's personal nail polish collection. Tia suggested the idea a while back, and I wanted to play around with SQLite, so I started working on it. You can put in the colors, brand, collection, finish, size, etc. in and then look at them later or edit them or search for specific qualities like blue glossy polishes that cost more than $1. You can assign a picture to each entry in the catalog from your device's gallery. You can get it here:
Android app on Google Play

On another note, I've added a cool (I think it is at least) power-up to the puzzle game I've been working on. The one that was my first attempt at AndEngine stuff. It was already good but I decided it needed a little bit more, and I'm really happy with the idea I added in. Here's how it works: as you destroy tiles on the board, an animated meter to the side fills up. When it is full, it starts glowing red which means the power-up is ready to be used. If you click it while its glowing red, the glow becomes green to show the power-up is "armed". When the power-up is "armed", your next move will destroy a bunch of tiles, but the meter will drain and you'll have to start filling it again to get the power-up back. I'm really happy with the way the power-up works, and especially how it looks. When the meter drains the bar slides back down to the bottom of the meter, and it looks really cool in my opinion. Overall, its a cool addition that I'm pretty excited about.

Sunday, June 10, 2012

Game Tweaks

Not too much has been going on lately development wise. Tia and I have thrown around some ideas for the art in the game we are currently working on and she's started some feature graphic stuff. I think it is going to turn out pretty cool eventually.

I've also been tweaking some of the other games I've been working one. I made a couple small changes to my puzzle game that I think better the flow of game. Most people probably wouldn't even notice the change, but I think it will help with more serious type players.

I have also been playing around with my carnival game pack, specifically the Basket Catch and Pachinko games. In the basket catch game I changed up the way the balls fall. They will now fall at one of 2 speeds, which will be faster if in the hard mode, and will either fall straight down, curve to the left, or curve to the right a bit. I also made the balls fall more frequently in the hard mode. After some play testing with the way it was before, I found that in hard mode it was actually much easier to get a high score, even though the balls were falling faster. This was because the balls fell so fast that the first one was caught before the next one spawned, so while in the easy game mode the player might have to deal with multiple balls falling at the same time, in the hard mode the player just had to get in "groove" (so to speak) and they could potentially just keep going forever provided they had fast reflexes. Now, the increase in frequency at which balls are spawned in hard mode (one every half a second), should fix this problem. Also, the addition of balls falling at different angles in curves also should increase the difficulty of catching them since they might bounce off walls or each other.

In the Pachinko game I added the use of the accelerometer to kinda make the puck drift left or right. I've watched people play the game and they seem to just naturally think that tilting the device might make the puck move sideways. I also feel that it adds a needed amount of control. Before the only real control the player had was to pick where the puck drops from, but now if the puck falls and it's kind of hovering balanced on the divider between a 5 and a 20 point zone, you can tilt your phone to direct it in to the 20 zone. That being said, the tilt control is pretty subtle. The pegs that the puck hits on the way down cause it to bounce so much that the player might not even notice the effect their tilting has on it, but in the instances where the puck is falling straight down for a 5 zone or teetering on the divider between two zones, you can direct the puck a little in to a higher point zone. It's just something subtle the player can do to take an active role in the game while the puck is falling. Overall I think it is a good addition, but a subtle one that doesn't affect the game too much.

Friday, February 24, 2012

Splash Screen, Sound Effects, and Music

Today I added a couple of smaller features on my way to finishing up the game: a splash screen, sound effects, and music. All three things were quite a bit simpler to add than I thought they would be.

The splash screen wasn't hard once I figured out what I needed to do. I looked over some example code I found, but it was from over a year ago and some of the object names and such have since been changed, so I had to look up what the new names were, which didn't take long, but it would be nice if some of the examples I've been looking at were current at all. The splash screen just shows up for 2 seconds when the user first starts the game. The screen shows an image of the Downplay Games logo along with the AndEngine logo in the lower right. The image zooms in a little bit over the course of the 2 seconds the screen is shown.

The sound effects were also fairly easy to add. Since I already had the Sound On/Off settings flag implemented, it was pretty simple to add in a couple if statements checking if the sound flag was set, and then it plays the sound. I added in sounds for starting a game, selecting a tile to destroy, chains being destroyed, tiles being respawned, and the game ending. Currently they all play the sound file since I don't have any other files ready.

Similar to the sound effects, the music settings flag was set up already so getting the music to play was easy to implement. All pages in the game play it if the music setting is on. Unfortunately, the song restarts every time the game switches to a different page. I'm also using a place holder song for now that just loops repeatedly. If the player pauses the game on game page, the music also pauses. The music toggle button on the settings page does the same thing: the music plays when the music toggle is on and pauses when it is off.

With these additions, I'm tempted to say all the critical aspects of the game are now complete.

Thursday, February 23, 2012

Game Modes 2

Yesterday I finished up with two major aspects of the game: Time trial mode and high score message boxes. The message boxes appear in the middle of the screen when the player has scored a new fastest time in Time Trial or a new high score in Classic or Casual.

In time trial mode, the player has unlimited clicks and the object of the game is to get to 15,000 points or more as fast as possible. A stopwatch style counter starts when the player starts the game and ends when they reach 15,000 or more points. My fastest time so far is 1:26.880. Adding time trial mode to the game was a bit time consuming, but I was expecting that. Getting the timer to pause and resume correctly was *way* easier than I was expecting.

Time trial mode is pretty fun. Since you don't have to conserve clicks, you can just set yourself up for much larger chains, where in casual or classic, setting yourself up for a larger chain might not be worth the extra clicks you spend to do so. Without having to worry about how many clicks you have left you can make large chains all game, as long as you do so quickly.

Getting the high score/fastest time message boxes to pop up at the correct time was actually much more time consuming than I thought because I was actually checking for high scores in multiple places, both when the timer ran out and when the user was out of clicks. Now, it basically checks when the last tiles are respawned after the game end condition has been met.

Earlier today, I also did some quick work to add a "Quit" option on the game screen pause menu. Now, when the player presses either the menu button or the back button on the game screen, the pause menu will pop up. When the player selects the Quit option, they are taken back to the main screen of the game.

I feel like the only main things I need to add now (besides better graphics) is music/sound effects and a Downplay Games splash screen when the game first loads. Then an addition I was thinking about making was some sort of point text that appeared when a chain was made to give feed back to the player as to how many points they've received. In this way, the player would get a feel for how different chains are rewarded more than others and how causing multiple chain reactions is more beneficial. That being said, I also feel that there is a lot of chain reactions and tiles falling in different directions, etc, and putting a bunch of text numbers over the top of it might get really busy and make the board too crowded. I'll have to play around with it later and see how I feel about it.

Wednesday, February 22, 2012

New Game Modes 1

Yesterday I started working on different game types, specifically the "Casual" mode. In casual mode, there is no time limit and the player has 25 clicks to get as many points as possible. Its a mode for when players want to take their time and really think out their moves.

Since I started putting new game modes in, I also added some personal high score tracking. Currently the game is saving high scores for Classic and Casual modes. The game type selection page now shows the high score for currently selected game type. The high score text is displayed on the bottom of the game type description area. My new Classic high score is 13236 and my Casual high score is 14296.

When the game is in Casual mode, the time display is shown as the infinity symbol. When the game is in Time Trial mode, the clicks display is shown as the infinity symbol.

The stop watch functionality of Time Trial still needs to be implemented and then a fastest time needs to be saved. I also need to add some sort of new high score/fastest time dialog box that pops up when the player breaks their records.

Tuesday, February 21, 2012

Non-Game Pages.

Had a pretty productive day yesterday. I added 5 activities to the game: main menu, help page, story page, settings page, and a game type page.

The main menu page is straight forward. There's a large button for play that takes you to the game type selection page, and then 3 smaller buttons for Story, Settings, and Help.

The settings page has two toggle buttons for turning off and on sound effects and music, except there isn't actually any sound effects or music in the game yet. It also has buttons that will take you to the Downplay Games facebook, twitter, and website, as well as a "More Games" button that takes you to our page in the Android Market.

The help page and story page pretty much function the same way. They are basically slideshows that you navigate by swiping the screen with your finger. at the bottom left of the page in small text I put a note that says "Swipe to Change Page" just in case the user doesn't automatically get that. Also, in the bottom right there is a page indicator, that says for example "Page 3 of 6", to provide a little feedback so the user doesn't keep swiping when at the end of the 'slides'. These pages will show the help page images and ones depicting the back story of the game.

The game type page is the page displayed right before you get in to playing the actual game. It will be here that the user selects their game mode. I currently have 3 game modes shown. Clicking any game mode button highlights the button's frame in different colors, and obviously clicking a different button removes the highlight from the previous button and places it on the current one. In addition, an image that takes up the right portion of the screen also displays a description of the highlighted game mode. Clicking a game type button that is highlighted takes you to the game page, though the different game modes are not yet implemented.

Getting the new game modes in are next on my list as the various new pages are pretty much finished besides adding proper images and sound effects. I'm also going to be adding some personal high score saving pretty soon. On a side note, my new high score for what should now be considered "Classic Mode" is 13050.

Sunday, February 19, 2012

Restart Menu and Bugs

So today I worked on changing the pause screen to a pause *menu*, which looks the same, but is actually handled differently in AndEngine. So now, the same pause image pops up (actually it fades in now) but below it there is a smaller, similar image that says "RESET" and clicking it resets the game, obviously. It actually took me a couple hours to get the pause menu set up and working properly with the reset functionality, but that was mostly because I had a hard time actually figuring out what the menu code was doing. In hindsight, it is pretty simple.

After I got that all figured out, I play tested for a while, and found that "pausing" at certain times during the game caused a few or all of the tiles to remain visible when the pause menu was up, which shouldn't happen. You could also sometimes get it to show the board after the reset option was chosen, but before the tiles went through their spawn animation, so you could look at your board before the game was started, which is another thing that shouldn't happen. After playing around with it for a while, I determined that it was specifically pausing while the tiles were sliding that caused the issue. I attempted to fix this issue in vain for at least an hour, probably closer to an hour and a half or two, by adding all kinds of sections that made all the tiles invisible and checks to see if the game was paused or not. None of these options were working and I was getting pretty frustrated.

Luckily, the easiest solutions are often the best ones, and I decided to simply not allow players to pause the game while tiles are actively sliding around the board. All this really means is that after making your move, you just have to wait for all the chains to fall before you can pause, which I think is fine. although some people who are in a hurry for some reason might be confused as to why they can't get the game to pause. So now when you've played a game and its all over, you can bring up the pause menu and restart your game instead of leaving the app and loading it back up, which was the only to start a new game up until this point.

A little more play testing is needed, but I think the addition of the pause menu just about wraps up all the functionality for the actual game play. Now on to the exciting world of main pages and settings menus.

Saturday, February 18, 2012

Timer and Pausing

While I didn't get anything super exciting done on the game yesterday, I did get some good features added in.

First of all, I added a count down timer so the player has a time limit as they play. I started with 2 minutes, but I found that was actually plenty of time to use 20 clicks, so I lowered the time to 1 minute 30 seconds, and that seems to be right on the mark. I've play tested more than a few times, and I've actually run out of time in a couple games with 3 clicks left to use. So, as a result of adding a time limit, the hourglass animations now changed based on remaining time, and the game ends when either the time runs out or the player is out of clicks (which ever comes first).

Now that there is an actual time limit, I didn't want players to be able to see the board prior to starting a game, so now the game starts when you click the start button above the hourglass, or the hourglass itself. Then the entire board is filled with the tile respawn animation and the game is on. My new high score with the set up is 12310, which is only 62 points lower than my previous high score, but I had a really lucky game with several high scoring chains.

The second cool feature I added was the ability to pause the game. When the player presses the menu button on the device, the game timer stops ticking down, the tile board goes invisible, and a "PAUSE" image shows up in the middle of the screen. So far it has come in handy several times when I've had to sneeze in the middle of a game. I made the game board go invisible so that players couldn't just pause the game to plan for a second and then start the game up again. I think that is a pretty straight forward choice and it works out pretty well.

The next thing I want to add to the game is a menu on the pause screen with a button to restart the game. Instead of making the player go back to the main menu page to start a new game, they should simply be able to pause and select the restart option. This will work while in the middle of a game or when the game is over.

After the restart option, pretty much the rest of the game is getting menu and setting pages done, and then a couple extra game modes.

Friday, February 17, 2012

Points and Hourglasses

I feel like I made some good progress yesterday. I added in some scoring functions that take in to account chain size and what I've come to call "Chain Generation". The main chain scoring function is a pretty simple recursive setup, but man, is recursion cool. Its always fun to play around with, provided it doesn't get complicated enough to induce headaches. There were a couple bugs at first with my score calculation equation (wasn't totaling up to as much as I wanted to) but they were easily remedied and the scoring is now just how I want it.

Oh, there was also a "bug" I fixed with respawning tiles where I wasn't checking a certain case that would lead to it spawning a tile in between 2 matching tiles (forming a chain of 3), which shouldn't happen. Anyway, that was a quick fix once I tracked down the problem.

I also added a super simple "Player" class that holds stuff like score and the number of clicks the player has left, in addition to respective text displays on the screen. Currently you start with 20 clicks (which I think is a good amount) and the game "ends" when you have no more clicks left. This makes the game actually playable now that there is both scoring and the game doesn't go on indefinitely. My current high score is 12372.

I've started working on an animated hourglass display for the time. The concept fits really well with the theme of the game, but right now I don't have an actual timer in the game. So for now the hourglass animations change based on the number of clicks the player has left and every 4 clicks the player does, the "sand" in the top half of the hourglass goes down, the bottom half fills a little, and it animates between 2 frames that make it look like sand is pouring down. I think once I've added the timer, I'll also add a text display of the time beneath the hourglass as well so the player knows exactly how much time they have left instead of having to gauge the hourglass. This makes it sound a bit like there is no point to the hourglass if the seconds are just shown on the same screen, but I feel like the hourglass will benefit the game aesthetically, fitting in with the theme well, in addition to giving the player a sense of urgency as they see the sand in the hourglass slowly sift down.

Getting the timer added and synced with the hourglass animation is really the last step I have to finish to get the game to full functionality. Then I plan to add a personal high score saving, hopefully with a leader board later on (Tim and I have been looking at Scoreloop), and then start working on some pages: main menu, settings, etc. I'm hoping to make a pause screen since AndEngine seems to have a good setup for that.

I also eventually want to add some different game types. I'm thinking a mode where there is no time limit so its a little more laid back people can think things out, and then also some sort of Time Attack mode where you have unlimited clicks and you have to see how fast you can get above 15,000 points or so. The latter mode would probably shave a few seconds off your time depending on how few clicks you used.

So, yeah, that's what I have going on.

Thursday, February 16, 2012

New Posts and New Games

I don't quite expect anybody to read this, so I suppose it will act more as a journal of my game development progress than anything else. I've been playing around with java and working on mobile games for the Android platform. Prior to starting work on Android apps I had no experience with Java, but had a strong background in C++, so the biggest problem has been getting used to the new syntax.

I started by making a couple games with basic Android layouts and image views. Little puzzle games that didn't involve anything fancy, but were fun to play and worked pretty well. With the help of my friend Tia working on the graphics for the games, they turned out pretty nice. My first game, Color Coder, is in the Android Market.

I've since moved on to working with AndEngine in the hopes of making more complicated and visually better games, using crazy new inventions like moving, animated sprites. AndEngine is a great resource for people like me, that enjoy working on things such as game logic, but very much dislike working on low level things like getting sprites to animate properly or having them react to gravity.

The current game I'm working on is a bit like Bejeweled in the fact that tiles will fall and chain with each other in a similar manner, but the game is played in a way that is different enough to set it apart from Bejeweled clones. Its working for the most part as of this post, but I have yet to add scoring or a timer, so right now its an infinite play game with now points. Games don't have a point if they don't have points, so I'll be adding a scoring system later today. The game also isn't much visually since it is currently comprised of sprites and backgrounds made using my awesome MS Paint skills, but the sprites are good enough to tell what you are doing until I can replace them with good looking images. I've already pseudo-coded most of the scoring algorithm, so it should be pretty smooth to add it, and once I put a timer in the game, it will be fully playable though subject to future tweaks.

I'm feeling pretty excited about this game, and really looking forward to working more with AndEngine.