Progress Report – School, Interactive Objects, Gamepads, and Camera Phone

Hello, just a short update. I am still going to release a playable build, and if everything goes according to plan with no hiccups, it should be out within the next couple of days to a week. I just want to try to add some more models to the school and missing collision hulls, as well as adding more interactive hotspots to the environment.

For now, here’s a video showing off one of the new features I worked on recently. I redid the raytracing code for the phone and added support for the phone’s camera. I’ve also got some more really nice new sketches contributed by Akainai this time showing off close-up head shots and emotions of some of the cast. These will actually prove very useful in improving the quality of the 3D model’s head.

Delinquent Girl

Other things I’ve been working on recently are, as I mentioned in my last post, adding fixes and improvements to the offline light baker, and adding the framework for interactive objects, so far including doors and areas in the environment you can examine which is hooked directly into the visual novel engine giving us a framework very much like that of a western point and click adventure game. The game also now features working passage of time, although so far this only effect this has is that both the ingame clocks and the digital clock on your phone will accurately tell the time now. So far, I’m considering having passage of time be a 1:1 match for passage of time in the real world, since the way the gameflow is structured is that certain activities, studying, attending class, ect., will make a predetermined amount of time pass automatically. Furthermore, I’ve started adding in various sound effects and redoing a lot of the code for handling 2D screen elements as well as lots of other minor bugfixes and improvements. One of my contributors, Arno, also recently touched up a bunch of the early models I created with brand new texturing which I think looks a lot better now.

Gothic Girl

Another feature I’ve been working on which unfortunately won’t be ready for the release build is a brand new driver interface for gamepads on the Windows version. To explain why this driver is necessary, I should first explain the problem with gamepads on Windows. A question, have you ever noticed that most modern games will mostly work automatically, plug ‘n’ play basically, with gamepads, but only Xbox 360 gamepads? If you try to put in another pad, they usually won’t be recognised, and you’ll be forced to use a third-party solution to fool the game into thinking it’s an Xbox controller. This is because there are two main APIs you can use for pads in Windows nowadays, DirectInput and XInput. DirectInput is the older API which works with pretty much any pad out there, including more unconventional ones like steering wheels and flight sticks, however there is a slight problem in that doesn’t read Xbox 360 pads correctly. The specific issues are that it treats the trigger shoulder buttons as a single axis and I don’t think it recognises the dpad. I’m not sure why this is, but some have speculated this was deliberately done by Microsoft to uproot competition in the gamepad market, and that’s where XInput comes in. XInput supports Xbox controller just fine, but the problem is that is ALL it supports; it has no support for any other type of gamepad. Game developers will usually pick just one, and they’ll usually pick XInput since it’s easier to use and provides a more unified approach to gamepad support (by unified, assuming everyone has an Xbox controller). However, I’m not accepting that, and my driver is a hybrid of XInput and DirectInput, meaning it should correctly recognise pretty much any controller you use. I also came across this really cool little extension written for the Godot engine called SUTJoystick which essentially provides a system for automated keybinding based on the gamepad’s GUID (or rather an MD5 hash serving the same function of the controller’s name since the original driver was actually based on a deprecated API called the Microsoft Multimedia Joystick API which does not expose device GUIDs to my knowledge). By using such a library, we can construct a database of devices with correct button mappings which can be distributed with the game and updated as needed, essentially making a wide variety of gamepad completely functional with no prior configuration required.

Tomboy Girl

The reason this won’t be ready for the first public build is that I still need to work out some kinks in the driver as well as build a whole new control scheme specifically designed for a gamepad. It’s also is quite hard to test the full functionality of the feature since right now I only have a single Xbox 360 gamepad.

By the way, thank you to everyone who contributed to the poll in the last post. The results were interesting to say the least, and not necessarily what I was expecting, since the most popular character in that poll was actually not even intended to be a featured character in the first release, instead planned to be delegated as a side-heroine for a post-release build of game, but seeing how popular she turned out to be, I may reconsider that now and place more focus on her. I’ll have more details on characters in future updates.

New Character Designs and Progress Report

Brand New Character Designs by Jinae G
Brand new character designs by Jinae G

Quick amendment, but consider voting in the Straw Poll here with your opinion on which girl you find most appealing based on these designs.

I wrote in a comment in my last post on how despite having made significant improvement to the performance of the game’s most demanding location, the school, further development of the location with new content being brought in has brought the framerate back down to unacceptable levels, and has led to the unfortunate realisation that there are some core architectural problems with the engine’s scene system related to occlusion culling. This would require some somewhat non-trivial rearchitecturing of this part of the engine in order to bring the framerate back up. Thankfully, I do have a set of plans for how this could be improved, and it is unfortunately going to result in some further delays, but I think it will be universally beneficial. I’m intending to take my proposal directly to the Godot community and discuss their feasibility as an engine mainline feature

More concept art for glasses-wearing character by Akainai
More concept art for glasses-wearing character by Akainai

