Nodes of Yesod : ZX Spectrum Next : Update #3

In this third developer diary update for Nodes of Yesod: ZX Spectrum Next, I'll talk about progress on the coding and tools side, and give a preview of progress on the art side.

Coding Update

In previous posts, I have mentioned the sprite exporter tool that I'm working on and that once I had "something on-screen", progress would 'spiral out' from there. Let's get spiraling!

Here's a snapshot of Astro Charlie captured on the CSpect ZX Spectrum Next emulator. This image is composed of 6 x 16x16 hardware sprites (Astro Charlie needs 6 sprites because his animations are over 32 pixels tall and up to 32 pixels wide, needing 2 x 3 hardware sprites. 

Astro Charlie, rendered on CSPect as 6 hardware sprites

My plan is to cache his sprite animations in the 16KB of dedicated sprite VRAM and then dynamically update the cache on-demand. I am sharing this image in its raw form, which looks off because I am using the default sprite palette which is limited to 4 distinct levels of the blue RGB color component (and one of those levels is no blue!) The Next supports a 9-bit RGB color palette and all new artwork development is taking that as a primary consideration. The images shown at the end of this article are using a "Next-safe" palette.

The Astro Charlie image above is in 256 color mode using 8-bit sprites, but I am going to be using 16 color art for all game sprites (don't worry though, there are 16 x 16 color palettes available and there will be plenty of color to go around). Using paletted art does afford opportunities for palette remapping which I may explore to expand color variety.

Tools & Pipeline Progress

Having successfully imported and displayed 256 color sprites, the next step is to do this same with 16 color sprites and additionally support custom palettes. The good news is that the tool is already exporting these and what's left is to get that working in the game-side code. Before I dive into that, however, I wanted to make the edit/build/debug cycle more robust, and also set up an IDE to provide modern development aids such as code completion and content-aware code navigation. To that end, I spent a little time setting up a makefile (this project is C-based) and getting that to work with the CLion IDE. I am not familiar with that IDE specifically, but in my day job as CTO and lead engineer on Overland Bound's OB1 platform I'm using (and highly recommend), the JetBrains tools extensively (PHPStorm, DataGrip, PyCharm) and I used the JetBrains Rider tool for the CSpect .NET plugin covered in earlier posts. TLDR I thought I'd give it a go, and at this point, I have a Z88DK Makefile project set up and building. There are a few rough edges but it's functional and I am hopeful I can move forward with the CLion IDE tools.

Now that this is working, it is back to the game code to implement the 16 color sprites and custom palettes.

Art Update

I've posted previously about the art direction, and based on community feedback, came up with a direction for what I'm calling the "Retro Mode" art (the plan is for the game to support two alternate art styles, player-selectable).

The Astro Charlie Retro mode style changes are complete. Additionally, we have completed a pass on the entire sprite-set in this Retro mode style and a few examples are shown below.

A sampling of Nodes of Yesod sprites shown in 'Retro mode'

All these sprites are Next-safe, compatible with 9-bit palettes, and fit within a 16 color palette. Work is ongoing to update the Next mode art to work with the Next sprite palettes. Astro Charlie is complete, and the rest of the sprites are underway.

Once the sprite artwork is complete, it will be time to move on to the backgrounds!

It has been a couple of weeks since the last update, and while there is not a great deal (any!) of the actual game to show, in this phase of a project there's a lot of planning and setup of various tools, etc. that is hard to demonstrate. I'll continue the pulse of updates as things progress!

If you enjoy my blog, you can help support it by buying me a coffee!


Popular posts from this blog

Odin Computer Graphics Part One : 1985

Nodes of Yesod for the ZX Spectrum Next

Software Projects : 1984