[Tease AI Java] SPICY development thread

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

Code: Select all

sendVirtualAssistantMessage("Thursdays are confession days");
...
sendVirtualAssistantMessage("You've been skipping punishment day %SlaveName%!");
...
sendVirtualAssistantMessage("You are expected to report on tuesdays!");
Confession or Punishment ? Tuesdays or Thursdays ?
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

Is there somewhere in one place description of all punishment/rewards Spicy uses and what is implemented already in original version and works, what was just a nice idea which was not implemented and used. The same applies to all fitness/cleaning/gaming levels which increase/decrease in relation how skilled you become doing that.

Somehow I feel that we need agreement what kind of rewards are compulsory for modules (mood change, punishment points, gold rewards), which are "nice to have" and also to agree on some usual ranges depending on the difficulties of the task we want sub to perform (to avoid situation when I put 1000 punishment points for not cleaning the window and it takes to nothing 2 weeks of doing pushups everyday :-) ).

But maybe such agreement exists in the original community already ?

If not I can try start codifying knowledge and make some proposal for your review, but I need your initial ideas/contribution, because I even can't launch the original version of TA with SpicyReborn :)
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] SPICY development thread

Post by GodDragon »

lot5000 wrote: Fri Sep 07, 2018 4:57 am

Code: Select all

sendVirtualAssistantMessage("Thursdays are confession days");
...
sendVirtualAssistantMessage("You've been skipping punishment day %SlaveName%!");
...
sendVirtualAssistantMessage("You are expected to report on tuesdays!");
Confession or Punishment ? Tuesdays or Thursdays ?
I copy pasted from spicy and only converted the commands which means this is some typo in spicy I guess. Thursdays are punishment days.
lot5000 wrote: Fri Sep 07, 2018 7:31 am Is there somewhere in one place description of all punishment/rewards Spicy uses and what is implemented already in original version and works, what was just a nice idea which was not implemented and used. The same applies to all fitness/cleaning/gaming levels which increase/decrease in relation how skilled you become doing that.

Somehow I feel that we need agreement what kind of rewards are compulsory for modules (mood change, punishment points, gold rewards), which are "nice to have" and also to agree on some usual ranges depending on the difficulties of the task we want sub to perform (to avoid situation when I put 1000 punishment points for not cleaning the window and it takes to nothing 2 weeks of doing pushups everyday :-) ).

But maybe such agreement exists in the original community already ?

If not I can try start codifying knowledge and make some proposal for your review, but I need your initial ideas/contribution, because I even can't launch the original version of TA with SpicyReborn :)
No there is no agreement yet. Feel free to think of something. Mood changes are currently just positive/negative low, medium and high and it depends on the situation. For example I think failing in some game should only reduce the mood by a small amount while being disobedient or something else should rather influence the mood by a medium or large amount. But I haven't looked into a set punishment points system yet. Feel free to check out the old spicy source and see how certain situations are dealt with.
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

Need your help. I am trying to convert CleaningBathroom.txt module from Spicy.

It relies on variable CleaningTimeTemp, which is used later to determine average cleaning time and make decisions based on that
Sometimes the process of cleaning is interrupted by Domme and various games and I need to write functions startTimer() and stopTimer () (even better to have one function with two different arguments start/stop). When interruption (game) ends it needs to continue from the same value. Counting shall continue normally while interruption (BellGame) waits for launch with sleep(120);

I wrote simple setTimer function, which resets time to 0, switches randomly between games

Code: Select all

function setTimer(){
    setVar("CleaningTimeTemp", 0);
    startTimer(); //@CountVar[CleaningTimeTemp]
    
    let gamesOffered = randomInteger(0, 1);
    switch(gamesOffered) {
    		case 0:
                sleep(randomInteger(20, 120));
                stopTimer(); //stops timer before launching the game
    		BellGame1();
    		startTimer(); //continues to count cleaning time 
    		break;
...
    reportDone();
    stopTimer(); //stops timer before calculating final result and giving rewards

}

But I do not know how to write those startTimer() and stopTimer() functions correctly. Outcome shall be that in the end I know in the CleaningTimeTemp variable total amount of time the cleaning was performed minus interruptions (games).

Thanks for any help
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] SPICY development thread

