How do you write a game? (Non-technical)

polywog

Forum Fanatic
May 19, 2017
4,062
6,257
When I write a story, it's usually a reverse engineering process. I start with the ending, or outcome that I want, and then figure out a plan of how to get there. The same applies to life really, think of your goal, visualize it, and if you really want it bad enough, you commit.
As you go about trying to reach your goal, you're going to hit obstacles, or run into distractions... these are choices that affect the outcome. Some people want their character to be perfect, but character flaws are what really make a character.

For example I see an odd couple on the street. I wonder what transpired to bring these two together. She's a Scorpio, he's a Leo... there will be blood... but how did they even get where they are? She obviously had a bad breakup, and this rebound relationship isn't going to last... maybe that's the whole point of the game.. The MC had been infatuated with her for years, and she wouldn't give him the time of day, but then her boyfriend started fucking one of the nurses at the hospital where he works, and she got turned upside down over it. Meanwhile the MC had some action going on with a chick in his building, but had called it off when his love interest became available. But ever since he called it off, she's changed, and not wanting to lose the MC has decided to fight for him. Will the MC resist? Will the Scorpio sting, ok that goes without saying, but who will she sting? Will the MC realize that he had her on a pedestal? Will the MC even notice that Scorpio is going to the hospital frequently? Will MC help Scorpio get her man back, revenge? Allowing Scorpio to stab him, so he can infiltrate the hospital, and try to charm the nurse away from Scorpio's ex?

When you have the end in mind, the story writes itself.
 
  • Yay, new update!
Reactions: Cul

TheShadowJacker

New Member
May 31, 2020
12
5
Keep your first games very simple, and variable and event counts low, or else it will be a nightmare. Don't jump into your big ideas in the beginning. If you make an inventory or a store, or a click game in renpy, save it as a template first so that you can always go back and reuse/tweak it. Good luck.
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
Full deterministic games where the player has complete knowledge can quickly lead to degenerate game play as the players learn a single optimal path and never deviate.

Full deterministic games where the player has limited knowledge can quickly lead to pixel bashing/scene spinning game play as the players try to discover what they need to do next.

Partially random games where the player has complete knowledge can lead to save scumming as the players try to force the game onto the optimal path.

Partially random games where the player has limited knowledge can quickly lead to save-heavy games and reloads as the player ventures down a few paths trying to figure out enough about the situation and its consequences too determine which, if any, are acceptable.

A couple of examples from games on the site:

Full Deterministic, limited knowledge
Wife Trainer suffers from players being incapable of reasonably planning because each woman is unique with different responses and different actions the trainer can take. Those actions have both an immediate impact and often a less obvious secondary impact. Since training time is a play constraint, a player cannot try them all. Thus, a player cannot make an informed choice until the 2nd or 3rd playthrough having seen the immediate and longer term results of the initial choices and recorded the ones that appear optimal/pleasing. Since the trainer is expected to be more competent and experienced than the player is at training women, it would make a better game if the player were given stronger cues as to expected results/purpose of each option -- especially the unique options. Why should I consider taking this woman on a road trip on the weekend? What are we going to see/do? What do I expect to gain? Walkthroughs -- either self constructed or community -- are a must if the player wants to hit any specific goals.

Partially random, (mostly) complete knowledge
Superpowered allows a player to generally plan and then be forced to react to the random element -- which women will appear in this timeslot? How much attention will the MC pay in class? What event will occur while on patrol? Some of the variations in result are large enough to incent save scumming. Walkthroughs are more akin to strategy guides -- accomplish this before starting that. A few of the game elements are surprises or poorly telegraphed inside the game and are play is improved by more extensive explanation.
I agree, when you treat games as game, pre programmed software, there are always going to be ways players alter the experience to something different than what the creator intended.

Now in general this seems to be talking about general goals. ie getting power ups in a particular order, responding to particular questions in a particular order, or leveling a stat to a certain point to break the game or at least make it easier.

I think I was still thinking in terms of immersive goals, when talking with jezzoo. for example, what is there to do in a sandbox, what would make it interesting, and in your case what will players do to milk the system.

