Mommy's Best Games, Inc. is an independent game developer founded in 2007. Our seventh game, currently in development, is Pig Eat Ball on which we started working in 2013. This is behind the scenes thoughts about game development and marketing.

Nathan

Saturday, December 26, 2009

Shoot 1UP 7-Day Work Diary

I had never created a game for Experimental Gameplay yet, but October 09's Numbers theme really inspired me. Growing up loving shoot 'em ups of all kinds, I imagined a vert scroller in which powerups poured forth from enemies, but the player gained playable ships instead of just switching weapons or getting super bombs. Thus Shoot 1UP was born. It's since grown in size, aged a little, and lost its baby teeth in favor of a mouthful of real chompers.

As I explained to 2BeeGames developers, I keep careful notes on my games during production. Mainly to keep myself on track for the tight seven day schedule, but also in case anything went wrong, or if any particular discovery could be useful in future work.

What follows is a unedited log of the development during those first (non-consecutive) seven days of Shoot 1UP's development (including embarrassing though humorous self-congratulations). Notice, the 'big things; take longer up front, and more little details begin to fill the list as the polish goes in (what little there was at the time).

DAY 1
October 21, 2009
Got the TiledSprites sample working and running as Shoot1UP.
Experimenting with the cloud layer.
The parallax is broken in the sample. I’m trying to improve it.
Worked on some graphics this morning to try out a new art style.


DAY 2
October 22, 2009
Got the tiled sprites to scroll properly and repeat forever.

Abstracted classes out into game objects, and made an animation class for sprites.

Got the ship back in, properly, with no animation.

More ship sketches.


DAY 3
October 23, 2009
Ship flying around! But not super well animated.

Played with distortion/pixel effects as well.

New animations for ship are working.
Drew some more, revised ship.

Animations work pretty well but code needs more work.

DAY 4
October 24, 2009
Animation functions (AnimDone, etc).
Ship rolls left and right correctly.

Shots drawn. Shots playing. Shots able to recycle.

Refactored anim code to reuse static data better.

Added in shadows for objects.

Level scrolls automatically now.

Drew temp enemy.
Temp enemies spawning via level controller. Recycling in pool.
Level controller knows all player shots and enemies.

Enemies and player shots can collide.

DamageInfo class in place, and used.
Shots disappear, ships die after health gone


DAY 5
October 26, 2009 (Skipped Saturday and Sunday)
Ship locked to screen.
Widened screen. Scaled down shadows
Fixed bounding box collision determination (was only using circle test)

Moved all objects to level controller from main game file.

Update lists find max current objects dynamically now.

Player ship can die on enemy ships and enemy bullets.
Level can reset (kinda crappy).
Powerups for new ships.
New ships from powerups (up to 30) Increased player bullet count.
Offset all ships based on count (ship trail/ship worm looks awesome!)

Early hud, points, ship count.

Added push-pull mechanics/controls for player ships


DAY 6
October 28, 2009 (Skipped Tuesday)
Temp explosions drawn.

Fixed anim bug with not storing time per frames.

Refactored all objects to use “delete” bool instead of just state checks.
Added explosions to list.
Small enemies make explosions on death.

Big player explosion temp art.
Big explosion in new list, to collide with enemy shots.
More awesome refactoring. I wasn’t resetting health in some objects on recycling, so things couldn’t die since they already thought they were dead!

Fixed multiple-updates per same explosion bug (took a while)

Uggh, lots more nasty update bugs fixed. Not carefully keeping track of things dying.

New art pass on bullets for player/enemies
Enemies now grant you new player ship powerups based on numbering system I added in three streams of enemies—pretty fun now! And really challenging (not surprising). Polished the pop animations for enemy bullets and the player shot muzzle flash animation.

DAY 7
October 29, 2009
Keyboard controls working alongside pad controls

Refactoring game/levelcontroller to use menu system to exit game.

Menu waits to start game.

Early Pause menu works.

High score board works now.

Nice’d up the main menu and score board.

Randomly rotating most explosions now.

New explosions, new ship arts.

Tweaked difficulty to change as you play.

Fixed pause bug (can spawn bullets when paused).
Done!

Sigh, didn’t get to sound.


You can play the 7-day version of Shoot 1UP, linked in this previous post. But it's really small and simple, basically only a prototype. With luck the complete Shoot 1UP will be out on the Xbox 360 next month Feb. 2010!

Shoot 1UP is out NOW!

2 comments:

Geichz said...

For a game made in 7 days it's pretty fun it has enough of the key components that make good shooters fun as well as a very innovative twist on the shooter genre's scoring system. While collecting ships is obviously the twist to the scoring system of the game it's not at all limited to that - true to shooting game tradition it has a point scoring system as well. I am very interested in seeing a whole game based around these ideas.

Nathan Fouts said...

Thanks! Glad you like it.
Yes, the current sketch version has a simplified scoring system.

The final Xbox 360 version will have a much more advanced scoring system (should be pretty interesting for most big shump fans).