Post by GodDragon »

lot5000 wrote: Sat Sep 08, 2018 1:20 pm Need your help. I am trying to convert CleaningBathroom.txt module from Spicy.

It relies on variable CleaningTimeTemp, which is used later to determine average cleaning time and make decisions based on that
Sometimes the process of cleaning is interrupted by Domme and various games and I need to write functions startTimer() and stopTimer () (even better to have one function with two different arguments start/stop). When interruption (game) ends it needs to continue from the same value. Counting shall continue normally while interruption (BellGame) waits for launch with sleep(120);

I wrote simple setTimer function, which resets time to 0, switches randomly between games

Code: Select all

function setTimer(){
    setVar("CleaningTimeTemp", 0);
    startTimer(); //@CountVar[CleaningTimeTemp]
    
    let gamesOffered = randomInteger(0, 1);
    switch(gamesOffered) {
    		case 0:
                sleep(randomInteger(20, 120));
                stopTimer(); //stops timer before launching the game
    		BellGame1();
    		startTimer(); //continues to count cleaning time 
    		break;
...
    reportDone();
    stopTimer(); //stops timer before calculating final result and giving rewards

}

But I do not know how to write those startTimer() and stopTimer() functions correctly. Outcome shall be that in the end I know in the CleaningTimeTemp variable total amount of time the cleaning was performed minus interruptions (games).

Thanks for any help
Like this for now. However I might add a stopwatch to TAJ, because this seems useful for stuff like that. This should work.

Code: Select all

function setTimer(){
    setVar("CleaningTimeTemp", 0);
    let startDate = startTimer(); //@CountVar[CleaningTimeTemp]
    
    let gamesOffered = randomInteger(0, 1);
    switch(gamesOffered) {
    		case 0:
                sleep(randomInteger(20, 120));
                stopTimer(startDate); //stops timer before launching the game
                BellGame1();
                startDate = startTimer(); //continues to count cleaning time 
                break;
            default:
                break;
    }
                
    reportDone();
    stopTimer(startDate); //stops timer before calculating final result and giving rewards
}

function startTimer() {
    return new Date();
}

function stopTimer(startDate) {
    //Converts possible double to int
    let secondsPassed = parseInt((new Date().getTime() - startDate.getTime())/1000, 10);
    setVar('CleaningTimeTemp', getVar('CleaningTimeTemp', 0) + secondsPassed);
}
lotar232
Explorer
Explorer
Posts: 76
Joined: Sat Nov 01, 2008 6:34 pm

Re: [Tease AI Java] SPICY development thread

Post by lotar232 »

lot5000 wrote: Fri Sep 07, 2018 4:57 am

Code: Select all

sendVirtualAssistantMessage("Thursdays are confession days");
...
sendVirtualAssistantMessage("You've been skipping punishment day %SlaveName%!");
...
sendVirtualAssistantMessage("You are expected to report on tuesdays!");
Confession or Punishment ? Tuesdays or Thursdays ?
heh! I remember that bug in the original version of spicy... there was some interesting cross enforcment/checking between confessionday and punishment day
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

GodDragon wrote: Sat Sep 08, 2018 2:35 pm
Like this for now. However I might add a stopwatch to TAJ, because this seems useful for stuff like that. This should work.
Thanks a lot ! It really started counting. Was error of not recognizing variable, put const CleaningTimeTemp = "0"; in the beginning of the module and it shut up.

My first impression is that does NOT calculate time spent on interruptions (gaming):
1) StartDate is set: Sat Sep 08 2018 21:09:21 GMT+0300
2) SecondsPassed = 2498
3) CleaningTimeTemp = 2510
4) End time - 09:51 PM