But what about a system that is, maybe completely deterministic, but is multi-ordered and multidimensional to add extreme complexity?

Multidimentional meaning, the are lots of stats to check, like in an rpg, using charisma, intelligence and perception through out a conversation to notice the lies.

Multi-ordered meaning, only some stats can be increased, and by increasing them you either can start to increases other stats, or you unlock the ability to now work on increasing the other stats, requiring users to progress in a particular way.

basically a complex rpg system.

If most of this is hidden stat checks, you may not know how to go about reaching a particular goal. The only way to cheat the system is for someone to eventually figure out a way to do things, make a guide, and then someone follows the walk through. Does doing this help minimize players ability to cheese the system, or does this make the game worse do to the lack of information, unable for players to improve on their own?

It sounds like there could be an argument of information = fun vs information = cheating the system thus avoiding the fun.

But here is a thought I had last night that could change the arguments. What information are we dealing with? So far it is something like, I want to unlock this character, what do I need to do? and this leads to the above debate question.

If I did carry on with my sand box idea, what would make a sand box fun? Well in order to fulfill its need to deliver fast rewards, then that means there must be a low barrier to overcome. So the amount of information needed is little to none. But then what makes the game fun if everything is already unlocked? That's what was bothering me the other night. I was thinking in terms of lewd content and sex games and getting no where. Now I know I am not much of a reader in games, but I do think context is important, so I tried to think in more broad terms.

I think what keeps a story fun or interesting, is constant conflict. There is always that one goal, and there is always something in the way. With that in mind, you could work with a simple model of, you have a game with a particular goal outlined to players, with each step pointed out to you along the way. this minimizes the lack of information, you just need to follow instruction, like a walking simulator aka renpy. But since it could be said that the final goal is the eternal struggle, long term goal, then the game is no longer delivering on the quick rewards I want to be able to offer in games or seek out in games.

In many games there are lots of side characters to try to keep players interested while they grind through the main story, and often the main story doesn't even seem that interesting (my character wants $XXX money to buy a mansion to get all the girls, why can't they just be happy with few nice girls he's met already, hell he's even fucked a few, why does he still want the mansion, just get married already!) But what if these side characters were the main goal, and progressing along the long term goal only helped with that?

for example, in some games like degrees of lewditiy or trap quest, just about everything is fuckable, so little needs to be done to unlock this. But to unlock particular interactions, you have to unlock characters or go down a particular tree branch of development, such as being a slave. Often going down this branch can result in limiting what the player can do. IE they can no longer hang out with one character if the want to unlock this other character, or other gameplay choices. I find I don't really like this type of design choice myself. What if instead, the long term plan just unlocks more content.

So the game is still low barrier to entry, everyone is fuckable, each character may have their own side quest before unlocking them, but in general you are told what to do so that most of the information is available, and since it is all about doing the mission and assuming you can't fail if you simply try, there is no need to cheese the game system to get better results. Likewise for the long term plans, things are told to you and hints given, and the long terms plan just unlocks more content. ie new areas with new npcs, or maybe 'to do more of the butt stuff, get ass groped 5 more times. Hint, use public transit.' With the general idea being, you can only win more, you don't really lose.

The only example I can really think of where you lose something even though you are winning and growing is innocence. What if you want characters to still be shy and embarrassed, what if you still want characters to be shocked and surprised, intimidated or scared? You often lose these things as the player or other characters become more familiar with things or as more things are unlocked. A simple work around is magic, Being able to revert characters back or in general control the game. Thus its not so much that players have the information they need to control the game to get the results they want, but rather they have the tools in game to get the results they want. And if it is not provided directly, but rather unlocked through game mechanics that take time and effort, if this alone provided the need amount of challenge to keep the game interesting without slowing progression to personal goals too much, would this system resolve both issues. The issue that there is enough that players can execute a plan without issue, and need not cheese the system?
 
  • Like
Reactions: Cul

Cul

