DASH ERASER DUST
A design doc by Gregory Peng
Latest revision (5/30/2006)
I. Concept
II. Design
III. Mechanics
IV. Technical
V. Art
VI. Music & SFX
VII. In-Game Object Scripting Format
VIII. Level Scripting Format
IX. Levels
XI. Timeline
Note: comments between brackets rank design elements in terms of function. Updates are tagged with the date. Newest updates are bolded.
[IF POSSIBLE] – Dependant on time/budget constraints
[SUGGESTION] – Guideline, not the rule. Open to interpretation.
[ESTIMATE] – An estimated value, subject to minor changes.
The idea behind -ED is a child artist stuck in his sketchbook come to life. He has only a pencil to defend himself against his enemies, the monsters he drew himself. Luckily he has his trusty eraser to use against his foes enemies, as well as his imagination.
Our hero maintains his ability to draw. This appears in game as the pencil attack. The longer he spends on drawing, the more powerful (and awesome) his attack will be. Most attacks end up as being projectile based, or helper creature summoning. Of course, as with any human artist, his ability to draw is based on the current level of inspiration. Thus, we have an “inspiration bar” to limit the frequency and strength of his pencil attacks. To fill a depleted inspiration bar, comic book power ups may appear.
For those who are familiar, the design of –ED is very similar to Boss Battle mode from Kirby games. In order to proceed through the level, our hero is confronted with several mini-bosses, each of which is visually different from all previous enemies. One must beat one (or a set) of mini bosses to proceed to the next. Minibuses typically have simple AI patterns, and players are expected to catch onto the basic types based on visual clues.
Once entering a mini/boss battle, the screen becomes locked, and movement is limited to the within the screen size. After the enemy is defeated, then can the player scroll right to the next battle.
At the end of the game our hero confronts the “real boss”. The real boss is expected to be more interesting than mini boss battles.
Pencil attack in the air generates a weak half screen “scribble projectile”
Enemy life bar and information is displayed at the bottom of the screen, scrawled on a piece of crumpled up paper.
When our hero is hurt, he is invincible for a very short amount of time, with Collision detection turned off after playing the “hurt animation”.
One issue that requires handling is how to achieve the mobility of a space shooter while still staying within the confines of a sidescroller. Currently, plans are to allow horizontal movement while attacking, and air movement (also known as DI [Directional Influence] in some circles) in the air. More or less, in the air, the player still has a bit of control as to where he falls.
Hitpoints – approx sustainable for 7 or so enemy hits
Death – start at the beginning of the level
Lives – Infinite
[ESTIMATE] AI types
0. Stationary – Obstacles meant to be destroyed or jumped over
1. Running – runs in a straight line, and then off the screen
2. Running (persistent) – runs in a straight line, and switches directions upon reaching end of POV window
3. Flying – flies in a straight line, and then off the screen
4. Flying (arch) – arch flight pattern, and then off the screen
5. Jumping (Stationary) – like stationary, but a bit harder to avoid
6. Jumping (Forward) – jumps noticeably more forward
7. Faster Running
8. Faster Running (persistent)
9. Faster Flying
10. Faster Flying (arch)
11. [IF POSSIBLE] more types
Maneuverability:
Stand, Run, Jump (player should reach ¾ of the screen at maximum height).
Hover – uses pencil as helicopter for a short amount of time
Attacks: (done with an oversized pencil as tall as the player he carries on his back like a staff)
Standing Eraser Rub (SE) – forward rub with end of pencil (down to up motion)
Standing Pencil (SP) – pencil drawing in the air, upon letting go summons the attack
Jumping Pencil (JP) – short projectile scribble, half screen width
Jumping Eraser Rub (JE) – same as SE but in the air
Jumping Downwards (JD) – On impact with enemy, player is bounced off and back into the air.
White out bomb (white out spilled on screen, enemies damaged), limited to availability
BUTTONS
PENCIL, ERASER, WHITE OUT BOMB, directional keys, JUMP
JUMP + ATTACK = Jumping attack
JUMP + DOWN + ATTACK = Downwards attack
JUMP + UP = Hover
Playable Area: 700x400 (no resizing)
Resolution: 1024 x 768 FULL SCREEN
[ESTIMATE]Character hitbox (100x150)
[ESTIMATE]Eraser hitbox (50x150)
Enemy hitbox (variable, but not exceeding half of the screen)
OS: Windows only
Graphics/Control/Sound: Direct3D (Sprite Interface), DirectInput, DirectSound
Image format: PNG – partial transparency enabled
A variety of artistic styles will very much be what “makes this game”. In an ideal setting, I’d like to be able to say that I’ll never use the same sprite twice.
Notice the emphasis on looking. In terms of AI, we have a limited number of attack patterns. A scripting system has been set up where new enemies can be created without any work required by the programmer. Simply choose an image set, choose an attack pattern, and the game should interpret everything well enough to create an enemy right on the spot.
Due to the theme of the game, the nature of the enemy is completely up to any artist’s interpretation. It IS a sketchbook after all, thus any animations do not necessarily have to be perfect (freehand animation – retro style), and may even be as outlandish as possible. In one wave our hero might be fighting heart-eyed bears, in the other he might be fighting ghouls from planet xyz. Once you get a hang of it, an artist might be able to throw together a new enemy within less than 30 minutes time.
[SUGGESTION] If anyone is planning on drawing a colored sprite, and plans on drawing out the lines in grayscale first, save the grayscale sketch first before coloring it. Not only do we get two sprites for the price of one, the having the original sketchwork appear before the finished sprite gives a nice feeling of continuity for the player (think the comic book drawing process of pencil->ink->color)
All backgrounds will be mostly white; thus, enemies don’t necessarily have to be filled in. Current plans for background involve either actually scanning in different types of drawing paper to use as background (notebook paper, sketchbook paper, etc), or simulating them in Photoshop.
[SUGGESTION] Artists should think in terms of medium, with a particular focus on pencil colors (as we need enough graphite enemies to make the game viable). Simulated crayon, colored pencil, colored pens, markers, etc. More or less I’d like to steer away from traditional pixel by pixel sprite art (except for standard sprites). Also, for gameplay purposes we’ll want a variety of sizes.
All in all, almost anything goes. The only restraints are the current list of AI types, as enemies can’t perform actions not specified in the AI type. Of course, if an artist has a great idea for an enemy that he wishes to draw but doesn’t fit an AI type, simply contact the project leader to see if it’s feasible to add in. However, special AI will not be implemented until AFTER an artist has finished the sprite.
There are a couple of things that you need to keep in mind when drawing for –ED.
1) The screen size is 700x400. Adjust enemy sizes accordingly.
2) Hitbox size should not be misconstrued with actual in-game art size. Actual images may (and should) exceed hitbox calculations.
3) All in game displaying is done based on the top-left coordinate of the image. What does this mean?
a. Sprites in an animation can be different dimensions, as long as images maintain the same distance from the top-left corner
Need more room to draw? Extend canvas RIGHT.
HOWEVER, if you expect the sprite to be flipped (persistent AI, direction changing), having multi-dimensional animations is strongly discouraged.
b. Coordinates in GOT files also reflect this convention
4) Collision detection bounding boxes are created based on the size of the first sprite in the series of animations
5) The main format for art is Portable Network Graphics (PNG)
a. All sprites must be placed on a transparent background
b. Alpha values actually matter
c. Partial transparency is also enabled, so most Photoshop effects and filters should be displayed correctly
d. Enemies can be semi-transparent even (watercolor?)
6) The hero faces right, enemies face left. Draw sprites following this convention.
7) Check for pixel artifacts around the edges of the image, there may be lines of light grey visible
STANDARD SPRITES (drawn following standard sprite methodology)
Death (a little “POP” animation, maybe similar to comic book sound effects)
Hero
Standing – he stands there, [IF POSSIBLE] idle animation
Jumping – same as running frame
Running – running, most used sprite in the game
Forwards attack – forward staff-like twirl
Air forwards attack – like forwards attack but in the air
Air downwards attack – pogo stick of doom
Helicopter (twirls pencil in the air)
Hurt – wince and fall back
White out throw (backwards and forwards)
Lives Icon
[SUGGESTION] Hero head? Mini logo? In any case, it’s going to double as the game icon
Large Bottle of White Out (half screen size)
White out icon/object
NONSTANDARD SPRITES
Enemies and Big Enemies/Bosses (graphite and non-graphite)
[SUGGESTION] consider different enemy size classes for sake of game variety
Suggestions: Small (≤ 50x50)
Medium (≤ 150x150)
Large (≥ 200x200)
-all moving enemies should have run animations at least
[SUGGESTION] stationary enemies might want to do something as well
[SUGGESTION]:
NO LIMITS: shapes, sizes, mediums, variations on a particular sprite (different facial expressions, eyes, hats?), drawing styles, etc etc etc.
-Obstacles
- [SUGGESTION] breakable/unbreakable
- Gameplay unrelated visuals
BACKGROUND ART: scrolling background, paper types – [SUGGESTION] photorealistic/drawn
Leaves area of 700x400 for gameplay
“Magnified Window” of action happening in the sketchbook
Sketchbook visible on Desk
Home to UI
Adventurous and lighthearted music is probably the best fit for –ED. Think to Mario and Kirby when looking for good examples of the ideal style. Looping, of course, is a must.
One solid track and a boss battle theme is bare minimum, but the more the merrier.
For sound effects:
ERASER SOUND
PENCIL POKE SOUND
BOUNCE SOUND
LEVEL END SOUND
POP SOUND (death by pencil poke)
JUMP SOUND
WHITE OUT BOMB SOUND
Game Object Type files (.got) – plain text file
AITYPE:
[#]
COLLISION:
[OFF/ON (0/1)]
ENEMY:
[NO/YES (0/1)]
GRAPHITE:
[NO/YES (0/1)]
MAXHP:
[#]
NUMFILES:
[# different image files]
[frame png filenames, the
stationary frame filename should be listed first]
ANIMATION-ORDER: [based on index # of png filenames (ex. the stationary frame has an index of 0)]
EXAMPLE: example.got
AITYPE:
0
COLLISION:
1
ENEMY:
0
GRAPHITE:
1
MAXHP:
100000
NUMFILES:
2
filename1.png
filename2.png
ANIMATION-ORDER: 0 0 0 1 1 1
Keep in mind the game runs at 30FPS, for slower animations simply display the same image more than one time in a row.
Level format for Dash Eraser Dust (#.ded) – plain text file
OBJECTTYPES:
[# of different game object types for the entire level]
[listing of corresponding .got files]
NUMWAVES:
[# of waves of game objects in the level]
WAVE[#1]: [#2 of objects in the #1th
wave]
//Object
properties
TYPE:
[object type # based on the listing ordering of the OBJECTTYPES
field: i.e. the first GOT will be of type 0]
TIME:
[# frames, appearance time of the object calculated from wave start]
YPOS:
[object y position at time of appearance]
Again,
note that there are 30 frames in a second, so one frame is approx. 0.033
seconds.
(*note,
in-file comments currently don’t actually work*)
EXAMPLE: 1.ded (first level)
OBJECTTYPES:
1 //there is only one object type
dino.got //loads object data from dino.got
NUMWAVES:
1 //there is only one wave
WAVE1:
2 //there are 2 objects in this first wave
TYPE:
0 //this is the data for the first object
TIME:
0
YPOS:
100
TYPE:
0 //the data for the second object
TIME:
0
YPOS: 0
1. Tutor Real - tutorial
2. Strange Menagerie – all sorts of strange animals
3. It’s Alive! – creepy critters and inanimate objects are out to get you
4.
Boss: Honest Abe Strikes Back
Producer/Programming
- Gregory Peng
Artists
Enemy Artists
a. Michael Menchaca
b. Gregory Peng
c. Joe Laquinte
d. Justin Lokey
e. Ian Lin
f. Diana Archer
Main
Character Artist: Michael Menchaca
Background
Artists - Diana Archer, Norman
Music - Eric
Foote
Level (Wave
Order) Designers
-Gregory Peng
|
WEEK |
PROGRAM |
ART |
SOUND |
LEVEL DESIGN |
|
1. Post Pitch Obtain contact information, promote communication between artists and level designers |
Basic graphics engine, enough functionality for artists to test animations Object and Level format standard set and working |
Assignment of standard sprites nonstandard sprites – communicate the need for variety, assign “specialist” roles based on preferences Set goals for enemies production |
Communicate theme Assign sound Effects “quality over quantity” one really good non-repetitive track > 3 repetitive tracks |
Communicate general level design strategies Explain timing and positioning nuances in space shooters Recommend freeware titles to play |
|
2 |
Visually, game should display levels and objects flawlessly |
Enemy work |
|
[POSTPONED] Wave Design exercise assigned |
|
3 |
Collision detection |
Standard Sprites should be done Enemy work |
|
[POSTPONED] Wave Design exercise continued |
|
4 |
Player-object interaction |
Enemy work |
Track 1 done |
Wave Design exercise |
|
5 |
Enemy AI |
Communication with Level Design Dept about requested art types Enemy work |
|
Ideas/Strategy exchanges |
|
6 |
Enemy AI |
Enemy work |
|
Level creation testing |
|
7 |
Enemy AI |
Enemy work |
Sound Effects done |
Level creation testing |
|
8. Midpoint Evaluation If the game is fully functional, polish phase will begin |
Sound programming done. Game should be functionally finished. |
Dependent on the number of enemy sprites that are already finished, Boss work may or may not begin |
Tweaking sound effects based on in-game timing |
Real level design to starts, with currently finished enemies and placeholder enemies Work by specific artists should be separated by levels as much as possible. |
|
9 |
Input Polish (joystick, input leniency) |
Enemy work |
Track 2 done |
Implementing waves designed from exercises |
|
10 |
Gameplay Polish – visual effects |
Enemy work |
|
Adding enemies as they come in |
|
11 |
Interfaces Polish |
All enemy work done |
|
Adding enemies as they come in |
|
12 |
Secrets/Easter eggs |
Interface/Extras Art |
|
Implementing Final Enemies, levels done |
|
13. Testing and tweaking Phase begins |
Testing/Tweaking |
Interface/Extras Art (end of game rewards) |
Track 3 done |
Testing/Tweaking |
|
14 Rush week |
Testing/Tweaking |
Interface/Extras Art |
|
Testing/Tweaking |