Seems that it does not deduct time spent playing games. I left game prompt for nearly 40 minutes during this test, which should have been deducted. But I will test with clear head tomorrow and will come back.

Also popped up some other annoyances:
1) sendVirtualAssistantMessage("test"); seems does not respond to lockImages(); any workaround ?
2) Vocabularies in original TA seem to incorporate also links to sound files and other stuff. Is there possibility in TAJ to take that info from vocabulary file, or we shall leave in the vocabulary only text options and transfer sound to personality modules ?
3) In general - there is such a huge mess with vocabularies and images in Spicy/SpicyReborn - but that just a reaction and separate topic. But in order to avoid it (before 1000 developers haven't jumped in) - we need some rules and criteria. Will think about this.
lotar232
Explorer
Explorer
Posts: 76
Joined: Sat Nov 01, 2008 6:34 pm

Re: [Tease AI Java] SPICY development thread

Post by lotar232 »

GodDragon wrote: Fri Sep 07, 2018 12:50 pm
lot5000 wrote: Fri Sep 07, 2018 4:57 am
Is there somewhere in one place description of all punishment/rewards Spicy uses and what is implemented already in original version and works, what was just a nice idea which was not implemented and used. The same applies to all fitness/cleaning/gaming levels which increase/decrease in relation how skilled you become doing that.

Somehow I feel that we need agreement what kind of rewards are compulsory for modules (mood change, punishment points, gold rewards), which are "nice to have" and also to agree on some usual ranges depending on the difficulties of the task we want sub to perform (to avoid situation when I put 1000 punishment points for not cleaning the window and it takes to nothing 2 weeks of doing pushups everyday :-) ).

But maybe such agreement exists in the original community already ?

If not I can try start codifying knowledge and make some proposal for your review, but I need your initial ideas/contribution, because I even can't launch the original version of TA with SpicyReborn :)
No there is no agreement yet. Feel free to think of something. Mood changes are currently just positive/negative low, medium and high and it depends on the situation. For example I think failing in some game should only reduce the mood by a small amount while being disobedient or something else should rather influence the mood by a medium or large amount. But I haven't looked into a set punishment points system yet. Feel free to check out the old spicy source and see how certain situations are dealt with.
my opinion:
- punishment points are important.
- gold is important.
- I try and maintain mood, but I haven't used it much...
- original tease AI-had "tokens" that I never understood ;)

my adding to the confusion :
I've added "punishment reason" flags in my fork of spicy that get set when punishment points are given, and then the user gets chided for why he got the points in the dungeon (flags get cleared weekly on punishment day)