Newbie
Feb 25, 2019
96
128
But what about a system that is, maybe completely deterministic, but is multi-ordered and multidimensional to add extreme complexity
You could also throw away the deterministic part away, in a strange mix between AA2 and Doom hah ( ), where the player's interactions let the game write itself. For example (maybe in Rust hah) every character is running its own hash map, and the player's interactions trigger different results, which then are returned to the central stat system, which in turn unlocks different maps. The point being, just as a game tries to recreate fun combat, or a primitive system that feels like a smart AI, trying to do that for the story, the dialogue, and the NPC interactions, may be harder, but could make a sandbox truly feel alive.

And the hash maps would also allow the NPC-NPC interactions of AA2 to go on steroids like Doom, and allow the game to randomly create "conflict," or generating relationships for the player to proc/ruin, etc. Especially if the player can change characters like in AA2.

Though coding that in C might not be fun for you haha. Without mentioning the tree maps would be a lot of dialogue, even if it's mixed with a static dialogue system like AA2 (at <5 Love <5 Friendship X / Y / Z chars can say Hi! / What do you want! / Leave me alone, etc.)

But then what makes the game fun if everything is already unlocked?
And on this specifically, you could also have scenarios like, even after you unlock Ana, she gets in a lesbian relationship with Bibi and now the player can choose to break it or unlock threesomes hah (always a new goal). And the player would have seen A and B interacting before a lot, so it doesn't feel as fake as IF relationship THEN X route.

