Progress Report #2

School_Grounds
Welcome to your new high school.

Hello everyone, I’m sorry that this update has been so long coming, I’ll try my best to keep you more in the loop in future. The main focus of this update has been building and expanding the high school location and getting it into the game engine, but in doing so, I encountered quite a few technical issues which are preventing me from showing off all the media I wanted. A lot of talented people actually contacted me offering to contribute to the project for which I am really, really grateful. There is, however, one specific area which I still vitally need some help with considering the stage the project is at which could be filled by a talented 2D character artist. I’ll discuss this more near the end of the post, but for now, I’ll discuss what I’ve been working on since the last update.

Expanded School Building

The most obvious aspect of this update is the expansions to the school I’ve been modelling. As you can see, I can now show you a lot of the school from the outside grounds as well as the rooftop, and you might have noticed that school is particularly large, with the intention of it being fully explorable. The school’s geometry is created out of a set modular pieces which are clipped together to form the overall structure, and I have now created enough modular pieces that multiple large tower blocks can be interconnected in a variety of ways for more interesting architecture. As for the interior, I’m also showing off some of the props which were generously created by one of the first and most dedicated contributors to this project, and I feel his work has gone a long way to improving the overall detail and quality of the location. I’ll be interested to hear people’s feedback on the overall design of the school, as it is based on substantial research of common real-life Japanese high schools. I also have a question, I would specifically like to ask people if they would potentially be okay with the windows of the school being opaque when viewed from the outside but translucent on this inside. It’s not ideal or realistic, but the way Japanese high schools are commonly designed makes it very hard to optimize through common occlusion culling techniques since when viewed from one side, many rooms with detailed objects are potentially visible and have to be rendered, and this approach, while a cheap trick, would make it much easier to optimize the scene.

Ingame Smartphone

Smartphone
The phone is basically the ‘swiss army knife’ of Galatea.

This feature is something I’m very excited about and I feel it will open a lot of potential gameplay possibilities. Some obvious ones would be the ability to send and receive SMS messages, make and receive phone calls, and using the phone’s camera to take pictures, but as a modern smartphone, there is so much more that could be done here. I also intend to implement the ingame map screen as part of the phone’s GPS map system, and this would play very well into a game mechanic I would like to try out. Basically, I want the map to be able to calculate the travel distance between locations and pass the time accordingly, as well as having appropriate impacts on your character’s stamina and other elements. I would also like to add the option to choose between walking, biking, and using public transport which would all have different trade-offs. This integrates with a core design philosophy that everything you do in the game, no matter how small or trivial, should have some mechanical significance on the overall simulation. The phone itself still has a lot of bugs (a lot of them to do with event processing) and missing features, but it’s at least functional and moving forward now. I also added the ability to use multiple cameras as separate layers in my fork of the engine to allow the phone to appear as a 3D object on the user’s UI without intersecting with the geometry.

I’ll also discuss the less notable features which are still important and necessary, but may be less interesting to talk about

New Freeroaming Movement Physics

Rooftop
I anticipate many sugoi bentos being shared up here. Is your heart going doki doki yet?

This is one of those features which is kind of hard to explain and quantify, but I’ve basically implemented a new movement system based on kinematic physics rather simulated rigid bodies. The upshot of this is more fine-grained control over physics, allowing me to create more graceful movement around the environment. The trickiest part of this feature was probably the code for ascending and descending staircases. Godot does not feature an equivalent of Unity’s Character Controller class which had inbuilt support for ascending step heights, so I had to figure this aspect out from scratch. At first I tried this fairly complicated technique which involved casting a ray from a rotated point around the collision hull relative to the normal which the player collided with, and doing a variety of tests to see whether it would be possible to ascend. However, this proved unreliable in certain circumstances, so I ended up using a much simpler solution which involved leaving some space at the base of the collison hull and simply casting a ray from there, checking the difference, and adjusting accordingly. Furthermore, the movement system can handle sloped surfaces correctly, and I also added view bobbing for purely aesthetic reasons. I purposefully disabled jumping because I feel it serves no purpose in this game and wouldn’t be very elegant on certain control schemes. This system might arguably be considered overkill for a game like this, but I’m still happy to have done it right rather than half-heartedly, and it will also be used by the AI characters when they are introduced.

Visual Novel Script Interpreter with Ren’Py-like Scripting Language

Girls_Toilet
Why am I showing off the toilets as a showcase of my new waifu simualator again?

