This took less time to produce than I expected. These versions will appear in the Book of Lore.
Month: January 2016
Completion Scroll
Tile Set RC1
Here’s the first release candidate of the U3.5 tile set. It’s closest to the EGA U4 set, but with some U3 (healing station, thief, cleric and serpent), U4 Upgrade Patch (demon, devil and text) and U5 (walls, floors, doors and ladders) influences. The tiles have 8×1 attributes (only two colors per 8×1 pixel block).
[Edit] For some reason this has the wrong version of the priest. It should feature an ankh, not a cross.
Situation Report
I’ve now listened to #SSSH 33.1. And here’s my response:
Thanks for all the nice things you had to say about my project (especially about the music). I’d just like to clear up a few things. U3.5 is an unofficial epilogue to U3 and prelude to U4. However you do not play the Stranger or the Avatar. You play a new character known as the Envoy. It’s not called Ultima for two reasons; 1) legal, 2) some people feel that calling it an Ultima is a bit presumptuous. It calls back as far as Ultima I and foreshadows events up to the end of Serpent Isle. Inevitably one or two things were missed in the summary. Here’s the status of the project:
The ZXodus][Engine that underpins the project has had a major overhaul as a result of me reading Jason Gregory’s “Game Engine Architecture”. The code is in the best shape it’s ever been in.
Things that are complete:
* Plot
* NPC list
* Tile graphics (2D top down and 3D dungeon)
* Music (engine and 11 tracks)
* Maps (world, settlement, encounter)
* Display systems (top down, dungeon, mini-map, cut-scene)
* World navigation (overview and mini-map)
* High-def character generation graphics
* Mechanics (classes, combat, magic, etc.)
* LOS algorithm
* LZ77/LZSS decompression
* Load/Save parties
* Pseudo-random number generation
* Feelies (manual, reference card, box art, trinket design, etc.)
* Console (keyboard in/text out)
* Character generation gypsy dialog
* Virtue/anti-virtue card graphics
* 3D dungeon engine
* Monster scaler (for dungeons)
* Player reference card
* Weapons and armor list
* Wizard and priest spells
* Moon phases.
Things that are close to completion:
* Character generator
* The four dungeons
* The sound effects
* The scripting engine
Supported platforms:
Yes, it’s written for the ZX Spectrum, but there is a ZX Spectrum emulator available for almost any machine you care to name, including (as mentioned in the podcast) the Nintendo DS, which gets its own U6-themed U3.5 skin for the ZXDS emulator (which uses the touch screen as a keyboard).
ColdSnap Audio
As part of the development of the ZXodus][Engine, which underpins U3.5, I’ve built an audio engine. ColdSnap Audio is a cross-platform music engine for Z80-based computers with AY-3-8910 (and derivative) sounds chips (as used by the Mockingboard for the Apple ][). In fact a friend of mine is looking at doing a 6502 port for the Oric, which might eventually lead to an Apple ][ version. The engine comes in at around 1.8KiB of code. It features ADSR envelopes based on real instruments (brass, choir, flute, guitar, harp, marimba, organ, piano, and strings). Note tables are generated accurately based on the clock frequency of the AY chip in each machine. This ensures that when you listen to the U3.5 music on the real machine (or an emulation of it) it sounds the way it does on the SoundCloud site.
[Edit] ColdSnap Audio is now available to purchase separately: https://zx.itch.io/coldsnap
Podcast
Happy new year!
If you haven’t heard it already, I strongly urge you to listen to episode 31 of the Spam Spam Spam Humbug podcast (http://podcast.ultimacodex.com/e/spam-spam-spam-humbug-31-the-dark-unknown/) which features Adam Burr talking about his Ultima-like tile-based cRPG: The Dark Unknown. Adam has made a heap of progress this year including a successful Kickstarter to provide new assets and art for the project. He’s also in with a good chance of picking up the 2015 Ultima Fan Project of the Year prize (http://ultimacodex.com/2016/01/vote-for-your-favourite-fan-project-of-2015/). I was particularly pleased to hear some positive feedback that also applies to some of the design choices I’ve made for U3.5. I also thought the questions were a pretty good generic set for anyone developing a game like this, so on that basis, if I’d been asked them about U3.5, here’s the short version of how I would have answered them.
What was the moment when you decided you wanted to make your game and what was the catalyst for that decision?
I had created my own 8-bit computer derived from the popular British microcomputer, the ZX Spectrum. I had even persuaded someone to add support for it to a popular cross-platform ZX Spectrum emulator. I wanted a game that would show off what it was capable of doing and I thought Ultima IV was a good fit. Somewhere down the line the plan changed to support the more commonly available but less powerful ZX Spectrum +2B and to do an original game rather than a port.
Was there an initial design document, and has the project exceeded your expectations of its initial scope?
There wasn’t what would commonly be thought of as a design document, just a lot of notes, although over time they have evolved to more closely match a traditional design doc. In terms of the scope, it’s entirely dictated by the hardware platform, the main limitations being RAM, the memory paging system, and the lack of a disk system. The advantage is there’s not much room for scope creep.
Were there specific design elements you wished to celebrate with respect to previous Ultima and Ultima-like games, and if so, why?
The top down view, because it lends itself to attribute-based graphics. The conversation system, because I also like text adventures. The fully realized dungeons from U5, because I also like dungeon crawlers. The music from the Apple ][ versions, because the Spectrum has an AY chip (as does the Mockingboard). The non-linearity and lack of a big boss from U4. The references to other episodes from Serpent Isle.
What are your favourite Ultimas?
Exodus, Quest of the Avatar and Serpent Isle.
Are there other early CRPG’s beside Ultima that have influenced your design and if so, how?
The early Ultimas are populated with real world and historical NPCs and I wanted to reflect that, while at the same time not make it quite so jarring to the player. Because U3 gave you the option to import parties from Bard’s Tale and Wizardry I got the idea that perhaps these games all inhabited a common universe. But you’ll also meet characters from Bloodwych and Gauntlet, just because I happen to like those games. Bloodwych also contributed staircases to the dungeons which are used in place of ladders for practical reasons to do with the way U3.5 is coded.
What are your least favorite features from the early Ultimas and ones you are attempting to either improve on or completely avoid in your game?
Space travel, end of game bosses, per-party member food levels, reagents, shepherds, and schedules.
If you had limitless time and money, what features would you like to see added to your game?
Ports to other 8-bit platforms, including a Japanese version on the MSX.
What features that are not currently in the game are you planning to add?
I have a plan for what I think can be achieved on the hardware. It has some elements like a dating sub-game that I’m willing to cut out if the rest of the content overruns. Avoiding feature creep is essential to finish large scale projects.
What do you think it is about this particular class of RPG’s that makes them so memorable to people and what would you say to other gamers that may not give them a chance simply because the graphics look outdated or are not 3D?
The problem with photorealistic worlds is that they rob you of your imagination, which is infinitely better than anything even the best artist can come up with. It’s the reason text adventures are still popular. However, unless you were raised on these kinds of games when there weren’t any alternatives, it’s a hard sell.
Many would-be game developers have misconceptions about the actual time and resources it actually takes to finish even a 2D tile based RPG’s such as yours. It’s not hard to find countless other CRPG’s in this class that have been started by other passionate individuals, but that never get completed. Could you share some of the misconceptions you originally had about the development of your game and offer some practical advice to other game developers that may be thinking about embarking on a similar journey?
I think I actually avoided most of the misconceptions. Before I got going I’d read a blog on developing this kind of game for the TI99/4 and so I knew it was going to be a long slog. Here are some tips I’d offer:
- Read Jason Gregory’s Game Engine Architecture.
- Know your target platform(s) and design accordingly.
- Don’t write your own engine unless there’s a really compelling reason to do so.
- If you’re a lone coder, use Unity. If you have a team, use Unreal.
- Use scripting for the game logic.
- Write the plot first.
- Use placeholders for as many assets as possible.
- It’s ok to work on final versions of assets when coding is getting you down.
- Involve the community.
What were some of the challenges you faced?
Predominantly the challenges were the constraints of the chosen platform. The other big challenge is just to keep going with it when it feels like it will never be finished.
What proved to be harder than expected (and/or easier than expected)?
I suspect the hardest bits are still ahead of me. Although it took quite a while to get it fully tested, the dungeon display system, which uses tiles and groups, was actually fairly easy to write.
After you complete Pax Britannia, what can we expect next from Zedex Dragon and Source Solutions?
I’ll be trying to encourage other people to use the ZXodus][Engine to create their own cRPGs. And I’m interested in doing something with virtual reality.