Unity Cyrano - Sandbox Dating Sim (3D VR/Flatscreen Game) [Development Thread]

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
Greetings everyone, I'm new to this community, I hope I am doing this correctly. I was told this would be a good place to share my game progress as I am gamejam battle hardened gamedev and I'm eager to share my NSFW game with you all.

Overview: Cerano (Working Title) is a 3D Flatscreen or VR experience where you have to seduce the AI NPC during your dinner date.

Thread Updated: 2024 -04-26
Developer: You can find my games on
Censored: NO
OS: Windows + VR
Language: English

Genre: Sandbox Sim

You don't have permission to view the spoiler content. Log in or register now.

I'd like to post some video clips of the VR gameplay, jiggle physics and all that jazz but there seem to be a lot of rules regarding links to hosts etc. Where can I upload the videos to share with you all here? They are of course NSFW.

Everything is subject to change, but I have some pretty good ideas and tests already done for the direction I want to take the game.

If you have any questions about development or critiques I'm all ears!


screen1.jpg screen2.jpg screen3.jpg screen3.jpg whitegirl.jpg
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
I'm still trying to figure out the best format and workflow for updating progress on the game. Making progress on the game feels like the easy part, while making sure I cover all my bases on development without having to type up multiple devblogs in various places is still a work in progress.

Not sure where the best place is to upload videos and embed/share the videos here and on itch.io so I can share progress of development.

However, since the previous post didn't actually include any video of the game in motion with VR I tried this site Sendvid, though it takes hours to process through the queue? If anyone has any recommendations for sites to upload videos to that would be great!

Here is some early test footage of the boob mechanics working, jiggle physics and grab mechanics. This is a few days old now though so there are some mesh issues that have been resolved with her eyes.

Today, I made a lot of progress on the Flatscreen/VR switching back and forth front. I've enabled a start menu that allows me to detect if the player has their headset connected and if not it will switch to Flatscreen mode, if they decide to connect their headset after they can, and then click the Enable VR mode and it should connect up. Otherwise if they start in VR mode they can switch back to flatscreen mode if they prefer to play without VR mode.

The way I have set it up should allow me to build some really fun interactive menus in VR and some visually appealing menus in Flatscreen so that depending on which version you play you get a different interface that is tailored to that mode.

Once I figure out a good way to upload videos I will be posting more videos and ill try to take more screenshots as those are quite easy to upload and share.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
I spent most of the day getting the table item interactions working in flatscreen. They already work in VR mode just fine where you can pickup and rotate the game objects any which way you like, however this isn't as simple in flatscreen. So I've made it so that you can pick up the object with the left mouse click, rotate it with the right mouse click and move it back and forth with the scroll wheel. You can also charge up a throw and hurl the items across the table or at the girl. If the objects fall off the table they respawn back on the table so you can never really lose any of the items.

Furthermore, I've added tool tip names to all the objects as I plan on implementing voice commands and I want her to react to the items you are picking up. This will make it so that you can mention the exact name of the object you are holding in your conversation and the NPC will be able to recognize what you are referring to.

At the end you have a brief glimpse of the temporary pause menu, where you can go back to the main menu or switch into VR mode if you so choose.

I'm not sure what the next task will be, its kind of a toss up between implementing the Satisfaction/Anger system and testing out some of the dynamic interactions with the NPC.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
I've made major progress on the AI integration. This is probably the best part and most fun part so far, but it is also the part that may need to be cut depending on the reception and popularity of the game. It's a double edged sword in that I am using two separate AI platforms, one for the voices and one for the AI brains. This offers me the most amount of freedom to customize the voice to sound exactly how I want it to. However, the fact that its a different platform means I have a limit to how many words I can generate with that voice per month which is directly tied to the tier which I am subscribed at.

If I had a constant influx of money from sales or subscriptions to the game then it may offset the cost of running that voice and also the cost of running the LLM which powers the NPC. Those are of course issues I will have to figure out at some point, but more so if I am successful! So that is a problem for future successful gamedev me, right now I am focused on making the most interesting and fun experience as I can.

I think even without the AI there is a lot of fun things I can do with the sandbox and simulation so I'm not quite sweating it just yet.

