let it leave me like a long breath

let it dissipate or fade in the background

(no subject)

Profile

xax: purple-orange {11/3 knotwork star, pointed down (Default)
howling howling howling

Nav

  • Recent Entries
  • Archive
  • Reading
  • Tags
  • Memories
  • Profile

Tags

  • art - 2 uses
  • asteroid garden - 4 uses
  • code - 19 uses
  • demos - 1 use
  • dreams - 5 uses
  • ff7 fangame - 23 uses
  • fic prompts - 13 uses
  • gamedev challenge - 82 uses
  • hell game - 76 uses
  • nanowrimo - 11 uses
  • plants - 9 uses
  • process - 52 uses
  • programming - 51 uses
  • screenshots - 5 uses
  • writing log - 83 uses

May 2025

S M T W T F S
    123
45678 910
1112131415 1617
18192021222324
25262728293031
  • Mar. 7th, 2018
  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    [personal profile] xax
    Tags:
    • gamedev challenge,
    • programming
    posted @ 06:12 pm

    the myth generator is... working slightly more. this is essentially a continuation of this post about the nemesis system, since i'm using the same basic infrastructure. at that point i had gotten an extremely rudimentary form of actions running.

    my current gamedev challenge thing is myth/history generation, which is basically the same exact thing only with a different dataset. the main issue is actions: what actions can do, what effects they can have, and how actors select actions. currently i've added
    1. predicates on actions, so that who can run them can be limited
    2. mutations on actions, so that running an action can change any participant

    i've also tweaked some of the generator settings and made it more argument-driven, because previously i had to tweak the code in main and recompile every time i wanted to change the type of output.

    these are big improvements, but there's still a lot more to be done before this is anywhere close to being usable. on the technical level, i need to add the ability for actions to create or destroy actors (think: a city being founded or abandoned, an artifact being constructed or destroyed, characters being born or dying).

    on a structural level, i need to add in the concepts of time and space -- it's currently possible to have locations and to require two characters to be in the same location to act together, but that would mean having a bunch of actions like ACTION %1 ? %1.location == foo { %1.location @= bar } ACTION %1 ? %1.location == bar { %1.location @= foo } to denote a pathway between the locations foo and bar, and then have every other action have a specific predicate %1.location == %2.location. and that would enforce the same exact map for each run-through of the history, so no randomly-generated maps. it would be a complete mess. what would be really neat is hooking up the graph generator to this, so that the landscape is enforced via having an actual graph representation of its shape, but neither this nor that are really in good enough shape to handle that right now. and there's no concept of time elapsing or any kind of progression.

    it's technically possible to enforce a 'plotline' in actions now, but it's so unwieldy as to be impractical. what would be nice is, like, actors having a set of drives based on their characteristics, and picking actions based on what's allowed by their drives / weighed based on their drives. i don't really know how i would codify that, though -- part of writing my own syntax is figuring out ways to meaningfully and compactly encode things like that, and i don't really have a solid concept yet.

    that being said i should probably start putting together an actual myth-styled dataset now, instead of just reusing the nemesis one. not that that couldn't be a part of it, just, a myth generator necessarily has a much larger scope. meaningful myth generation also definitely requires actions generating new actors, especially if the myth generator only starts with a primordial god or an endless abyss or what-have-you.



    $ ./dist/build/myth/myth ../data/nemesis-data --uniform --initial "HUMAN ORC GOAT_MAN MOON_RABBIT" --action ACTION
    6395022777991598210
    HUMAN: 12185305968000 options
    ORC: 1273221873312480 options
    GOAT_MAN: 165240000 options
    MOON_RABBIT: 5449420800 options
    HUMAN {
      tribe: jackal
      occupation: raider
      wealth: 50
      p: male
      bio: a man of the seven masked tribes. a raider of the jackal tribe, who wear masks in the shape of the desert animals, whose power is taming the wild beasts of the desert, and whose color is brown and grey
      description: a man from the jackal tribe, wearing a jackalope mask. he has blue-black skin with asymmetrical splotches of pale yellow-brown across his back and back, a lean build, with his head shaved bald. his skin is covered in a mess of silvery scars.
      name: nelosh-gikk
      power: 1
    }
    ORC {
      type: ogre
      bio: an ogre, from the southern tribes
      desc: a fat ogre with emerald skin, with leathery patches across his hands and arms. he is towering, half again as tall as a normal orc. his face is covered in a mess of gnarled, tightly-knotted horns.
      name: lužgrok bash-chuckrick
      power: 1
      wealth: 50
    }
    GOAT_MAN {
      clan: dark
      build: solidly-build
      occupation: warrior
      wealth: 70
      bio: a goat-man warrior of the dark clan, from the eastern mountains
      desc: a solidly-build goat-man warrior with a tangled wreath of tightly-curled horns sprouting from his goatlike head. he's got scraggly brown fur, with black skin visible where it thins. his eyes are flat black.
      power: 1
      name: caamtag
    }
    MOON_RABBIT {
      p: female
      bio: a moon rabbit, from the dusty warrens beneath the sand
      occupation: wanderer
      wealth: 50
      desc: she is a tan-furred moon rabbit, with red eyes.
      name: lelifwfe, the wanderer
      power: 1
    }
    HUMAN {
      tribe: jackal
      occupation: raider
      wealth: 50
      p: male
      bio: a man of the seven masked tribes. a raider of the jackal tribe, who wear masks in the shape of the desert animals, whose power is taming the wild beasts of the desert, and whose color is brown and grey
      description: a man from the jackal tribe, wearing a jackalope mask. he has blue-black skin with asymmetrical splotches of pale yellow-brown across his back and back, a lean build, with his head shaved bald. his skin is covered in a mess of silvery scars.
      name: nelosh-gikk
      power: 1
    }
    ORC {
      type: ogre
      bio: an ogre, from the southern tribes
      desc: a fat ogre with emerald skin, with leathery patches across his hands and arms. he is towering, half again as tall as a normal orc. his face is covered in a mess of gnarled, tightly-knotted horns.
      name: lužgrok bash-chuckrick
      power: 1
      wealth: 50
    }
    GOAT_MAN {
      clan: dark
      build: solidly-build
      occupation: warrior
      wealth: 70
      bio: a goat-man warrior of the dark clan, from the eastern mountains
      desc: a solidly-build goat-man warrior with a tangled wreath of tightly-curled horns sprouting from his goatlike head. he's got scraggly brown fur, with black skin visible where it thins. his eyes are flat black.
      power: 1
      name: caamtag
    }
    MOON_RABBIT {
      p: female
      bio: a moon rabbit, from the dusty warrens beneath the sand
      occupation: wanderer
      wealth: 50
      desc: she is a tan-furred moon rabbit, with red eyes.
      name: lelifwfe, the wanderer
      power: 1
    }
    
    ACTION {
      text: nelosh-gikk constructs a secret hideout.
    }
    ACTION {
      text: nelosh-gikk delves into the depths of the ancient ruins, and comes back with riches!
      %1.wealth @= 270 (was: 50)
    }
    ACTION {
      text: nelosh-gikk waylays one of lužgrok bash-chuckrick's caravans, and robs all its valuables.
      %1.wealth @= 280 (was: 270)
      %2.wealth @= 40 (was: 50)
    }
    ACTION {
      text: lužgrok bash-chuckrick delves into the depths of the ancient ruins, and comes back with riches!
      %1.wealth @= 260 (was: 40)
    }
    ACTION {
      text: lelifwfe, the wanderer waylays one of nelosh-gikk's caravans, and robs all its valuables.
      %1.wealth @= 60 (was: 50)
      %2.wealth @= 270 (was: 280)
    }
    ACTION {
      text: nelosh-gikk waylays one of lelifwfe, the wanderer's caravans, and robs all its valuables.
      %1.wealth @= 280 (was: 270)
      %2.wealth @= 50 (was: 60)
    }
    ACTION {
      text: nelosh-gikk delves into the depths of the ancient ruins, and returns horribly mutated into a grotesque monster!
    }
    ACTION {
      text: caamtag and lužgrok bash-chuckrick fight to a stalemate.
      %1.power @= 2 (was: 1)
      %2.power @= 2 (was: 1)
    }
    ACTION {
      text: lelifwfe, the wanderer constructs a secret hideout.
    }
    ACTION {
      text: lelifwfe, the wanderer constructs a secret hideout.
    }
    ACTION {
      text: lužgrok bash-chuckrick delves into the depths of the ancient ruins, and comes back with riches!
      %1.wealth @= 500 (was: 260)
    }
    ACTION {
      text: lužgrok bash-chuckrick delves into the depths of the ancient ruins, and returns horribly mutated into a grotesque monster!
    }
    ACTION {
      text: nelosh-gikk and caamtag fight. caamtag wins!
      %1.power @= 2 (was: 1)
      %2.power @= 4 (was: 2)
    }
    ACTION {
      text: nelosh-gikk waylays one of lelifwfe, the wanderer's caravans, and robs all its valuables.
      %1.wealth @= 300 (was: 280)
      %2.wealth @= 30 (was: 50)
    }
    ACTION {
      text: lelifwfe, the wanderer delves into the depths of the ancient ruins, and comes back with riches!
      %1.wealth @= 250 (was: 30)
    }
    ACTION {
      text: lužgrok bash-chuckrick steals treasure from caamtag.
      %1.wealth @= 520 (was: 500)
      %2.wealth @= 50 (was: 70)
    }
    ACTION {
      text: lužgrok bash-chuckrick and caamtag fight. caamtag wins!
      %1.power @= 3 (was: 2)
      %2.power @= 6 (was: 4)
    }
    ACTION {
      text: lužgrok bash-chuckrick and caamtag fight. caamtag wins!
      %1.power @= 4 (was: 3)
      %2.power @= 8 (was: 6)
    }
    ACTION {
      text: caamtag and lelifwfe, the wanderer team up against nelosh-gikk.
    }
    ACTION {
      text: lelifwfe, the wanderer and nelosh-gikk fight. nelosh-gikk wins!
      %1.power @= 2 (was: 1)
      %2.power @= 4 (was: 2)
    }
    ACTION {
      text: lužgrok bash-chuckrick waylays one of caamtag's caravans, and robs all its valuables.
      %1.wealth @= 560 (was: 520)
      %2.wealth @= 10 (was: 50)
    }


    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    • Reply
Page generated Dec. 24th, 2025 08:15 am
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical