Weekly Update 5 - (11/1/2020)


Spoooky Update

This update actually isn't that spooky, I lied. We hope you all had a good Halloween, limited as it might have been. Here's some of the stuff we've had going on:

Multithreading Backend

Multithreading is an important feature for Glorious Dawn that we wanted to begin implementing with Kepler.  Glorious Dawn is going to be a very processor intensive game, so we want to make sure that we are being as efficient with a person's CPU as possible - multithreading helps us accomplish this. Unity has a built in multithreading process known as the job system, which useful for updating a lot of single values at once. It's definitely limited in use compared to multithreading in C# from scratch, but it is also a lot simpler and safer. Safer as in, the game won't crash and burn.

Thus, I'm working to find places in generation that we can implement the Unity job system. It should help keep generation performance high as we add more and more celestial bodies to the galaxy. This multithreading groundwork will be a great help throughout development.

Language Generation

The coolest thing to report on this week is the work our madlad dev Ben has been doing on procedurally generated languages (Ben is a madlad because he is currently a full time student while doing all this work):

I’ve been developing the Glyph system that will be used in procedural language generation. At this stage, I’m pulling together some of the fundamentals that this system will use, so with Kepler, my hope is that I can address a lot of the functionality, the ‘how’ of these features, with the ‘why’ coming at later stages with NPC interaction and events, which are a bit further down the line. 

Right now the Glyph system is still quite basic, but over time I’ve made it progressively more dynamic, so that it will become easier to add variation between characters and languages. Again, this is much more behind the scenes until later updates, the biggest demonstration of procedural language was in star names last update, so there won’t be too much to see just yet. But now, I am much closer to connecting the fundamental parts of these languages.

The current plan for these languages is for them to be big, well, dictionaries, as one might expect, containing some important components to give each word some kind of meaning; its glyph, transliteration, translation, part of speech, and other tags. The Glyph is what the player will eventually see first when they view alien text, with the plan being ‘Translate’ and ‘Transliterate’ options that will let the player transform known alien words into their respective parts. What was seen in the first major update with some star names was just the transliteration, how a particular alien word is supposed to be sounded out. I think it definitely gives languages a little more substance when they can be vocalized. 

Glyphs existed in a rather minor capacity previously, they were a random assortment of templates with some transformations applied to them. They could, out of sheer coincidence, form something that might look like an alien character, but it was far more soulless than anything a civilization might have truly made. This new system still uses a sequence of transformations, but applies them to smaller segments of each character, so that each symbol is a patchwork of various transformations. Somewhat unfortunately, that leads to Glyphs being just noise.

Again, under sheer circumstance, it might look like the blurry version of a real alien letter, but often it looks more like a big blob than anything. I still need to deliberate on how to best mix these multiple approaches I’ve had; complete procedure with no manual interference is about as uninteresting as using only templates. The goal for this update is to find a compromise between randomness and deliberation, which is probably the conflict that occurs for a lot of procedural generation.

The other major addition for this week has been the beginnings of the dictionary structure itself. While it lacks the metadata and some of the key components I mentioned earlier, it has been integrated with some key functions for later use. 
 
This incredibly confusing mess here is the current prototype for the language dictionaries. The first section is a code, which indicates the glyph components and transformations that make the particular word, followed by its translation and part of speech. I’ve already created functions that both generate and read these codes, able to go from code to glyph and vice versa. Other sections will be easy to add now, so transliterations will be an easy addition, and special tags are something I want to start, but won’t likely be relevant until the later updates.

While I’m sure that this system will probably need one overhaul after the other, and it’s a bit far from running a function and getting something even comparable to a real language in design and comprehension out the other end, I’ve got a lot of the little pieces that will be absolutely crucial for a smoother development process moving forward.

Further down the line, I’ve been gaining a lot of knowledge about classification and extracting meaning from text, so that hopefully not just the language being spoken by the galaxy’s NPCs, but the intent and the meaning are well-designed. I am more certain than ever that making a dynamic system of conversation with NPCs is very much possible, and I hope that in the end we can offer everyone something that is really special.

Okay, that's what I had for this week. I'll be back next Sunday!

Get Glorious Dawn

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.