Nightgames Mod (v2.5.1.2) updated 2/11/17

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
What addiction could be added for the Player without making it overpowered though? Even if addictions functioned 100% correctly, I'm not sure that could go along with our human ability to think. It and our special multi-classing powers are pretty potent.

Well, in order to do that the addictions need more standardized (or easier) conditions for decay and removal, then the player could unlock them at some attribute level.

I'll be collecting and typing up some text to support the player's addictions taking effect.
 

jskil5

Well-Known Member
May 17, 2016
77
0
srsly airi's parasites are screwing with somthin i tried to use the quit match aftr i couldnt start this fight only to get another msg about her parasites messin with angel i had close the game log included
 

Attachments

  • Untitled.png
    Untitled.png
    305.5 KB · Views: 14
  • nightgames_log.txt
    1.3 MB · Views: 7

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Here's a player-perspective draft for them applying a BREEDER addiction to a victim:

This is in psuedocode - I mostly copied and pared down the existing text into something readable.

BREEDER

protected String describeIncrease() {

HIGH
VICTIM's eyes start to burn with a feral need to breed you. It's clearly undermining their willpower.

LOW
Your primal influence seems to be getting to VICTIM, their feral need to breed is eroding their staying power.

MED
VICTIM's movements slam into you as hard or fast as possible, burning with a desire to breed. They won't last as long in this fight as long as they are like this.

DescribeDecrease() {

LOW:
There's a small desire in VICTIM's eyes to fuck you silly, but it seems it's no longer a driving force for them.


MED:
The need in VICTIM's eyes to breed with you seems to be shifting downwards. That won't last very long.

HIGH:

NONE:

describeWithdrawal() {

HIGH:
VICTIM's face suggests they are looking to find and seed any pussy they can find. They are already hard at the prospect of mending their unfortunate situation.



MED:
VICTIM's arousal is driving them wild with the need. The need - to breed.



LOW:
Having not fucked you seems to be getting to VICTIM.



DescribeCombatIncrease() {
VICTIM's unnatural breeding instincts are slowly but steadily showing all over their face.

describeCombatDecrease() {
VICTIM relishes at the prospect of letting loose inside of you, subduing their instinctive needs for now.



describeMorning() {

//THIS COULD BE UNIQUE FOR EACH GIRL.



initialMessage() {

if (inWithdrawal) {
return "Arousal rages through VICTIM's body at the sight of you, you should expect them to give you a good fucking.";
}
return "VICTIM's instincts howl at the sight of you, urging them with every heartbeat to fuck " + you as soon as possible.
}

describe(Combat c) {

HIGH:
The animal part of VICTIM'S brain cultivated by your addiction is screaming for them to to sink their cock into you and fill you with their seed.

LOW:
VICTIM's face seems like they've had plenty of beeder foreplay. Looks like they are moving on



MED:
Your little addiction trick has VICTIM all geared up to fuck you.. They can't seem to think of anything else they'd like to do more.

ADDING IN CORRUPTION:

CORRUPTION

All variations of changes in tick():

The corrupting taint you planted inside VICTIM changes them even further, and...

describeIncrease() {

case HIGH:
Your corrupting darkness threatens to overwhelm what purity remains inside of VICTIM, and it's a constant presence in their mind.
Your corrupting darkness threatens to overwhelm what purity remains inside of VICTIM, and you can almost feel that they've almost given up fighting it.

case LOW:
The blackness you poured into VICTIM is still there, and it feels like it's alive somehow; a churning mass of corruption and depravity.

case MED:
The corruption in VICTIM's soul spreads further, seeping into their flesh and bones.

describeDecrease() {

case HIGH:
The corruption in VICTIM's soul is receding, but they'll need to do more work if they are to be entirely free of it.
The corruption in VICTIM's soul visibly recedes a bit, taking away some of their demonic attributes along with it.
case MED:
Whatever strange thing you've done to VICTIM has weakened somewhat and is no longer taking all of their concentration to resist it.

Whatever strange thing you've done to VICTIM has weakened somewhat and your gaze doesn't feel as dangerous as before.
case LOW:
Whatever strange thing you've done to VICTIM has weakened considerably and is no longer corrupting their every thought.
Whatever strange thing you've done to VICTIM has weakened considerably and some of their old gentleness is showing through.

case NONE
The last of the infernal corruption is purified from VICTIM's soul, bringing them back to normal. Well, as normal as they ever were, anyway.

DescribeWithdrawal() {

case HIGH:
Your corruption is working hard to punish VICTIM for not feeding it today, and it will cause all kinds of trouble tonight.
case LOW:
Something is not quite right. The blackness you put in VICTIM is stirring, causing all kinds of strange sensations. Perhaps it's hungry?

case MED:
The powerful corruption within VICTIM is rebelling against not being fed today. Expect the unexpected tonight.
case NONE:

describeMorning() {
Something is churning inside of VICTIM this morning. It feels both wonderful and disgusting at the same time. They think they hear an echo of a whisper as they go about their daily routine, pushing them towards evil acts.

initialMessage() {
The corruption you placed in VICTIM resonates with you, growing even more powerful and troublesome than before.

The corruption you placed in VICTIM resonates with you. You can feel it starting to corrupt VICTIM's mind and body!

describe(Combat c) {
//PROBABLY OK

Like it? Want me to keep going?
 
Last edited:
  • Like
Reactions: corentine

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
REJOICE - I COME WITH GIFTS:

Additional Character descriptions!

DARK GODDESS (Divinity > 15)

Reyka is no longer just a regular succubus – as if her being a succubus wasn't already scary enough: Standing before you is a dark goddess radiating a terrifying aura of unholy power. Reyka remains tall in stature, but her alluring face and beautiful body now call to you to prostrate yourself before her and submit to her will. Her hands with their red-polished nails now look as horribly cruel as they do enticing, gentle, and soft. Underneath, her long and perfectly formed legs and delicate feet stand in an imposing posture. Behind her, you see a pair of magnificent looking bat-like wings, commanding you to submit to her embrace and worship her.

Her gaze both captivates you and terrifies yo - one of indescribable pleasure and unknown power. She'll do worse than suck out your soul...far worse.

DARK MARA – CYBERDEMON (Conditions can depend on stage of corruption)

Mara seems to have gotten too much of the demonic juju. Despite going high tech, {self:pRONOUN}'s rig of equipment – her fancy rig of various gadgets and computerized glasses seem to have something newer and more sinister behind them. Her eyes seem cruel and evil, bent on serving darker, more demonic powers. Her body seems a little different, too.

Underneath all of the equipment, Mara the cyberdemon has the same cute, mischievous expression that you're used to...

DARK CASSIE (Corruption)

{self:SUBJECT} has changed a lot since you started the Game. Maybe a little too much. Behind the sweet smile you remember, there's a new cruelness and perversion – a dark influence. Her magic spellbook and cloak are both black and sinister-looking.{self:pRONOUN}'s been dabbling in the arcane, and it may be your imagination, but you feel like you can perceive the power radiating from {self:direct-object}, mixed with a darkness that wasn't there before. {self:pOSSESSIVE} magic seems to have given {self:direct-object} more confidence and {self:pronoun} seems even more eager than usual...especially with the help of whatever new toys her dark powers give her.

DARK SPIRIT JEWEL (Corruption)

Something has changed about Jewel's demeanor, and you're very sure it's not good. It's hard to put your finger on it, but despite her toned, human-weapon like body, she seems to have a dark composure to her. Behind what looks like a calm composure is a violent and cruel arrogance. Her movements are deliberate and fluid, like a martial arts master, but with the cruelty and brutality of a demon. You might have made fun of her before, but whatever's gotten into her doesn't care for games or love.

DARK AIRI (Corruption)

SLIME
Well, it's pretty obvious Airi seems to be affected by some corruption. The formerly blue figure looks a little more black than blue, and her eyes seem to be tinged red instead of black. Airi still sports a cute face and a tight body, but her thighs end in a giant ball of slime. Indeed, while her body might look human at a distance, she seems to be composed of a soft, translucent gel."

HUMAN
Airi looks at you in disapproval. The lithe Japanese girl sports a cute face and a tight body with shoulder length black hair almost covering her bright intelligent red eyes. You're not too sure what she's thinking, so you approach her cautiously.


BAD KAT (Corruption)

Now that's just wrong. Whatever happened to Kat, it's clearly wrong. Despite Kat being older than you – the cute, short and slim girl displays a jarring mixture of demonic and feline traits. Despite this, you're certain that she's stronger than she looks. Her adorable cat ears poke through her short, strawberry blonde hair. She looks a bit timid, but there's a gleam of desire in her eyes – a dangerous, red, evil gleam.
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
Well, in order to do that the addictions need more standardized (or easier) conditions for decay and removal, then the player could unlock them at some attribute level.
Its not that. Its that, even when they are appropriately balanced and functional for the enemies, I don't think they'll be balanced for the Player is the thing. The Player is already really strong and versatile; just stacking these passives on top isn't a good idea I think. Not unless they had ridiculous requirements like

Insatiable Spirt
Req. 30 Seduction, 30 Cunning, 21 Animism, Lvl 30
Your animal spirit's burning passion can infect others with the Breeder addiction. You lose 20 Animism and Cunning as your spirit strains at the edge of your control.

or something. Actual numbers pulled out of my butt, but it gets the idea across I hope. Those traits are really strong in some cases even when used by a sometimes questionable AI. I don't think any of the trait requirements we have to go by as examples offer anything to offset the traits' very real power level when combined with intelligence.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
I'm a fan of whatever's good the the NPCs is good for the PC, and giving back what you get is very satisfying. Right now, though - addictions are very strong and are nearly permanent problems in the field, which is why I advocate first refactoring them so they are have consistently valuable triggers, increases and decreases, and especially removal.

There's a lot of balance work to be done - especially with effects that stack up hundreds or thousands of temptation...

After that, we can look at letting the PC get some revenge on the girls. "What's good for the goose..."
 

dndw

Well-Known Member
Aug 27, 2015
456
20
While obviously the existing system must be fixed first, I don't think giving players access to the same addictions is a good idea. The current ones, at least theoretically, match and complement their character's personality, but the player doesn't have one of those. At least, none except what the actual human playe chooses to ascribe to them.
One thing we could do is make additional addictions which requires high numbers in at least two attributes to unlock. That would be a fair amount of work, though. Even better would be some kind of modular, build-your-own-addiction system. For example, let's say I want an addiction which is triggered by excessive use of temptation skills, causes random mental status effects normally and limited mojo in withdrawal, and gives characters a resistance to temptation by everyone else. That's four components, which could well be json-ified. It would be just a matter of having enough modules to make it fun to play with. Maybe this could do with some experiments after the bugs are resolved.
 

dndw

Well-Known Member
Aug 27, 2015
456
20
Yes, I am aware. I probably haven't tested enough with he so far. I'll probably have some time to fix the remaining bugs this weekend, but no promises on that.
 

12centDime

Active Member
Mar 16, 2017
41
5
I'm a fan of whatever's good the the NPCs is good for the PC, and giving back what you get is very satisfying.
We'll see if/when we get to it I suppose. I really don't think they are that easy to balance for both NPCs and PCs in a game like this, but I could be wrong. I just think that sort of power should be behind debug menus, or different game modes, or heavy requirements and costs, or something. That way, they can still be balanced for the NPCs and still be not too overwhelming or pigeonholing on PCs.
That said, I will admit that it would be satisfying to use addictions too though. And...
One thing we could do is make additional addictions which requires high numbers in at least two attributes to unlock. That would be a fair amount of work, though. Even better would be some kind of modular, build-your-own-addiction system.
Addictions that don't leave out particular build paths and that don't have to be somehow tuned such that they are good for both enemies and PCs at the same time?
Yes. This. 100% this. I love this.
Did I mention this? xD
 
Last edited:

dndw

Well-Known Member
Aug 27, 2015
456
20
I tired around a bit yesterday, but did anyone manage to run it on an android tablet?
Unlikely. If someone has some spare hosting space we might (very big *might*) get it online using Webswing. Otherwise, no, just maintaining the desktop version is plenty of work already.

Because I am terrible at prioritizing and had a spare fifteen minutes, I wrote up an example illustrating the modular addiction system I thought of. For your consideration:
{
"name": "test",
"display": "Test Modular Addiction",
"description": "Description for test",
"requirements": { "attribute": { "att": "Seduction", "amount": 20 } },
"triggers": [
{
"name": "trigger",
"display": "Test Trigger",
"description": "Slightly increases addiction when 20+ temptation damage is dealt.",
"type": "nightgames.status.addiction.modules.DamageTypeTrigger",
"damageType": "TEMPTATION",
"threshold": 20,
"triggerWeight": "LOW",
"message": "{other:SUBJECT-ACTION:tempt} {self:name-do}!"
},{
"name": "ootrigger",
"display": "On Orgasm Trigger",
"description": "Increases addiction if target cums while Charmed",
"type": "nightgames.status.addiction.modules.OnOrgasmTrigger",
"orgasmOf": "TARGET", //as opposed to SELF or EITHER
"requirements": { "status": "charmed" },
"triggerWeight": "MEDIUM",
"message": "{self:SUBJECT} came while charmed by {other:name-do}!"
}
],
"activeEffects": [
{
"name": "charmedEffect",
"display": "Cause Charmed",
"description": "A 20 * combatMagnitude% chance to cause Charmed",
"type": "nightgamesmod.status.addiction.modules.CauseStatusEffect",
"status": "nightgamesmod.status.Charmed",
"duration": 2,
"baseChance": 0.2,
"scalesWith": "COMBAT", // or REGULAR
"message": "{self:NAME-POSSESSIVE} addiction caused {self:direct-object} to be Charmed!"
}
// similar for other mental effects...
],
"withdrawalEffects": [
{
"name": "capMojo",
"display": "Mojo Cap Effect",
"description": "Reduces maximum mojo by (50 * magnitude)%",
"type": "nightgamesmod.status.addiction.modules.CapStatEffect",
"stat": "MOJO", // or STAMINA, AROUSAL, WILLPOWER
"baseAmount": -0.5,
"scalesWith": "REGULAR",
"message": "{self:NAME-POSSESSIVE} mojo is limited!"
}
],
"beneficialEffects": [
{
"name": "tempResist",
"display": "Temptation Resistance",
"description": "Provides a resistance to temptation when it's not caused by the player",
"type": "nightgamesmod.status.addiction.modules.DamageTypeScaleEffect",
"damageType": "TEMPTATION",
"baseFactor": -0.2,
"scalesWith": "REGULAR",
"message": "Having been tempted so much by {other:subject}, {self:subject} is less affected by others' efforts.}"
}
],
"increaseDescription": {
"LOW": "Just got the addiction",
"MEDIUM": "Addiction is getting worse",
"HIGH": "Addiction is very strong now"
},
"descreaseDescription": {
"NONE": "The addiction is gone",
"LOW": "The addiction is getting very weak",
"MEDIUM": "The addiction is waning a bit"
},
"combatIncreaseDescription": {
"LOW": "In-combat effects are starting to appear",
"MEDIUM": "In-combat effects are getting worrisome",
"HIGH": "In-combat effects are now probably debilitating"
},
"combatDecreaseDescription": {
"NONE": "In-combat effects are gone. phew.",
"LOW": "In-combat effects are probably negligible now",
"MEDIUM": "In-combat effects aren't quite as bad now"
}
}
 
Last edited:

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
@dndw

It's missing the ability to add and remove traits?
It's also missing the means to manage its own addiction strength or removal via decay, overload, and safe removal.

Following the line of discussion - player addictions can be done as their own versions, but I'm sure we walk away with a stronger program and game if we modularize everything and design it better.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Quick grammatical error:

Her should be she - wrong tag used.

"Your mind is completely preoccupied by Angel. You didn't worship today! Will her be angry? What will you do if she is? You aren't going to be able to focus on much else tonight."

EDIT:

What follows is a bit presumptuous, but I wanted to do a complete pass on the trait list. I copied and delimited the entire trait list then commented on any that I thought needed some work.

Addictive Fluids
Fluid addiction should subside quickly as it's very common.

Affectionate (Kat daytime sex)
Should be something the player can get – playing the Daytime should be a thing.

Beguiling Breasts (Cassie Breasts focus)
Not sure how long 50 turns is, but a bit much unless Cunning can mitigate it.

Biting Words (unavailable?)
I like this, it should be implemented.

Breeder (Kat Addiction)
Bite might require a rename to breeding bite?

CeilingStalker (Airi Mimicry focus)
Would a Slime attribute user be able to use this, too?

Clingy (unavailable)
Might be nice to have this in.

Confident Dom (Jewel Physical focus)
Perhaps this should have a cap?

Cute
Would like to see this as a tag for Mara and starting trait for player.

Deft Hands
Perhaps this should have a negative trait called Clumsy?

Devotee Fervor (Angel Followers focus)
With double pets this totally screws the action economy of the game.

Divinity
Divine Charge isn't very clear to me, but I think expanding on this might make divinity more fun.

Dominatrix (Jewel Addiction)
Maybe doing the opposite to Jewel should reduce this addiction?

Draining Ass (Jewel Anal focus)
Might require Rename to not confuse Drain?

Edger (Jewel Martial+Physical focus)
Temptation damage is really something – I like this trait but it might be one tempt source that needs a nerf.

Enthralling Juices
This can cause a Obey and Nothing Loop that's incredibly sadface.

Erophage (Angel Nymphomania focus)
Perhaps rename this trait? I like it a lot.

Expert Googler
I'm not sure how well this scales.

Fetish Trainer (unavailable?)
It gets much harder to inflict fetishes yourself as a player later on – this might be good to develop.

Fitness Nut
Same situation as Expert Googler.

Hair Trigger (Starting Weakness)
Might require rebalance after other things - a low priority pass.

Inebriating Toxins (Airi Parasite focus)
This was pretty funny. I'll have to test it more.

Last Stand (Angel Nymphomania focus)
Moves might be too good?
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
Following the line of discussion - player addictions can be done as their own versions, but I'm sure we walk away with a stronger program and game if we modularize everything and design it better.
Being better designed is always an upside, but why is the game automatically better if the enemies' addictions are generalized like the players? Isn't the only thing that matters that they are easy to understand with minimal effort?

The enemies are pre-created and any synergies are well known and don't have to take factors like player choice into consideration as much, allowing them to just have more power within whatever they do. Too, AI is wonky. Even at its best, it still probably won't function exactly as intended. Their addictions help mitigate this, or can even be overtuned to help make up for it or other weaknesses inherent in their level-up kits.

In contrast, players can, given a set of choices, consistently choose the right choice. Players can also choose exceedingly better complimentary traits, using that addiction far better than an NPC would. But if player's and NPCs have exactly the same addictions, the NPC addictions have to take all this into account and can no longer be customized and appropriately powered to fit their characters.

I just don't see why it would necessarily be better to have their addictions be exactly the same as the player's. A player's addiction has to take so many more factors into account that it should be weaker than/different from the enemies' I think.

Affectionate (Kat daytime sex)
Should be something the player can get – playing the Daytime should be a thing.
//This is something the Player can get. Its a Daytime Sex trait given by Kat.

Beguiling Breasts (Cassie Breasts focus)
Not sure how long 50 turns is, but a bit much unless Cunning can mitigate it.
//Both Cassie and the Player can't get this until Lvl 47. Seems to be an auto-orgasm trait unless you resist? I'm...actually not sure how important that is that late in the game, especially since the Player should be able to block it with blindfolds. That level requirement should be a consideration though.

Biting Words (unavailable?)
I like this, it should be implemented.
//Atm, I think only Sarah gets this? I could see this being something the Player could get too, yeah.

Clingy (unavailable)
Might be nice to have this in.
//Available as Airi Daytime Sex activity.

Cute
Would like to see this as a tag for Mara and starting trait for player.
//Don't agree. Innocent Appearance cuts damage by a pretty large chunk and is probably too strong in the beginning of the game where everyone is far more prone to physical action I think.

Fetish Trainer (unavailable?)
It gets much harder to inflict fetishes yourself as a player later on – this might be good to develop.
//Available at Fetish 15, Player lvl 20. I haven't ever noticed it getting hard to land fetishes, but maybe I just haven't played far enough? Always get bored at about Level 30, since inflicting any Fetish with a value over 1 wins the match effectively.

Last Stand (Angel Nymphomania focus)
Moves might be too good?
//Players get this with Seduction 25, alwaysready, sexTraining1, and Player Lvl 10. You're able to play around the fact Angel has it so I don't think it's too strong there. It seems silly with Animism(like alot of things), but is otherwise fine I would think. Enemies tend to have more Willpower than the Player unless the player starts actually putting points into Willpower(In which case, they deserve to be rewarded with better use of this trait, I think), or starts losing matches on purpose. I believe having more incentive to actually win matches and fixing Animism are better ways of balancing this than actually changing it. Also possibly nerfing Strong-Willed somewhat.
As for the pseudocode: ...I need to actually look at the addiction code for a better background on what that means apparently. xD Too many questions with answers that are probably obvious if I just check. Will come back later when I have time to enlighten myself.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
@12centDime
The reason I say that is that more generalized design creates systems that can handle additions or extensions without rewrites or janky-awkward implementation.

Look at how flags, traits, and effects are processed. They all have similar roles in how characters grow and change but they are all implemented differently and across so many classes. Examine how several things are currently implemented in code. With at least 2 people working on things on top of something someone else designed years ago - without proper documentation or plans for expansion - the mod has several things implemented across many classes.

Not without reason - there's good reason why some things are the way they are. but no one can look me in the eye and say that nightgames can't be cleaned up and have several things rearranged and ordered, including the core mechanics.

At the end of the day - there's a lot of bugs, not enough narrative or content functionality, several game and program elements are obsolescent, and it's very hard to contribute new stuff.

If you're not convinced about addictions - that's fine - no big deal arguing about it. I just want to be able to engage and respond to the other characters more than spamming the same sequence of abilities against them during the games. More scenes, more narrative possibilities, more giving back what the player gets.

This is why I've been trying to contribute content - but whoever's working on Rosea, Samantha, and Especially Eve need to get back to it and finish them out. Eve doesn't even have a portrait and it bugs the game.
 
Last edited:

12centDime

Active Member
Mar 16, 2017
41
5
Oh. Ok, I see what I'm missing here. Most notably, I somehow thought you were also talking about giving PCs the same addictions as NPCs, and

Following the line of discussion - player addictions can be done as their own versions, but I'm sure we walk away with a stronger program and game if we modularize everything and design it better.
that is very much -not- what you said. Sorry!

Looked at the addiction codes and looked back at the proposed pseudocode. Yeah, I would say these are similar enough to generalize the bases of all the addictions without sacrificing NPC addiction flexibility. I still think the Player shouldn't have the same addictions as the NPCs, but that wasn't the argument.

Sadly, I'm unsure on what to say about the pseudocode now that I have a general grasp on what it all does and how it might interact. It looks promising and DarkSinfulMage's suggestions sound helpful, but not personally sure on how to contribute here.

It does beg some questions though. If you add addictions and withdrawal effects to enemies, are you going to allow the enemies to have more interruption-style mid-daytime cutscenes with the Player to assuage the craving? Do you think the Player should be able to turn them down if the opponent chooses to come to them? If the Player gains this power, do you think the NPCs should too(defeating them too much might cause it, not helping them in an ambush when you have the option maybe, other quests or activities you might think of)? Should the addiction change how they move on the map during the night(Like, Eve hunts and Cassie retreats. I haven't actually checked that those stipulations do anything, but assuming they do)? If so, you may or may not need some more in there.
 
Last edited:

dndw

Well-Known Member
Aug 27, 2015
456
20
I agree that generalizing everything would make the code a lot cleaner, but on some point that ship has sailed long ago. Traits, for example, are so varied that to make them modular you'd need a thousand possible triggers and effects, and then check for those trigger pretty much every other line of code. Addictions are more confined, so it may be possible to overhaul the existing ones. Not sure how Reyka's will fit in, but the others should be doable.

@12centDime Having the NPCs approach the player during the day sounds great. It'd be a lot of writing, which, well... But it shouldn't be very difficult to fit in mechanically. Turning down NPCs and having them turn down the player seems like a good idea as well, for when their affection is low. Maybe you could even bargain with them; get your fix in exchange for some negative effect during the next night... Plenty of room to expand.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
I agree that generalizing everything would make the code a lot cleaner, but on some point that ship has sailed long ago. Traits, for example, are so varied that to make them modular you'd need a thousand possible triggers and effects, and then check for those trigger pretty much every other line of code. Addictions are more confined, so it may be possible to overhaul the existing ones. Not sure how Reyka's will fit in, but the others should be doable.

I disagree - That's because of the existing variety of traits and the way they are processed. Assuming that two characters check for the effects of a used skill in the same way - you don't need to abstract method those - they can be coded in fewer places. Traits have grown to share functionality with character flags and effects. If we strictly enforce what flags and traits are for, then they can be streamlined. Yes, it's work.

Use skill -> Skill checks for traits -> resolve

I'll work on something myself to see if I can get the same range of functionality with cleaner code. Ideally, there should be a folder of trait files just like skills and characters and effects. You can work on them at the same level and they carry their own stuff with them for use.

@12centDime Having the NPCs approach the player during the day sounds great. It'd be a lot of writing, which, well... But it shouldn't be very difficult to fit in mechanically. Turning down NPCs and having them turn down the player seems like a good idea as well, for when their affection is low. Maybe you could even bargain with them; get your fix in exchange for some negative effect during the next night... Plenty of room to expand.

I'm not familiar enough with combatscene and other types, but I like the idea of getting a fix before combat? You know, like being approached before the challenge is given.

This also requires knowledge of the day-night cycle and battle setup - I haven't looked.
 

mddesigner

New Member
May 7, 2017
2
0
26
Hello ,
I tried to play the game , so I launched the terminal (mac ) then run the code : java -jar <file name .jar>
then I got this :
Could not find file data/clothing/defaults.json

java.io.FileNotFoundException: data/clothing/defaults.json (No such file or directory)

at java.io.FileInputStream.open0(Native Method)

at java.io.FileInputStream.open(FileInputStream.java:195)

at java.io.FileInputStream.<init>(FileInputStream.java:138)

at nightgames.Resources.ResourceLoader.getFileResourceAsStream(ResourceLoader.java:48)

at nightgames.Resources.ResourceLoader.getFileResourceAsStream(ResourceLoader.java:43)

at nightgames.items.clothing.Clothing.buildClothingTable(Clothing.java:32)

at nightgames.global.Global.<init>(Global.java:178)

at nightgames.global.Global.main(Global.java:1316)

Current active directory is /Users/maliohammad

java.lang.NullPointerException

at java.io.Reader.<init>(Reader.java:78)

at java.io.InputStreamReader.<init>(InputStreamReader.java:72)

at nightgames.items.clothing.Clothing.buildClothingTable(Clothing.java:32)

at nightgames.global.Global.<init>(Global.java:178)

at nightgames.global.Global.main(Global.java:1316)
any idea about this ?
thanks , and sorry for my first post to be like this (I found this forum just today ) :D
 

dndw

Well-Known Member
Aug 27, 2015
456
20
@mddesigner The game is complaining about not being able to find its data files. You probably
  1. Did not extract all files from the archive,
  2. Moved the jar away from the other files, or vice versa,
  3. Are not invoking the terminal command from the game directory (this should be a possible cause, but I'm not 100% sure since it's OSX), or
  4. Don't have read permission on the files. Which would be weird, unless you manually granted yourself permission to the jar and then run it through a proxy user or some such black magic.
 

mddesigner

New Member
May 7, 2017
2
0
26
@dndw thank you very much !
at first I just run the java code , without getting into the directory , so after using cd (folder path ) every thing worked fine
 

MotoKuchoma

Well-Known Member
Nov 3, 2015
288
59
I havent been in the loop since the update in the topic title, has there been any progress so far and what was done?
 

dndw

Well-Known Member
Aug 27, 2015
456
20
@MotoKuchoma This is the changelog for RC1:
dndw:

Major new features:
- Flexible Match system
This is mainly behind-the-scenes stuff. It's a major overhaul of the match system which will allow us to implement new match types much more easily. Of course, since I was the one who made it, it also completely broke everything. It's somewhat less broken by now, but still the main reason for the test release
- Team Matches
The first new match type using the new system!
- Players are grouped into teams of two or three.
- One of the team members is the captain. The captain moves around on the (reduced) map and leads during fights. The other(s) function like pets.
- Everyone on the winning team gets a point, not just the captain.
- Team matches have a 20% chance of triggering when the player is at least level 15.

Other new stuff:
- Tutorial
It's a lot like The Silver Bard's, but with different text. It also additionally covers the basics of transformative items. You'll be prompted to watch/play (there are minor choices) the tutorial when you start a new (non-advanced start) game. The tutorial offers no benefit whatsoever aside from information, so you're not mising out on free XP or something by skipping it.
- Focus Skills
Not Focus, that was already there. There are three new ones: Focus: Foreplay, Focus: Sex and Focus: Recovery. Each confers upon the player a 10-turn, unremovable status.
- Foreplay focus: Better at foreplay skills (anything which causes pleasure but isn't fucking), meaning you deal more pleasure but sustain less, does the opposite to fucking skills (and more strongly, at that) and reduces mojo gain.
- Sex focus: Basically the opposite of Foreplay focus, but more extreme in its modifiers and doesn't affect mojo.
- Recovery focus: Increases pleasure from all sources, and decreases all pleasure output. In return, it doubles mojo gain, halves mojo use, restores 10% of your maximum stamina per turn, and lowers arousal by 20% of max per turn.
Naturally, only one focus can be active at any one time. The AI is not particularly smart about these new skills yet, but it does know that the Sex focus is good when it's trying to fuck you.
- Added a variant of Drain Energy for the Oral Pin position. It's funny, because Drain Energy is actually Suck Neck, so Suck Neck can now be used from Oral Pin...
Bug fixes:
- NPCs now actually fight each other again. This got broken when the fight system (not the match system, it's different) got overhauled and no one noticed for months. Since then, they only got XP from fighting the player and through threesomes. Oops.
- You now get properly Flatfooted when ambushed in the dorm showers.
- Frottage is no longer usable from the Facesit position
- Embrace (Reyka's new position) no longer gets body parts mixed up when using a tail on the sub's pussy.
-

Logical Kink:

- Added a brand new Quest system. These are persistent challenges which remain across multiple matches. The actual effects are completely generic, so without further ado:
- Added the Buttslut Quest. If this is active, the other characters will try to make the player a, well, butt slut. There is no way to actually active the quest yet in-game, but you can add the "ButtslutQuesting" flag to your save file (all the way down at the bottom). In Logical Kink's own words:
If you win a fight, you get an attribute point depending on who you beat.
If you lose a fight by being assfucked, you gain a point for one of eight effects (each effect has a separate point count), depending on who beat you.
//Airi: increases ass size by floor(sqrt(points)), increases struggle difficulty when penetrated by 1.0*points
//Angel: Causes player to have a chance each turn to present ass to a visible cock equal to 0.05*points
//Cassie: Causes player to be enthralled on initial anal penetration for a number of turns equal to 1.0*points
//Eve: For a cock in the player's ass, the chance of fetish formation is increased by 5%*points, and any cock fetish magnitude increases while anally penetrated are increased by 0.01*points
//Jewel: increases the dominance of stances where the player is anally penetrated by 0.2*points
//Kat: Each turn while anally penetrated causes 3.0*points of your stats to turn into submissive (like corruption)
//Mara: Increases anal sensitivity by 0.25*points
//Reyka: Receiving cum in ass increases lust by 30*points
- Added some (HUGE) new victory scenes. These will be a bit tough to trigger, though. They require that the opponent (Cassie or Angel, so far) wins by fucking the player's pussy, not with a strapon, and that they have done so at least 10 times before.
- Added another, more easily accessible victory scene to Mara. She needs to have her level 10 class, and she needs to win by fucking you. It's almost the same conditions as the other two, but without the 10 prior wins.
- Added a new daytime scene for Cassie. You need to have over 10 points in Arcane, and Cassie needs at least double what you've got. She also needs a dick. Sensing a theme here? I am.
- Added the heatedsemen trait. It drains stamina when coming into contact with the opponent's skin.
- Made it possible to set the player's name, font size, default starting strength and weakness, and XP rate in custom starts.
- Made the font size in skill buttons scale along with everything else
- Made Shamed not removed on orgasm (not sure how I feel about this one...)
- Added a new variation to the Behind Footjob position, which adds assfucking to the mix.
- New skill: Growl. It unlocks at 15 Animism, and can only be used against players afflicted with Kat's Breeder addiction. It maneuvers the combatants so Kat can initiate sex soon after. It's geared towards Kat having a dick and fucking the player, but it works the other way around as well.
- New skill: Kneel. It only transitions to the Kneeling stance. You get it at 10 points in Submissive.
- New skill: Offer Ass. I'll let you guess what it does. You need 10 points in Submissive and a pussy (that last bit is probably a bug).
- Some new fetish stuff:
- The fetishCharmer trait gives a character a chance of inflicting the Charmed status when increasing a fetish.
- The new Manipulate Fetish skill allows one to exploit a powerful fetish in one's opponent. It will cause Enthralled, but also lowers the fetish magnitude by a full point. You need 25+ of the Fetish attribute, and whatever body part your opponent happens to be craving.
- Fixed some text issues
- Added a bunch of futa-related images.

witchlook:

- Prevented one of Jewel's defeat scenes blocking another. They now have a 50/50 chance of being displayed.
- Genderized some of the random comments, also some small fixes
- Genderized match modifiers
- Actually, genderized lots of stuff
- Typo corrections
- Cleaned up some code

Add to that approximately 1.32 shittons of bugs. Then for RC2, just half the bug count. The third version SacredFerro uploaded contains two extra starts, one of which is unstable and the other unreasonably difficult.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
Been working on code ideas to clean up or extend nightgames and ended up re-engineering the whole game out of some older engine I wrote. Took about 2 weeks.
You can currently navigate the daytime and nighttime map AND cycle correctly between day and night. Combat structure and mechanics aren't in yet but it's coming along.
Everything being constructed of screens/scenes really does clean up the narrative. Implementing features from nightgamesmod in my own engine is pretty fun because it's not straightforward and copying it outright doesn't work because it's very different. The daytime runs on the same stuff as the nighttime, so you have two equal parts of the day game and strategy wise if you truly wanted. Inline scenes are gone - everything is scenes, so both transitions and additions and packaging of them save a lot of space and make them much MUCH easier to make without invading different classes.

Pretty proud of myself, right now. I haven't programmed this much since lewdchaos.

As for the mod - provided I can add XML save support, I'd like to suggest we rewrite Characters and Scenes so that characters carry their own defined common set of shit with them in completion, with abstract methods so they can just implement things themselves. (Part of this is that the girls have definitely evolved past the original feature set, so the question of "What is a Character?" has grown out of control) I've not written individual scenes for my test character, but all the functional lines are similarly abstract as it is here, but I think eventually I will be able to have both implementation and content separated and packaged, making it way easier to make a character and not touch all sorts of files to implement their features. The same goes for skills, flags, and traits. There's also greater support for some things I like about the mod. :D

It's not gonna be easy to tear it down to rebuild it.
 
Last edited:
  • Like
Reactions: kuschelpuh

dndw

Well-Known Member
Aug 27, 2015
456
20
Wow, that certainly sounds intriguing. I'd love to have a look, if that's possible. It's quite obvious that the code really needed some cleaning (the 'engine' was, I believe, designed and written by a first-year CS student, and it shows), and as scary as a total conversion sounds, that might well be the only way to tackle it. It sounds like your setup is very modular, which would also be great.

Not much I can say on a technical level at this point, other than that as long as the data model hasn't changed too much the save conversion should be pretty easy. I'm sure there are dozens of JSON<->Xml conversion libraries. Just don't use IBM's JSONx. That stuff is so horrendously ugly I'm pretty sure any decent virus scanner would delete it and then overwrite the space 32 times for good measure.
 

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
The key is in how you use things extended via Scene. It's an abstract class, meaning that you will need to create scenes that play(), but the power in that is as so:

Scenes can play scenes.
Every screen in the game is a scene.
Scenes load their own buttons and options (OR you can define them yourself!).
Areas in the game are scenes that have their own information.
Traveling through areas is just traveling through scenes.
Moving things around is just a matter of processing each area, which are ALL SCENES.

There is tremendous narrative and programmatic power in doing it this way.

The way it's done in my version is:

Scene -> NightArea and Daytime Scenes (easily replaceable with Daytime Scenes so you can have a daytime map). When a scene changes another scene is called.T

1. The nightgame map gets set up and tokens placed. The timer starts. you play until it counts down. Every area checks the countdown before playing out or continuing the game. Each area finds moves/makes buttons based on the same method and state of the tokens in the area.
2. An outro is played, the scene has a button that takes you to the daytime. the same process happens. various things take various time. Countdown to night.
3. Night's intro scene is played. Map is set up, Intro places the player and then plays the NightArea's scene where the player token was place. Play from there and repeat.

HOW we could get this to work in nightgamesmod:

It'd be a whole new game...If I were to apply what I got here to nightgamesmod, I would do a few things:

- Much better use of OOP - through OOP you can leverage Serializable to export and import them. AI strategies, Effects, Traits, Skills - all of em carry their work with them by themselves.
- Restructure the GUI and programflow into different instances of scenes.
- Characters and Skills carry their own data and implementations with them. Combat should just be two characters using skills on each other - everything is resolved inside the onUse() of the skill used instead of diving into the classes of other mechanics.
- Strongly define various mechanics and types - Characters have a well-define set of features common to all to be implemented or skipped.

If this is okay to be done - there's a few steps to be done in this process:

1. JavaDoc pass on all abstract classes.
2. Redesign of Program Flow, redesign of where data will be and how it's saved and loaded. Save that for later.
3. Replace many bits and pieces with Objects. (Status effects easy target.)
4. After consolidating Status effects, traits, and Skills, start working on program flow.
 
Last edited:

DarkSinfulMage

Well-Known Member
Nov 18, 2016
253
44
41
The following is the ADT layout for various classes I wrote that will clean up several sprawling parts of nightgames:

By converting all these bits and pieces into status effects and storing them in each character, this is made much easier to access, evaluate, and customize:

Each one has Individual effects inherited, but can adhere strictly or not to types.

StatusEffect would eliminate a lot of sprawl in how statuses are made, built, and processed.

Code:
public abstract class StatusEffect {
protected String m_Name;
   protected String m_Description;
   protected String m_Cause;
   protected int m_TurnsRemaining;
   protected int m_Magnitude;
   protected boolean m_IsStackable;
   protected boolean m_StackCount;
 
   public enum StatusType{
               AttributeBuff, AttributeDebuff,
               Exhausted, Stunned, Unconscious,
               StanceFire, StanceWater, StanceWind, StanceStone, StanceVoid,
               Alluring, Protected, Shielded,
               Enthralled, Horny, Frenzied, Tranced
   }
   protected StatusType St_Type;
 
   abstract public void check_Start();
   abstract public void sayEffectStart();
   abstract public void doEffectStart();
 
   abstract public void check_Continue();
   abstract public void sayEffectContinuing();
   abstract public void doEffectContinue();
 
   abstract public void check_End();
   abstract public void sayEffectEnd();
   abstract public void doEffectEnd();

}

I'm in the process of working on GameAI, which will be self-contained in each Character.

This is not complete, but this is what I have so far given what the game requires:
Code:
public class GameAI {

   protected String m_Name;
   protected String m_Description;
   public enum Character_Mood {
       NONE,                //default mood.
       confident,            //Will attack.
       dominant,            //Will humiliate.
       sad,                //Will be submissive and not attack.
       angry,                //Will be reckless and not consider risks
       scared,            //Not attacking, will avoid anything.
       nervous,            //increased chance of waiting.
       desperate,            //Will take great risks
       horny               //??? 
   }

   public Strategy m_MainStrategy;
   public Strategy m_BackupStrategy;
      
   //MAP RELATED
   public void decide_Destination(){}
 
   /***/
   public void decide_Movement(){
 
}
 
   //DAYTIME RELATED
   public void decide_Purchase(){}
   public void purchase(Character Self, Item I){   Self.getM_Inventory().add(I);   System.out.println("DEBUG: " + Self.m_Name + " just bought a " + I.getM_Name()); }
 
 
   //COMBAT RELATED
   public void decide_Skill(){}
   public void parse_Possible_Skills(){}

   public void update_Mood(){
     
   }


Here's a question:

How closely related are Stances and Effects in Nightgames in terms of fucntionality? My implementation right now is that every character has a CurrentStance, but functionally these could be combined as some Stances are temporary (Like effects) and may stack.

Just a reminder: A few pages back I submitted some alternate descriptions for characters - still would like those implemented. :D
 

kuschelpuh

Member
Mar 23, 2017
17
1
33
to "facefuck" you need
15 points or more in fetish
you need a dick or strapon
you need to be naked (bottom)
not inserted, not behind, need to stand in a stance that is flagged as in front, also in a dominant stance. Also not bound/winded/stunned or whatever

public FaceFuck(Character self) {
super("Face Fuck", self);
}

@Override
public boolean requirements(Combat c, Character user, Character target) {
return user.get(Attribute.Fetish) >= 15;
}

@Override
public boolean usable(Combat c, Character target) {
return getSelf().canAct() && c.getStance().dom(getSelf()) && c.getStance().prone(target)
&& (getSelf().crotchAvailable() && getSelf().hasDick() || getSelf().has(Trait.strapped))
&& !c.getStance().inserted(getSelf()) && c.getStance().front(getSelf())
&& !c.getStance().behind(target);