creatures caves welcome, guest
downloads   gallery   dev   community   creatchi   forum   mycaves
bookmarks | search | post new topic
Development Forum
old
Freetures Design   1 | 2
Geat_Masta

Geat_Masta
United States  


  6/26/2016  4

Hello All,
You may remember me from such overly ambitious and ultimately failed projects such as C2toDS. I left the community when I stopped using a windows computer, and always hoped there would be another game coming out and I could develop for it again. This has not turned out to be the case.

Although the community has tried to make open source creatures games before, these all ultimately failed, but I don't think that's any reason not to try again. We all know that if there is a new official game, it will be more like the PS1 game than the games we know and love. The only way that this community will not ultimately die as the compatibility layers for old games fail is to build a new game.

Personally, I graduated with a computer science degree back in December, so while I'm chomping at the bit for an open source project to join, I don't really have the experience to lead it. But what I would like to do, is start by hashing out a design document, or wish list. Things we want from the game, please post what you could do to help, or similar, but right now I just want to talk design documents.

Once we have that we can see how practical the project is, how much can be done just by stringing open source things like Box2D and Jewel together, and similar things. Please also post your arguments for why certain things should or should not appear.

My list is as follows:

The biochemistry and neural networks should be in a github project separate from the main engine, so if it does fail work can pick up from there.

Biochemistry should support genes being turned on by chemical levels rather than age, proper chromosomes, possibly catalysts and rate laws being added to reactions.

Lobes/Tracts should be made so that two Lobes can be linked together into a convolitional neural network; making the concept lobe convolutional would increase norn intelligence and allow them to understand simple sequences.

To expand on this: if we want the ability to understand sequences you basically have a concept lobe with 4 layers, each neuron fires based on the neuron before it in the column, and based on if 10 other neurons in the same layer as it are active. This pattern allows sequence recognition. Looking down on the lobe we can imagine a checkerboard pattern on it, if the red squares are aligned down and the black are aligned up, when it gets the 10 other neurons it will get data from it's previous state. This allows for the neural net to model it's own internal state, basically those two things are all that's needed for consciousness. A very limited consciousness somewhere below the level of a fish, but that's the pattern in all vertebrates that gives them consciousness.

Originally we had the .gen format because disk space was limited and expensive, this is no longer the case, so it would be best for the .gen files to simply be XML/JSON files internally, which would eliminate the need for an editor program.

A 2D world, there doesn't seem to be any real benefit to going to 3D, I think we all just wanted 3D because the transition from 2D to 3D gaming was the zeitgeist at the time. In terms of complexity of the creatures, it would really only be practical to use path following algorithms to navigate the 3D world, unless you only want 1 creature at a time, or you have dual SLI crossfire so OpenCL can accelerate the neural networks.

The metarooms should be arranged in a portal based rendering system, so the game can be told X is on the right of Y and make it that way, allowing loop back worlds like albia, as well as non-eucledian spaces.

Physics: Limited to what was in C3 with some minor additions, you don't really gain anything from having things collide in a creatures game. For additions: when the game calculates chemical gradients between rooms this gets summed into wind, which applies an impulse to objects depending on their air resistance attribute. Furthermore, compound objects should have simple springs between attachment points. Imagine a tree object, where the wind can blow the branches back and forth, it would be a simple construct with the air resistance and the springs, little touches like this do more to add realism than accurate collision.

For graphics I would want proper particle effects, meaning grabbing an open source particle effect engine and shoving it in. I also think that there's no real purpose in c16 files, it would be better for all the graphics files to be png files, and the sprite files would just be a ZIP of the images needed, along with an XML/JSON file detailing the animations and attachment points.

Similarly I imagine agents should just be tar balls of scripts and other files, rather than anything as complex as PRAY.

As a scripting language, again, the only reason for CAOS was essentially that all the commands were the length of an int, so it was easy to feed it into a big switch statement and compile it. But it makes it hard to develop, it would be better to just grab an open source scripting engine like Jewel, or Python and shoving it in. We could check against what interfaces an object inherited from so the creatures could tell if it's a food or a button or whatever.

I would like to have a GUI similar to C1/C2 made in QT.

 
Moe

Moe


 visit Moe's website: Creatures 2 to Docking Station
  6/26/2016  2

I don't know if you were around for this or not, but you may want to take a look at OpenC2e if you haven't seen it before. It's an open source C++ copy of Creatures using SDL, boost, and other free libraries. It was quite thoroughly developed before being abandoned. It even touted being able to code your agents in other languages.
 
Geat_Masta

Geat_Masta



  6/26/2016

Moe wrote:
I don't know if you were around for this or not, but you may want to take a look at OpenC2e if you haven't seen it before. It's an open source C++ copy of Creatures using SDL, boost, and other free libraries. It was quite thoroughly developed before being abandoned. It even touted being able to code your agents in other languages.



Yeah, I was around for the start of that. I would copy any code from it I deem useful, but I don't really think it has the functionality I want, it isn't a matter of just adding to it either; almost all of the functionality is in trying to be something it's not, rather than being it's own thing. But that's just my opinion.

 
Zaf

Zaf



  6/26/2016  1

Well, if people manage to open it up, it would be nice if the game could be *upgraded* to use more GB/RAM etc than its currently restricted to. I don't know if this is what you are looking for, I sadly do not have the best skills in leading so yeah.
 
Rha

Rha



  6/26/2016

Hello Geat Masta, I'm a bit confused are you talking about making a whole game from scratch or building on the older games?


 
Geat_Masta

Geat_Masta



  6/26/2016  1

Making a whole game from scratch, creatures actually isn't a very complex game as it goes, look at the size of the open c2e codebase, it's much smaller than other engines like the quake 3 engine. I'm not exactly sure how you would build on older games when you can't get into the source code anyway.
 
Congested

Congested



  6/26/2016

Wow, this sounds awesome! I hope this'll turn out to be a thing.

i cri everytiem
 
VioletGrendel

VioletGrendel



  6/27/2016

What language are you planning to use to code it? If Python, I can help. I'm pretty good with Python/Pygame. I like your idea. It would be good to make it so that it could run on all OSs, too.

What is the answer to Life, the Universe, and Everything?

42!

 
Zaf

Zaf



  6/27/2016

I am not sure you can make a whole new game. I mean how will you get past the copyrights?
 
the1whoscreams

the1whoscreams



  6/27/2016

I remember a discussion where someone mentioned keeping the base concept intact, but changing up the species. Maybe that will happen.
 
Bifrost

Bifrost



  6/27/2016  3

Honestly, all living things should have dna, and graphics should be vectored. That way, you could actually splice a norn and a bee, an ettin and a fish, a grendel and a beetle or whatever. Creature/limb sizes adjust according to genetics, and limbs move/rotate smoothly.
 
Geat_Masta

Geat_Masta



  6/27/2016  2

VioletGrendel wrote:
What language are you planning to use to code it? If Python, I can help. I'm pretty good with Python/Pygame. I like your idea. It would be good to make it so that it could run on all OSs, too.



I'm going to make the code for running the biochemistry, processing genetics, and the norns themselves in C. The reason being that any language that understands C name mangling can call C functions. Then I'm going to link that into an existing game engine. I am considering python for the scripting language rather than CAOS.

Zaf wrote:
I am not sure you can make a whole new game. I mean how will you get past the copyrights?



Copyright law doesn't apply to the look and feel of software so long as a reasonable person can tell they are different according to Atari vs K.C. Munchkin.

 
Geat_Masta

Geat_Masta



  6/27/2016

I tried to convert the gizmo norn genome to my new XML format, but I can't actually run creatures or the genetics kit on my current rig--I used the info on double.co.nz to do it--so can someone check a handful of genes to see if I transformed them correctly?

