Blog
TODO List — Vessel
2020 - May 29th todoVessel
On releasing Vessel.
- Editor throws exception when in pos 255 because bg data is only 224 in size.
- Add the background
- Add a thunder / lightning effect with flash on windows
- Light up bg bricks when lightning
- Rain that falls onto blocks from an external block should show "hit" particles.
- Improve window locations (rectangles only? Max size?)
- Add thunder sound effect
- Add rain loop (bit crush white noise).
Background steps done:
- Background bug - placed blocks are invisible when placed over bg tile
- Fix not clearing block when in certain scroll positions...
- Draw green wherever blank space (as initial step)
- Rain animation block
- Castle brick 1 and 2
- Leaderboards
- Store top 5 scores
- On lose, if score in top 5 then player can set initials (3 chars) and save
- Flash score on game over menu when it's high score?
- Add to main page - BEST: SPL 558833
- Add leaderboards page - in main menu
- redesign main menu to fit new Leaderboards entry
- Add sound effects
- Raining
- Thunder
- ka-ching for money getting
- popping for spawning hearts
- meteor detroys block
- Stop replay file skipping straight to after first move
- Is this already done?
- Add level names
- Fix bronze / silver / gold lines in levels
- General QA
- Animation when meteor destroys a block
- Intro sequence.
- Plumber goes to big castle
- Thunder + lightning
- Meets vampire at door
- They exchange hearts and money particles
- Both go into castle
- (level start)
- Scoring sequence.
- Show vampire + plumber on screen during scoring
- Spawn money + hearts as score is added
- For gold bonus, more spawns etc.
- Game over sequence (win)
- When the final level is complete, there should be a splash page art piece
- When final level is complete, go to game over screen. Then show splash art.
- Create gif of a level playthrough (using replay system?)
- Auto save to folder
Done:
- Don't allow upward movement in non-editor mode
- Good rotate button
- Don't scroll past a level's bounds
- Don't allow blocks placed on start position (e.g. 0100 block)
- Don't play rotate sound for blocks that don't rotate
- Render bug on second level (when screen width is too small? 10 or 12 vs. 16?)
- On next level, scroll immediately to correct initial position
- Add meteor special block for destroying block
- Recalculate open connections correctly
- Update multiplier block data in current level
- Fix ugly bg tiles (background shading)
- Lose game when place incorrectly (restart the level)
- Game over menu
- Update score on hud while scanning blocks
- Updated scoreboard graphic
- Add font for scoreboard
- Show numbers on scoreboard
- Show score
- Show level name
- Show multiplier
- Store name in each level
- Fix level 2 render bug with silver line
- Main menu
- New Game
- Load Game
- Instructions
- Quit Game
- Volume control (just mute / unmute)
- Add graphics to main menu (some blocks at bottom of screen)
- Working mute button
- Replay system
- User input 60 times per second
- Forced Down is considered user action
- Rotate is one of 4 user actions
- Watching a replay is an alternative launch mode
- (meteors, crosses etc. all work fine)
- All level replays are saved automatically
- Store in appdata folder with index name and timestamp
- when running with -replay, check in appdata folder and working directory
- On game load, immediately play replay.
- User can still return to the main menu and play the game (returning to main menu disables replay mode)
- Controls need to still work (don't disable left / right / rotate). Probably improve how replays work when doing this?
- Do we want to store failed run attempts as a replay? Yes
- Fix dot block problem (not save game related)
- Refactor Board into Level and SaveGame.
- Save game functionality (store current level data in level 32)
- Load an in-progress game
- Including current block + position
- and score and multiplier
- Need to handle original open pipe graphics. They should be left alone on level load even if they're now fully connected.
- Need to think how to handle mid-level saving.
- Current block in current position
- Replay in an incomplete state, reopened to complete.
- Make all the levels
- Don't move block down from user input (down) if gravity moved the block down within the last .X seconds (avoid unintentional double move)
- Something like a 0.2 second delay after an automatic DOWN, where DOWN input isn't accepted from user.
- Make sure level 32 doesn't exist (and can't be changed in editor)
- Don't allow player input while watching replay.
- Problem with replay file playback?
- "Consume" save file once loaded - should only be used to continue a play, not to retry a failed attempt.
- If press retry, warn that this will reset current multiplier.
- If press save and quit, warn that this will override the save.
- In replay mode, don't show "save and exit", "retry" (should be "replay").
- Fix up font rendering by adding kerning for specific cases
- Improve instructions screen
- Only draw bonus lines on internal blocks.
- Remove old "Is this after a non-empty block" logic