Ren'Py [KK] Re Alter Love, dev corner

Temishenko

Newbie
Jan 13, 2018
18
27
Hey there! I finally got a PC powerful enough to render the custom scenes I made in CharaStudio using Koikatsu. I'm still getting 5-10 fps but at least is not as bad as it used to be lmao

I will be releasing the first version next month, while we wait for that let me tell you more about it.

As an adult games enjoyer myself I tried to implement as much QoL features as possible and I'm trying to offer something different, that's why my PC suffers daily with custom made locations and items which can be used for environmental storytelling. Everything is created in CharaStudio and re-arranged on Renpy using the Parallax effect for a sense of depth. Most assets are from the community with my own personal touch, in fact everything I made was possible for the tools the community provided. Thank you.

Characters:
Animated sprites, at least they blink so they kinda feel more livid. They got their schedule which varies depending on their emotions, time of the day or just randomly. There are five emotions implemented with more on the way** (Angry, Happy, Sad, Surpised and my personal favorite IDLE). Emotions may vary depending on your relationship with them, but most of the time is simply up to them and whatever may happen off-camera.
Side images:

hey.png

Quick menu for character stats:
Always wanted to quickly check the stats of the character you are speaking to? Well, now you can access to a short summary by just hovering your mouse on their side image when they are speaking to you. You can also check your quick stats when the MC is speaking as well.
stats1.png stats2.png


Inventory, market system, item class:
You got your own inventory which you can easly access hovering your mouse over the inventory tab. If you hover over your items a window will display the items name, description, class and value.
If you are on a shop, you may be able to sell the items you got if they are interested in them. You may also buy items needed for a quest and be able to trade with non-merchant characters and even give a present to that special one.
Items got their own classes! Legendary, Epic, Rare, Normal and Banned items. The later are highly illegal and if you are caught with/using them you may end temporary in jail and get locked out from certain character paths if they find out about your criminal record, however, there might be some girls who are into bad guys.


Clothes, characters and MC:
While in freeroam mode you can wear whatever you want, mind you might have to wear certain clothes to progress on some quest and unlock others. Characters will also change their clothes depending on location, emotions and other variables.
Most characters and MC got ~5 outfits. (Casual, school, swimwear, sleepwear, special, work) More might be added for some events.


Map and navigation:
I don't have the knowledge to make an isometric city so I did this interface which let us choose a location > position and display the characters there and nearby quests in the chosen location. I also find this very simple and not as frustrating as other ways of navigation where you don't know where to go or just where to find someone if you don't remember their schedule. There is also the option to manually move from room to room clicking on doors, sidewalks, etc.

MISC:
Modern UI with animations.
Here's a quick video I made with a dev version showing most of the features I mentioned. You have to watch it on youtube since its +18


I'm also looking for people willing to spell-check the script.
All criticism is welcome! Thanks for reading

test3.png
 

Temishenko

Newbie
Jan 13, 2018
18
27
devat.png
I'm now working on the house navigation with the day-cycles. There is a total of 8 in-house locations. GIF is at 25FPS, in-game animations are way smoother. At the moment characters have an action list and they can choose them randomly.

output3.gif

hr.png

par.png
I'm using the parallax effect for each location for a sense of a 3D space, the characters body actually exist behind what's in front of them, I also wanted a way of interactivity always present so the characters sprites move a little bit with the mouse movement, sounds weird but feels good***. ***At least for me

hr.png
 

Temishenko

Newbie
Jan 13, 2018
18
27
devat.png