https://github.com/pdJeeves/CreaturesLib/tree/master

 
Lurhstaap

Lurhstaap


 visit Lurhstaap's website: Addicted To CAOS
  6/27/2016

Vector graphics... that would be an interesting challenge. I assume we're still talking a 2D worldspace?

Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage"

 
Ghosthande
Prodigal Sock

Ghosthande


 visit Ghosthande's website: Breeders Beware
  6/27/2016

I've always thought it would be cool to see a 2D/3D hybrid. For instance: the original The Sims used 3D models for Sims but sprites for other things, and your perspective was very limited. Having a "side-scroller" world like Creatures where the creatures themselves were 3D would open up so many possibilities (easier color/pattern changes, no need for a billion body part sprites, etc.)... and without opening up the can of worms of having a true 3D environment for the creatures to have to navigate.

savannahs11 wrote:
I remember a discussion where someone mentioned keeping the base concept intact, but changing up the species.


You might be thinking of Lifandi? It was going to have creatures called Kirin. I particularly liked Embri's concept.

In regards to using something like Python instead of a more direct CAOS equivalent: how would the functionality of CAOS commands like ANIM, ELAS, VELO, etc. be handled? I can understand wanting to use Python or a similar language for the engine... but to replace CAOS completely?



 
Geat_Masta

Geat_Masta



  6/27/2016

Lurhstaap wrote:
Vector graphics... that would be an interesting challenge. I assume we're still talking a 2D worldspace?



I agree that vector graphics with bump maps and normal maps in 2D would be far better than 3D. For the same reason that hand drawn is always better than any other kind of animation. However it would also be more challenge than interesting, if someone else wants to implement that then I just won't get involved with the graphics.

Now I'm having some trouble figuring out the biochemistry. In creatures each creature's chemistry is being processed twice per second, or a rough maximum of 5 creatures per tick, to reduce load and stop framerate lags; this was back before multiple cores were a thing remember. From there we can get some strange results.

The maximum time for a half life is given at 72 years, but if the chemicals are internally stored as bytes, which they seem to be, always being given as a number from 0-255. Then the smallest percent change would be 254/255. This percentage change would drop to half in ln(.5)/ln(254/255) = 176 processing cycles, or 1.5 minutes. Anything slower than that would have no change from tick to tick, and would therefore be an invalid value. That is no where near the 72 years allowed.

So let's try agian, maybe the chemicals are internally stored as shorts, and the last byte is truncated like some sort of decimal system. From there we have ln(.5)/ln((2^16-1)/2^16) ~= 6 hours. Again, way short of 72 years.

Trying again, maybe it uses ints internally. But doing the math shows the slowest possible clock rate would drop by half in 47 years. Isn't that strange? And it couldn't be using floats given the slow speed of the FPUs when the original game came out, and similarly it couldn't be using long longs because that would mean doing 8 operations for each multiplication/division, it would have to be restricted to the word size of the machine.

It's no wonder that openC2E could never get biochemistry to work if they were using these bad values from the developer documents, it's just impossible. Can someone run tests to see what the actual half lives are?

 
Lurhstaap

Lurhstaap


 visit Lurhstaap's website: Addicted To CAOS
  6/27/2016  1

I was speaking for myself in calling it interesting, for sure. :p FWIW though it's probably best if you mostly focus on your core skill set, if only to keep from getting overwhelmed. I can speak from experience on that one - I once had a job where I basically had to do all the art sourcing, game design both lore-wise and mechanically, implement a lot of stuff myself, and anything I didn't have the skill to code I had to give very precise instructions to the coder I could borrow from the other site my boss owned. Plus all kinds of user-related stuff. I had some staff, but I was bad at delegating, and I tried to do it all myself as much as possible. The result was that I totally burned myself out.

Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage"

 
Geat_Masta

Geat_Masta



  6/28/2016

