This week I focused on issues that came out of last weeks test, a settings window, and a system for NPC conversations.
My primary focus last week was to address the bigger issues that we discovered in testing the week before. I found myself looking at or even starting work on a few of the larger issues last week, only to second guess if that particular issue is really what needs to be solved in first week of debugging.
For example one limitation of the game right now is that the full-screen UI interfaces were designed to look good at a resolution of 1920x1080. Rendering those screens at a lower resolution can work, but it's not ideal. To really solve the issue I'd like to be able to scale the UI dynamically in both directions, so that text will render larger on higher resolution screens and smaller for low-resolution displays. I started designing a solution to the situation, then realized after a day of work that it wasn't something I could solve in just a week - I'm going to want to take some time to plan that system out properly. (I've designed four similar "Layout Engines" previously in my time as a programmer - strange that I never implemented one for ToiEngine.)
The bugs I fixed last week ended up being a small variety of odds and ends:
- FIXED: Loading Screen - The loading screen now persists for the full loading process, instead of the character appearing in-game while trees and rocks are still being loaded in. (Note: But the physics updates are still starting too early.)
- FIXED: Shader Cache - The Shader cache is back, reducing some frame stuttering when crossing terrain pages.
- FIXED: Minor UI glitches that weren't reported but noticed in development this week.
A shot of our first group testing session!
New Settings Window
Beyond fixing bugs, I decided the best thing I could work on last week was creating a settings configuration window for Antilia. In Antilia's first test the game settings were all hard-coded to what I was guessing would be a decent mid to low-end starting point. Atmospheric rays were disabled, reflections were limited to the sky, and shadows were turned down a bit. Even then we discovered some compatibility issues where having the option to turn a few detail settings off or adjust the sensitivity of say mouse input would resolve issues.
The new settings window in progress.
The settings window is still a work in progress. Adding a configuration option for some settings hasn't been too difficult, but a few things have caught me by surprise. Adding an option to adjust the render distance was easy enough - except that the sky objects were set at fixed distances beyond the terrain, and setting the distance closer cuts those objects out as well. I ran into a similar head-scratchier with the clutter settings - I was unloading some terrain data after clutter was generated. To change that setting I suddenly need that data back.
I'll have to continue working on the settings window "in the background" for a while, a bit like I did with the decorative weapons. Support for things like fullscreen modes and low quality (faster) textures and shaders will be enabled as I test and get those things working again.
Last month I added NPC shops to Antilia as a gameplay system the was badly needed to establish something of a game loop. With those starting to function in the game the next thing on my list has become NPC conversations. For the next few weeks I plan to focus on testing and bug fixing, but I did find a little time last week to brainstorm NPC Conversations. While doing so I wrote up about 10 pages of notes on what features Antilia's NPC conversation system would need and how I might design conversation trees with a text-based file format. It might look something like this:
A design test of the NPC conversation file format.
As the design became more feature rich with syntax for using variables, running lua scripts (quests), adding text-markup, queuing character animations, and prompting the player to give the character an item - I considered designing an editor instead. A "flowchart" style editor might make sense at some point if the conversation trees grow very large and I add more features. For now though, I think this simple text-formatted file would be easier to implement and has some appeal to me as something I can use to casually write character dialog trees on just about any device I own.
But that's all for this week, thanks for reading!