This page serves as an info dump and TODO list for my latest game project, tentatively called "Platformer".
Introduction
I have dreamed of getting into game programming for a while now. The game I'm envisioning is an adventure-platformer that aims to implements loads of things (lots of items, NPCs, enemies, weapons, missions) and make the game world as atmospheric, open and interactive as possible.
You can see my attempts at a game project here:
- Platformer v1 (Written in HTML5/Javascript, click above the Start button to begin)
- Platformer v2 (Written in Bizhawk Lua)
These attempts have not gotten very far for a number of reasons: Being too ambitious, lack of programming knowledge, lack of motivation and being dissatisfied with my code by trying to deal with too many things at the same time.
This marks the third time I seriously attempt a game project. Basicly I'm converting my previous attempt (a Bizhawk Lua script) into the Love2D framework, with promising results.
TODO
Game engine
✓ | Action: Ledge climbing |
✓ | Crouching |
✓ | Sliding on slopes |
✓ | Make it so you can ledge climb out of water, but not when fully submerged in water |
✓ | Make it so you can grab ledge out of crouch-jumping |
✗ | Create seperate sprite box (Didn't work out how I had it in mind) |
✓ | Centered position on slopes |
✓ | Action: Tumble when falling large distance |
Action: Change Ledge climbing into "hanging on ledge" and "climbing up the ledge" | |
✗ | Action: Crouch into crawling (Seems like a bad idea) |
✓ | Action: Tripping |
Action: Tripping into "slow sliding" | |
Action: Walk off ledge into "hanging on ledge" | |
✓ | Make crouching take a while to activate and de-activate |
Placeholder sprites for player Actor | |
Add "on and off" state for wall tiles (Open door, in-between animation, closed door; same for switch, button, etc.) | |
✓ | Wall tile: Lava |
Wall tile: Sloped ceilings | |
✓ | Wall tile: Bus stop |
Wall tile: Buried Fruit | |
✓ | Wall tile: Floor Button |
✓ | Wall tile: Wall switch |
Wall tile: Door | |
✓ | Wall tile: Loading Zone |
Wall tile: Save point | |
Wall tile: "Pray" point | |
✓ | Wall tile: Sign |
Wall tile: Tomb stone | |
✓ | Wall tile: Quick sand |
Wall tile: Enemy spawn point | |
Status Ailment:Poisoned | |
Status Ailment:Burning | |
Status Ailment:Sick | |
Status Ailment:Drunk | |
Status Ailment:Blinded | |
Status Ailment:Slowed | |
✓ | Status Ailment:Stunned |
Status Ailment:Confused (Reverse Controls) | |
Status Boost:Speed-Up | |
Status Boost:Powered-Up | |
HUD: Health and breath bars | |
HUD: Money | |
HUD: Timer | |
Camera is not instantaneous | |
Fading | |
Pre-Title Screen | |
Title Screen | |
Settings Screen | |
Settings: Window resolution, Fullscreen and Windowed mode | |
Settings: Text speed | |
Settings: Show FPS | |
Settings: Show Timer | |
Settings: Key Config | |
Enemy, NPC and Object Actors | |
Object/Item: Shuriken | |
Object/Item: Bow & Arrows | |
Object/Item: Ball | |
Object/Item: Gun & Bullets | |
Object/Item: Boomerang | |
Object/Item: Bomb | |
Object/Item: Potions | |
Object/Item: Chain | |
Object/Item: Key | |
Object/Item: Umbrella | |
Object/Item: Stick/Sword | |
Object/Item: Magic wand/Magic scrolls | |
Object/Armor: Boots | |
Object/Armor: Gloves | |
Object/Armor: Helmet | |
Object/Armor: Body Armor (includes: Jetpack) | |
Object/Item: Accessory | |
Object/Enemies: Bats, Knights, Archers... | |
Object: Spear trap | |
Object: Spring board | |
Object/NPC: NPCs... | |
Reward drop on enemy death | |
Different death animations | |
✓ | Replace static graphics with Animated Graphics |
✓ | Draw Background and Foreground (per tile) |
✓ | Draw Tiles not based on tile ID, but separate tile graphics ID |
Background Animation? (Weather, Day and night etc.) | |
Animation when collecting stuff (sparkle) | |
Animation when walking/running (dust) | |
Animation when landing on the ground (dust) | |
Animation when falling into water (splash) | |
Animation when falling into lava (smoke etc.) | |
Animation when falling into sand (sand flying around) | |
Animation when swimming / staying in water (bubbles) | |
Animation after leaving water (water drops) | |
... |
Bugs
? | Fix "jump into slopes at flat angle" bug (to some extent) |
Fix "crouching next to tunnel" bug | |
Fix that running speed is lost when landing where platform transits into solid wall | |
Fix "tripping inside of slopes" bug | |
Fix that crouching on a slope does not initiate sliding, when corner of hitbox is directly on a wall tile. | |
Fix bugs that arose from the "centered slope position" change: Bad behavior when entering sand from slope; Bad behavior when walking at a wall from slope. |
Fixed Bugs
✓ | Fix Sliding bugs |
✓ | Fix "crouch + ladder" bugs |
✓ | Fix "grab ledge one tile lower" bug |
✓ | Fix "wall that zips you leftwards" bug (might still happen if your speed is faster than 2) |
✓ | Fix "ladder climbing before landing" bug |
✓ | Fix "press wall switch one tile off" bug |
✓ | Fix "climb ledge while on slope" bug |
✓ | Fix "false sliding state when starting to slide in sand or water" bug |
✓ | Make it so character moves forward in sand only when pressing left or right |
✓ | Make it so character becomes airborne when walking into sand while on a slope |
✓ | Fix "erroneous 1 pixel left boost when landing on a sandy slope" bug (A bit hacky, but...) |
✓ | Fix that "in sand" state is not checked while tripping. |
✓ | Fix erroneous tumble action when falling deep into sand. |
✓ | Fix "keep moving in sand by holding up or down". |
Work on Music, Story, Missions, Level and world design starts only after everything above is done.
Ideas
- Mini-game (See: Arcomage in Might & Magic 7 and 8)
- Collectibles (See: Photos in GBA Donkey Kong Country)
- Mountable Objects (See: Yoshi in SMW)
- Villages should include: Resting station, shop, random houses, bus stop, temple ...
- Cutscenes (Beginning and Ending)
- Growing vegetables and fruit
- Ordering pizza
- Boats - for crossing water (and lava?)
- Ailments/Boosts (Slow/Speedup, Weakened/Buffed, on fire, iced, tiny/Bigger, ...)
- Stun already exists
- The speedup boost should redraw the character's previous few frames to create a movement blur - ...
Feedback
You can direct any and all feedback to me in this topic, in a forum PM and on Twitter.
Thank you.