IMO this is purely optional decoration and can be ignored (I'll go through and add it in at some point)


punishment flags are all listed in punishmentbase.js.... (well my version that will be checked in once I get all the punishments working)

Code: Select all

if(isVar("PReason_skipping_punishment")) {  sendDungeonMessage(" skipping punishment day... Naughty %Slave%, are you too scared to come down here and face justice?",2);}  

if(isVar("PReason_skipping_confession")) {  sendDungeonMessage(" skipping confession day... Naughty %Slave%",2);}  

if(isVar("PReason_too_many_points")) {  sendDungeonMessage( random("Failure to complete punishments on time"," Not putting sufficient effort to reduce punishment points"," not submitting to required punishments"," Not suffering %DomHonorific% %DomName%'s proscribed punishments") ,2);} 

if(isVar("Preason_not_degrading")) { sendDungeonMessage( random("Failure to follow %mistress% instructions"," Not following instructions"," not submitting to required degradation"," Not suffering %DomHonorific% %DomName%'s proscribed humiliation"),2 );} 

if(isVar("Preason_not_worshiping")) { sendDungeonMessage( random("Failure to respect %mistress%"," being Disrespectful towards %DomHonorific% %DomName%"," not appropriately worshiping your Goddess %DomName%") ,2);}

if(isVar("Preason_too_slow")) { sendDungeonMessage(random("being too slow to respond to %DomHonorific% %DomName%'s commands "," Not jumping to complete %DomHonorific% %DomName%'s commands"," disappointing %DomHonorific% %DomName% by not responding to commands in a timely way") ,2);} 

if(isVar("BadExerciseEffort")) { sendDungeonMessage( random("Failure to complete your exercises properly"," Not putting sufficient effort while exercising"," Being lazy while working out"," Not meeting %DomHonorific% %DomName%'s exercise standard") ,2);} 

if(isVar("BadChores")) { sendDungeonMessage( random("Failure to complete chores in a timely manner","Unfinished chores","Failure to do chores","Poor attitudes regarding chores","Failed to complete chores.."),2);} 

if(isVar("BadCum")) { sendDungeonMessage( random("Unauthorized ejaculation","Cumming without permission"),2);} 

if(isVar("BadEdging") ){ sendDungeonMessage( random("Unauthorized edging","Edging against %DomHonorific% %DomName%'s wishes"," being unable to resist Edging your %cock%" ),2);} 

if(isVar("BadMouth")) { sendDungeonMessage( random("Filthy mouth","Talking back","Bad mouthing","Undesired talking","Failed to request permission to talk","Talking out of terms.."),2);}

if(isVar("BadFullTime")) { sendDungeonMessage( random("Failed to fulfill full time duties","Laziness","Failure to meet demands for proper slavery"),2);} 
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] SPICY development thread

Post by GodDragon »

lot5000 wrote: Sat Sep 08, 2018 7:17 pm
GodDragon wrote: Sat Sep 08, 2018 2:35 pm
Like this for now. However I might add a stopwatch to TAJ, because this seems useful for stuff like that. This should work.
Thanks a lot ! It really started counting. Was error of not recognizing variable, put const CleaningTimeTemp = "0"; in the beginning of the module and it shut up.

My first impression is that does NOT calculate time spent on interruptions (gaming):
1) StartDate is set: Sat Sep 08 2018 21:09:21 GMT+0300
2) SecondsPassed = 2498
3) CleaningTimeTemp = 2510
4) End time - 09:51 PM

Seems that it does not deduct time spent playing games. I left game prompt for nearly 40 minutes during this test, which should have been deducted. But I will test with clear head tomorrow and will come back.

Also popped up some other annoyances:
1) sendVirtualAssistantMessage("test"); seems does not respond to lockImages(); any workaround ?
2) Vocabularies in original TA seem to incorporate also links to sound files and other stuff. Is there possibility in TAJ to take that info from vocabulary file, or we shall leave in the vocabulary only text options and transfer sound to personality modules ?
3) In general - there is such a huge mess with vocabularies and images in Spicy/SpicyReborn - but that just a reaction and separate topic. But in order to avoid it (before 1000 developers haven't jumped in) - we need some rules and criteria. Will think about this.
Okay, different approach. You can already access the stopwatch from apache, so here we go:

Code: Select all

function setTimer(){
    sendMessage('Starting timer');
    let StopWatch = Java.type("org.apache.commons.lang3.time.StopWatch");
    let watch = new StopWatch();
    watch.start(); //@CountVar[CleaningTimeTemp]
    
    let gamesOffered = randomInteger(0, 1);
    switch(gamesOffered) {
    		case 0:
                sleep(3);
                watch.suspend(); //stops timer before launching the game
                sendMessage('Pausing watch at ' + parseInt(watch.getTime()/1000, 10) + ' seconds');
                sleep(3); //BellGame1
                sendMessage('Resuming with currently ' + parseInt(watch.getTime()/1000, 10) + ' seconds');
                watch.resume(); //continues to count cleaning time 
                sleep(3);
                break;
            default:
                break;
    }
                
    //reportDone();
    watch.stop(); //stops timer before calculating final result and giving rewards
    sendMessage('Time passed ' + parseInt(watch.getTime()/1000, 10) + ' seconds');
}
Note: I changed a few things for testing but just change them back and adjust them to your liking. This definitely worked for me.
lotar232 wrote: Sat Sep 08, 2018 7:23 pm my opinion:
- punishment points are important.
- gold is important.
- I try and maintain mood, but I haven't used it much...
- original tease AI-had "tokens" that I never understood ;)