And after the player is done with every "goal," a new game would generate different relationships and dialogue. Going back to constantly being in "charge" of a hundred different things (I want this girl, I should stop others' attempts / I want threesomes, I need these girls to be friends, etc.) and being rewarded for them.
 
Last edited:

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
And after the player is done with every "goal," a new game would generate different relationships and dialogue. Going back to constantly being in "charge" of a hundred different things (I want this girl, I should stop others' attempts / I want threesomes, I need these girls to be friends, etc.) and being rewarded for them.
now that's an idea. If one could make a flexible enough system, ie each character can have a range of responses that reflect a range of personality types, and an AI that can determine the appropriate response, behavior and personality to have, then being able to reroll different stats each game for different and unique characters could be pretty interesting. Maybe more work but much more replayability.

I don't know why I didn't think about it, other than I may have been thinking of particular characters in mind with particular personalities. But with the way things are being generalized, I don't think I need to think like that anymore.
 
  • Red Heart
Reactions: Cul

Cul

Newbie
Feb 25, 2019
96
128
For some time now, thinking how to make a dialogue system that felt alive, I kept going back to ideas like that, so I could even play it myself, and actually enjoy it, even if I wrote it hah. I think that is one of the reasons. Even if it's a bit selfish.

"You seem friendly" If you ever want company writing thousands of dialogue lines, just let me know hah...
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
I had an old ai project from past rpg projects, where the focus was, reacting. how players responded or what they did impacted ai perspective. for example, you could over hear any conversation, and jump in, or they could jump into your conversation unexpectedly. It would be possible to interrupt each other and how that impacted things. basically going off script seems to be one way to try to make things seem alive. to break expectation.
 

Cul

Newbie
Feb 25, 2019
96
128
Oh about going off script and changing the script, I also wondered, maybe if some more coding happened during the time the player is reading, we could break dialogue into smaller parts which work differently, and then try to mimic a more natural language. In practice one example, we would know the type of interaction (greeting, chat, friendly chat, etc.) and that determines what it is broken into, and the character has moods and stats that open different maps of dialogue and expressions, so an angry NPC chooses semi-randomly between greeting maps + angry maps + insult maps (ugh so tired... HUH who are you? why can't people leave me alone, chosen from 3 maps), and that seems pretty light on resources still, since a hash map reads through text pretty fast, some ways I tested, the dialogue choice near the end after thousands of lines, and it would probably be faster than reading a small .png from disk haha
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
You keep mentioning hash maps, but when I think of hash maps, I more think of it as an optimization tool, not really a logic tool. Something I would use an array to quickly convert one unit till another (ie choice id number to pointer to code that controls the next interaction).

maybe if some more coding happened during the time the player is reading, we could break dialogue into smaller parts which work differently, and then try to mimic a more natural language.
I know someone would complain about it being a tedious mechanic, so how about something that is both. you have basic dialog options, and for those that want to speed through they just select them and move on, and then something to customize or a template, where you could either swap out lines, or select lines from a list, maybe options to restructure the sentence (like injecting a block placeholder for a greeting) and before you submit the response, maybe in order to ensure dialog progression along with the story, players are required to hit a particular subject, but can pick from a list, However the list has different ways of saying it, where it requires the surrounding sentences to be said in certain ways. such as you could try to be really supportive about talking about that 'embarrassing' event, but requires you to have no negative lines that target the other npc as a subject of the sentence.

man, now I really want to plan this out and make a mock diagram for these ideas, but I need to focus on a huge coding project for capstone this Wednesday, and i can't afford to delay.
 

Cul

Newbie
Feb 25, 2019
96
128
Oh yeah, sorry, was thinking of something like, say 0-255 0-255 0-255 is on one side, so then you have

808080 "Hi"
808C7F "Ugh"
...etc.

stats a b c change those 0-255 values and that + random returns dialogue, and then you can insert more lines, while having a limit like in a LUT, which is also 0-255 for RGB, where I got the idea hah.

Oh I hope you have fun on your project, and that you finish school without trouble, Saki.
 
  • Yay, new update!
Reactions: Saki_Sliz

jezzoo

Newbie
May 12, 2020
32
28
Saki_Sliz Cul, not that there aren't good ideas in your discussion, and sorry for being a buzzkill here, but my guess is if you actually start implementing any of the more ambitious goals you describe here, it would crash and burn before you get anywhere close to finishing it, regardless of your dev skills.

The rule of thumb is if your goal is to create something extraordinarily smart and sophisticated, not seen in basically any other game, you'll almost certainly be unsuccessful. Doubly so if this is not just an incremental improvement on something in a previous successful project of yours.

I think even a classic sandbox or a classic complex RPG is too ambitious for a first project, or for a team that has not finished any projects previously. That's why I was trying to focus on standard VN mechanics, with standard limitations, and why candid80 is smart to keep it simple.
 
  • Like
Reactions: hiya02

Cul

Newbie
Feb 25, 2019
96
128
Hey Jezz, looking back, this second page does feel like a different thread, haha. But Candid's original was from Feb, and hopefully he won't mind.

Yes, to be clear, I don't think we two were suggesting much of this to Candid. But I appreciate your concern. A cold water bath sometimes is needed, hah.

Though we might be missing the context that Saki has years of experimenting in different fields, in different coding languages as well. I think we also enjoy the complexity, hah. For example, Saki mentioned before a rig which calculates the frames in-between with Python, and a custom skin shader.

At the end of the day, from our small interactions... I believe Saki can do it, if the game is made with love. ♡
 
Last edited:

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
I find there are two things that kill projects... other than time/motivation.

Art can be a major barrier, so I've tried my own hand at art. I'm too much of a perfectionist and hate everything I make, so that hasn't helped, but I've simplified down my art style and focused on the things I think are key, with speed being important and gotten something like . I don't even want to do basic shading or coloring because I'll get caught up on the details of it and thus slowly grow to hate it.

The second barrier is the speed of programming. It is hard to keep teammates motivated when they have nothing to do and everything stalls while the programmer has to lay the foundational stuff so that others can either slap in scrips or art. I try make an effort to make a bunch of drag and drop scripts for common unity game mechanics, such as that VN like world navigation, dialog systems, an error messaging system, enabling in-game patreon log in to unlock more features, etc, so that things can try to progress quickly. In one team project we outline a type of screen play scripting system to auto animate characters. Basically renpy in unity.

And that is assuming there is a competent programmer. Trying to learn programming along the way can greatly affect a project. I've done about 12 years of academic coding and game making, very simple projects nothing too major. Oddly enough I want my first major project to be a nsfw one.

They say a first project shouldn't last more than 30 days to make, or at least planned at first. What I find is that for new people, they don't realize how what seems like simple and trivial ideas or game mechanics, has to be broken down at a technical level and could drastically cause a project to be a lot bigger than they first expected. This is true for both art and code. maybe they want an ai that tries to talk and pick the best options, using known and unknown player stats, but this could turn out to be a NP optimization problem that takes exponential time to solve and the game seems to be crashing when in reality it is solving an NP problem. Or art, maybe you want to have all these scenes and locations in your story, and you count 12 total and think it sounds small, but if it takes 24 to make a background (such as in my case most of the time) that is 12 days of work, but I can only spare about 4 hours, so what seems like 12 days, expands to 48 days (1.5 months), and then if I can only do this 4 of the days of the week that time doubles, and maybe I could be doing other more important things, all the while the project may be changing or new better ideas come along.

Sticking to just one thing, one idea for a project is pretty hard.
 

OsamiWorks

Member
May 24, 2020
176
186
Saying a lot of true things Saki. I have a few years of garbage under my own personal project before I realized nothing I do will never have the skills if I try to hard. I doubt anyone will see this but a lot of things that seem like learning barriers can be often be sped up.

Learning to create art is surprisingly easier than people think. Making it can take a while but as long as you always know what to change you can improve it. Most could draw at a better than average level in a week if they read fun with a pencil by loomis. Programming is the same way, read through a book like automate the boring stuff with and learn the basics, I didn't even know how to functionally apply my knowledge of programming until I had to make a ping sweep to iterate through a subnet in python and then it was like my world opened up.

To get back on topic for the non technical stuff, I can't emphasize enough that your tools make the whole process smoother no matter what it is. For writing specifically, using a software like Scrivener is such a boon. (If you run linux tho, I like to use cherrytree since you can beautify everything with a bit of xml) It will allow you to keep track of branching paths but don't reconnect them. I don't think you can symlink in Scrivener but you shouldn't let your story get too funky like that anyway
 
  • Like
Reactions: Cul and Saki_Sliz

jezzoo

Newbie
May 12, 2020
32
28
new people, they don't realize how what seems like simple and trivial ideas or game mechanics, has to be broken down at a technical level and could drastically cause a project to be a lot bigger than they first expected
Pretty much, yeah. It's both tempting and easy to start dreaming about grand designs without working out what that means or realizing what doing that would actually entail. We've all done it. The thing to ask yourself is what stopped all the people before you. It's probably not the lack of ideas. Those really are a dime a dozen. I guess everyone has to get burned a few times before practicing enough restraint to have a chance of success.

I'm not against progress, bring it on. Heaven knows we don't need another schoolboy incest VN 0.1. I know the feeling - you see all the basic, cookie cutter schlock and you think "Come on, I can do better than that". And maybe you can. I'm doing my own original thing, as much as anyone.

It's when I see terms like "non-deterministic" and "AI" when solving non-trivial problems when I feel like calling a timeout. Smart people have been playing with AI for years, but I've yet to see a convincing attempt at it solving tasks that require actual understanding of meaning.

An interesting recent attempt has been AI dungeon, a "game" generating dynamic text adventures in realtime, in response to your commands. They use an AI text prediction model trained on real fiction. I've heard good things about it. The actual results are... kind of fun, but barely more than a parlor trick.
You can try it online here
(free registration required)
When it works, the AI does a good enough job of keeping a surface level illusion of understanding of what is happening in the story. It feels like the responses are written by an intelligent person, like there is meaningful thought behind it. Then you think about it for a second and go "Wait, what? That's nonsense". The text is grammatically correct, it even manages to retain some context, but it's still full of non sequiturs. So overall, better than your typical VN :).
 
  • Like
Reactions: Saki_Sliz

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
I guess everyone has to get burned a few times before practicing enough restraint to have a chance of success.
absolutely!
It's when I see terms like "non-deterministic" and "AI" when solving non-trivial problems when I feel like calling a timeout.
Understandable. To be honest I was hesitant to even say those terms simply because it may sound like I am just talking out of my ass. If I try to get serious with talking about ideas, I'll go into detail and make walls of text. Half the time, most people aren't ready to handle such technical terms thrown at them. I am realizing this more as I follow game development (Star Citizen) and most everyone asks for the update reports to be less technical or be in layman's terms, and sitting over here asking how? Trying to explain terms really makes simple conversations not so simple. But that's why I'm having fun posting here, you guys seem to get things.

Oh, yes, if it sounded like we suggested a real chat AI for a first game, you were right for the "timeout" haha.

What I mentioned is more about constantly picking from a hat. So a tired NPC with Love>5 picks from 100 tired lines, an angry NPC with hate>5 picks from 100 lines, and so on. I just added a "small" twist on previous game mechanics. Can say it may be cleaner than IF/Else a thousand times, but it would be harder on the writer, as you have to write more options, and plan more.

Then the maps I mentioned, for example in a website, can link book names and book reviews, so you enter a name and it gives you the review(s). Instead of if/else, some "stats" make up the name, and you get a dialogue line back. They are used for optimization, as Saki said.

PS: oh think I should play this one, thanks for the suggestion.
in general, I was thinking less of a general AI, and more of, listing as many possible conversation types, classify them, identify various styles or key details that make each conversation stand out, and then try to find out what makes one type of conversation similar to all the other matching conversation type. The goal being to identify the key features of conversations, and how they impact the conversation style. Basically mapping out a behavior tree but for dialog and how it effects the progression of information, story, or character development, and then similarly developing the necessary subsystems to track all these states, such as the simple love>5, but with less generic and more context-sensitive datapoints and how they impact conversation parameters. The end goal being not needing to code a dialog tree but instead to use the established conversation parameters to let the AI know what is going on with the conversation, and the AI can then react with the appropriate response or behaviors or even style (such as being sassy). It would then be up to creators to design character talking styles, personalities, and conversation styles. the idea for me at least is you can have direct artistic control over the style of the game and encounters, since I really want to focus on exaggerating the mood for a toonish adventure.

How good the system is really depends on one's ability to effectively quantize conversation styles down into more basic parameters or patterns, because it will be up to these parameters to try to recreate conversation. kinda like how neural networks will have a ton of of inputs, then reduce the data to a few nodes to represent key ideas or values, and then use another system to extrapolate those basic ideas into detailed results (such as an image of a bird as an output).
 

jezzoo

Newbie
May 12, 2020
32
28
constantly picking from a hat. So a tired NPC with Love>5 picks from 100 tired lines, an angry NPC with hate>5 picks from 100 lines... it would be harder on the writer, as you have to write more options, and plan more.
As I understood this, it sounds technically simple, but I question the benefit. You could write a 100 "tired" lines, but if they're to be used interchangeably (i.e. without a change in meaning) and without contextual dependencies, they'd have to be entirely generic and uninformative.

When writing/editing stories, a useful rule is "the parts that don't add anything should be removed". Your algorithm, I suspect, would add generated lines that do not (can not) add anything to the story. Try adding anything meaningful and you're setting yourself up for nonsensical statements, discontinuities etc. But maybe I'm missing your goal here.

Then the maps I mentioned, for example in a website, can link book names and book reviews, so you enter a name and it gives you the review(s). Instead of if/else, some "stats" make up the name, and you get a dialogue line back. They are used for optimization, as Saki said.
As Saki_Sliz previously pointed out, again you're mixing design and implementation details. You risk getting stuck on using a specific tool (like maps) and losing sight of the big picture. Optimization of implementation is again better left for later.

everyone asks for the update reports to be less technical or be in layman's terms, and sitting over here asking how? Trying to explain terms really makes simple conversations not so simple
There's that glib saying that unless you can explain something to a 5 year old, you don't understand it yourself. To be fair, you do have to lie a bit to the child, but I think it's still a useful way of thinking.

How good the system is really depends on one's ability to effectively quantize conversation styles down into more basic parameters or patterns, because it will be up to these parameters to try to recreate conversation
What you're describing is a generic , possibly of just textual communication (the exact scope of your suggestion is unclear to me). There have been attempts to do what you're doing here, for all knowledge, like . I haven't used it, but it can probably be useful if applied carefully.

It is my suspicion, that once you start thinking how to design and configure your system, with the goal of using it in a practical way, the problem will turn out to be so complex, your system will collapse under its own weight long before it starts working. And even if it did "work", there's half a dozen reasons why it wouldn't improve games.

You could narrow the scope, limit the degrees of freedom, and do compromises until you end up with something that does a worse job at fun storytelling than a fixed conversation script with a couple of hardcoded, context specific parameters.

I really hate being the negative nelly here. Maybe there is a sweet spot, somewhere in between a strong AI (a human dungeon master) and a classic script, and I'd love if you (or anyone) could find it and do something useful with it. I'd be the first to congratulate and admire the author. But so far, this seems so far from success that I'm not holding my breath.
 
  • Like
Reactions: hiya02

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
993
There's that glib saying that unless you can explain something to a 5 year old, you don't understand it yourself. To be fair, you do have to lie a bit to the child, but I think it's still a useful way of thinking.
I heard of that, and I use to believe it was true, that a true master can teach to others...
But then I went to college, and taught a bit in college as well.
You could tell the students the freaking answer, and they still get it wrong.
I've heard professors complain that you could try to explain something a million times, and it would be like they didn't hear you.

I believe if humanity could figure out clear communication, and properly exercise it, we could solve all the world's problems.

For education what I find is, students are observers first, everything you tell them is recorded and remembered as an observation. Even the key idea, the final thought process that they need to use to "think" like an engineered to get the right answer, is still just an observation, one out of a list of notes. To remove the need for notes on the final exam, you would need to give them time to get in the mental thought process, to exercise the observations like a muscle until they are not things to be memorized, but intrinsically understood, and allow students to recreate all the previously mentioned observations on the spot so they don't need notes but don't need to memorize them either.

It is my suspicion, that once you start thinking how to design and configure your system, with the goal of using it in a practical way, the problem will turn out to be so complex, your system will collapse under its own weight long before it starts working. And even if it did "work", there's half a dozen reasons why it wouldn't improve games.
Probably, but I find the exploration a great learning experience, and trying to analyze things that people do can really help learn and understand other people more (or worse). If anything I am doing it for the shake of a fun exercise for myself.

You bring up complexity. An example would be a Table Top RPG (TTRPG). I really like anime, the progression of power and battle at least, and there is one anime "Overlord" which is inspired by Dungeons and Dragons. Of course, this was a show, so the fights had a bit of a 'for show' aspect to them, but I wanted to capture this and the Overpower feeling of higher-level characters that the show often portrays. I think I did get it figured out, but because I focused on so many details and getting the feelings just right, there is no way the system would work for a TTRPG. I had long thrown out the idea of using dice since you couldn't role enough for higher-level characters, the system HAD to be calculated by computer, and there were so many checks it was tedious. The idea was to replace Role play with tangible numbers, but as a result there was no room to role play, so I had to scrap the idea. One of these days I'll pick out the key things I want from it and scrap the rest and try again, learning from my mistakes hopefully and building a simpler system, testing to see how it feels to play and not just going off of hypothesis, but right now I'm a player not a DM, so I'll wait a bit till I'll work on things. But all in all, I've worked enough failures and few successes to be familiar with what you mean.

There have been attempts to do what you're doing here, for all knowledge, like . I haven't used it, but it can probably be useful if applied carefully.
Similarly, in programming, there are multiple different paradigms, or ways of programming. There is a subfield called, declarative programming, where you don't program how to think, but what to think. Logic-based declarative programming works a lot like how you talk to and train the Cyc. Now Cyc is still far to broad and generic for me, to complex for what I want. I don't really want the AI to understand and subject matter, for me I am just thinking in broad strokes. trying to represent entire sentences or turns in conversation flows. Limiting users to construct or select sentences from only a few limited options, instead of typing. This way, sentences can be viewed by the computer as a list of stats, and not having to worry about understanding language.

For example, people have a bad habit of getting defensive, this can come off less about "I don't want to talk about it" and more of an attack against others depending on how people defend themselves, ie "Fuck you, You didn't hear me complaining when..." I could identify the goal of a particular sentence or collection of sentences as having a 'defensive' trait, and the 'change subject: xxxx' trait could be attached to the second dialog, and the computer could then enable some hidden dialog that relates to the new subject. players could either try to stay on topic (if those options are still available) or go off topic, not realizing this isn't just an extra dialog tree that can be explored but instead it completely changes how the character may see you depending on how defensive the player themselves get. For example, for most of this conversation, I haven't tried to say you or anyone else here is wrong at any point, or i disagree, doing so would bring up our defensive. We are all right, from each of our own small perspectives, so instead, we all simply elaborate further on each of our different perspectives to keep the conversation going while still trying to deliver our points.

Are you familiar with rhetorical theory, the concepts of arguments and story telling? It uses quite a bit of psycology. I try to use it as the backbone of most of my writing and planning for writing. It is from this perspective I've explored these ideas from, but it seems everyone has a different idea of what rhetorical theory is, so I usually can't explain my ideas without having a working prototype and extensive code documentation.
 

jezzoo

Newbie
May 12, 2020
32
28
I find the exploration a great learning experience, and trying to analyze things that people do can really help learn and understand other people more (or worse). If anything I am doing it for the shake of a fun exercise for myself.
Now I see the academic in you :). I do agree that doing a project like this is a good way to explore new ideas. Opportunity costs aside, it might be worth doing it just for the learning/understanding, even if the results aren't readily applicable.

I could identify the goal of a particular sentence or collection of sentences as having a 'defensive' trait, and the 'change subject: xxxx' trait could be attached to the second dialog, and the computer could then enable some hidden dialog that relates to the new subject...not realizing this isn't just an extra dialog tree that can be explored but instead it completely changes how the character may see you depending on how defensive the player themselves get.
These are all intriguing ideas, and I get in principle what you're saying. Manually annotate parts of the text with properties which will then be used by some sort of logic to achieve.. a mimicry of natural language? Hopefully, eventually, at least in some ways superior to a classic, bespoke script.

The key problem I have with this idea, I think the problem space will grow too fast once you get into the nitty gritty details, and once you try to design beyond one or two specific examples (both are beyond the scope of our discussion). Like with your "defensive" example - only a small portion of all statements could be described as defensive, thus this specific property+handler would be used very rarely. To achieve smart/dynamic functionality with more (all?) statements, you need many more traits. And much more trait handling logic, if other traits are supposed to be handled differently, which they probably would have to be. If you want NPCs "completely change how they see you" based on a defensive statement, this implies some dynamic model of their mind, via which the logic handlers for various situations and traits necessarily have to be connected. Once the handlers interact with one another, doubling the number of traits doesn't mean a doubling of complexity/dev time, but much more. You can see how this quickly explodes into something incredibly byzantine. Maybe it's just me who can't wrap their head around the problem.

You could suggest using fewer, but more generic and widely applicable traits. Like "statement" and "question", or "factual" and "subjective". By definition though, the more widely applicable a trait, the less information it carries, and the less useful it is. I don't think you can sidestep the complexity problem, no matter how you slice or dice it.

A non-academic, pragmatic complication is testing. Any simplification of design+implementation will save you amazing amounts of time later on. In your defensive example, if the logic permits various reactions depending on the state of the NPC mind and other externals, you'd have to test whether they react appropriately in a wide range of situations (the number depends on how well you can isolate the tested logic). In a static script, the process is streamlined by minimizing logic, instead pre-defining a few static responses for this situation.

Another possible issue is communicating the game state and behavior to the player, so they can make informed decisions, especially if your game is not standard in any way. It's tempting to leave them to naturally interact with the NPCs as if it was a real person, but that might bite you in the ass once the NPC doesn't behave realistically.

Other classic problems common to all games are providing challenge to the player, pacing of gameplay and story, telling an interesting and coherent story. If it's to be a good game, your system should account for all of those.

Are you familiar with rhetorical theory, the concepts of arguments and story telling?
Not really, not in a formal way. I guess it could come useful when outlining the goals, scope and high level behavior of your system.