Hey Folks! Work continues on completing our first test plot. And Michael's air traffic control (ATC) script is ready!
When we left off yesterday, we could reach our quarry in the bartender snitch plot. But we weren't able to do anything once we got there. So today was mostly about adding the means to wrap-up that plot by telling a law enforcement officer (LEO) on the same station about the target. And as usual, bugs were discovered along the way :)
Hey Folks! Still discovering a fair number of bugs as I test this plot functionality.
One of the first bugs found was when I returned to the test mode without any planets loaded. Since that only has one chargen station loaded, and social contacts was explicitly trying to avoid that station when spawning new people, I ran into a null pointer bug.
Hey Folks! A pretty wide range of coding work today, as I tackled a series of smaller tasks that should hopefully add-up to more stability, speed, and easier game testing.
Earlier in the day, work mostly involved fixing bugs. I set the docking range to 4000km so I could dock more easily to test plots, started a new game, and immediately hit a few bugs. First, I had to add code to prevent new social contacts from spawning in-station with me while I did character creation. Since, basically, they'd be destroyed as soon as I finished :)
Hey Folks! Hope everyone had a good weekend. Ours was made more exciting by regular B-17 Flying Fortress passes overhead, and (I think) maybe a German Stuka. We're not far from the Boeing Museum of Flight, and I suspect this is the season for air shows and historic aircraft tours.
Back at the office, there was a flurry of email and forum catch-up across various sites, and then it was back to the prototype.
Hey Folks! Finished-up the first draft of the social contact list UI and returned to plots for more testing today.
The social contacts UI now has a more legible format, with each contact listing their current relationship, and past events that led to this. The event list used to be really wordy with lots of redundant info, but not it's more like "Met during: Hulk salvage." I also needed to add this data to save files for loading later.
Hey Folks! I decided to do a bit of code cleanup and performance optimizations today.
I started out fixing a few bugs, and managed to fix a pathfinding issue I introduced fixing another path bug. So far so good, but as I transitioned into testing the plot system again, I realized I was dreading loading the full game. It takes close to 13 seconds to go from the main menu to a fresh game world, and several seconds to just load a flyable ship. Furthermore, whenever AI is moving around the ship, there is a ton of hitching and stuttering.
Hey Folks! After wrapping-up a decent ATC chatter and audio for the main menu, it's time to return to the plot system.
My first task today was to finish getting the encounter screen hooked-up to data. I could spawn it based on a context menu click, but all the UI fields were placeholder text. Getting the current encounter description was pretty easy, so that was first. The choices were a bit trickier, though.
Hey Folks! The ATC is sounding much better today after some additional code and content work. Plus, a splash screen!
I decided to record an additional 4 lines to increase variety, since the original 2 lines get old fast. And Rochelle agreed to read a version of them too, so now there are both male and female speakers.
Hey Folks! Switched gears today to to some audio work, as Michael's ATC script is making progress. Once he has that ready and we record the voiceover (VO), it'll be nice to be able to just drop that into the working system to get ambiance for the main menu.
Having done some audio tinkering before when Josh and I tried procedural theme music, it wasn't too hard to get things up and running. And fortunately, that meant a lot more time spent on creative work to make the audio sound better.
Hey Folks! I managed to get two pretty significant features roughed-in today: starting an encounter via context menu, and encounter screens loading text and choices from data. Both were a bit nebulous to figure out, but I think now that they're in place, I should be able to build around them more safely.
Hey Folks! Hope everyone had a good weekend. The zombie cough is still clinging to my lungs, and the cartilage pains continue their migration around my rib cage. But I'm still of the opinion it's "getting better." If I die suddenly before finishing this game, give the source code to the devs of Qud or Cogmind :)
Hey Folks! Still struggling a bit with this encounter system. I'm not a lot further along with it than yesterday, though I've had a bit more time to explore and test ideas.
Ultimately, the problem boils down to me not knowing how to describe how this system should work. It's a really abstract idea that I can see pieces of fairly clearly, but I can't figure out how they come together. And whenever I think I've discovered a concrete rule, it seems like that rule gets broken easily by other needs.
Hey Folks! More work today on designing the encounter system. Plus some more refinement of the air-traffic control chatter system.
After mocking-up a rough mini plot about a betrayed bartender, I'm starting to get a picture about how the encounter system might work. As before, I think a lot of this can be handled with the interaction system, and maybe some pieces of the chargen system.
Hey Folks! More work on the encounter system today, as I discover encounters seem like they should do everything. And that's hard to build.
Yesterday, I managed to get the encounter UI displaying text, markup, and links in a pretty basic way. So the next step is to feed it some encounter data, test it out, and iterate. Except there's one problem: what does encounter data look like?
Hey Folks! As mentioned earlier on, I'm eventually going to have to tackle some sort of UI for delivering situational text, conversation, and mission info to the player. The message log works for smaller bits of info, but there are going to be larger chunks of text in places, and/or the player will be expected to provide input to determine what happens next.