Reflections on the Seventh Octo Jam

The Octo Jam is a yearly CHIP-8 ``game jam'' I enjoy participating in; it gives me an excuse to work
on naught but CHIP-8 games, and every year I participate by using mine MMC targeted at CHIP-8, being
one of the few participants who doesn't use the assembler provided by the organizer.  I successfully
completed two games for the seventh Octo Jam event, falling horribly short of my goal of nine or so.

I'm forced to wonder if having such a goal was necessarily unreasonable.  Whilst it's certain that I
wrote some of the smaller games, neither submission is necessarily finished, nor fully optimized.  I
can see myself tweaking them a great deal more before I could consider them finished.  I avoided the
trap of abstaining from writing any machine code until October, then falling short anyway, which has
preyed on me before; I wrote three games for the event and then reimplemented two of them during the
event itself, failing to rewrite one that proved too difficult for me to continue bothering with it.

I've decided to break out of that trap even further by trying, although likely failing, to write one
new game on a roughly monthly schedule.  The actual event is of little interest to me, compared with
its after-jam streams in which the games are played; I'd be pleased having my work shown either way.

For most of this jam, I'd no issue with that reimplementation of mine MMC targeted at CHIP-8, unlike
prior jams in which the tool helped me greatly, but inhibited me due to flaws in its implementation.
Unfortunately, I came across a single flaw I've not yet sought out and corrected, involving the name
system: rather rarely, a name association would be botched, which is both disconcerting and damning.

I've determined the flaw likely lurks in the name deletion system, yet it's haunted me for days now,
and has revealed to me that my reimplementation is still fundamentally flawed, despite being a known
improvement over its predecessor design.  As can be so common, I didn't go nearly far enough with my
redesigning its internals.  I added structure, but not enough, and the tool internally maintains two
separate structures, for the program and its metadata, but these should be intertwined in every way,
which eliminates the chances for flaws I'd noticed.  I'd recognized this design earlier, but finding
such flaws has so disconcerted me that I'm convinced of it; I should practice a heavy deoptimization
in the following implementations, which is ironic for a tool intended for writing such machine code.

I can, however, be content knowing that the isolated machine code I write with it is easily perfect.

I don't have the energy required for rewriting the MMC targeted at CHIP-8 again so soon, and so will
persist with it, and correct this and other flaws as I find them.  It's not comforting in any way to
look at other software to find disgusting, glaring, and unacceptable flaws in each of them; it shows
how immature and damned this field of endeavour is in the present.  Another issue I've not addressed
is how the metadata is more general than the tool will ever generate.  I'll also be correcting that.

In the coming months, I'd like to write a nonogram game which pushes the Super CHIP-8 to its limits,
a blackbox game, some familiar arcade clones, a Gunpey clone, and a small tennis game.  Those former
two weren't even begun, as both rely on calculations involving matrices which are difficult to write
optimally, and which I've still been thinking over; I'm free to write versions which infinitesimally
approach this now, however.  The small tennis game would've been very simple, but I'd wanted to have
self-modifying code enabling many game modes in a very small amount of space, and this was difficult
to balance with other considerations in the time limit.  I see no reason I won't finish these games.

I already anticipate the next Octo Jam, and CHIP-8 continues to be a reasonable source of amusement.
I'll be moving to ever more rigorous targetings of mine MMC design from now on, but perhaps I'll use
another reimplementation of this CHIP-8 targeting with next year.  Hope is an evil, but I'm hopeful.