creatures caves welcome, guest
downloads   gallery   dev   community   creatchi   forum   mycaves
bookmarks | search | post new topic
Development Forum
old
Semi-serious questions   
Ghosthande
Prodigal Sock

Ghosthande
United States  

 visit Ghosthande's website: Breeders Beware
  5/21/2012

Consider this more of a poll than anything else... although I intend to apply it to something that has nothing to do with creatures, the questions I want to ask are about CAOS, so the Development forum seems like the most appropriate place for it.

What are your favorite commands or "tricks", that you've done or that you've seen other people do? What do you find the most useful, that you use lots or that you just think is neat?

What don't you like about CAOS? What do you think would be really useful or fun, if only it were really possible? Like for instance, I wish there was a command that had the opposite effect of AGES, to make Creatures regress to the previous life cycle.

Lastly, if you could use CAOS to affect the real world, which commands would you want to use? Would you use SEZZ to make people say something silly, turn up the TICKs on the grass so you don't have to water/mow it as often, create a brand new "metaroom" to explore? ;)



 
Geek2Nurse

Geek2Nurse


 visit Geek2Nurse's website: Adventures in Nornia
  5/21/2012

Ooh, an ENUM - KILL TARG command on the "junk" classifier would sure help with my garage problem...

---
Optimist: the glass is half full.
Pessimist: the glass is half empty.
Engineer: the glass is twice as big as it needs to be.

 
ylukyun
Patient Pirate

ylukyun

Manager



  5/21/2012

INST NEW: etc. for creating stuff out of thin air.
 
Ghosthande
Prodigal Sock

Ghosthande


 visit Ghosthande's website: Breeders Beware
  5/21/2012

I wouldn't mind having a NEW: CHOC command ;)


 
Geek2Nurse

Geek2Nurse


 visit Geek2Nurse's website: Adventures in Nornia
  5/21/2012

TARG [annoying person]
PAUS 1

(I would need this programmed into a function key, because it would get a LOT of use.)


---
Optimist: the glass is half full.
Pessimist: the glass is half empty.
Engineer: the glass is twice as big as it needs to be.

 
Moe

Moe


 visit Moe's website: Creatures 2 to Docking Station
  5/21/2012

---Changes to CAOS

As a language, CAOS is powerful, but it could use some refinement. It permits pretty much anything to be possible, but it's not always efficient as it could be.

Personally, flow-wise, I'd like to be able to make in-line modifications to variables, like in C++.

setv va01 10
setv va02 5
setv va00 (va01/va02)

Even:

setv va00 divv va01 va02

would be nice, but CAOS hates performing operations in-line.

I also want a reciprocal command, a working rotation command, and a script number like 'pickup', 'drop', and 'eat', but instead I'd like one that is called every time the agent changes rooms. That would be enormously helpful, especially when determining if agents have passed into and out of water.

Technically the last one can be coded, but it would require a separate agent constantly monitoring all the rooms of all agents, and that's not cool.

I'd also like commands for grabbing the XY locations of room corners, without grabbing the XY locations for ALL of a room's corners.

I also would like proper world wrapping. Using the smoke and mirrors method is inefficient and depressing.

And the list goes on...

---Tips and Tricks

I can't say I have any specific commands or "tricks" that are simple enough to elaborate upon here, but for a quick overview, I do have a plethora of solid subroutines I re-use. Following, movement tracking, swimming, flying, collision avoidance, string parsing, dynamic variables, etc. And I have my own dev tools shortcuts for things like showing rooms, room coordinates, triggering eat scripts, etc.


---Real World Use

If I could use CAOS in real life, I'd use the cloning function on some gold and jewelry and go pawning it off everywhere. I'd also make it rain, cool down or heat up my house/room, turn down the tick on my computer so it goes even faster, change plant ticks, transport myself and my belongings all over the world for vacations/exploration, change my accg and go moonwalking/flying.... Endless possibilities!

And I'd definitely PAUS the rest of the world when I needed more sleep or was running late, or increase the BUZZ when I wanted something over with fast.