Ghosthande wrote:
I've always thought it would be cool to see a 2D/3D hybrid. For instance: the original The Sims used 3D models for Sims but sprites for other things, and your perspective was very limited. Having a "side-scroller" world like Creatures where the creatures themselves were 3D would open up so many possibilities (easier color/pattern changes, no need for a billion body part sprites, etc.)... and without opening up the can of worms of having a true 3D environment for the creatures to have to navigate.



If we assume the creatures have no shading like in C1, and no forward facing poses, like C1, then you don't need a billion body parts on modern hardware. You would need one sprite that's about 4x the size of the adult leg sprite or whatever, that gets rotated and downsampled, would work fine. Hence why I mentioned normal mapping as a possible solution to that problem. Having worked with a 3D engine before I can tell you that that usage of 3D is more trouble than it's worth.

Ghosthande wrote:

In regards to using something like Python instead of a more direct CAOS equivalent: how would the functionality of CAOS commands like ANIM, ELAS, VELO, etc. be handled? I can understand wanting to use Python or a similar language for the engine... but to replace CAOS completely?



You would represent the object class with a python class, that any simple objects inherit from. They would inherit functions like animate() and properties like elasticity. Getting it to run those commands would be far less complex than implementing a clone of CAOS.

 
Papriko
Peppery One

Papriko



  6/28/2016  2

I have seen 3D, vectors and 2D sprites being thrown around, but has anyone already suggested 2D vector graphics, kind of like an inkscape project? It sadly would disable things like the front/back view (unless you are willing to design each breed 2-3 times), but it would enable sheer endless numbers of shapes you could get. Sure, with sprites, you can have endless shapes too, but you have to come up with them yourself. Vectorized body parts would allow for them to happen naturally.

For fur patterns and all that, how about packing a certain number of fixed-size textures with each creature? With the right resolution and a good compression, you could find the right balance between details and memory efficiency. It could just be part of their genetics.
Ooooorrr, you have a list of parameters that generate the textures for the fur n stuff. That'd be another thing that could be crossed and mutated on the fly in a way sprites can't allow to happen.
Perhaps a more natural looking version of something like evolvotron.

I admit this is presumably quite a feat to code, but this is the wishlist topic afterall, ain't it? :P


Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Geat_Masta

Geat_Masta



  6/28/2016

I need someone to run a test to confirm my hypothesis before I can continue:

As far as I can tell the rule to convert the numerical halflife value in the genome to the number of ticks it takes to reduce the substance by half is:

ln(.5) / ln((2^(rate/8 ) - 1) / (2^(rate/8 ) )

But this would mean half lives have no effect when the rate is over 64. Futhermore the half life table does not exactly match this equation, I think because it's been estimated, much like the way progressive tax brackets work.

Meaning the fraction that the chemicals are multiplied by is:

(2^((rate/8 ) % 8 ) - 1) / (2^((rate/8 ) % 8 )

and for each half life this is executed every:

255^floor(rate/8 )

ticks.

Furthermore I don't really understand how the organs work. If an organ has a low clock rate how does that slow down all the reaction genes in the organ? It doesn't seem possible to be using these equations. Is is just a simple linear relationship? clockrate = 255 means it gets updated every 255 ticks?

 
Lurhstaap

Lurhstaap


 visit Lurhstaap's website: Addicted To CAOS
  6/29/2016

Unfortunately I'm not sure anyone but the original programming team knows the answer to those questions. We're probably going to have to reverse-engineer the engine to figure stuff like that out.

I do a lot of genetics work, so when I'm messing with organs I can try to figure out the relationship between clock rate and the organ's reactions?


Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage"

 
Geat_Masta

Geat_Masta



  6/29/2016

Lurhstaap wrote:
Unfortunately I'm not sure anyone but the original programming team knows the answer to those questions. We're probably going to have to reverse-engineer the engine to figure stuff like that out.



Actually, I once emailed steve grand about it, on my 6th time trying to make a creatures emulator. He didn't remember. So no one knows! it's just one of life's mysteries. This will actually be my 10th time making something like this, I think the state variable rules turned out faster than on any previous versions. But there's still the issue of what the "input" and "conduct" rules are being undocumented. I don't think it's important because I don't intend to copy the previous architecture exactly though.

For example I'm thinking of making the norns diploid, which is proving very difficult because the position of the receptors in the genome effects the organs they effect. But this also means all the genetics would need to be adjusted due to being present twice.

Lurhstaap wrote:
I do a lot of genetics work, so when I'm messing with organs I can try to figure out the relationship between clock rate and the organ's reactions?



I would really appreciate that, thanks! Would you be able to make some unit test genomes if I got a file spec ready for you? e.g. a genome with only 10 chemicals being altered at a time, and expected values after being run for X amount of time; to ensure everything is being computed correctly.

 
Papriko
Peppery One

Papriko



  6/29/2016

When you straight up measure out all the things, can't you do the same for the halflifes? Sure, it would take a while to complete a test to see if a halflife is 72 years or not, but who needs that anyways?
I say set up chemicals down from very low (fractions of seconds to seconds) up to medium high values of a couple hours or so and then take record how long it takes for which chemical to decay.

When you use a cleverly written agent, you could even use the wolf control to measure out thing in fast ticks. Using the number of ticks you could precisely calculate back into equivalent time and see what alleged values produced which results.

From there you should be able to make a halfway decent approximation.



There's even commands to write into raw textfiles, so you could create some very nice and tidy logs. I believe I did something similar once when someone was trying to create a performance logger.


Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Geat_Masta

Geat_Masta



  6/29/2016

Papriko wrote:
When you straight up measure out all the things, can't you do the same for the halflifes? Sure, it would take a while to complete a test to see if a halflife is 72 years or not, but who needs that anyways?
I say set up chemicals down from very low (fractions of seconds to seconds) up to medium high values of a couple hours or so and then take record how long it takes for which chemical to decay.

When you use a cleverly written agent, you could even use the wolf control to measure out thing in fast ticks. Using the number of ticks you could precisely calculate back into equivalent time and see what alleged values produced which results.

From there you should be able to make a halfway decent approximation.



There's even commands to write into raw textfiles, so you could create some very nice and tidy logs. I believe I did something similar once when someone was trying to create a performance logger.



Basically, that's the test that would need to be done; same principle used to determine how long uranium's half life was. You need 3 points to approximate the curve, more or less.

Now, I'm having trouble programming the brain part. So far I've mimiced large parts of C1's code, but i realized that won't get me the result I want. This tech talk describes how a neural network can be trained to understand sequences. Which is what we want, so norns can plan "call elevator, then use elevator," rather than doing both as unrelated decisions.

But the technique described in that video seems like it wouldn't work, because if we imagine the values propagating from layer 0 to layer 1, the dendrites within layer 1 would hook up the same way as in layer 0, because that would be the best predictor of the next state, right? So I'm not sure how to apply it.

 
Lurhstaap

Lurhstaap


 visit Lurhstaap's website: Addicted To CAOS
  6/29/2016


I would really appreciate that, thanks! Would you be able to make some unit test genomes if I got a file spec ready for you? e.g. a genome with only 10 chemicals being altered at a time, and expected values after being run for X amount of time; to ensure everything is being computed correctly.



I was going to just reference my current project since I'm familiar with how they "ought" to work. But I could do that as well, too. How are you tracking values changes in game? Biochem kit?


Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage"

 
Geat_Masta

Geat_Masta



  6/30/2016

Lurhstaap wrote:


I would really appreciate that, thanks! Would you be able to make some unit test genomes if I got a file spec ready for you? e.g. a genome with only 10 chemicals being altered at a time, and expected values after being run for X amount of time; to ensure everything is being computed correctly.



I was going to just reference my current project since I'm familiar with how they "ought" to work. But I could do that as well, too. How are you tracking values changes in game? Biochem kit?



With the original game where I need number from, I would make the file myself, but the genetics kit crashes when I run it in WINE--I can sort of run DS, but I have to reinstall it every time for some reason, and it crashes alot, which causes all sorts of problems.

So the perfect test, which I only really need a subset of, would be to make a new genome and add to it a half lives gene where chemical 1 has a half life of 1, 2 has a half life of 2, 3 has a half life of 3, etc. and fill it with initial concentrations, where everything has a concentration of 255. Then load that into a world and let it run overnight. Then I would want a chaos script to output all those values to a file, along with a time, when chemical 1 reaches 128, and when chemical 254 reaches 254. Then that would be enough data.

Similar rules for testing organs, 10 identical reactions, in 10 identical organs except for different clock rates.

Another thing I don't know: do chemical reactions occur if the products are already at 255? or does it reach saturation, and be unable to continue?

Well with the new library, it would just load a command line and write out chemical names and values in a table to a file periodically. Part of the problem, is that even if I perfectly mimic how the original ought to work, it's basically meaningless to me, I have no understanding of how it ought to work, even in the original. I could only get a genome by copying one from the original game.

I intend to have a program within a month or two that will be able to run the creatures biochemistry and neuroscience, and then a game engine would include that code as a library. When I'm at a point when I can test biochemistry it will be no where close to a finished product with biochem kits.

 
Geat_Masta

Geat_Masta



  7/7/2016  2

Thus far I have completed the functionality for biochemistry, brain lobes, and around 90% of brain tracts, and the new HTM lobes are around 50% done, what is remaining is loading files and interfacing that with the physical world. At that point it will be time to find a way to link it into a game engine.

the code is here: https://github.com/pdJeeves/LibFreetures

The other thing is that I designed the program to have 2 kinds of brain lobes, classic, based on C1 with state variable rules, etc, and new HTM lobes, based on the most recent research into how mammalian brains work.

So let's say we make the worst case scenario norn brain in creatures 3: the lobe occupies the entire 255*255 grid, it has 255 tracts that say each cell can connect to 255 other cells. This brain would occupy around 4 GB of RAM.

For the new HTM lobes, the worst possible scenario would be 1 TB of RAM for a single lobe. It may not actually be possible to have an AI better than the creatures 3 AI on modern hardware. Which is sort of sad really, because members like slink left because CL gave up on trying to improve the AL, but the idea that they could on that hardware was just a ridiculous fantasy.

My version should have improved AI, but not nearly to the level that I was hoping, due to the processing requirements involved. But if you were working with some sort of advanced future computer from space then my code would be capable of producing something resembling consciousness, if you got the genetics right...

 
Papriko
Peppery One

Papriko



  7/8/2016

What does HTM stand for? How To Mammal?

Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Geat_Masta

Geat_Masta



  7/8/2016

Papriko wrote:
What does HTM stand for? How To Mammal?



Hierarchical Temporal Model:
https://arxiv.org/pdf/1601.06116.pdf

It's the most recent thing in machine learning.

To give some numbers, if you had 4 HTM lobes in sequence, each with dimensions 255*255*32 it would be roughly equivalent to a mouse brain.

 
SpaceShipRat

SpaceShipRat



  7/8/2016

I've only a layman's knowledge of the subject, but I doubt machine learning is viable for a Creatures type game.

It's really good at learning a very specific task, but the world norns live in is really complex, and needs to be managed on the fly by each growing creature, not by an algorythm that pre-learns sequence patterns from a giant pile of data, then tries to replicate them later.

 
Geat_Masta

Geat_Masta



  7/10/2016

SpaceShipRat wrote:
I've only a layman's knowledge of the subject, but I doubt machine learning is viable for a Creatures type game.

It's really good at learning a very specific task, but the world norns live in is really complex, and needs to be managed on the fly by each growing creature, not by an algorythm that pre-learns sequence patterns from a giant pile of data, then tries to replicate them later.



Creatures already uses a machine learning algorithm, specifically it's an online learning algorithm, you're referring to offline learning algorithms. What's most interesting is how most of the advancements in online learning algorithms in recent years have been things that steve grand got right with the original Creatures. Similarly there is a lot of speculation about the brain in his books, that has now been shown to be completely correct.

Regardless, it looks like I need to start over on the lobes either way, the algorithms can't be directly converted from machine learning situations to creatures for a different reason: delay. If I want a norn to learn that pushing a vendor produces cheese then these algorithms can do that, but they can't do it when there's a delay between pushing the vendor and getting the cheese.

My initial plan for fixing that didn't work, so it looks like I need to start again. But I think I found the solution by skimming through Steve Grand's books again. Hopefully it'll be easier the second time. It certainly feels easier, because many of the specialized HTM lobe functions can be handled more easily by slightly modifying the brain tracts, but I worry that I'm just pushing the problem back a step.

 
SpaceShipRat

SpaceShipRat



  7/12/2016

You're probably right and I was confusing machine learning with Markov chains which are only one kind of application (hey I was half asleep).

I can't help but think you'd have heaps of fun reading through Steve Grand's *current* work on grandroids. I'd suggest you track down his email, donate and get in on the project website, but i feel like he'd be so happy someone understands him he'd start talking and not get on with the game :P

 
Zaf

Zaf



  7/12/2016

SpaceShipRat wrote:
You're probably right and I was confusing machine learning with Markov chains which are only one kind of application (hey I was half asleep).

I can't help but think you'd have heaps of fun reading through Steve Grand's *current* work on grandroids. I'd suggest you track down his email, donate and get in on the project website, but i feel like he'd be so happy someone understands him he'd start talking and not get on with the game :P

isn't the donate period over? I couldn't donated when i tried.

 
SpaceShipRat

SpaceShipRat



  7/13/2016

He's been accepting late arrivals though not advertising for it, just people who are really enthusiastic about his work but missed the kickstarter.

more info in this thread, including a link to a programming journal.

 
Lurhstaap

Lurhstaap


 visit Lurhstaap's website: Addicted To CAOS
  7/13/2016  1

That journal is like a drug. I check it constantly and every time there's something new I make a very unmanly sound of joy and sometimes drool a little. XD

I also want to say that you are exactly what this project needed - a programmer with the knowledge and skill to do the work as well as the time and interest. Thank you for your work.

EDIT: By the way, I've been busy recently - I've got about a dozen Creatures related projects all at once, plus RL - but I'm about to spit out the genome you asked for today after I take a nap. It's a bit of a tall order, but I'll make it work. I'm not sure the game will allow me to literally put in a creature that ONLY has those genes. I might have to give it a brain too, or something. But I'll make sure it doesn't need to actually function or metabolize and can't die so you can get pure numbers.

EDIT II: I just thought of something. Should I put it in an empty base world or just pop it into my current world, or does it matter?


Conclude with killer catchphrase.
(Lurhstaap)
"This is not knowledge -
this is information!"
New Model Army, "Courage"

 
Geat_Masta

Geat_Masta



  7/15/2016

Lurhstaap wrote:
That journal is like a drug. I check it constantly and every time there's something new I make a very unmanly sound of joy and sometimes drool a little. XD

I also want to say that you are exactly what this project needed - a programmer with the knowledge and skill to do the work as well as the time and interest. Thank you for your work.

EDIT: By the way, I've been busy recently - I've got about a dozen Creatures related projects all at once, plus RL - but I'm about to spit out the genome you asked for today after I take a nap. It's a bit of a tall order, but I'll make it work. I'm not sure the game will allow me to literally put in a creature that ONLY has those genes. I might have to give it a brain too, or something. But I'll make sure it doesn't need to actually function or metabolize and can't die so you can get pure numbers.

EDIT II: I just thought of something. Should I put it in an empty base world or just pop it into my current world, or does it matter?



It doesn't matter anymore, I've decided that there are enough changes to the functionality of the genome that there's no purpose in trying to make genes translatable from one form to the other. Sorry if you've already done something.

As a side note, it's really only a tall order if you're using the genetics kit, I could have done it in a hex editor in a few minutes and sent you the genome if I had thought of that at the time.

Progress update: I got most of the brain done, it should be functional though I haven't debugged it far enough to where it's testable, I tried to take a break from dealing with brain stuff by programming pigment genes and documenting some genes, and found they're even more difficult than the brain.

If anyone's good with matrixes maybe they can help me with pigments. The issue is that the order of the pigments seems to matter, which I didn't anticipate; basically when you're doing a swap the engine seems to be multiplying the color tuple by this matrix:

cos(s), 0, sin(s)
0, 1, 0
-sin(s), 1, sin(s)

And it's doing a similar operation with the rotation, but if that's the case, then applying the rotation then the swap will have a different result than the swap following the rotation. And I don't know what to do about that. I thought that I could have different pigments affect different body parts, and have receptors linked to those pigments. Because like a siamese cat's paws will turn black when it's cold, and white when it's warm.

Then I would just output a color matrix for each body part, but this doesn't seem to be working, because the matrix operations are not commutative, and so it doesn't act in a sensible way.

If anyone has any ideas I'd love to hear them!

The other issue came when I outputted values from the reaction genes, so I could put a graph of how reactions worked in the documentation, and I found that it was completely wrong. I tried using what I remembered from O-chem, but I flunked out of that, so if you're good at chemistry please PM me.

Anyway I started looking at metarooms this morning--which I shouldn't do, i should finish the main freetures library before building a world (especially because part of the reason I'm doing this is so I can put a github project on my resume, no one calls me in for interviews at all :S). But yeah, I need to look at it with fresh eyes in a few days.

The rules for worlds will be as follows:

- a world is comprised of tiles
- each tile must be 256px * 256px
- tiles are arranged adjacently to each other, not in absolute space.
- no tile can be adjacent to itself, or within two tiles of itself.
- each tile has 5 adjacency directions: left, right, up, down, enter (for teleporters)
- there are a maximum of 65536 tiles.
- a tile can be transitive or intransitive, the latter cannot have any objects or collision associated with it
- for transitive tiles: the tile to the left of the above tile must be the same as the tile above the left tile, the same goes for all 4 directions.
- for transitive tiles: the tile above this one must have this tile below it.
- all tiles need to be colored red or black with no red tiles touching and no black tiles touching.


So basically, you can create a world like C1 or C2 by setting the tiles on the leftmost edge to be adjacent to the tiles on the rightmost edge, but this is much more powerful than just that, and it took me a while to figure out the rules so it would act the way I wanted--I started trying to figure out how to do it 10 years ago (arranging it in memory I mean).

Because, if you just arrange the tiles in a grid they have to act in a reasonable way, but if you have a gap with intransitive tiles things start to get fun. Imagine the world plane as a piece of paper, and you can roll it up and get a cylinder like C1, in this analogy having intransitive tiles would be like a cut in the paper, if it's cut right you can fold that loose flap back and attach it to another edge of the paper.

This allows for the worlds in the 2D game to be 3D surfaces with arbitrary topology. As well as bizarre things like there being two paths between two points of different lengths, without going through a teleporter or portal or anything.

 

prev | 1 | 2 | next

downloads
cobs
adoptions
creaturelink
metarooms
breeds
 
gallery
art
wallpaper
screenshots
graphics
promos
sprites
dev
hack shack
script reservations
dev resources
active projects
dev forum
 
community
links
advice
chat
polls
resources
creatchi
 
forum
bookmarks
general
news
help
development
strangeo
survivor
mycaves
log in
register
lost pw
1 online
Dragoler
creatures caves is your #1 resource for the creatures artificial life game series: creatures, creatures 2, creatures 3, docking station, and the upcoming creatures family.

contact    help    privacy policy    terms & conditions    rules    donate    wiki