my adding to the confusion :
I've added "punishment reason" flags in my fork of spicy that get set when punishment points are given, and then the user gets chided for why he got the points in the dungeon (flags get cleared weekly on punishment day)

IMO this is purely optional decoration and can be ignored (I'll go through and add it in at some point)


punishment flags are all listed in punishmentbase.js.... (well my version that will be checked in once I get all the punishments working)
PP points are definitely important. Gold is important too as a reward. Mood definitely very important to address the user in certain ways, be more harsh or lovely and decide whether you punish or play or even let the sub enjoy the session so make sure to always modify the mood inside sessions (if you are actually coding anything in sessions). Punishment points are meant for outside session stuff and also as an addition to the mood.

Interaction is definitely awesome. That is what I am looking for in general. As much unique and adjusted stuff as possible that actually interacts with the user. I would suggest giving the variables all the same prefix. In the future I might even handle it more elegantly with an array of ids that represent punishment reasons.
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

GodDragon wrote: Sat Sep 08, 2018 2:35 pm Okay, different approach. You can already access the stopwatch from apache, so here we go:
Thanks. It worked. Posting my final version with debugging messages, maybe somebody else will need.

Code: Select all

//Start module
setVar("CleaningTimeTemp", 0);
sendMessage("CleaningTimeTemp = " + getVar("CleaningTimeTemp", 0)); //debug message

// Function SetTimer - with GodDragon additions to make it work
function setTimer(){
    sendMessage('Starting timer');
    let StopWatch = Java.type("org.apache.commons.lang3.time.StopWatch");
    let watch = new StopWatch();

    watch.start(); //instead of @CountVar[CleaningTimeTemp]
    sendMessage('Starting watch at ' + parseInt(watch.getTime()/1000, 10) + ' seconds'); //debug message
    
    let gamesOffered = randomInteger(0, 1);
    // let gamesOffered = 1;
    switch(gamesOffered) {
    		case 0:
                sendMessage("Launching BellGame1() - go to corner"); //debug message
                //sleep(randomInteger(20, 120));
                sleep(3);
                watch.suspend(); //stops timer before launching the game
                sendMessage('Pausing watch at ' + parseInt(watch.getTime()/1000, 10) + ' seconds'); //debug message
                Corner(); //BellGame1
                sendMessage('Resuming with currently ' + parseInt(watch.getTime()/1000, 10) + ' seconds'); //debug message
                watch.resume(); //continues to count cleaning time
                sleep(3);
                break;
            case 1:
                sendMessage("Launching BellGame2() - typing exercise"); //debug message
                //sleep(randomInteger(20, 120));
                watch.suspend(); //stops timer before launching the game
                sendMessage('Pausing watch at ' + parseInt(watch.getTime()/1000, 10) + ' seconds'); //debug message
                typingExercise();
                sendMessage('Resuming with currently ' + parseInt(watch.getTime()/1000, 10) + ' seconds'); //debug message
                watch.resume(); //continues to count cleaning time
                break;
            default:
                sendMessage("Something went wrong, no game today");//debug message
                break;
    }

    reportDone();
    watch.stop(); //stops timer before calculating final result and giving rewards
    let secondsPassed = parseInt(watch.getTime()/1000, 10)
    sendMessage('Time passed ' + secondsPassed + ' seconds'); //debug message
    setVar("CleaningTimeTemp", getVar("CleaningTimeTemp", 0) + secondsPassed);
    sendMessage("CleaningTimeTemp = " + getVar("CleaningTimeTemp", 0)); //debug message
}
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

GodDragon wrote: Sat Sep 08, 2018 2:35 pm
lotar232 wrote: Sat Sep 08, 2018 7:23 pm my opinion:
- punishment points are important.
- gold is important.
- I try and maintain mood, but I haven't used it much...
- original tease AI-had "tokens" that I never understood ;)

