Jump to content

Spire of the Ancients (WIP)


Recommended Posts

  • 1 month later...

Delays happen. You've chosen a complex and stunning game design, and life happens, with waxing and waning of hobby time+will.


I'm glad to hear you're committed to finishing SotA. I've written before about the community benefiting from your game, but I also want that "the best game I could make is now sitting on my shelf" sense of accomplishment (and relief!) for you.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Thanks everybody for the kind words.


A small update:

As part of getting more of the enemy animations in the game I was dissatisfied with the way it would reset an animation when an enemy changed state which is something I'd previously considered acceptable. I've rewritten how that's handled (and fixed all the bugs I introduced in the meantime) so that now it all looks smoother, including on the enemies it didn't really matter for. I've freed up RAM used by various counters which I'm going to keep free in case I want to use it for anything else, but if not it means I can easily adjust a couple of things to allow more objects per map.

I've cleaned up how the map data is loaded which is another thing I've been meaning to do for a while. It now indirectly grabs the data from lists rather than having code to load the specific data for each map which is nice and means I can squeeze a few extra maps in.



It seems to be the case that when it's been a tiring day I start tweaking the titlescreen some more and today is another one of those days. I wanted a bit more of a dynamic looking sky so I played around with the colours. It's interesting to me looking back at the screenshots of how it used to look in comparison, and going from parallax scrolling to a pseudo 3D textured plane to a voxel heightmap.







  • Like 13
Link to comment
Share on other sites

This evening I've been using Voxolotl to try and get some speech in place. I'm not sure what demons live inside this thing but they're very picky about the timings of certain sounds, if I lower the speed of a long sound too far it flips out and if I have too many short sounds it also doesn't like it. I was going to have it say "The Spire of the Ancients" but the vox-imps decided that including the word 'The' would break '-ncients' so I cut that out. I've managed to get something I like, but I'm tweaking the parameters before I add it to the game. It's a pain that I can't actually save the data to the vox because of the size limit so I've been taking photos of the screen instead, but that's also been a handy reference for when I need to undo a change that the speakjet sprites disagree with.

  • Like 4
Link to comment
Share on other sites

After my last update I tried to squeeze in a flicker effect for the windows on the titlescreen but alas while the timings work in emulation they don't on hardware. Not a big loss, I'll cut it out again.


I did some more playing around with the Atarivox and I'm fairly happy with the results. I've attached a recording direct from the Atarivox saying "Spire of the Ancients" with both the default parameters and after some tweaking to make it sound as good as I can get it. It's surprisingly hard to find examples online of the sort of speech it can put out seeing as most recordings of games using the Atarivox are recorded either on hardware without it or on an emulator that of course can't emulate it.

Rather conveniently the credits screen on startup is there just long enough for the Atarivox to boot on PAL before it dramatically (comically?) declares the game's title so that's a plus.


Something I've had in mind for a while is to have the Atarivox play one of the preset 'biological' sounds at random times with random settings to create something of a soundscape to compensate for the 7800's relatively weak sound. Additionally I intend to have some of the enemies speak, but I'll have to see if that causes problems when multiple phrases fire off at once. I'm torn as to whether I should add speech for things like picking up items, and if so should it just say "Got a lantern" or something like "This lantern could be useful", because the former seems immersion-breaking and the latter feels like putting words in the player's mouth. Any thoughts?




Spire Vox.wav

  • Like 5
Link to comment
Share on other sites

Thanks to a epiphany I've made a few adjustments that mean the NTSC version now runs as fast as the PAL version. I'm targeting 30/25 FPS as it is because there's just a lot to process each frame, but the NTSC version was getting slow down on top of that so the actual speeds were closer to 15/25 FPS.

There's a big chunk of code I've not changed for a long time that runs each frame to check the players position and direction then get the relative wall and enemy positions ready for drawing, but if the player isn't moving or turning it doesn't need to check the walls or change which map locations are being checked. I was already keeping track of a 'redrawWalls' flag to avoid copying the wall graphics each frame so I added a check in the 'checkMap' code too. I was reusing RAM for the checkMap code for temp variables throughout the rest of the game, but as I freed up some RAM back when I shrank the amount needed for the map (and then added sound buffers in its place) I was able to separate the temp data from the checkMap data meaning I can assume that it's correct without re-running a load of calculations. I'm planning to make a few small rewrites in assembly for efficiency which should save a few extra cycles and hopefully reduce the chance of slowdown elsewhere.

  • Like 3
Link to comment
Share on other sites

I laughed a bit but thats the way avox is to me it is kind of comical. Adds alot to robot or space shooter games. 


Check out the astroblaster title screen for some cool voice without the avox. 

Pretty sure you would have to stop all your animation while it was talking tho..


  • Like 1
Link to comment
Share on other sites

Super stoked about your epiphany!


