Here’s a list of what I did this week
1- I made a typewriter model, this one is based on the Underwood Universal Typewriter 1938. It has 6K triangles and one 4K Texture (which I downscaled to 2K in the engine), a bit high poly than the rest, because it’s can be used in medium or close-up shots. Modeled, UV’d and rendered in Blender, textured in Substance 3D Painter
2- I improved the interactive object system : I added DoF controls, Highlight strength, and also added an option to load the text all at once and even skip it if the player presses the interaction key once or twice, respectively.
I removed the hard-coded delay entirely, now the user has to press the interaction button to load the next line. This should help anyone who has dyslexia, poor eye sight, or are young or not a native speaker of the language, are distracted by other things…etc read at their own pace. I’ll add more accessibility features in the future, especially vision, since the game is heavily text-based.
I also added a “feedback” sound for when you skip text, similar to the typewriter sound. and a little indicator (Just “>” for now) that lets you know you can proceed to the next. It’s not shown in the video below though.
3- I was wondering about the performance of the object/NPC interaction system, so I put 600+ of them in the scene and lowered graphics settings to the minimum. I was getting about ~270-300 FPS, and rendering was still the bottleneck. I tested it on my weaker laptop as well. Even in this extreme scenario, it doesn’t look like the objects add more than half a millisecond, and I’d say a lot of that CPU time is draw calls for all the objects. I am not familiar with more advanced profiling tools yet, but I think it’s safe to say that this system has zero impact on performance
4- I experimented a bit with sounds, to learn the basics of LMMS and Audacity. I tried to make something ambient and muffled, for a dream-like state. I am also working with someone to get some robotic sound effects.
5- And Finally, I’ve made a draft of NPC dialogue and chatter system, thinking about the logic and mechanics I want, while keeping the system both simple to use and to run, without bloat and any additional complexity I don’t need from using third party solutions.
I will need a “manager”, which sets and updates each NPCs dialog lines on game/NPC load, or if an update is requested.
Another one is NPC dialogue, which will basically just be like object interaction, but with some additional information, such as facial expression, tone of voice, dialog line type (normal, question, y/n question,…). It communicates with the manager at the end of each NPC interaction to update that NPC’s lines to newer ones (if available).
And finally a “chatter” system, where two or more NPCs just talk with each other, without involving you in any way (except proximity). This is meant for casual conversations. You can eavesdrop, but some NPCs can have a “too close” line of dialog, telling you to get lost or ask you what you want, or just change the subject. This system is completely independent from the manager and NPC speech system, running on its own. It goes in sequence, NPC1 says line 1, then NPC 2 says line 1, then NPC 1 says line 2, then NPC 2 says line 2…etc., but if a line is empty it will be skipped immediately, and it will look like the other NPC said two or more lines in a row. This can even be applied to groups of 3 or more NPCs, giving an illusion of a complex non-sequential interaction.
This is all just a draft at the moment, and the final result might change, but at least I have a clearer idea of what to do and what does what.
That’s all for Week 14. This coming week I’ll try to make more art, maybe even make it somewhat playable and explorable. See you next week hopefully!