Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Very nice work, Ross… really elegant solution.

I’ve not seen the SYMBOL via control code #19 trick used like that for a long time… nice bit of CPC nostalgia there.

Originally, the program used text and DRAW commands, which kept it compatible across all CPC models. I later switched to DRAWR-based graphics for the final version.

The knight itself came from an SVG of a chess piece… I wrote a small Python tool to convert the SVG into DRAWR statements, using a Douglas–Peucker simplification to reduce the number of points. In hindsight, graph paper might have been quicker… but the plan is to release the Python tool at some point in case it’s useful to others in the retro community.

One downside of the drawn version is that it does slow things down slightly… particularly if someone were following along move-by-move on a real board (admittedly unlikely!).

I did consider using embedded control characters for PAPER/INK/LOCATE, but deliberately avoided them for readability… especially when sharing plain text listings. Tools like JavaCPC don’t always handle control codes cleanly (LIST #8 works, but not perfectly), and I wanted the source to remain accessible even outside a CPC environment.

Your approach strikes a really nice balance… compact, compatible with both BASIC 1.0 and 1.1, and as a bonus it’s noticeably quicker to run.

Really nice work 👍

For my game "Revisiting the Exit" from last years contest, control codes were used extensively just to squeeze it into the PUR-120 category and for my code explanation I took screenshots with the code, explained what the standard command was for the most part (don't know why I didn't have it for the SYMBOL data though), and just had comments following that. I explained below how the Control Codes were obtained via keyboard, as well as the condensed characters through the use of CHR$() and Cursor Copy.  Magazines wouldn't have appreciated such a listing back in the day due to the control codes, though for this contest every keystroke matters.

Cheers, Ross.