And on a less selfish note... inject everyone with cures and life chemical. :) (Yes, I'd live forever.)

 
Ghosthande
Prodigal Sock

Ghosthande


 visit Ghosthande's website: Breeders Beware
  5/21/2012

Oh, the PAUS command. I can see that getting a lot of use. Dog needs to go for a walk, but it's raining? Just PAUS the dog until it stops raining. Or PAUS the raincloud until your walk is finished!

Or SEZZ. I know I'd get into a lot of trouble with that one. Imagine using SEZZ on cats, dogs, cars, trees, people... lol.



 
Amaikokonut

Amaikokonut


 visit Amaikokonut's website: Naturing :: Nurturing
  5/21/2012

Wow, this topic has the potential for so much hilarity.

I would run a caos script to enum all the clothes in my room, check if they're clean or dirty, and then mvsf them to either the laundry room or the closet. I'd probably devise some elaborate organization system for all my belongings along similar lines.

I might try to run a script that would automate the process of making tea, but positioning would be tricky to get right and has the potential to create a huge mess.

And I would probably have to try new: crea at least once...

(what would happen if your code threw an error though? objects would start being autokilled? That could be scary. I'd be afraid of autokilling someone >: ... )

Changes to caos though... commands for retrieving information on certain genes from creatures would be just wonderful. Some way to retrieve ATT info or just target a creatures' specific body parts to get info on their positions would be nice too, especially if you could force them to pose individually and thus script specific poses for creatures. A command to (quickly) retrieve a string containing a list of rooms a certain room is CA linked to... and of course, a command to count the number of frames in a sprite file, ugh, why doesn't that exist >:

My favorite CAOS command is MOWS :P


[Naturing :: Nurturing]
 
Ghosthande
Prodigal Sock

Ghosthande


 visit Ghosthande's website: Breeders Beware
  5/21/2012

You could use EMIT to remove bad breath and BO! :O
Of course your hygiene might suffer after a while...



 
Geek2Nurse

Geek2Nurse


 visit Geek2Nurse's website: Adventures in Nornia
  5/21/2012

Ooh, if I could EMIT Haldol and/or Ativan at will, my job could be a whole lot easier sometimes.

(And I wouldn't just be using it on patients!)


---
Optimist: the glass is half full.
Pessimist: the glass is half empty.
Engineer: the glass is twice as big as it needs to be.

 
Amaikokonut

Amaikokonut


 visit Amaikokonut's website: Naturing :: Nurturing
  5/21/2012

I would totally EMIT nutrients. Watch a garden spring up around me where ever I walked :P

Now using TINT in real life... that could be interesting. I would probably start tinting random wildlife, or tinting pet birds and selling them at high prices as exotic species.


[Naturing :: Nurturing]
 
Moe

Moe


 visit Moe's website: Creatures 2 to Docking Station
  5/21/2012

Solve world hunger by coding up a nutritious plant that grows in the harshest of environments. :)
 
Geek2Nurse

Geek2Nurse


 visit Geek2Nurse's website: Adventures in Nornia
  5/21/2012

...or just use Magic Words commands to scatter carrots and cheese everywhere. ;)

But how do we reset things when the memory bloat slows the world to a crawl?


---
Optimist: the glass is half full.
Pessimist: the glass is half empty.
Engineer: the glass is twice as big as it needs to be.

 
RisenAngel
Sanely Insane

RisenAngel

Manager


 visit RisenAngel's website: The Realm
  5/21/2012

I don't really have an answer to the first two questions, mostly because I can't think of any. Most of my frustrations are related to genetics and not to CAOs, and I don't have a special trick I use or like to see others use.

As for Real Life uses....

I'd make heavy use of the QUIT command whenever a stressful situation reared its head (assuming that the command just exits out of the situation and not reality), and as others said the PAUS command would come in handy when deadlines are looming.

I'd also make a fair bit of rain...I actually prefer thunderstorms over sunny days as long as it's not too cold and the tornadoes stay away.

Also, it'd be fun to use the VELO, ATTR, etc. commands to screw with people. Make a food item that makes people do weird things when they eat it (an object I'm actually making in-game). If I get really mad, I might throw a few DEAD commands around...extremely unlikely though, as I'm actually rather patient in RL.



~ The Realm ~
Risen Angel's Creatures Blog


 
Papriko
Peppery One

Papriko



  5/22/2012

First of all +1 for Moe, in-line operations and such would be useful.

As next +1 to Amai, more advanced commands to check out creatures would be nice too

I for myself would like a better system for custom commands. Subroutines and custom script numbers are okay and such, but... well, they are still not that perfect. Some subroutines you need in like 2 or 3 scripts at once, sometimes even across different agents. Just like Moe said, some pieces of code just keep reappearing. It would be great if you just needed to define 'em ONCE and then call them from wherever you are at the moment.

I know it might cause some mess if script names overlapped or when a certain library of commands (which probably will occur then) is missing.
On the other hand we are already able to fight such problems successfully. Look at classifier numbers or agents which expand others, e.g. the Panatreea Potion Vendor which is pretty useless without Treehuggers due to the missing sprites.


Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Moe

Moe


 visit Moe's website: Creatures 2 to Docking Station
  5/22/2012

It actually is possible within the current engine limitations to create basic libraries. You just make an agent containing the scripts for the library, and mesg wrt+ the library agent to run some numbers, using the AVAR command to feed back data to the FROM. This only works however if the library agent's script runs instantly, otherwise your agent will get out of sequence because it doesn't stop to wait for the library agent to run it's course. And we all know that the INST command is a demon on processing power when overused.

Creating cross-script libraries within singular agents however is possible and functional. The CALL command works like GSUB, but on scripts within an agent's species range, and like GSUB, it waits for the script to run before returning to it's own script. The only problem is that CALL'ed scripts don't send back VA's to the script that called it, so any values that need to be retrieved would have to be assigned as OV's.


Now, there is a more complicated but effective way to implement the first option by incorporating the second. You create a library agent with library scripts. Your agent would greatly benefit from using those scripts so you tell your agent at injection to copy those scripts, change the species numbers, and inject them as their own. Essentially localizing all the scripts from the Library Agent into your agent's species range so they can be CALL'ed. It's resource intensive, and would require some basic string parsing, but it's not too hard, and it's not all that different from the way C++ localizes used libraries in compilation. You could even have it look for specific scripts and only localize those if you wanted to narrow down the amount localized for memory-sake, but that's a good bit more complicated.

Updating the Library simply scours the scriptorium for script numbers in it's range, copies, and reinjects them for each agent using the Library.


Ultimately, the last option (or any of them, really) may prove to have less benefit than the work involved. Implementation for newer coders would be shaky at best. Imagine trying to explain the string parsing necessary to copy and replace the species numbers, why you're copying all this code into the injection portion, and what you're actually CALL'ing without seeing it? The only people who would really benefit are advanced coders who already know these things, or the designer of this " Creatures .Net Framework". Not to mention that it just makes the user need one more thing.

Anyway, that's the basic idea. Useful, but not easily implemented.

 


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
RisenAngel
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