I will now be focusing more on actual games I’ll be making. To read more about this, go to my previous post.
Here’s have I’ve done for Day 1 (yesterday) on my bubble popping game. I will be posting a new article at the end of each day to show my progress.
It all started with the idea of making a Puzzle Bobble-like game with XNA, which could eventually be “facelifted” and ported to the Xbox 360. I really liked playing Puzzle Bobble when I was little and it’s a formula that never gets old. With a mix of action and puzzle gameplay, it’s a good candidate for my first XNA game. I’m sure most of you know of Puzzle Bobble, or if not one of its more recent clones like Frozen Bubble (just look it up).
It’s a huge departure from the graphics rendering stuff I’ve been doing, but don’t think that’s over yet. During my week in completing the game, I will only focus on the essentials, which are the core game mechanics, a menu system, and a good presentation. Past that, however, I would want to revisit the game and polish it a bit more- move from 2D to 3D graphics, add a few more game modes, and more features like special bubbles, skins, and items, and even perhaps give it personality with added characters. With the core gameplay already done by then, I can more easily pitch my game to people in order to get more interest in it.
This is what I’m all hoping to do if I were to actually sell it on Xbox Indie games, as I want my first game to be as polished as possible. But that’s all a ways to go, so back to Earth for now. What did I do on my first game of development? Well, not much on the programming side. All I wanted to do on that end was at LEAST get some graphics onto the screen. The first day was dedicated mostly to planning and sketching out ideas. I started writing up some design ideas, but mostly just to get the gameplay stuff out of my brain and onto paper. I wrote some pseudocode to describe the logic flow of the game, and for some steps (like matching up bubbles), I will write more on how I will solve these steps in detail.
I also decided the general order on the game features I’ll be added so the game will be built as logically and smoothly as possible. From first to last, I plan to do the following:
- Get a grid of bubbles onto the screen
- Placing bubbles on the grid
- Match same-color bubbles and the steps to remove them
- Add basic physics to shoot the bubble from a “launcher”
- Set rules for next level / game over conditions
- Load a puzzle (simple level) from a file
- Add menus and perhaps options for settings
- Improve graphics, add sound
- Give it a title!
This would be the general order but I don’t know exactly which days I’ll be working on what. I would want to have at least a playable self-enclosed “game level” by mid-week.
Step 1 was done on the first day. I made some very simple sprites and put them up on the screen. I’ve decided to have a fixed number of rows, displaying bubbles of random colors. Each bubble is just represented as an integer for now, but that may change if the game rules demand more complexity. The numbers 1 through 8 represent eight colored bubbles, and 0 is for empty spots.
As with all games like this, the bubbles are arranged in the usual staggered fashion, with alternating rows being offset horizontally. This will be a big part of how I will figure out how new bubbles “snap” to the grid and how to clear them. For now I wrote a simple function to place random bubbles to fill a fixed number of rows. As a debugger I assigned a keyboard letter to re-load a new group of random bubbles. This was all done in about an hour, so as I said before, not much programming work that day.
There’s not much to show right now but it will be a lot different in a few days. Note that I have them arranged in rows of 8 and 7, which is like Puzzle Bobble. However newer clones of this game take advantage of higher-resolution screens, so they might have 10, 12 or even more bubbles per row. I might bump it up to 10 per row, and reduce the size of each bubble sprite from 64 pixels down to 48 pixels.
The game may be ported to Xbox, and it will use the widescreen aspect, so there is a lot of real estate that’s not being used for gameplay. Most of that extra space will be used simply for decorative purposes, which is why I would like to make it look a lot nicer after the game proper is finished. Well, that’s all I have to show for Day 1 and today I am working on the next step- placing bubbles onto the grid. Since my time for making the game is pretty limited, I don’t want to waste much time writing these posts. Day 2 will follow soon!