.plan
November 22, 2020
It's been over a month since my last update. That's because I was in crunch mode on the demo for the DOS Games Fall Jam. The deadline for that jam was actually extended two weeks, to November 15th. I didn't think I needed it at the time, but I took advantage of it and added a few features that I hadn't planned to include, but that in hindsight I'm glad I did.
The demo is available now. It runs in DOSBox as well as on original DOS hardware. It requires a 386 with 4 MB of RAM, although I recommend at least a 486DX.
Be sure to check out all the other cool entries to the jam as well!
Beyond all that, evelopment rolls on. This demo officially ends the game's alpha phase. The next version, 0.5, will be a beta. My goal is for it to be feature-complete by then, needing only to work on content, bugfixes, and polish, but we'll see. It'll probably also be a closed beta (available only to chosen testers), so expect version 0.4 to be the last public release until the shareware.
Since so much happened over the last month, I'm only including in my log what I was able to finish, otherwise this page would just be reams of pre-formatted text that nobody wants to read. I'll include my actual TODO list for the future in my next update.
- To do + Done / In progress X Not a bug / won't fix ------------------------------------------------------------------------ + BUG: player using normal death animation when gibbed + BUG: opening door to escape secret room turns entire east wall into a door + BUG: if player's name overlaps portrait, the name's drop shadow leaves black pixels on portrait border (should include portrait border in mask bitmap) + BUG: Bruiser uses right-facing death animation even when facing left + BUG: "paused" and "game over" text sometimes leave artifacts behind when camera is moving. Should store a "previous dirty box" for those text displays + New "READ THIS!" screen (update list of controls and weapons) + Enemies should wake up and target player if damaged + Plasma detonation graphics + Add number keys for weapons + Rocket graphics + Set proper origin heights for player projectiles + Ability to set Thing facing direction at map start + BUG: Demo automatically starts if program startup takes too long (long load time, sitting too long on game jam splash screen, etc.) + Implement Grunt enemy + Add to documentation + BUG: platform in E1M3 (red->green post) not working + Same for yellow-key platform in E1M1 + BUG: hidden enemies can be hit by projectiles + Actor: "activate tag on death" should only happen if all actors with that same tag instruction are also dead + Trigger at end of death animation, rather than immediately upon death + BUG: when starting a new level, if Allie is dead, she's revived - Allie was hardcoded, from when she was still the only playable + E1M2 easter egg + BUG: grunts not activating when able to see player + Make sure to have Jumpers near a Bruiser, to show off the throw ability! + BUG: player loses all weapons/health/armor upon entering next level + BUG: if selecting "new game" after Allie dies, new game starts with Roslyn + Shorten hitscan range so enemies offscreen aren't killed before the player gets to them in wide-open areas) + Allow weapon switching on character selection menu + Optimize "increment all tile IDs" + Pre-generate a list of positions that include targeted tiles + Make ammo a shared pool + Don't allow switching to character select menu when game over + BUG: player always starts map facing right, regardless of direction specified by map + Change score popups to construct graphics out of digits instead of pre-set graphics for each point total + Fix player start/rocket tiles in E1M1 and E1M2 + Check armor mechanics (green should fill up to 50%, blue to 100%) + Re-draw weapon graphics (get rid of Doom sprites) + Change to ammo display instead of weapons + HUD + Character select screen + Mention PM-12 in documentation + Update READ THIS! screens + BUG: projectiles collide with ladders + Add 50k point threshold for reviving a dead character + Upon picking up ammo, switch to that ammo if no ammo of any kind + Flash monster sprites when damaged, as visual indicator + Touch damage for all enemies + Add clearFlag(PLAYER_THROWN) to INSTANT_GIB + Check for INSTANT_KILL and INSTANT_GIB for enemies, so kill counts aren’t lost if they jump down the pit in E1M2 + Grunts shouldn't respond immediately on waking up (half-second delay maybe?) + Implement difficulty levels + Basic implementation -- length of i-frames and whether damage slows movement + Include skill level in demo format + Skill level should affect how much revived party members are healed + Add "-skill" parameter (should warp to E1M1 if "-warp" not specified) + Get rid of concept of "weapons" in code, to make code simpler + Warning messsages for keycards on switches, doors + BUG: Jumpers are turning right when dying, regardless of "facing" direction + Remember ammo counts at beginning of the level (reset if re-starting level due to player death) + Ability to set player facing direction at map start + Add cheat codes! + Include attacker in Thing::assignDamage() + Mention enemy that killed player in obituary + TileMapEd: add increment "tics before activation" to tag move tool + BUG: teleporters not making player face correct direction + Add dedicated floppy disk graphic for character select screen + Build levels for fall jam + E1M1 + E1M2 + E1M3 + E1M4 (secret level) + BUG: fix all platform activators as soon as possible ("visible" damage tile types broke them all) + Allow environment tiles on foreground layer + Add damage tile types that allow drawing + Add fog sprites at both ends of teleporter + Add camera movement type that bypasses normal camera slide and does a straight-line move to wherever the target is X Works, but crashes the game when sliding really long distances. Keeping it in, but probably will never use it + Add camera slide to teleporter X Camera snaps to new position (see crash note above) + Add "spawn teleport fog" option to show/hide/toggle Thing visibility tags + Screen shake effect (Bruiser punch and throw) + BUG: powerups not clearing on map start + Playtest! Check for ammo/health balance + Record demos: + E1M1 + E1M3 + E1M1 + Test playing them from the command line + Test game demo loop + BUG: demos are de-syncing in demo loop, but not when played from lump file on command line + New ENDTEXT screen for fall jam + More player options: + Disable teleporter fog + Further implement difficulty levels + Enemy placement per skill (easy/medium/hard) + (Development build only -- use #ifdefs) Game should load map from raw files if raw is newer than WAD file, so no longer necessary to re- compile WAD every time I want to playtest a level during editing + Should be able to add a "playtest map" functionality to map editor, which would load DOSBox-X with autoexec to load game and warp to appropriate level