Technical Articles by Kodiak
On my Next Generation Commodore 64 Games in Development
The Wild Wood Deconstructed
During the summer of 2020 I took a break from working on Parallaxian to help out with coding the chase levels in The Wild Wood.
It was largely a matter of porting the interrupt and scroll code from my own games in development into this, plus adding some new things to tie it all together.
So I thought it might be interesting to show an overview of the various "under the hood" features of the preview demo that was the outcome of this effort.
Deep Winter Tech Demo
In the course of tweaking code for Parallaxian's title screen, I found myself sucked into building an NMI-powered sprite plexor system for its planned sequel, Deep Winter.
That was no bad thing, as it helped with Parallaxian's development, and besides, I had promised a tech demo for the sequel game anyway.
The upshot has been a novel snowfield effect overlaid on a parallaxed landscape and some refinements of the Luma-Driven Graphics concept. Enjoy!
Geo-Referenced Laterally Moving Sprites
Mapping a sprite to fixed location on a one-way scrolling landscape can be tricky enough; when it becomes a bi-directional scrolling scenario, things become a little more difficult.
But even that is nothing compared to when you want the sprite to move about laterally, i.e., horizontally back and forth in relation to a fixed point on the landscape, which could possibly explain why this feature is lacking in some high profile bi-directionally scrolling games from the C64's golden age.
In developing Parallaxian, that bullet had to be bitten... you can read about the solution chosen and download some source code in this article.
In developing a CPU-crushing game like Parallaxian, finding ways to reduce the amount of time taken to execute frame-exact tasks within the raster interrupt becomes firstly an imperative, and eventually something of an obsession.
Accordingly, one of the things on my "to-do" list for a long while was to find a way to reduce the time taken to perform the software scrolling on the distant mountains, aka layer 1.
That led to a protracted effort to distribute the software scroll burden across the hardware scroll, culminating in a game-changing optimisation of the code.
A Vertical Parallax Effect
I have long been an admirer of some of the slick little effects you see on 16-bit platforms, effects which we seldom if ever have seen replicated on our beloved Commodore 64.
One such effect is a vertical parallax within a horizontally scrolling parallaxed landscape, as it adds a sense of space and motion to the gameplay and thus enhances the player's gaming experience.
So naturally, I thought it would be amazing to work this into Parallaxian, my C64 shoot-em-up-bombing-rescue-collect-em-up game in development.
Unless you (as a C64 user) have been living in a cave, at some point you will have heard of multiplexing sprites on the Commodore 64, a method that enables the same sprite to be re-used further down the screen after the first rendering of that sprite has been drawn.
But now I want to introduce you to another technique that enables the same sprite to be used to display two totally different and widely separated objects that are level with each other (or vertically separated, it makes no difference).
I use this method in my game in development, Parallaxian, to display the afterburner flame and the plane's laser bolts pseudo-simultaneously; I call this technique, toggleplexing, much to the annoyance of a shrill minority within the coding scene.
Ever since Mayhem in Monsterland blew me away with its application of non-standard colours, I have been intrigued with the possibilities an expanded palette on the Commodore 64 could yield.
Consequently, that fascination became a driving force in the graphics design approach for my original Colony prototypes back in the mid 1990s.
But now I feel it is possible to do so much more, expanding a rudimentary concept into a whole new design philosophy to lift modern C64 games above their legacy era peers.