I agree with your reasoning about the problems with the two forms of phrasing. In your example I'd vote for neither, as I'm not a fan of the voice saying stuff that's obvious; it gets tiresome after a while. I'd prefer a short "oooh", "nice", or "sweet", to a literal transcription of what the item is or what's happening.


Another thing to keep in mind, on the part of the listener, intelligibility seems to go down when the phrase gets longer, so it's best to stick to three words or less. It seems that when a single word is a bit ambiguous sounding, you can often resolve it by context a few seconds later. But if you have a longer phrase with too many ambiguous words, your brain gives up.


One approach I really like, which you alluded to, is using the vox for sound effects. In Salvo (I really need to do another game, if only so I can use another example in my posts) the player says "ow ow ow" when dying, and the humanoids shriek with a pitch-changing "Eeeee!" when killed. I think in your game having some enemies say gibberish in their native tongue would be cool, so long as the gibberish varied. Some breath or fricative sounds would be good for less humanoid enemies. Food items could be accompanied with "nom nom" or "mmmm", depending on how silly you want to get.


On the general topic of sound design, if the game is going to have some kind of proximity alert, it would be great to model it on a heartbeat that gets faster as the enemy is closer. This was used to great effect in the movie Aliens, and would fit nicely here, I think. I think it could be a bit more subtle than a beep though.


As always, I invite you to take or ignore my unsolicited ideas. Its your game, and you should be follow your own muse. I'm loving what you're doing so far, so that muse isn't steering you wrong. :)

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Thanks RevEng for your perspective on this; I think being presented with an alternate view helps define my own.

Having thought about it I think I will do things differently to your suggestions and my current thoughts on the matter are below.


I have a 32 phoneme limit in Voxolotl! for writing the speech, and I'm not sure what my final buffer size in RAM will be for building speech said by enemies (done in RAM so the volume can be modified on the fly). That means in general phrases can't be too long even if I wanted to, but I will be aiming to have a few things longer than a couple of words.

I want to give the AtariVox every chance to shine and for SotA to be the game that people think of to showcase its capabilities so I want to include a lot of speech throughout and for it to be a notable enhancement to the game.

There won't be a lot of items to pick up in the game so each one is a reward (maybe with the exception of keys) so I think I will have the 'player' say something to make it a more memorable milestone.

Part of my role as the developer will be to make sure that all the speech is understandable, I may fail at that but I should try.


  • Like 3
Link to comment
Share on other sites

  • 3 weeks later...

I thought it was about time for another update; NTSC only for the current build because a few things need to be updated for PAL.

There's still a lot to get in place before it's really a proper demo, but it shows the direction things are moving in. At present you can get as far as the 'Watchman's Hut' map by finding the key to open the door (you have to be holding the key in one of your hands for the door to open).

Off the top of my head the changes are (besides the maps):

  • The single Atarivox phrase on the title screen (will need to add more and get the save system working again later)
  • In game music. Currently a single track and the sound priorities will need adjusting later. If another brief snippet plays such as the secret chime it will automatically restart the map's music track
  • Rain that shows off the particle effects nicely. There's a westerly wind so the rain falls differently depending on where you look.
  • A nifty lightning effect. It's been oddly difficult to get a sound that's both loud and low to best represent thunder.
  • Fixed the positioning of torches
  • Fixed a graphical bug that has been annoying me for some time where the colour of the objects you look at will briefly be the colour of what you were previously looking at when you turn
  • Introduced and fixed a crash when looking at doors. That was a fun day of troubleshooting.
  • Probably broke a lot of things I don't know about yet. (I do know that side views of doors are broken already)

SotA NTSC.a78 SotA NTSC.bin SotA NTSC.bin.CC2

  • Like 6
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

Thanks, I'm quite proud of it seeing as I've not composed anything before. Composed probably isn't accurate though as I get a rough idea of a tune, use a keyboard to match the sounds in my head to an actual musical scale, code it in slowly, and then find that I've botched the timings but like how it sounds anyway.

I had to read up on some basic music theory before I could even attempt it. It should pay off though as I have plenty of space ROM for music tracks.


Meanwhile I'm working on getting more maps together and have fixed a couple of small bugs. I now have my first 2 examples of walking between maps seamlessly. After the 'watchman's hut' you come out to something of a hub area, and one path you can take changes to 'graveyard passage' as you walk through, and then again when you reach 'blighted mausoleums'.

The downside is that the connected areas must use the same wall and floor colours otherwise the sudden colour change is jarring, but the same happens with different light levels though I won't have much control over that so I'll just live with it.


  • Like 6
Link to comment
Share on other sites

  • 2 weeks later...

Another small milestone passed.

After a few days of puzzling over an infuriating bug which turned out to be caused by an 'inx' a few lines before where it should have been I now have password/HSC/Savekey saving working properly.

I had the bare bones of saving briefly in a previous build but it had a few bugs which I've fixed and I can now obscure the data by shuffling the bits around.


For my sanity while testing I've added the ability to reset the saved password to all zeroes by holding select and reset when powering on.

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...