Development Forum |
|
|
Lurhstaap
|
7/15/2016 | |
Well, I am using Genetics Kit, so there you go. XD It's all good.
Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage" |
Geat_Masta
|
7/16/2016 | |
Lurhstaap wrote: Well, I am using Genetics Kit, so there you go. XD It's all good.
All about having the right tool for the right job! With half lives a hex editor is the way to go, with lobes: not so much. Most of the things on chris double's website about the C2 genome is still valid for the evolution engine, but there is an extra byte in the header.
Anyway, can you make some new genomes that I can test? I started documenting how the genomes work here: https://github.com/pdJeeves/LibFreetures/wiki Some of the pages aren't there yet, but I'll fill it out in the next few days.
I'm still pretty far from being able to load in the files tho, the problem is that if you're not willing to say "screw it, I'm just doing it in English" file IO becomes a nightmare.
|
Geat_Masta
|
7/18/2016 | |
Can someone do me a favor use QT creator to make a GUI for me? it's a drag and drop interface, so it's not that hard to do, but I have no ability to make the images for icons or the cover pages of kits, and I can't open one of the games to use as reference material. I'm thinking that a C1/C2 like gui would be best. |
Lurhstaap
|
7/18/2016 | |
I don't own that but I'll download it and give it a shot.
As for genetics, sure, whatcha need?
Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage" |
Geat_Masta
|
7/19/2016 | |
Lurhstaap wrote: I don't own that but I'll download it and give it a shot.
As for genetics, sure, whatcha need?
Well I can make a code base that resembles the creatures one pretty well, but I'm pretty bad at understanding how the stuff all goes together, and how the emergent properties appear.
So I want you to make some biochemistry things that would have different emergent properties:
oscillations, positive/negative feedback loops, and similar things
as well as chains of reactions.
And I want the sort of values you'd expect these to display at a few points in time, so I can verify everything's working properly.
a few notes on things i'll write up in more detail later:
the genome reader converts the file to lowercase when it reads it, so IDs of organs/lobes can't be case sensitive.
organ/lobe/chemical ids all work the same way, it tries to read the ID as a number, if that fails it will look for it in a string table, and get the index of the string. The string table is defined like a catalogue file, but without the TAG statements, only ARRAY.
it's looking for arrays "chemical list", "organ list", and "lobe list".
So if you have this:
ARRAY "organ list" 4
"brain"
"heart"
"liver"
"lungs"
brain will be converted to organ 0, heart to organ 1, etc. if you have an organ 'mitochondria', that isn't on the list, so while loading this file it will be added to the list as the 5th item and return the 5th organ ID. But it will be deleted from the list when the genome finishes loading. So those organ ID's can't be expected to be consistent across creatures.
also: when an element looks like <threshold v='0'/> the v isn't actually being checked against anything, it's just getting the value of the first attribute there, if there's no attribute there it will try to read it as <threshold>0</threshold> instead, the v attribute is just there to make it a little easier to read (in my opinion).
PM me if there's anything in the documentation you don't understand, or if there's any features I need to add. I'll respond quicker than to posting on the forum.
|
Lurhstaap
|
7/19/2016 | |
Ohh. Hmmm. Does it particularly matter which chemicals? I could show you examples of some of those in existing genomes and how they work. I'm quite familiar with, for example, the cascade reaction I set up for digestion of critters and bugs in my Dragons, and there are some beautiful feedback loops in the TWB edits that manage quite a complex endothermy system. The only issue is getting specific values... the programs I've been using give data back in the form of mostly unnumbered graphs, so I can see generally whether the chemicals are behaving as they ought to, but it's harder to pinpoint specific values at any given moment in time. Any suggestions? Or is there a way to do this in Biochemistry Kit that I'm overlooking?
Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage" |
Geat_Masta
|
7/22/2016 | |
Lurhstaap wrote: Ohh. Hmmm. Does it particularly matter which chemicals? I could show you examples of some of those in existing genomes and how they work. I'm quite familiar with, for example, the cascade reaction I set up for digestion of critters and bugs in my Dragons, and there are some beautiful feedback loops in the TWB edits that manage quite a complex endothermy system. The only issue is getting specific values... the programs I've been using give data back in the form of mostly unnumbered graphs, so I can see generally whether the chemicals are behaving as they ought to, but it's harder to pinpoint specific values at any given moment in time. Any suggestions? Or is there a way to do this in Biochemistry Kit that I'm overlooking?
Well I'm talking about for testing my new library, so the biochem kit isn't really applicable to it. But I'm thinking I could just have it output the chemical values at certain intervals, and send you a tabulated text file that you could copy into excel and make a graph from.
I just got the catalogue working which is needed to load genetics files; so now I can start work on those. I had to make it twice because the original version was confusing and hard to maintain. It doesn't matter which chemicals, they can just be integers from 1-255 and it will recognize the chemical, if you want to use chemical names you'd need to make a catalogue file for it, which is now documented on the wiki; but it's basically the same as the creatures 3 catalogue, with some slight variation.
|
Lurhstaap
|
7/22/2016 | |
So let me see if I understand what you're asking for here... I had thought you wanted me to take a C3DS genome and create/observe certain reactions, but it sounds like you want me to write out examples of chemical reactions, or write a genome using the stuff you've been working on?
Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage" |
Geat_Masta
|
7/23/2016 | |
Lurhstaap wrote: So let me see if I understand what you're asking for here... I had thought you wanted me to take a C3DS genome and create/observe certain reactions, but it sounds like you want me to write out examples of chemical reactions, or write a genome using the stuff you've been working on?
Yes, I asked for both at different points, and you seemed to indicate either would be possible. Sorry if I was unclear, but I need test data for the stuff I've been working on. I think I've gotten to the point where I can load in the genetics files now, but it will be a little longer before I can run them, so there's no real rush. But yes, I want small test cases written for the libfreetures project I have been making, which is why I linked to the documentation for the genome format previously and told you to tell me if it was unclear. |
Lurhstaap
|
7/23/2016 | |
No worries! I can probably do both - working with your new stuff will be more of a challenge as I am not really a coder (making a simple agent was a challenge for me :p) but I like to think of myself as a reasonably intelligent person who can deal with new things. :p I just wanted to make certain I was following correctly.
Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage" |
Geat_Masta
|
7/24/2016 | |
Lurhstaap wrote: No worries! I can probably do both - working with your new stuff will be more of a challenge as I am not really a coder (making a simple agent was a challenge for me :p) but I like to think of myself as a reasonably intelligent person who can deal with new things. :p I just wanted to make certain I was following correctly.
Yes that's part of the reason I can't test the file loader yet, I need to make sure it works reasonably well when someone like you uses it, if I just make it for me it'll get too confusing for non-programmers.
I've PMed you my email, just email me if you're confused about how to write a genome, but I think the documentation should be clear. Although I'm personally confused about the stimulus genes, clear this up for me:
when the stimulus gene has a check box saying the output is "modulated by the sensory signal" is that referring to the last number in the stim writ command? |
Geat_Masta
|
8/4/2016 | |
Here's a batch of test data, I converted a chichi norn's genome to the new format as best I could, this test only used the organs, initial concentrations, half lives, and reaction genes:
https://github.com/pdJeeves/LibFreetures/blob/master/tests/chemical%20data.xls
I can't really say how accurate to the game it is though. If someone could tell me that would be lovely. But it seems like something's wrong, because air doesn't seem to do anything if the half lives are turned off, and it seems like the ATP never varies as much as it should.
As far as I can tell the drives keep getting backed up because a receptor's supposed to change the clock rate of that organ, and it's not present. Maybe a clock rate of 0 is supposed to indicate that an organ is turned off? |
Geat_Masta
|
8/5/2016 | |
Why do organs that have a receptor bound to their clock rate have a unique clock rate? Similarly the reactions which have a receptor bound to their rate still have unique rates, they don't just all use the default value. Why? does the original rate effect what the receptor does? |
Peppery One
Papriko
|
8/5/2016 | |
I am certainly no expert, but I would assume that the individual clockrates control how fast the reactions happen in relation to each other, while the organ's clockrate is the "master timer" which controls the absolute speed.
Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis... |
Geat_Masta
|
8/7/2016 | |
Papriko wrote: I am certainly no expert, but I would assume that the individual clockrates control how fast the reactions happen in relation to each other, while the organ's clockrate is the "master timer" which controls the absolute speed.
Not what I meant. I meant that say in the following reaction in the chichi genome:
1 starch -> 4 glucose @ rate=48
right after that is a receptor gene:
organ: current reaction
tissue: current reaction
locus: reaction rate
chemical: glucose
threshold: #whatever the values are
okay, so if that receptor is setting the reaction rate, then the reaction rate in the reaction must do nothing, right? so you would expect all reactions with a receptor linked to them to have the default reaction rate, but this is not the case, they have unique rates.
|
Peppery One
Papriko
|
8/7/2016 | |
Perhaps some sort of conditional adjustment? Like, if chemical X is present in that amount, throttle/accelerate the reaction from it's normal value to this new one.
Or after the threshold is met, it acts as a multiplicative variable.
Ooooorrr it multiplies the clockrate by [actual amount] / [threshold]
In any case, the organ's setting would be the fixed base value and the receptor is the dynamic adjustment to it.
Just throwing around ideas, so not sure. I'm just tossing some ideas into the ring.
Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis... |
Geat_Masta
|
8/8/2016 | |
Papriko wrote: Perhaps some sort of conditional adjustment? Like, if chemical X is present in that amount, throttle/accelerate the reaction from it's normal value to this new one.
In any case, the organ's setting would be the fixed base value and the receptor is the dynamic adjustment to it.
This occurred to me, because if a receptor set the organ's clock rate to 0, then the organ would never be run again, so the organ would essentially die.
|
Geat_Masta
|
8/19/2016 | |
some progress on the brain in vat kit, but although there is code to activate neurons and propagate the effect, the code for selecting neurons seems to be failing =/
Video: pre-alpha build 0.0.1
Here I got the neurons to be selected, and it has some of the same features of the original, you can mouseover to see the paths, however it crashes a lot. In a very rudimentary sense the neural networks do work, in that they would work similarly to C1 if i could get it to stop crashing, but my debugger is being almost fantastically unhelpful. However I can't start on debugging the temporal memory without fixing this first....
video: pre-alpha build 0.0.2 |
Missmysterics
|
8/28/2016 | |
This sounds really cool. What engine do you reckon you would use?
Creating a brain sounds like a scary thing, even using earlier models as a guide, I can't even seem to begin to wrap my head a round the way they work.
|
Geat_Masta
|
9/1/2016 | |
Missmysterics wrote: This sounds really cool. What engine do you reckon you would use?
Creating a brain sounds like a scary thing, even using earlier models as a guide, I can't even seem to begin to wrap my head a round the way they work.
Oh I already finished the brain, I wanted to upload the finished brain in vat kit but I can only compile it for linux until I get a windows license. If you know how to compile things and want to try it the source code is on my github--linked earlier in the thread.
I'm not sure what engine I'll use, I've looked at some of them and none of them seem to really do what I want, so it might be best to try to make my own. The best language for the project would appear to be the python variant pypy, but I don't really know of any game engines that use it, furthermore the collision detection in most game engines is nothing like what creatures uses, and my world design allows for things that are completely incompatible with most collision systems, so that would need to be rewritten no matter what.
The map editor is about this far along so far.
I still haven't gotten any of the screenshots I asked for in the other thread I made. |
Geat_Masta
|
9/13/2016 | |
It's been a while, the map editor is now essentially done, aside from a little window that should pop up and allow you to modify CA settings, however the final formats have been finalized, so if you compile the map editor as it is now and use it--I can't do it for you because I would need an official windows license, and I can't afford that right now--the result should work with the final game.
The other thing that needs to be implemented is the shaders, as I have included normal maps and effect maps into the background format--each tile in the background has 4 versions: a color map, a normal map, an effect map (red = gloss, green = refraction index, blue = iridescence, alpha = alpha mask), and a rendered map, which is a single rendering of all the above things if the engine is running too slowly. Currently it can load and display all these maps, but the lighting system isn't implemented, mainly because I can't get Qt to load the images into a format OpenGL can utilize--it keeps telling me that openGL doesn't have a valid rendering context, but why would it be if the textures don't exist yet?
However I have no clue how to proceed with either of these things,; so I've moved on to creating a world editor, which will make it easy to place overlays, lights, parallax effects, sound effects, trigger zones, particle effects, physical zones, paths, and the like, and I'm sort of using that to test out some ideas of how the final engine to work.
some notes:
-- trigger zones are areas that have a callback whenever an object enters or exits them, think the shee statue room in C2
-- physical zones are areas that apply some physical force to any object in them, so in freetures you don't set acceleration due to gravity on the object, you create a physical zone and set gravity to some value in it.
-- rooms in the map editor are the opposite of in the C3 map editor, instead of putting rooms where norns can go, you use them to define the collision geometry of the world; I did it this way because I didn't want to like rooms to CAs when that necessitates rooms be made small instead of the most convenient size, and the thing will run faster if all the cells are uniform in size with a uniform number of connecting cells. This all means that I can just apply the standard navier-stokes equations rather than having to come up with some new janky solution. Similarly, I can increase or decrease the definition of the simulation depending on how long it takes to run it.
Anyway, I have been basically dedicating all my time to this over the past few months, because my job search has been fruitless, so I've finally decided that I may as well ask for support from the creatures community on patreon, to help fund me as I do this. I don't really feel right about it, because I don't really have anything demonstrable yet, but I don't have anything to lose by asking, really.
|
|