my adding to the confusion :
I've added "punishment reason" flags in my fork of spicy that get set when punishment points are given, and then the user gets chided for why he got the points in the dungeon (flags get cleared weekly on punishment day)

IMO this is purely optional decoration and can be ignored (I'll go through and add it in at some point)
punishment flags are all listed in punishmentbase.js.... (well my version that will be checked in once I get all the punishments working)
PP points are definitely important. Gold is important too as a reward. Mood definitely very important to address the user in certain ways, be more harsh or lovely and decide whether you punish or play or even let the sub enjoy the session so make sure to always modify the mood inside sessions (if you are actually coding anything in sessions). Punishment points are meant for outside session stuff and also as an addition to the mood.

Interaction is definitely awesome. That is what I am looking for in general. As much unique and adjusted stuff as possible that actually interacts with the user. I would suggest giving the variables all the same prefix. In the future I might even handle it more elegantly with an array of ids that represent punishment reasons.
And I miss something like "energy". Maybe someday. Some elaborations how it can work:

Energy - good slave needs to have a lot of energy to serve his Domme properly. This energy comes mainly from tease and denial games (precum, edges, denial and ruined orgasm gives you the most energy points). You can also buy energy drinks/food in the shop. Also there is a positive connection to being in chastity (some light energy increase for each day in chastity and some bonuses at the end of the week/month/year).

The biggest "drainer" of energy is normal orgasm (from internet: "sexual energy “Ojas” is wasted the moment the sexual nerves fire, during a males ejaculation"). Sometimes Domme can be in a mood (to allow you to orgasm in exchange for gold + taken double energy points.

There are activities (like fitness exercises and chores) which also drain energy. How much - depends on the difficulty of activity: pushups drain more energy than stretching, cleaning toilet drains more energy than simple vacuuming. Also it depends how good you are at what you are doing (like fitness level and chore skills). The better you are, the less energy you will loose, so it is good to invest into them for the long run. Also chores can correlate to fitness there (people with high fitness level will have more energy to do chores, so less energy loss from chores). Also spending time in Academy on things which improve your health/fitness or your household activities can help you quicker increase your fitness level or chore skills, what in turn allows quicker accumulate overall energy, because you will loose less on particular tasks.
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

Learning from general RPG games development: thinking about logic of Spicy, we can learn from very well documented and highly customizable RPG games like FATE. Haven't played it and it is a very long read of documentation, but from first impression seams clean and well thought and because of "customize everything" approach ideas can be easily borrowed to TeaseSoftware development:

Docs:
https://fate-srd.com/

Wikipedia:
https://en.wikipedia.org/wiki/Fate_(rol ... me_system)

WebPage
http://www.faterpg.com/

Some examples of RPG game creation templates
https://www.evilhat.com/home/wp-content ... ksheet.pdf
https://www.evilhat.com/home/wp-content ... ksheet.pdf

Final thought: we need some hardcore RPG gamer to the team who can read, understand and simplify all this and then suggest improvements for Spicy. Maybe some day somebody will read this post and volunteer :)
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] SPICY development thread

Post by GodDragon »

lot5000 wrote: Sun Sep 09, 2018 6:13 am And I miss something like "energy". Maybe someday. Some elaborations how it can work:

Energy - good slave needs to have a lot of energy to serve his Domme properly. This energy comes mainly from tease and denial games (precum, edges, denial and ruined orgasm gives you the most energy points). You can also buy energy drinks/food in the shop. Also there is a positive connection to being in chastity (some light energy increase for each day in chastity and some bonuses at the end of the week/month/year).