Now for the fun stuff! I managed to get dynamic IK physics working for picking up objects in the game, however it is a little broken in that it only seems to work on the first try not on subsequent pickups. That's a bug that can be worked out in the future for sure, or I may go down the purely animation route as that might just be easier since the placement of the objects on the table respawn to their exact same location if they fall off onto the floor.

In the test video you can see a sample interaction I had with the NPC complimenting her and trying to get her to leave the restaurant with me. I will be setting up several triggers and motivations which will make it so that she has a much more dynamic conversation with the player and introduce a like/hate system so you can fail the date. Right now its pretty fun to see how the AI reacts to some of my more probing questions.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
I spent a lot of back and forth working with the interactions and setting up the workflow for the game, but it's become clear that my current animation pipeline while workable is just too labor intensive and has too many steps/assets/software involved if I want to add in more granular details and expand upon in the future. So I've taken a slight setback and taken a step back to redo the rig for the main character. She is now a fully rigify rig and Ive spent much of the time weight painting her to get her to move correctly. This is a setback for sure, but I have retained all the blendshapes for the character and now she has a much more robust animation rig to move and setup.

I will still need to add some more custom bones for the booba and the bootay but the hard part is almost done. I think this will take a few more days to get it to where it was before within Unity, but it will be worth it and much easier to work with in game. If I can setup the workflow as I have planned it shouldn't be hard to add new animations/poses and then use those for other characters as well.

Two steps forward, one step back. We'll get there!

Rerigged.jpg
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
Well... it turns out it WAS very hard.

Extremely hard. It should be much easier to get animations into Unity from Blender but it's not. Not using a custom rig and rigify. So many little things that can go wrong. I spent about 2 hours debugging why her right butt cheek control wasn't deforming the mesh but the left one was, even though they were setup exactly the same. Turns out, I had a typo in the controlrig naming, instead of "RightButtcheekControl" I wrote it as "RightButtCheekControll" with two L's that little mistake cost me 2hrs of dev time. So many little things like that, but I'm happy to say the model is fully in the game with her rig and all her clothes! I found a nice workflow for the clothing as well so I should be able to add a ton more clothes to her repertoire in the future. Furthermore, she also sports a few new naughty blend shapes hooray!

View attachment 3615680

Tomorrow, I will be working on getting that animation pipeline working correctly, which I finally think I've nailed the correct workflow for and if that's working then I will be able to setup the character again in Unity and have her working just like the previous version but this time she will be able to handle new animations. Some of the animations planned:

>Picking up all the items on the table

>Eating and drinking animations
>reaction animations
>mood animations
>several idle animations
The goal is to give her a wide range of possible states and animations to switch to depending on the context of what the player is doing, holding or has selected as their dialogue choice.
But first things first, gotta get some basic animations working with the new rig.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
What a slog! What I thought was going to be a relatively simple workflow for getting animations from Blender to Unity working turned out to drag me down a rabbit hole that would consume a whole weeks worth of progress. Since this is a devlog I will try and delve into the details of how I got it working and what steps I am currently taking to mitigate some of the animation issues that will no doubt rear their head from time and again.
First, there is no straight easy way to get characters animated using a rigify rig or any rig for that matter directly into Unity as Unity doesn't pick up on the "control rig" that is used to drive the skeleton on the character in Blender. Unity only uses the bone deformation information to drive the animations and the current skeleton that rigify is using to drive the animations in Blender is not in a compatible format for Unity's "Humanoid" rig type. What? Let me explain further.
Unity has 3 rigtypes, Legacy, Generic and Humanoid. Legacy is the type of rig that Unity used before Mechanim which is what the current Humanoid rig type uses. Mechanim and the Humanoid rig is what allows the animations to be used across any other character in the game that is set to a humanoid rig. So if I have 10 characters in my game, I can share a walk cycle between all 10 of those characters regardless of their shape, size or look if they are using the Humanoid rig. This has major advantages in my case when I add more girls to the roster and you will want to share pickup/drop/walk/sit animations. The Generic rig basically means only this particular rig can use the animations and they cant be reused for other characters. I cant use a walk cycle from one generic character to another or to a humanoid rig.
So obviously, going with Humanoid has a major advantage over the other rig types, however Unity has a very specific way it want's its bones/skeleton setup for the character and that was the major issue between Blender and Unity as the way Blender's Rigify rig controller is setup is different than the setup that Unity wants for the Humanoid rig. I found a very convenient plugin called "Game Rig Tools" for Blender that re-targets the animations created using the rigify rig in Blender to a Game ready rig to import into Unity. This is not a straight forward process and required a lot of trial and error, document reading and tutorials.
WineAnimation.jpg
Once this process was complete I could import the files into Unity and that's when I ran into the next set of hurdles. Turns out not everything in the gameready rig translates well into Unity, even though it's a "game ready rig!" After many more hours of 23 versions of the main character, I was able to get the her into the game playing her animations without jumping all over the place. I setup a few basic animations on the character and wrote a script to handle the parenting of objects in sync with the animation played. She can sit in an idle pose and pickup the wine glass, raise a glass to celebrate, put the glass back down. She can also Pickup the knife and put that down as well. I have segmented the animations to allow for separate events. For instance she cannot celebrate with a knife in her hand, but she can celebrate with a glass of wine, or later with a glass of champagne.
animation.jpg
In this way, it should be easy enough to setup a branching selection of animations to play based on context. This is also a first pass and as the complexity increases I will need to probably organize it better, but with this current setup I can get about 90% there. Here are the animations in game:

With the workflow finally set I will spend some more time creating animations for each of the objects on the table, at least on her side of the table and perhaps a few eating animations.
After that I will get to work integrating the branching dialogue/satisfaction system which will control the main gameloop.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
I jumped headfirst into some dialogue setup using an asset I had on hand from the asset store called rather appropriately, 'Dialogue System' and it seems extremely robust and more than capable of handling the complex branching story dialogue I plan to create, as well as managing the animations for each of those choices. It also supports a great workflow for getting all that dialogue into the game in a way that wont require me to manually drag and drop each voice line to the character. This will be extremely useful when it comes to adding more characters or fleshing out more dialogue trees and options.

The text box/font and colors are all placeholder as well as the the actual text and dialogue but I have a clip to share of what it looks like hooked up with working animations and interactions. You can see from this clip that I have the voice working with the dialogue on the opening chat, which is driven by interacting with the heart. You will then get some options to respond with and in this instance, the one I selected triggers her to pickup a glass. I then have the option to raise a glass to toast her and she will wait till I physically pickup and bring my glass to hers before she returns to her idle pose. From here I can easily make her drink, place the glass back down on the table and give the player more options to choose from in regards to starting a conversation or having her talk about contextual things on the table that you pickup or things the player does, (Like throwing your plate at her.)

I still need to get the dialogue SFX workflow setup correctly but after the initial hurdles of learning a new complex asset, I think it wont be that difficult.

 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
The good thing about working with third party assets is that they usually have all your bases covered for creating whatever it is you want with their asset. The bad thing is that you need to dive through mountains of documentation and tutorial videos for how to use said asset if you want to get the most out of it. I had a dialogue tree system in mind for Cyrano and the more I thought about it and the more behaviors and interactions I wanted to add the more complex the system would need to be. Luckily, I had an asset called the "Dialogue System" that is popular and robust enough that will cover all my use cases. The downside is as I said above, it requires a lot of reading and trial and error. Trying to get two assets to work together is even more of a headache, double the fun, double the documentation.

I'm happy to finally be able to have gotten the hardest parts out of the way. While the dialogue won't be that hard for me to write, the minor interactions between each dialogue node will not be a piece of cake and seems like it will be quite tedious. Tedious, but not impossible!


In this test clip you can see I've revamped the look of the dialogue box and tied her interactions to the conversation as well as facial expressions to some of the player's answers. Certain dialogue choices will be positive choices, some negative and others neutral. Depending on the choices you make you will unlock naughty scenes to be played after the date or directly from the menu. You can see in the test that the positive choices unlocked the scene that shows up at the top right of the screen. I think I will make the food menu on the table a special command menu where you can choose what happens next, like ordering food/drinks or perhaps keep track of the conversations you are having with Roxanne. Finally, you will also have the option to skip right to the naughty scenes you unlock. Or perhaps clothing options will be on this menu as well.

