DASH ERASER DUST

A design doc by Gregory Peng

Latest revision (5/30/2006)

 

I.                    Concept

II.                 Design

III.               Mechanics

IV.              Technical

V.                 Art

-         Art Visual

-         Art Technical

VI.              Music & SFX

VII.            In-Game Object Scripting Format

VIII.         Level Scripting Format

IX.              Levels

X.                 Human Resources

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.

 

Concept

 

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.

 

Design

 

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

 

Mechanics

 

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

 

Technical

 

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

 

Art

Art Visual

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.

 

Art Technical

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

 

 

Music & SFX

 

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

 

 

In-Game Object Scripting Format

 

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 Scripting Format

 

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

 

 

Levels

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.      WTF Land Final – randomness, can you describe it?

Boss: Honest Abe Strikes Back

 

Human Resources

 

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

 

Timeline

 

 

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