Features added
  • The characters acknowledge the day, month and year. Player name, their current location and future plans and schedule. They also acknowledge other characters presence.
  • Characters will interact with each other if they are in the same location (decided to put this feature behind a random.choice with 30% chance)
  • Days are divided in 12 time slots, Early, Mid and Late for Morning, Afternoon, Evening and Night. That makes 84 possible activities per week. They have a free time activity in which they can decide freely where to go/be!
  • Added an override system in which depending on conditions (mood, state) it will override their normal schedule. ie, if a character is sick they will go to the hospital instead of doing what they usually do.
  • The tone feature is based in relationship points, the higher the value the more friendly/romantic they will be.
  • Added skills for player and characters. They can refine their skills and learn new things just like the player.
  • Added JealouSYS, if the character is present in the same location as someone else and you don't interact with them but you do with other characters they will get jealous. You will get a temp debuff and the affinity with the other character will decrease. (Only toggles with high affinity.)
  • Added Fallback Response System (FRS), if the API is down characters can still give basic responses.
  • Characters got their own memories, they are saved with context and additional data. There is a chance it triggers and they will talk about it with you.
  • Added Global Memory, they are unlocked as you progress in the game. It contains data and lore so characters will acknowledge changes in the world.
  • Old features I didn't mention, public transport! You can take the bus anywhere and it costs money just irl.
  • If you don't have an OpenAI API Key, you can register and login into your account in game. You still can use the Ai Dynamic Dialogue using my key trough a proxy. Rate is limited to 20 messages per hour, if you support the game's development it's extended to 100/hr. If you don't have an API Key, nor want to register an account you can still play the game and the Fallback Response System will be triggered in which characters use pre-defined dialogue. Mind the limit is to prevent abuse, it doesn't store any personal data. For registration you just need an username and password, no email or anything else.
  • Added cross-saving feature, you can upload a save file to the cloud and retrieve it at any moment. ie Playing on PC > Save on cloud > Play on mobile > Load from cloud > Keep playing where you left. This is a feature for late game development, since the mobile version is a side-project.
  • Implemented a weight system to character archive. The characters will remember 500 messages of context, when that limit is reached messages will be deleted, but which ones?
    Structure
    High Weight > Critical context > Persona, Story, Major player decisions > Critical messages, always kept
    Medium Weight > Emotional interactions, references to past events >Keep when possible, can be removed
    Low Weight > Repetitive questions, basic greetings and filler talk > First to be deleted​
  • Developed and implemented Advanced Financial System, each character got their income, spenses, debt and assets. If they go to work they will earn money, if the money they earn is not enough they will fall into debt and a penalty will be applied. This works amazing since if they get desesperate they might do illegal activities! Also affects their mood.​
hr.png
Developing

  • Weather system. It will impact schedule, commuting and emotional status for some.
  • Personality-driven behavior adjustments
  • Refining traditional game-play
hr.png
Fixes

  • Fixed an issue with the game triggering the Next Activity function which handles part of the Schedule. It was being called when in fact, it was not causing nested Ai calls and prompt contamination, breaking the Ai response.
  • Updated Characters Interactions to hold up to three characters (from two) if they are in the same location as the player. They will talk to each other for a brief moment.
  • I was handing the proxy and provided api key calls in separate functions leading to different quality of responses, now everything is handled in the same funcion so you will get the same response if you use the proxy or your own api key.
hr.png
Deprecated
  • Textblob implementation for polarity check as a fallback, it was the plan b when the LLM failed to return a mood statment but since Renpy runs its own interation of python I failed miserably at installing the package. Anyway, I fixed the issue that was causing the Ai to fail and the mood will be set to idle in the worst case scenario.
  • For now this function is deprecated. I was making a mobile version that would act as an in-game phone where you could talk with the characters from an app like WhatsApp in real time. The issue is the same as Textblob, I need to install firebase-admin package in Renpy and I cannot figure it out with my current knowledge. I can still make it work with polling and http requests to my app but I don't want to nest my app with requests, at least not for now. I'm still considering another approach but I'm focusing in releasing a somewhat working version of the base game first.
hr.png

Deleted my previous message to avoid double posting

HEY HEY, STILL ALIVE. Damn, I have no luck with GPUs, I should stop buying second hand but it is what it is. My previous GPU died again, got a new one (second hand again) finally and I've been working again in this project.

I came across the GPT implementation, worry not I will not use it for art or scripts but I decided to give the option for a dynamic chat with each character. After trial and error I got a working code which is kinda amazing.

The character knows their location depending on activity depending on schudle. So if you talk with them they will reply based on their location. It reads tone, so if you are being an asshole it detects such attitude and their sprite will update depending on the current mood. Not only that, but their prompt updates depending on the relationship points with the player.
Mind this is just an extra and you can also interact with them the traditional way.

This works great with the party function the game has, you can hang out with them to any location and they will know where they are, I will keep expanding on this because it really brings life into them.

I've set an option for how much messages you want to save for context since the more messages it saves into the archive the more token it will use. This is just for chit chat, important events will be stored permanently on character memory and the bot will have access to it.

Mind you will need an OpenAI API Key, I might set a proxy with my website so you don't need one but that's a WIP.

I will upload a video in the upcoming days showing the functions!
hr.png

Shitty GIF quality but you get the idea


Base Profile 2025.03.20 - 23.20.31.02 (4).gif
 
Last edited: