creatures caves welcome, guest
downloads   gallery   dev   community   creatchi   forum   mycaves
bookmarks | search | post new topic
Help Forum
old
Metaroom conflict?   
Rosiria

Rosiria



  5/8/2019

I have this weird problem whenever I try to inject metarooms.

For example:

I've successfully installed Ainarda and C2toDs together. But when I try to inject a room like the Biodome, it comes up with a "failed to set room type" error. I tried again by installing C2toDS and the Biodome only and Ainarda and the Biodome only. They worked well, but when I try to install all three, it refuses. I also had this problem with Veridia and C1toDS (in a world without C2toDs, of course). The Biodome doesn't install when I use it with C1toDs either.

Is there a list showing which metarooms are compatible which eachother? Or is it a problem with my game? Btw, I'm using the Capitalla docked with the Shee Ark.

 
Layla

Layla
United States  


  5/8/2019  2

I'm not sure about a compatibility list, but it sure sounds like a metaroom conflict to me!

(Also, cute profile picture!)


I serve none but to rock.
 
Rosiria

Rosiria



  5/8/2019

Thank you :) I like yours too.

It's a shame that they don't work together. I love Ainarda and C2toDS, but it seems I have to have one or the other when it comes to other rooms. Has anyone else experienced this?



 
Moe

Moe
United States  

 visit Moe's website: Creatures 2 to Docking Station
  5/8/2019  3

Hi! C2toDS developer here... Unfortunately there are no map conflicts as far as I can tell. I say 'unfortunately' because C2toDS does tend to conflict with many rooms at random and I haven't been able to find a definitive cause. The engine's description of the problem is also very cryptic.

I believe the problem is with the sheer number of rooms C2toDS injects. C2toDS is the largest room ever created after-all and it injects dozens upon dozens of individual rooms. The engine doesn't seem to be capable of handling that many rooms. Kind of like how you can only have 65535 different species numbers, and only A-Z breeds.

I think there's a variable or an array someplace that stores all the room numbers, and I think it hits the limit at some point when too many rooms get injected alongside C2toDS.

But! If anyone ever figures out a different explanation, please let me know!

 
Malkin

Malkin
Australia  
Manager


 visit Malkin's website: Malkin's page at CWiki
  5/9/2019

According to Pilla's map, they don't overlap.

My TCR Norns
 
Rosiria

Rosiria



  5/9/2019

That's probably what's causing it. I have a habit of injecting multiple different metarooms at once. The game had enough of my madness lol.

EDIT: I just saw Malkin's post. So it seems like the metarooms should be compatible, according to the link. Any suggestions?

 
Layla

Layla
United States  


  5/9/2019

Does the order of installation have any effect on it? I.e., installing C2toDS first or last?

I serve none but to rock.
 
Rosiria

Rosiria



  5/9/2019

So far, I've tried installing C2toDs first, then the Biodome, and then Ainarda. Another method I tried was installing Ainarda first, then C2toDs, and finally, the Biodome. Unfortunately I got the same error when I tried both installation orders. For some reason, the Banshee Ark metarooms by Pilla sometimes have "selective" compatibility too.
 
Malkin

Malkin
Australia  
Manager


 visit Malkin's website: Malkin's page at CWiki
  5/9/2019

Are you using Doringo's faster agent injector? Metarooms take a little while to install properly, so it's probably a good idea to wait for a little after injecting one.

My TCR Norns
 
ylukyun
Chaotic Chimera

ylukyun

Manager



  5/9/2019  1

They don't overlap map-wise. I think what Moe is saying is that the numbers of the individual rooms overlap. The engine just doesn't have the capacity to deal with so many large, complex metarooms.
 
Moe

Moe
United States  

 visit Moe's website: Creatures 2 to Docking Station
  5/9/2019  1

Yes so I'm not talking about the metarooms themselves, I'm talking about the individual rooms that compose their innards. Anyone who has ever used my Room Changer and turned on the map visualization will know what I'm taking about with all those blue lines that break up a metaroom into compartments. And it's not even so much that they overlap, as that I believe it exceeds the engine's capacity to store or access them all, across all injected metarooms.

You see, each room you make in a metaroom is assigned an ID number upon injection and that number is cumulative throughout all metarooms. So if you inject the Garbage Dump metaroom all of its internal rooms will be given a numeric ID, and then if you inject the Norngarden, it's individual rooms will also be assigned an ID number, starting from where they left off in the Garbage Dump, and so on and so forth for each room you inject thereafter. The exception to this is that Docking Station reserves the first 600 rooms...I'm guessing because it was designed to dock with the C3 spaceship? I don't know.

Why is this important? Because...

In computer programming, every variable has a memory limit. Ever wonder why there can only be 65535 possible agent species numbers and why we had to ration out these "script ranges" between developers? Ever asked yourself why that number is so oddly specific?

It's because it's stored as what's known as an "unsigned short int" which means a positive [and short] integer value. Just google "C++ Data Types" and any result will give you a good idea of what's going on. If it had been stored as a regular "unsigned integer", we could have species numbers in the millions, but this was the 90s and early 00's when Creatures was made, and memory was at a premium. You designed your programs to only allocate as much memory as is necessary, and little more than that. Additionally, you can manually limit how high a variable is allowed to go in a number of ways, but I won’t broach that extensive topic here.

Now I'm not sure how the DS engine stores it's room IDs, but in the tests I ran the DS engine would not generally exceed about 2000 room IDs, but that’s not the full picture exactly. In my tests, I could cause room IDs to exceed 2000, but the engine doesn’t seem to want to perform operations on those rooms. That’s what is actually producing the errors when you try to inject the metaroom. It’s not that it can’t create the room, it’s that it can’t perform any operations on the room, like setting the room type or altering its CA values, performing linking etc.

I have some theories on what would cause that, but without the DS engine source code, I can't know for certain, nor can I correct it.

 
Rosiria

Rosiria



  5/9/2019

Wow, I didn't know how complex the code was. Just to clarify, does this mean that the metarooms, while not incompatible with themselves, are incompatible coding-wise? I'm sorry, I'm not really experienced with computer programming.
 
Papriko
Peppery One

Papriko
Germany  


  5/9/2019  2

Soooooort of. See, each metaroom (as in Norngarden, Aquatilis Caverna, Grendel Hideout, and all the others...) is made out of many little areas called rooms. That is why big downloads are called METArooms, to clarify the difference.
Those tiny room cells are used to shape the metaroom. They mainly define two parts of an area: A) what kind of area it is (fertile soil, boggy soil, infertile ship corridor, salty water, etc....) and B) the shape. Rooms have a bunch of values that tell them how they are shaped, creating slopes and walls and all that.

The problem with C3/DS is that it is really old and hence it is very concerned about computer stuff like your RAM or CPU. It tries to use resources reasonable for the late 90s, which are by modern standards laughable.
The problem is most likely that your combination of areas exceeds the limit of little "room cells" as I described them in the first paragraph. You can not have infinitely many rooms. Like I said, the games use technology from the 90s, from their perspective these limitations were absurdly high.


Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Rosiria

Rosiria



  5/9/2019

Bummer. I guess I'll have to carefully choose what metarooms I want after all.

Thank you everyone :)

 
Moe

Moe
United States  

 visit Moe's website: Creatures 2 to Docking Station
  5/9/2019  4

And to be fair, they are actually really high limits for the time! Considering all of DS only uses a couple hundred rooms, and the limit is 10x that, it wasn't a bad design decision at the time. In fact, you could probably install every metaroom the community has ever made, barring C1toDS and C2toDS, and you wouldn't likely run into this problem.

If you're not a C3/DS developer but you're still wondering what we mean by "rooms" then check out this screenshot by Pilla here on the CC.com gallery. In it you can clearly see the individual rooms as they are displayed by the blue and green lines that form rectangles. Those rooms combined together create the usable area inside of a metaroom, and are what I am referring to when I say they are given unique identifiers. Each one of those blue/green boxes has its own ID number assigned to it. We basically run out of identifiers to give them and/or the game doesn’t know how to interact with rooms whose IDs are over 2000. That’s what’s causing the errors, or at least, that's my theory.

C2toDS by itself has over 800 rooms because it's such a massive, complex world that needed to be mapped and that's nearly half the 2000 limit, so you can see where it might cause problems...

If someone can get me the C3/DS engine source code I could probably correct it. lol But that's not gonna happen...

 


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
2 online
Malkin
C-Rex
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