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
  • Feb. 26th, 2018
  • xax: purple-orange {11/3 knotwork star, pointed down (Default)
    [personal profile] xax
    Tags:
    • gamedev challenge,
    • plants,
    • programming
    posted @ 04:34 pm

    okay gamedev challenge reportback

    again

    i mean as should be expected at this point

    this was on my list as "evolution/genetics system", and it was something i kind of put on there because it was a thing i had always wanted to do, but it was down near the bottom when i just started listing unrealistic longshot ideas, because like... genetics seems hard? genetics seems really difficult and completely unrelated to any code i've written ever.

    so then it was kind of a surprise to be idly thinking about my enumeration code and have this train of thought like "it would be nice to be able to walk around inside the deck and see the values as they change, rather than only having a single index that tells you nothing about the structure of the value. i think you could tracked how values were added together you could get a list of all the independent axes of interaction, so you could actually get an n-th dimensional rectangular prism representation of the enumerable space you're building up. and then it would be possible to get a list of all adjacent values, and randomly walk through the possibility space. ...you know that is sounding a lot like random mutation in a genetic space"

    SO THEN i spent a while putting that code together (and as you have seen in some of the posts about Data.Enumerable here i figured out lots of it but not all of it), and then i started working on actual plant rendering, since plants are a decent start in terms of simulating evolving things. at first i started by reimplementing some of my really old l-system code, and then trying to code up various l-systems that were mentioned in the algorithmic beauty of plants. i didn't get super far in, only to chapter 3, but that's deep enough to get to some fairly fiddly systems.

    after a while i kinda put together my own l-system setup, by having a plant data structure that could generate an l-system expansion; there are some screenshots of my generated plants on my code screenshots tumblr.

    but the actual simulation of plants growing in a real 3d space is... a lot more intricate than just running an l-system. i have been reading a lottt of academic papers over the past few weeks, some provided by friends who have journal access, but mostly pirated off of scihub, so, thank you scihub for existing or else i would have had to spend like $500 on downloading papers (or obviously more realistically just not being able to do it at all)

    i'm not going to get into the nitty-gritty details, but from my reading it sounds like it's still a bit of a hassle to manage plant growth as driven by light and water absorption. l-systems just kind of expand, they don't really respond to their environment, and while there's some study into environmental-response l-systems there's not a huge bulk of papers. there are some really neat l-systems that do manage nutrient distribution, but it seems like they do that by running two completely separate 'root' and 'plant' systems and kinda gluing them together at the base and somehow sending communications through them. so while i did get a 'genetic code' (my plant data structure) and a way to mutate, crossbreed, and grow it, i didn't get a full simulation working, since that would mean... actually simulating growth and pollination and seed dispersal, or at the very least a fitness metric that vaguely imitates that, leading to a second generation being selected.

    still, all of this is going to be really invaluable for when i return to this at some point and try to get nutrient flows working. the goal here is a little plant simulation that properly absorbs water from the ground and light from the sky and stores those in specific parts of its body and uses energy stores to grow further roots and leaves. that's a way's away, not the least because i'd have to figure out how to formulate that as an l-system, but i made a lot of good progress here.

    • Previous Entry
    • Add Memory
    • Share This Entry
    • Next Entry
    • Reply
Page generated Jan. 3rd, 2026 04:02 am
Powered by Dreamwidth Studios

Style Credit

  • Style: (No Theme) for vertical