Shoutbox (Disabled)

Procedurally generated characters

Discussion in 'Feedback and Wishlist' started by MirceaKitsune, Jun 2, 2017.

  1. MirceaKitsune

    MirceaKitsune Active Member

    Messages:
    137
    Likes Received:
    34
    Since I posted about my ideas regarding procedurally generated games in various places, I thought I'd do so for Amorous as well, granted I see the idea working very well for it. This is obviously a possibility for later, but one I find very worth considering... it would also be something no game in the style of Amorous has done so far. It might sound crazy to implement at first, but please hear me out all the way on this.

    My suggestion is having procedurally generated characters throughout the world, with random appearances and personalities and background stories. Each time you start a new game, a random set of traits is chosen for each character. In practice, every player will meet and date a character that's designed on the spot, which no one else has ever seen or met before.

    Now I know what most of you must be thinking: "This is impossible to do, it would require a super advanced AI and developers paid $1000 per hour for their work". It might seem like it, but as a programmer I can think of smart and simple ways of achieving something like this easily. It all boils down to reusing assets in a smart way, from graphics to bits of story (text snippets). Here's how I envision the procedure step-by-step:
    • The code starts by first generating the personality of that character. Each trait is basically a variable between 0 and 1, defining how strong that trait is. For instance: 0.75 shyness means the character will be shy much of the time, or 0.9 dominance means the character will be a dommy in most cases.
    • Based on those traits, the code next generates the story. It does so by connecting predefined segments of story based on what course of events this character is likely to follow. Bits of dialogue are essentially hand-picked and mixed together in logical order, to best match what we know this character is most likely or unlikely to do / have done / aspire doing. An example: If the character has a quiet personality, the code randomly picks one of the stories designed for the more classy characters, where the date starts in a location such as the restaurant or museum... where if the character also has a submissive personality, they will tell you about having had an abusive boyfriend / girlfriend in the past.
    • Next the code picks the character's physical appearance, based on knowledge from the previous two points (the character's personality and their story (namely their past)). Needless to say, this requires assets and animations that can be flexibly interconnected and swapped, as well as colorized freely for maximum ease... just like the player customization screen at the start of a new game. Different combinations would be registered to different ranges of different personality traits, alongside decisions about the character's species or gender. There are too many examples to offer here, but just one for consistency: A character with a sloppy personality will wear a simple t-shirt rather than a dress, and have messy hair.
    And that's pretty much it: The player will encounter this character when visiting the club, and discover who they are and what they can expect once talking to them! Obviously I'm suggesting this as a separate game mode, in no way as a replacement for any of the default characters which should remain as is... though personally I'd go for implementing a game customization menu, where you can choose which characters the world you start will contain (both random and predefined). It would also be nice if random characters could be saved and exported, ideally using the existing json format... we could very well have a thread designed specifically for sharing random characters we "discover" in the world :D

    Lastly, I know some people might ask another question: "This sounds cool and all, but why would it be worth the effort to design this"? And my answer in a nutshell would be "unlimited replayability"; Most video games as well as every movie in existence suffer from a fatal disease that dooms them to be forgotten, which is the viewer ultimately having seen everything and getting bored of watching / replaying. Games such as Minecraft on the other hand, which make maximum use of procedurally generated content, are still fun to this day (and possibly for decades to come) because you will have never see everything and there's always something new to do. If it can be done with a voxel world, surely it can be done with interchangeable dialogues that connect to each other based on a few random values.

    Not only would this make Amorous possible to play periodically without getting bored, but it would also be an extraordinary achievement in and of itself: I haven't to this day seen any virtual world that can generate a character and their entire story procedurally this way... yet common sense dictates it's not that hard to do using simple maths! Imagine if Amorous was the first to achieve such a thing, and various headlines would say "Furry dating simulator first to achieve procedurally generated people with complex personalities" ;)

    So what are your thoughts on this? Would you also be interested in such a thing? Can and should it be attempted? Might this ever be made into a possible plan for the future?
     
    Last edited: Jun 2, 2017
  2. FurLovingDragon

    FurLovingDragon Member

    Messages:
    41
    Likes Received:
    12
    I must say - you had some inspiration of my idea (see here; click that link!) and made an expansion for it. This sounds really cool and stuff, but there's one other question coming to my mind:

    Can this also be used in upcoming games?

    That is the question I'm most curious about, but nevertheless: Great thinking here! ;)
     
  3. Lennian

    Lennian Dark Lord of Team Amorous Team Amorous

    Messages:
    2,207
    Likes Received:
    935
    From a technical perspective, this is little to no work to setup. The hard part is making a believable, coherent and real backstory for a character that doesn't feel rehashed. You need quite a big library of stories you can mix and match together... and most likely a ton of variations on that same story. I like the idea, but it's just too heavy content-wise to be feasible for Amorous.
     
    SkyLeone and Gatsby like this.
  4. MirceaKitsune

    MirceaKitsune Active Member

    Messages:
    137
    Likes Received:
    34
    Sorry, I didn't get around to reading that thread. Don't worry though, I didn't steal any ideas :) If you want to see what spawned this debate, take a look at this thread on the Blenderartists forum (similar idea for 3D animation).

    I can see your point. Although I think it depends on the level of detail we'd go for, since something like this can be approached in multiple ways: If a story branch takes place every few lines of dialogue, it would indeed be very complex and messy... however if we were to have a handful of full story segments (like say whole dates), and probabilistically map them to a range of personality variables, it would barely be a challenge compared to your average branching story.

    Of course, the bigger the predefined story segments are, the more repetition will be noticeable... defeating the purpose of permanent replayability. Ultimately it would have to be a balance between "larger puzzle pieces for less work, but less random content" versus "smaller puzzle pieces for more work, but more random content".

    There is however a format that would be quite lightweight, while offering enough randomness to give purpose to the idea: Simply have predefined stories for every significant mix of personality traits, so there's basically a main story for each type of person and circumstance you could expect to encounter; This too would require a significant asset base, however stories for more personality combos can be added gradually by volunteers (we could start with as little as 8 or so base stories). Within each story, there are only a few lines of dialogue that change based on the random personality variables! For instance, each story decides at which point the character will tell you about their past... when that point is reached, the character simply says a different background story (in a few sentences) based on what their personality traits give most sense for you to hear. What is your opinion on such an approach?
     
  5. StarfallRaptor

    StarfallRaptor Member

    Messages:
    31
    Likes Received:
    12
    Clever, clever. Also, an interesting way to maybe add some depth is to do something like the Concession random character generator (a spreadsheet with a set of variables, and then a random selection from each category). So, as their path progresses, it pulls characters from that spreadsheet, and injects them into it. EG, as an ex, or as a sort-of rival for the date's affection, etc.
     

Share This Page