Jump to content
IGNORED

Pre Post Mortem on Current/Last Project


Gemintronic

Recommended Posts

Post Mortem Quick Thoughts

I'm close enough to declare most of the actual coding is done.  So, I thought I'd share some observations and/or discoveries.  This is not a call to code like I do.  Just some ramblings that may or may not be useful.

 

SUPERJUMPS
Towards the middle of development I started having resets when gosub'ing between banks.  Mitigating multi bank gosub use didn't completely solve the issue.  Instead, I set a "superjump" variable that would trigger an ON .. GOTO statement in the main game loop.  Basically, a proto gosub.  When I get to the multi kernel framework I suspect this will be even more useful.

 

NYBBLES
Using nybble macros and defines saved me MANY, many variables.   Did not seem to eat as many CPU cycles as I feared.  Even the sound system (which is called every main game loop) was fine with nybbles.

 

DUAL NTSC / PAL60
Using a simple left / right choice with clever colors mitigated the lack of NTSC/PAL autodetect.  Having sets of constants for NTSC and PAL colors wasn't painful due to changing primary sprite colors as little as possible.

 

DUAL TITLE SCREEN KERNELS
Using both atari-background-builder and RevEngs title screen kernel was a lifesaver.  I could stack parts of RevEngs work for a password screen and use atari-background-builder for the displayed title screen.  I fit the two kernels where I could in the most free banks.

 

MODDING MINI KERNELS
I hacked at the 4 scores mini kernel until I got 2 large icons.  Also, mini kernels usually have some variable use that can be replaced by constants (such as score color).  Removing the 6 digit score also freed up some much needed variables.

 

BOOLEAN VARS
Another must use are boolean values.  This is the only way I could store all the players stored items, mode and game variant in 6 characters.  There are various advanced things you can do once you understand what works and doesn't.

 

DISCIPLINE WITH BANK 8
I try to put the bare minimum needed to call sprites and playfields here.  Usually using a more code intensive setup routine for a sprite or playfield that calls the stripped down asset loading label in bank 8.

 

CONSTANTS

Having constants like CONST _testing = 1 was a time saver and led to less unexpected code cleanup when inserting test only code.  Just make sure to avoid naming collisions between labels, variables and defines.

 

INFORMAL GAME DESIGN DOC
I went through 7 major revisions of an informal game design doc.  Writing down a proto manual and developer detailed rundown of bank usage and game internals.  In the end the actual game manual was already written.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...