This week was spent working on the mission datapad program. It involves mission planning, listing ongoing missions with their status and having an archive of past mission reports.
The funny thing about UI work is that the underlying logic is generally pretty simple. It’s getting the user experience right that takes the most time. What is critical to communicate to players and in what order? What does this mean for the layout? A screen packed with too much information can be intimidating and unpleasant. However, spreading that information over too many separate screens can make it difficult to see the whole picture and make informed decisions.
Luckily, player feedback usually helps with this challenge. We can implement the simplest version with all the features represented and then see how well people understand things, analyze their decision making process. I’m really looking forward to having that dialogue with the community.
Towards the end of this week I’ve been working on making more sections. Specifically I’ve been looking at ones related to the power game.
However, the week started with tweaking the smoothness of the skin texture generation presets. That then had knock-on effects where I needed to tweak the lights in our “photobooths” where we render previews for species creation and other things. The smoothness (as part of a metallicity/smoothness PBR specularity setup) helps define the internal volume and shapes of a mesh as it’s struck by light.
I started the week by wrapping up some critical desk interaction, namely the ability to dump rejected recruitment forms into the trash. I also had a chance to discuss the new mission planning flow with Dave and am in the midst of implementing that! That would represent the last major feature before we can start small scale playtesting so we’re looking forward to it!
This week I got about 1/3 of the way through a list of 6000 adverbs, with the task of categorizing and entering the usable ones into the word bank (for procedural text gen) or using their stem as trait names. It was quite interesting to discover how many common words I employ every day without knowing the precise, exact, or complete definition. Somewhat connected to this task is further refining certain elements deep within the trait system, as many of its parts have a chicken/egg connection.
This week I’ve been working on getting more sections ingame. This starts with me figuring out what the essence of the section is and how to show that visually while keeping to the art style. Then I create any unique/new meshes required and place them in a new scene. After I create the visuals for a section it needs to have a pathing network placed so the crew knows where things are and how to get there.
Once that’s done I export the section and edit the database to make it available ingame. I then launch the game, go through the module building game flow and build it in a station. If that runs without errors it’s ready to be hooked up to the gameplay logic side by Adam.
The recently created Bulkhead section neighbouring the cozy Holding Cell.
With the work that was done to overhaul character and section highlighting, one of my objectives this week was to convert some of the desk interaction to use the same approach. The object contours made for much cleaner highlighting of objects we interact with and the shared raycasting eliminated a bunch of bugs with object selection. This is still a work-in-progress, but the initial integration has already shown promise.
Funny story with this: you’ve probably seen in past screenshots of the desk that we have trinkets on there. With the new object interaction, we finally were able to click on the bobblehead to get it a-bobbling. It was so satisfying that every time I launched the game to test something on the desk, I inevitably found myself furiously bobbling the bobblehead. This is probably a good indication of the immersive quality of having an in-game workspace like that. ( or that Adam’s brain has finally merged with his cat’s — Max )
Finally, I spent some time catching up on bug-squashing. While it’s important to meet milestone obligations by knocking out those big features you’re aiming for, it’s also important to keep the game in a stable, playable state. Otherwise, you jeopardize the team’s ability to comfortably playtest areas of the game. Not only is this important for finding bugs and coming up with usability improvements, but it’s also a big factor for motivation. It’s easy to lose sight of what you’re building when you can’t just boot it up and mess around with it sometimes.
See you next week!
This week I got around to fixing the scale of tables, chairs, benches, etc. Getting the scale right when you start is important, otherwise like i just did you’ll end up needing to do a bunch of additional work to address the issues when you run into a situation where the problems become very obvious.
I had some time to make a prototype script to start organizing section light so that in the future we can turn on/off lights in a nice way, change from normal lights to emergency lights, and so on. Once we get that fully integrated, it will make life feel much more dynamic aboard the Astrobase.
Towards the end of the week I worked on a couple of sections. Neither of them are 100% finished yet but I should have something to show next week.
Hey everybody! Last week I started on the new word bank for the procedurally generated stories. All the older data that is in the storygen system — traits, words, etc were developed side-by-side with the system itself, and it was trying to hit a moving target (an in-development experimental feature). Now that the system itself is finalized (and working great!), we can make far better designed data since we know what the system looks like. This is where we are at now.
Procedural chatting: Crewman Greer’s lack of diplomacy concerning Ensign Crawford’s personal hygiene is poorly received.
This week(s) I’ve again spent finding stuff that’s broken and fixing them as I go. For example I found a little bug that made faces look bad, now they should appear at least 900% better looking (according to the Daniel scale of face appreciation). Also I again got some time to work on the sections. As you might imagine, there is a certain amount of work that has to be done to be able to release the game and on my end of things, the sections are one of the larger parts of the remainder.
These past few weeks have been dedicated to more usability work. I focused on improving highlighting of characters and sections with a nice bright, contextually-colored outline. This allows us to draw attention to important elements without blotting them out entirely with opaque colors.
I also implemented functionality to allow for quick focus on selected elements, zipping the camera towards it and framing it as appropriate to the type of item.
Finally, once I was able to focus in this way, it became obvious that the info panel placement needed work. The goal was to place the info panel near the selected item without overlapping and keeping it onscreen. This proved to be an unholy challenge but we pulled off a passable implementation.
Hey guys, this last week I’ve been iterating on the game-final version traits, and their overall structure. I want to get them just right before moving on! In the words of Mark Twain: “The difference between the right word and the almost right word is the difference between lightning and a lightning bug.”
You can see above a first glimpse of our procedural chat generation. Dave has worked hard to create these “watercooler chats” that the characters will have as they interact. The results are driven by each character’s unique personality traits and are generated on the fly using our legacy trait system’s data. These aren’t canned phrases. They will make you to cheer, chuckle or groan over and over without tiring of the same lines of text continuously reappearing in different conversations. The conversations ultimately impact how the characters will get along in the future.
Dave is in the process of wrapping up an enhanced version of the trait system, which should lead to an improved chat experience.
This week I’ve mainly been doing two things. Firstly hunting bugs and fixing the ones I am able to. Secondly, I got some time to get back to creating sections for the game.
Here you can see the Science Station, where the crew can commit science to their heart’s content
This week I started on my second pass on organizing and designing “story rooms” the atomic units where the narrative takes place, in preparation for further story development. The goal is finding the right way to trigger events within in the story (using the procedural generation) which is necessary at a fundamental level for both character injury and rewards, and all story plot development.
This week, I spent some more time knocking out bugs that cropped up. Now that the game is much more playable, team-members have had a chance to run it for longer periods. As such, my bug list has been getting longer.
Also, after having made major changes on how module parts are loaded and what data the new AI system uses for pathing, it created a bunch of work to get module rotation on placement and correct validation of valid placement locations working again.
Finally, our move to a deferred rendering pipeline broke some of our graphical effects. I finally had a chance to get familiar with the related tech and wrote a solution to smooth out those issues.
See you next week!