The biggest "drainer" of energy is normal orgasm (from internet: "sexual energy “Ojas” is wasted the moment the sexual nerves fire, during a males ejaculation"). Sometimes Domme can be in a mood (to allow you to orgasm in exchange for gold + taken double energy points.

There are activities (like fitness exercises and chores) which also drain energy. How much - depends on the difficulty of activity: pushups drain more energy than stretching, cleaning toilet drains more energy than simple vacuuming. Also it depends how good you are at what you are doing (like fitness level and chore skills). The better you are, the less energy you will loose, so it is good to invest into them for the long run. Also chores can correlate to fitness there (people with high fitness level will have more energy to do chores, so less energy loss from chores). Also spending time in Academy on things which improve your health/fitness or your household activities can help you quicker increase your fitness level or chore skills, what in turn allows quicker accumulate overall energy, because you will loose less on particular tasks.
So you mean like a kinda character trait with skilling? Do you want the energy to actually resemble the real life energy of the sub or more like a fantasy only thing?
lot5000 wrote: Sun Sep 09, 2018 6:56 am Learning from general RPG games development: thinking about logic of Spicy, we can learn from very well documented and highly customizable RPG games like FATE. Haven't played it and it is a very long read of documentation, but from first impression seams clean and well thought and because of "customize everything" approach ideas can be easily borrowed to TeaseSoftware development:

Docs:
https://fate-srd.com/

Wikipedia:
https://en.wikipedia.org/wiki/Fate_(rol ... me_system)

WebPage
http://www.faterpg.com/

Some examples of RPG game creation templates
https://www.evilhat.com/home/wp-content ... ksheet.pdf
https://www.evilhat.com/home/wp-content ... ksheet.pdf

Final thought: we need some hardcore RPG gamer to the team who can read, understand and simplify all this and then suggest improvements for Spicy. Maybe some day somebody will read this post and volunteer :)
I actually played quite a few rpgs and I had this dungeon run thing planned with randomized rooms, rewards and tasks.
lot5000
Explorer
Explorer
Posts: 38
Joined: Fri Aug 03, 2018 1:13 pm

Re: [Tease AI Java] SPICY development thread

Post by lot5000 »

GodDragon wrote: Sun Sep 09, 2018 12:56 pm So you mean like a kinda character trait with skilling? Do you want the energy to actually resemble the real life energy of the sub or more like a fantasy only thing?
i see two uses of skilling - one is when character has some 3-4 special skills and it is competitive advantage. It can be used if somebody develops competition moduels with other slaves in Spicy (for example). i am more on the side, that repetitive tasks shall give reward in skill level increase and this level shall have influence on slaves life (i.e. increased fitness level means something good like my mentioned saving of energy, but also it means that exercises become harder and harder).

I like Spicy for the realistic approach and would like to see "energy" as close to real life as possible.
GodDragon
Explorer At Heart
Explorer At Heart
Posts: 790
Joined: Sun Jun 11, 2017 4:30 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch

Re: [Tease AI Java] SPICY development thread

Post by GodDragon »

lot5000 wrote: Sun Sep 09, 2018 6:51 pm
GodDragon wrote: Sun Sep 09, 2018 12:56 pm So you mean like a kinda character trait with skilling? Do you want the energy to actually resemble the real life energy of the sub or more like a fantasy only thing?
i see two uses of skilling - one is when character has some 3-4 special skills and it is competitive advantage. It can be used if somebody develops competition moduels with other slaves in Spicy (for example). i am more on the side, that repetitive tasks shall give reward in skill level increase and this level shall have influence on slaves life (i.e. increased fitness level means something good like my mentioned saving of energy, but also it means that exercises become harder and harder).

I like Spicy for the realistic approach and would like to see "energy" as close to real life as possible.
I think when it comes to real skilling and attributes and stuff it should only be implemented in some side game such as dungeon runs or something else and not during sessions. Of course you might be able to use gold to improve your chances at winning a competition but everything else should come down to real life performance. Energy might be another way to track an attribute in the background such as the mood etc., but we will need to see if it actually helps at all when it comes to module writing.
Post Reply

Who is online

Users browsing this forum: No registered users and 36 guests