I haven't worked out too much yet, the goal is not to overscope but deliver an interesting experience and if there is interest I can add these other features later. However, making sure the building blocks for these features are at least there from the getgo is important. It's why I build the game with VR and Flatscreen in mind.

While I am still fresh on how to use the dialogue system I think I will spend a significant amount of time over the next week or so fleshing out the dialogue tree and story. Once this story is fleshed out and written, I will make a build to have some outside opinions on story and pacing before I dive into all the additional facial blendshapes and animations I will need for the story.

So the current plan over the next few weeks will be:

  • Story/Writing/Dialogue
  • Playtest
  • VR implementation for Dialogue System (trivial but necessary)
  • Animations/Blendshapes
  • Menu System
  • H scenes
That's it for now!
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
As much as I would like for the entire interaction to be driven by AI as I have discussed in earlier Devlog it doesn't make sense $$$ wise at the moment. Instead, we are writing out all the dialogue and the dialogue tree branches to allow for more interesting interactions with Roxanne. That doesn't mean I can't use AI to make better dialogue though!

One of the major issues with writing dialogue, especially for myself is that it all starts to sound a lot like something I would say, coming from both the NPC and the player. My ideal outcome with things I would definitely say from my own lexicon. To minimize this I've used a NSFW AI Chatbot that can #1 hold conversations that are NSFW without freaking out like ChatGPT. And two, I can input Roxanne's backstory, traits and quirks so that the AI draws from this knowledge base when I am interacting with her.

This allows me to get a larger variety of text responses that sound more like something Roxanne would say rather than what I want her to say. That being said, I can still regenerate the responses till I get something I want, or edit the responses on the fly and continue the conversation with the newly edited dialogue. This was actually really quite fun and an interesting way to generate dialogue which I think will become more and more popular as people discover these tools.

After several back and forth conversations with the AI, I came up with 3 major dialogue trees. Good, Neutral, & Bad. Though I will need to go through and refine them quite a bit, especially the BAD conversation tree, I now have a base framework to build the dialogue trees on. This will be much easier to setup the various actions I need to build into the conversation as well as the various unlocks. You can see from the image below the dialogue tree on the left is mostly fleshed out.

SceneUnlocks.jpg

It also has several colored squares which represent unlocks/fail states/and scene unlocks you will achieve as you go through the conversation with Roxanne. Beyond these dialogue unlocks I think I will have some contextual or physics based unlocks like if you manage to pour wine in the glass you might get a toy unlock or something like that.

Finally, I've built the menu into the world itself, I'm not a fan of screen space UI canvases or any HUD at all to be honest. This also makes a good and logical hiding spot for the Menu in VR as well. Picking up the Menu will allow the player in VR to just flip it over in their hand and manipulate the canvas. In Flatscreen you can still pickup and throw the menu like normal, but pressing the interact button which is currently set to E will bring the menu into the player's view and make it interactable. I still need to add a few little context cues such as E to interact on the menu and other items in the world. This is important for the Flatscreen version as it will be difficult to simulate drinking from a glass without hitting the Interact button. In VR I can have the player pickup the glass and physically bring it to their face and simulate drinking that way.

MenuUI.jpg

Next up is to add the unlock code in the dialogue trees so that when the player reaches that part of the dialogue it unlocks the corresponding item in the menu. So far that seems like it will be Toys, Clothing/Alternate Colors, and of course sex scenes. I would like to have a lot of sex scenes but perhaps it can unlock different positions in the scene which would be more manageable.
 

NSFWgamedev69

New Member
Game Developer
Apr 26, 2024
14
1
First Hentai Scene unlock animations!

In order to test my dialogue tree and such I need a sex scene unlock, so I figured I might as well at the very least create a few animations for the first scene. There are two others that aren't in this video, but you get the idea. These will have various speeds at which they play and with the collision system and ass and boob grab/smack/interactions it should make for a really more natural physical movement when interacted with. More so with VR obviously, but I think the variations available and depending on how the flatscreen toy interactions play out, it should be on par as far as the fun factor goes.



This is probably the most fun part of development. If you have any suggestions for positions involving the dinner table, please let me know and I'll add them to my list!