On one hand though, I’m going try to focus on some smaller goals for the next update. Right now, I’m trying to address some problems which are present in the engine’s internal light baker, mostly stability issues resulting in crashes, but also missing features like the inability to correctly interact with translucent surfaces and raytracing from the skybox. There is also the issue of this feature’s massively high memory requirements (on my end, not the player’s), which has resulted in me having to recreate my toolchain to allow a 64-bit build of the engine in order to be able to use all the memory I have (8gb), but this may still not enough if the scene continues to grow in complexity, and if I can’t find a way to make this process more memory efficient, I may have to save up for some more RAM.

Concept showing two of the cast in potential casual clothes by Akainai
Concept showing two of the cast in potential casual clothes by Akainai

On the subject of less speculative work, while a lot of work recently has been dedicated to research as to what will be required for the new scene system, most of my other focus recently has more been on recreating early systems I had attempted with more knowledge and experience of the engine. As well as a ton of minor architectural improvements, we now have entirely abstract location loader which allows warping between the school and upcoming locations previously teased at before while retaining the state of higher level nodes in the scene. We also have improved physics, a rewrite of the title screen with some new UI theming, and new general-purpose ingame 3D prompt overlay system (to be used with interactive objects and the upcoming character dialogue system), early work on the character creator screens, and a complete rewrite of the developer’s console with a bunch of new commands such as noclip, setting and getting flags in the visual novel engine, and hooks into the new universal audio system which includes multiple volume controls for master, music, sound, and specific character voices. There’s also a ton of new 3D artwork ready to go in the engine but I’m still waiting for the right time to reveal the majority of it. A longer term goal I’m intending to tackle is creating a brand-new procedural skybox and weather system needed for the game’s timeflow system.

A new design showing potential drills hairstyle by Akainai
A new design showing potential drills hairstyle by Akainai

Something you’ve probably noticed in this post is the presence of the fantastic new character designs for the game’s cast, and my main reason for making this post was that I really wanted to share what these two incredibly talented people had made and hopefully drum up some interest in their own work. Check out their respective pages, they’re incredible, and I hope we can see more from them in the near future.

Same character, this time shown in a maid costume by Akainai
Same character, this time shown in a maid costume by Akainai

That’s all for now. The three near-term tasks I’m going to focus on right now are fixing and improving the offline lightmapper, adding in a completely generalised system for object interaction in the freeroaming mode, and finishing the character model I’d shown previously. I hope you’ll continue to follow this blog and thank you all for being so patient. While I don’t want to put out a build with such glaring performance problems, I may still do it if these issues can’t be resolved in a timely fashion, but I would still rather not have this form people’s first impressions.

Alternative proposed designs for atheletic girl by Akainai
Alternative proposed designs for athletic girl by Akainai

Render and Sketch Dump

Early character render.
Early character render.

Hello everyone,

I was internally debating showing this since it’s not complete and I didn’t want it forming everyone’s first impressions, but this is the result of the work I’ve started recently on the base female model. While I feel there is still a lot to improve before I move onto texturing and rigging, I’m generally quite pleased with the level of detail despite it being my first attempt at modelling a semi-realistic humanoid. I posted this primarily because I feel it’s important to get as much feedback as possible at this stage, so please feel free to suggest things which you feel could be improved about this model. There is also progress being made on a second location, the protagonist’s home, by one of my main contributors, and it will soon be adapted for usage within the game. This part should be particularly interesting because we are planning to allow some degree of player customisation for this location, changing furniture arrangements, ect. I’m also experimenting with ways in which the engine can be optimized. I’ve brought in and updated some SIMD code another person had started working on a while back, and have made changes to the engine for the memory alignment required by such code. As of yet, this is still highly early and experimental, and while some minor improvements have come out of these experiments, I’ve yet to get the substantial performance improvements needed, but I’m sure that further research will lead to significant improvements in this area. Usually I would consider optimization something for much later in the project, but the fact is, even with the early static assets we already have, the game is already hitting unacceptable framerates, and solving this issue will be required before I can even consider putting out any kind of playable build.

Anyway, it seems odd to neglect showing off characters as part of the game’s initial concept considering that it is fundamentally what the game is about, so for now, I thought I would share some very early concept sketches. Some of these were done by me, and I personally have no pretence of being a legitimate 2D artist, but I hope that they might at least give some insight into the direction I’m hoping to take the game character-wise. There are also some additional sketches generously done by someone who is already contributing to 3D assets, Arno, but as of yet, we would still appreciate the help of a more experienced dedicated 2D artist.

Arno's latest iteration of this character. Probably the closest yet to capturing her intended personality.
Arno’s latest iteration of this character. Probably the closest yet to capturing her intended personality.
My first attempt at this character. I think I captured her playful spirit, but I'm not sure if I captured her sportiness as of yet.
My first attempt at this character. I think I captured her playful spirit, but I’m not sure if I captured her sportiness as of yet.
An older sketch of this character.
An older sketch of this character.
Arno's first attempt at this character.
Arno’s first attempt at this character.
Guide used in producing the 3D model.
Guide used in producing the 3D model.

I know this update is kind of shallow, but I’m going to post a follow-up post very soon when I feel the character model is ready. This post may also be updated if some new sketches are done, but for me personally, I’m not planning on doing any more character sketches for a while.