NokiMo
Tinon
Tinon

patreon


Dev Log — November 2024

Hi everyone!

Last month I began implementing the prototype of the dynamic avatars on the test server, and I also continued development for the new website and launcher for the game.

Game Launcher

The game launcher on the Battle Mages: Erotica domain is now fully functional and ready for release! It is also operational on itch.io, making the game releasable on itch.io, though I would like to improve the game a bit more before it goes live.

I expect to release the game for itch.io in one or two months, and hopefully, a demo will be ready for Steam in February next year!

 The new combined character selection and user panel view after logging in through the launcher 

The new character creator features more options and has been made into a single screen with a summary on the right.

Players will now be able to define their sexuality, which will affect PvE and PvP in the future, and help match players together who have similar sexual interests on top of transformative kink interests.

Coming up with a good design for defining sexuality in the game was a difficult task. Despite being a sexual game, it doesn't make rigid assumptions about someone's gender based on their appearance of genitalia, and the two are tracked separately. This leads to a myriad of combinations to consider when you have to consider your appearance and genitalia and the appearance and genitalia of a partner, let alone that both can potentially change during an encounter and how that might affect how each player feels about it sexually. Suffice it to say, trying to consider every combination became exponentially complex and confusing to use and display, and would make trying to write content for every option virtually impossible.

Ultimately, I settled on a system where appearance is considered first, and genitalia second. I could boil the whole thing down to three choices, followed by another two for each of the first three options selected, which I find is quite intuitive for players, authors, and matchmaking alike!

The new character creation screen. In the future, players will be able to edit their appearance for the dynamic avatar and read their character's fortune as part of the character creation process.

Dynamic Avatar & Live2D

Development on dynamic avatars is progressing, and I've mostly finished the technical implementation for displaying avatars in the game, which is currently being tested for character selection in the launcher.

This was no small feat as it turns out the Web SDK provided by Live2D was incredibly barebone and not particularly well documented. The implementation provided by Live2D has three components: Cubism, which is the black box that handles the rendering of models; a Live2D framework, which is the layer they build on top of Cubism for handling Live2D features, such as tracking, animations, expressions, lip sync, etc.; and some code samples for how to use the Live2D framework.

Now, the documentation for the framework essentially just refers to the sample code and the sample code only has Japanese comments and sometimes dubious English names for functions and variables, making it very difficult to read. Furthermore, the TypeScript/JS code written for the Web SDK was very clearly written by C++ programs, evident by the C++ code convention and quirks.

In the end, I read through the entire codebase and ended up rewriting the entire sample code, in order to get a good understanding of the code and make numerous improvements for readability as well as performance. This was not something I expected I'd have to do, but I am quite happy with the final result, nonetheless. One of the things I struggled with the most, is that the Live2D framework is designed to have a single scene, which I find is a poor design decision by Live2D, which meant if I wanted to use it for avatars displayed in the scene, but also for tooltips of inanimate characters, and inspect screens, it would blow up!

his left me with two options: making changes to the framework, which is time-consuming and I would risk issues if I attempted to upgrade Live2D later, or I could use iframes to create separate environments for each avatar. I decided to go with iframes, which should have a minimal impact on performance despite every avatar essentially running separate programs. However, the start-up is quite CPU-intensive, so I had to figure out a way to reduce the frame drops whenever a new instance was created.

What probably boggles me the most, is that the Cubism core library isn't a web assembly, which would be more efficient and could have been written in C++, despite it clearly being made by C++ programmers. It seems to me the devs at Live2D chose the least efficient and most difficult way for them to implement the Web SDK, simply because they lacked knowledge of web development and the options available to them, and I must admit I'm a little bit concerned about potential performance issues as a combination of this and having to run separate environments. Hopefully, this won't be an issue, and I'll make sure players have good options for setting their graphical fidelity so everyone will have a good experience.

And admittedly, looking at the code, true to C++ programmers they have an incredible understanding of matrix and vector operations, and despite my grievances, the code is clearly written by skilled developers and without dependencies, which is more important than whether it's running web assembly and using multiple environments.

People with access to the test server will be able to see a very barebone implementation, as the model itself still needs a lot of work, but I have implemented and tested solutions for all the custom features we needed for the game that aren't common to Live2D, most prominently being able to change textures based on outfit and colors, but also being able to change model data in real-time to reflect changes made to a player character or NPC. I was really afraid these things could be a nightmare to implement, but surprisingly, they were rather easy to implement once I got the hang of the Live2D framework, and I was able to do it in a way that is nearly if not completely seamless!

Spell Icons

Finally, I wish to share some of the new spell icons that we've been working on! Most of these are expected to go live with a hotfix I expect to release this weekend!

More icons are being worked on so we'll soon have proper icons for every spell in the game!

---

At the moment, I'm working on new stash tabs for storing incredible amounts of items of a particular type, like talismans, but also dyes and charms in the future!

I am also working on implementing sexuality and desires for PvP and allowing players to exploit one another sexually again. It's still a bit too soon to share the details, but I expect to have more for next month's dev log! The changes coming to PvP and sexuality will tie in with the features planned for PvE to create a coherent base for both parts of the game.

There are so many things I could do but very little time before the time I plan on releasing the game on itch.io and Steam as a demo, so I have to pick my battles for now and focus on the things I believe are most important and likely to be done before then. For that reason, and because I have found solutions to my biggest concerns for the dynamic avatars, I have chosen to focus on desires as a whole and to create a minimal viable product for the new PvE system. Almost anything is better than the current system, so it's pretty easy to improve upon, but unfortunately, there are a lot of systems that have to come together for the new PvE system to work, which is why I will focus on the PvP changes first and hopefully there will be enough time to finish up a demo-worthy version of the PvE system for February as well!

Thank you so much for your support and I hope you're looking forward to hearing more about my plans for desires and sexual actions in PvP! ❤️

Cheers,

Tinon

Dev Log — November 2024

Comments

Lessgoooo

Kamikazetaxi


Related Creators