I now have a working implementation of a basic interpreter for Ren’Py-like scripts which can be used to write dialogue scenes. This should be very familiar to a lot of people and the base syntax remains more-or-less the same. It does not, however, support the obvious benefit of being able to embed Python code directly inside of the scripts. Instead, I’ve started working on providing replacement methods for comparison operators, setting flags, and callbacks into the main game logic to control things like character animation and camera movement. This features should be of interest for people who may want to mod the game, since as a result of this, modifying character dialogue and creating new story scenes will probably be one of the easiest things to do. Internally, I call this Ren’Py-derived language GalScript. I also added a developers console to better interface with this and other systems.

Multi-threaded Resource Loader

Corridor
Just a random long shot of the corridor. ‘Nuff said.

I’ve re-architectured my game logic tree to be built around a resource loader which dispatch requests to background threads along with a lot of general improvements to making communication between game logic elements more elegant and robust. While this is currently only used for loading assets behind a loading screen, it has the potential to dynamically load things even while ingame scenes are still running. The nice thing about this is that it was not a hack or anything, it is simply implemented as a by-product of the way the engine is designed.

Where do we go from here?

Classroom
The same classroom people have already seen before, but now with some new and better props and textures.

While a lot of the issues encountered during developing this update were straight-up bugs (the light baker needs some fixes badly), there were also a lot of performance bottlenecks that were encountered, with three of the most notable being the speed of the shadowmapping for the directional lighting, moving objects sampling light from the baked lighting octree, and the rendering speed of skeletal meshes. The Godot engine is still young, but is maturing fast and has a lot of future potential. I already have a Github account for my fork (https://github.com/SaracenOne/godot), and I hope in some way the work I’m doing on Galatea might passively benefit others making use of the engine since Galatea is looking to be one of the more demanding games being developed for it. I would really like to work on making the engine faster with things like SIMD optimization and hardware accelerated skinning, but I’m concerned that too much time spent on the more technical aspects of the game will allow me less time to work on the core gameplay aspects of Galatea, and as such, I would have less to share with people; I’m already unhappy with how long it took to get this update out. Even if Galatea is not something you’re specifically interested in, I would encourage you to check out the Godot engine (http://godotengine.org/) as a viable alternative to things like Unity, and (if you’re a low-level technically-minded programmer) consider contributing to make it better, since you would not only be helping me, but everyone else using it.

I’m currently looking with dread at a laundry list of issues that I need to address after bringing in such a large environment, but a new aspect of the game I’m eager to work on next is designing and implementing the planned heroines, and I’m wondering if I should put other things on hold and just start working on this aspect straight away, since it’s probably the most fundamental appeal of a game like this. I’m nervous, but somewhat confident I can pull it off. There are some technical specifications the model will need to be built to though. For example, it will be designed to take full advantage the morphing system for facial animation, and I intend to use a rig with bones matching those of Miku Miku Dance characters in order to provide compatibility for modders. A further potential idea is designing a character with customisability in mind, specifically using the morphing system demonstrated in the last update to create a face mesh which can be morphed into a variety of different shapes and then cached as a new mesh. Not only would this make it much easier to create new characters off a base template mesh, it could also open the doors for potential customisation of the protagonist.

This leads into a very specific area I could use some help with. As I stated, I’m currently in dire need of a 2D artist, someone who is highly capable of skilfully drawing and designing characters in an appealing anime-style. If this is something you feel you could help out with, please get in touch with me. Interactive and highly appealing characters are the main focus of this project, so this is arguably one of the most notable roles, and your artwork may become key in defining a huge aspect of the game’s overall art direction.

That’s all, I’m sorry this update took so long and was so lacking in interesting content, but I hope you’ll continue to follow the development of the project. If I indeed start working on the new custom character mesh, I may put out more frequent updates concerning that since it will be fairly easy to show and I would appreciate people’s feedback as it develops.

27 thoughts on “Progress Report #2

  1. Great job! I was surprised to see a lot of details in the school so I am glad to see the progress. I am sure once the characters for the game comes out your going to have a boom of people awaiting to see the finished game. Keep up the good work and maybe if you had a walk through video it would give people a better perspective of what the game would be like. Just an idea but good luck 🙂

    Like

    1. Thank you, I’ll actually tell you the specific reason there hasn’t been a video put out with what you describe yet. Amongst the glitches I hinted at, there’s one very unsightly glitch which is causing the texture coordinates on certain tiled surfaces to become distorted, and I’m currently working on figuring out exactly what’s causing it. Basically, I didn’t want a glitchy environment to form everyone’s first impressions of how the school will look, but I also didn’t want to delay the update any longer. When I do get the issues sorted out, I will record a video, since the experience of actually navigating the school in first person can be quite immersive.

      Like

      1. That’s understandable. I am always excited to see the new updates so I am content with what is already shown. Unfortunate I don’t know anything about game development so I apologize for asking about a video that was clearly not ready to be shown. Keep up the good work and I will be awaiting the next update. 🙂

        Like

      2. This was more than enough information to keep me sated until the next update. The school looks amazing. You did an awesome job on it. As someone who has worked with clutter on other engines, when I think of surfaces becoming distorted I think of the all too common issue of overlapping textures causing the textures to spas out. I would think with a modular set however this wouldn’t be an issue. You notice it for instance on Yandere Simulator’s model for the Gym room, as it is full of overlapping textures that are spas tastic. In regards to the opacity of the windows for the school you mentioned in the article. I think it would be a good call to make it translucent only from the inside. It can be immersion breaking if you look at a window looking for your waifu, to see a whole bunch of awkwardly empty rooms. Heck you could even comment about it with a student like “It sucks the school tinted the windows, hard to get pictures of the girl’s in the locker room like this!..”

        Like

        1. Yeah, I’ve actually figured it out and fixed it now. Turns out that it was a bug introduced by the modifications I made the model exporter to support the new technique for morph animation, but only became noticed once I tried exporting a large scene like this. Quite embarrassing, as most of the obscure bugs I’ve encountered so far are ones which were already in the engine. I would still like to fix the ‘Peter Panning’ issue with the shadows, though. This issue you described incidentally sounds a lot like a z-fighting problem.

          I will definitely consider something like that if I’m forced to use this trick. If you are faced with limitations in games, it’s usually better to have some ingame element disguising said limitation.

          Like

  2. Looks Awesome!
    I Also think it would be better if you make an “walk trough” video of your progress.
    I thinks its easier for the People to see the Progress than, like for the Movement system.
    So will this Game be an Open world Game?
    I ask because you wrote there will be an Option for Biking and using public transport..
    Does that mean there will be a little Town to walk around or is it just the School Grounds?

    For the Phone: Its looks awesome so far, the GPS thing is an nice Idea.

    And an important Question for me is : Do you plan to add like School events?
    Like making a trip to an shrine or something like that, or an sports festival.
    A Town festival with Hanabi would be awesome too were you could go on a Date with the Girl you choose and play those “minigames” on the stands and stuff and buy food together ^^.
    I know its not Time for this yet but i just thought that would be very very Awesome if you plan on adding features like this :).

    I really look forward to this Game!

    KEEP UP THE GOOD WORK!!
    Cant wait for an playabe Build 🙂

    Like

    1. Once I get some issues sorted out, I will put out a video. Regarding what asked about moving from location to location, no, the game will not be ‘open world’ in the way many people might think, the locations will just be places you ‘warp’ to via a map screen in the old dating sim tradition. I suppose it would be something like Persona 3 and 4, and in the sense that the social sim mechanics in those games are all about time management and Galatea will have the same focus, but unlike those games, travelling to different locations will consume time and stats, and that’s where the choice of how you want to travel there will become significant. There will also be many activities you can do in the game such as studying which will simply make time pass and modify stats accordingly. The school is likely to be the biggest location in the game, but it’s currently undecided exactly how many or how big the other locations will be, as they could potentially vary from single rooms to entire districts. This aspect will depend mostly on the availability of resources.

      School events, yes, this is something which has actually been a staple of series like Tokimeki Memorial, and will very likely become a feature at some point, but how much focus these events get is, again, something which will depend on resources. I would definitely like to do some minigames, though, and this something already considered for the clubs you can join.

      Like

      1. Thank you very much for your Answer 🙂

        Okay now i get what u meant exactly thats an nice Idea 🙂
        I hope everything works out fine and this will become a BIG Game (many locations and stuff) 🙂
        Looking forward to your next update!

        Thanks for your hard Work!!!

        Like

      2. For a visual novel styled game the idea of the map with areas to click seems perfectly fine for me. I have hardly played Persona 3 (I own it in Japanese but I can hardly read it to progress XD) But I know the first visual novel I played Da Capo had being able to choose where you go for lunch (Although with a fully rendered school you can probably just walk there) it had where you wanted to go afterschool oftentimes, and where you wanted to go on weekends. While there will be the bonus of having more time by going places faster, I would vary up your encounters by what time you arrive at where you are trying to go.

        In Da Capo (I know I am referencing Da Capo a lot here XD) when you woke up in the morning decided who you would go to school with. There were certain characters that had the personality of getting to school early as possible, or there were also ones that were super lazy sleeping in and normally had to bolt to school, and you would run into them in the morning.

        Lastly for area’s I would suggest making some static 3D areas (Ones you can’t move around in, but can still have interactions in) for example, a static walking to school with someone if you encounter them before school. or walking back, maybe a static train ride, so you can get some thoughtful contemplation in. Your characters could be still moving and making reactions, but you would necessarily be in control of them.

        Depending on the setting , you can make this a secluded farming village on the honshuu mainland, in which case I would in include a Shrine area, A forest area with possible trails, maybe a mountainside park that overlooks town. If you do a sea based village you can have a Beach area, A docks with maritime market (Maybe a girl works there?) A sea based village would probably be denser with its buildings, with the forest/farm based village above being the least dense. A normal city based park could work in any setting, but probably this setting and the next setting the most. The next setting would be downtown Tokyo, Osaka, Sapparo, ect. This would be super dense, lots of buildings, a central park would really work well here to have a place to get away from a lot of the bustle of the city. You may want to make a train station area, where you can meet people at and very potentially (If you are late, rush onto a train and rush onto the wrong train lol) You might want to make another smaller school where club events may take you or perhaps the love interest has a little brother from that school or something (Hence where you could take a wrong train to) If you choose a big city, you could have going to the train station be the only way to take the fastest route around, and you would have to figure out which train is going where 😛 I think ALL zones need a Convenience store or/and some kind of mall/market area to take girls on dates to. You also need the protagonists house. For a cute little sister to live, a malicious older sister to live, or who even knows. Monsters or goddesses or something. Or maybe just a cat. Just know you can’t have parents. Those don’t exist in most romcoms.

        Like

        1. That reminds me that I really want to play Da Capo someday. I do indeed like the kind of things you’re suggesting from it and they will likely end up in the game in some form or other.

          Yes, there will definitely be some static scenes alongside those which include freeroaming. Like you described, there will be for one walking to and from school with a character which will basically be a scrolling street model which plays on a loop until the scene end, and the very first scene in the game is currently planned to be the protagonist arriving on a train.

          About the setting, it’s currently planned to take place in a somewhat medium-sized city with a mixture of densely packed urban centres, and quieter locations like shrines, docks, and residential areas on the outskirts. In general, I’d say it’s going to be similar to the city featured in Love Plus, and the design they choose was likely motivated by the same reasons as me, to have a good variety of locations to satisfy many different interests and interactions.

          The current plan is for the protagonist to be an exchange student due to *cough* family circumstances *cough*, and as such will be living in alone in a dormitory. The subject of a sister for the protagonist has been brought up to me before privately, and I’m uncertain whether or not it would be a good idea for the protagonist to have a named sibling, since even more than most games of this type, the protagonist is intended to be a very direct insert for the player, and I’m concerned that too much predefined backstory for the protagonist might take away from this (especially if certain people really don’t want such a character to be present). The idea of having a sister as a customizable ‘trait’ has even been discussed, but I could see that requiring a lot of effort to make it work.

          Liked by 1 person

          1. I get what you mean. It is best to leave the characters back story as adaptable as possible, especially for a self immersion role. I like that whole exchange student idea. What you could do to spice up room life however is make it possible for at some point in the campaign if you have a specific trait, then have the girl of your choice move in with you to your dorm. Really this whole traits thing sounds amazing to me. I feel as though traits and your club you join will have the biggest impact on how your game plays. (You should only be able to join one club per school year probably, will you have the entire game take a whole school year? or half a year?)

            How many traits do you see yourself implementing? 5? 10? 20? I would imagine 20 would be an upper limit, of course you could always add more when you added more girls as well. If you had a small amount of traits I would imagine pretty much just “Perverted, Tough, and Innocent” With perverted being after every girls panties, tough being like that calm analytic main character who thinks everything through and seems to know what is going on, and innocent being that does good without thinking about it and ends up nice to everyone (With pretty much everything good happening to him) If you did quite a bit more I could see the Dere stereotypes being added in (especially for girl characters) of like Tsundere, Kuudere, and Yandere. I could also see Clumsy being a trait and probably a counter for that would be a trait that lets you onto the student council. (Like it makes the student council seek you out to join) You may also have the traits change the genre a bit too, like maybe a trait could make the game slightly more paranormal or something. I don’t know XD I just like putting ideas out.

            Like

            1. I realise I actually meant to say ‘transfer student’ as the standard backstory for the main character, though the possibility of being a full-on overseas foreign exchange is something I’ve been considering as one of the traits, since it would open up very unique dialogue and interaction with the cast.

              The trait system is basically my approach to try and solve a common criticism people have with these types of romance simulation games, that is of a main character who in an effort to make them as broadly relatable as possible, will make them incredibly bland and passive.

              Right now there isn’t a concrete plan on how many or what traits should be included, this will all come down to resources and I may put possible traits to a community poll to decide which ones they would be most interested in seeing. What they will primarily involve is writing new dialogue for the player character’s script which would be triggered simply by them owning a particular trait, so it’s a fairly simple feature to implement, but does require an exponentially increasing amount of writing for every trait added. I definitely like those ideas, and perverted is indeed one which I’ve considered and would pretty how you described.

              Like

  3. Ah, it’s good to see all the progress that’s been made. Keep it up! That waifu sim will become a reality someday!

    Like

      1. Well, I saw the problem about animation on character’s hair. I think you should fix the movement. (Forgive me that my English isn’t so well.)

        Like

  4. I find it amazing that you went out on a limb and are using godot to do this.
    I currently have a metroidvania project, and while I love the technicalities and architecture of the godot engine, even I don’t feel entirely sure about using it :T

    Like

    1. Originally this was being made with my own custom engine, but for me at least, I found Godot was actually a perfect fit for something like this due to the fact that different gameplay simulations could be placed in a hierarchy and interact with one another through sending messages. We have things like the visual novel system and freeroaming system being built as these entirely compatible but self-contained elements, greatly supporting the ‘modular’ design philosophy of the game. It also fills two other base requirements, it’s open source and it’s built in a way which easily accommodates modding. It’s actually my intention to get more directly involved with the Godot community soon.

      I wish you luck with your own project by the way whatever you decide to use.

      Like

  5. Hmm. I know you want to use minimal routes, like two girls was it? But you think you could add a third route that is a guy route as well? Having one guy is better than none at all, and it would appeal to people who wanted to play an otome-ish game on the same system. You mentioned possibly being able to customize the protagonist and you could possibly make a girl protagonist for the player to use for going after the guy. Or you don’t have to put ANY restrictions on who you choose based on gender, so you can go Yuri or whatever as well. Just make minor dialogue changes according to gender and the gender pronoun change. (Well probably more pronounced dialog changes when you confess should you be going gay but beyond that it should hardly make a difference) I am not personally into this stuff, but I just thought if it is possible to do, you would open up the market a LOT. Does not really matter too much to me though, I will play it either way and make all the waifu’s.

    Like

    1. I can confirm that it’s two girls planned for the initial release, and a further two planned for further down the line, but these are again all things which are subject to change. I have thought about this, and actually know that there may very well be a bigger audience for straight-up otome games rather than bishoujo games in the west at least, but I’m honestly motivated more by what is personally interesting to me more than anything, and I also don’t feel all that confident in my ability to pull off a good otome route by myself. I’d much rather hold off on promising anything for now and potentially defer something like that to someone who is more personally invested in the genre. The reason for the small amount of characters is also due to the fact that you can expect a much greater level of interaction and unique dialogue with each than is usually expected of these types of games, so the decision to include any new character is something which can’t be taken lightly and has to be taken with a degree of caution and foresight, since they’ll essentially need to be ‘maintained’ regularly through updates. For now at least, the plan is still to allow you to play as a female character, but yuri will be the only romance option for the immediate future.

      Like

  6. Wow this looks amazing! I didn’t know you made this much progress since the first blog post. I can’t wait to see the finished product.

    It’s sad but true that dating sims here in the west are at best mediocre and at worst utter shit (with a few exceptions of course). It seems a lot of people think the dating sim is only a small niche and not worth localizing and/or hammering out legal issues in Japan (referring to eroge in particular), but that’s only true because there aren’t many good sims to prove them wrong (and therefore a weak market). I hope this game changes that, so keep going man!

    Like

    1. It is indeed a real shame. The negative reputation of western attempts at either dating sim type games or even conventional visual novels is something I’m very aware of and just hope I can overcome. In my case, I’ve done a lot of a cultural research in an attempt to make the game feel as authentically Japanese as possible, and it’s my end goal to make it so people wouldn’t even be able to tell without context whether this is a game which was made in Japan or not.

      Like

Leave a comment