Saturday, March 24, 2012

Project: Flesheater Grendels

An adult male Flesheater
If you frequent CCaves/Ctopia and pay attention to the Development Board, you may have noticed a thread about these guys. However, beyond "more realistic predatory grendel" I've never really given them an official description. Now that I have this blog, it is as good a place as any to give the laydown on the Flesheater Project.





The Flesheater Grendels are my magnum opus - the most complex and polished breed I ever plan on making. As can be expected, I'm taking my time in making them and constantly testing them after each change I make. It's the most amount of work I've ever put into a genome, and I hope that it pays off.

The Flesheaters are designed as an answer to a particular problem about the normal grendels - as a wolfling run hazard, they're hit or miss. If you use the standard (Jungle) grendel as a hazard, they'll either do nothing or kill all your norns within a short timeframe. It's rare that you'll get grendels that actually serve the purpose as a check to the norn population.

The problem with the normal grendel is in their anger levels and aging process. Standard C3 grendels age really fast - hatch a norn and a C3 grendel at the same time and the grendel will be an adult in a fourth of the time it takes for the norn to get to that lifestage. As well, C3 grendels get angry for the most trivial things (such as running into walls). The end result? An angry, adult C3 grendel can easily end a wolfling run before any of the norns get a chance to breed. Even worse is if one decides to hatch a breeding pair - the C3 grendels will be having babies by the time the norns actually start wandering around.

Banshee grendels aren't much better. While they don't start hunting norns until adulthood, when they hit that age they're every single bit as remorseless as the standard grendel - to end an adult's killing streak, the grendel itself needs to die or all the norns need to die.

If you want an example of what I mean, read this topic about a wolfling run where the Banshee Grendels were given the aging process and breeding speed of the standard C3 grendel. It didn't end well, to say the least.

Another problem is that the standard norn really doesn't stand a chance against a grendel. In a normal world, the hand could just teach the norn to hit the grendel, but in a wolfling run a norn won't know to do that. Better yet, even if they did know that they could hit the thing, it would likely get them nowhere - normal and banshee grendels are relentless when attacking. 

This problem is what the Flesheaters aim to fix. Where a normal grendel's relationship with a norn is akin to that of a serial killer's with his victims, the Flesheaters and norns have a relationship more like that between a lion and a zebra. The Flesheaters will get angry and will kill norns, but they know where to draw the line and won't kill more norns than is explicitly necessary. They also have an altered aging and breeding process to ensure that they don't get the jump on norns if they're hatched at the same time as their prey.

Flesheaters also are being designed so that the normal norn has a chance against them. Their flight-or-flight genes are edited so that a healthy grendel fights back when attacked, but grendels in high amounts of pain will turn tail and run. Basically, a norn merely has to slap a Flesheater enough to get it to run away. If the norns have access to education, they then could pass down their knowledge to the next generation, possibly ensuring the species's survival.


This is more an introduction to the breed than anything else - the breed will get covered in more detail in future posts. So for now, I'm leaving it at that. I do want to know, however - is there anyone who's actually interested in a grendel like this? My past attempts at hosting a public beta test for them ended in dismal failure. While the files I put up are getting downloads, I'm not getting any feedback on them even though I explicitly asked for it. So I'm wondering if there's an actual need for a grendel like these.

For those of you interested in testing the Flesheaters: You can get the genome and a breeding pair for v0.5 (the latest public revision) here. They're a bit outdated, but they're still a good example of what I'm aiming for.

Friday, March 23, 2012

Tutorial: Extracting Plants and Animals from a Metaroom

In my last post, I mentioned that I had placed the whales from Aquatilis Caverna into the western C1toDS ocean. Now, if you look at my favorite places, you'll notice that Aquatilis Caverna wasn't injected, so I couldn't have simply picked up the whales and plopped them in here. So, how did I do it? Let me show you how, and how you can use this exact process to rip any plant or animal from a metaroom of your choice and place it somewhere else (and possibly add it to Amai's Garden Box later).

A few things to note before we begin: This is for Windows users only. I've never used a Mac/Linux computer, and as such know nothing about them. If you use one of those OS's, you MIGHT be able to follow this, but you'll probably need different directions for things such as navigating to your Creatures 3/Docking Station directory. As well, I'm not sure if the required programs for this tutorial even work on a Mac/Linux.

While I'll try to explain everything in as much detail as possible so that even those without any CAOs knowledge can follow this tutorial, reading AquaShee's CAOs Chaos and Moe's Beginner Tutorial before attempting to follow this tutorial will really help you understand what you're doing here.

You'll also need the following things:
1. The CAOS Tool from Gameware Development (WARNING: Direct Download Link).
2. The SpriteBuilder from Gameware Development. (WARNING: Direct Download Link).
3. Mirality System's REVELATION.
4. If you're using Creatures Exodus, you'll probably need the Remastered Patch to use the CAOS Tool.

And here's how to install them:

1. The CAOS Tool Installer is an .exe file. After it's done downloading, double-click it to install. When prompted, put down "Gameware" for the name and  "350-4742K-1234U-WK" for the registration number (code? It's been a while since I've installed the CAOS Tool).
2. The SpriteBuilder is also an .exe file, but unlike the CAOS Tool it's standalone. Just extract it somewhere and run it.
3. REVELATION is a DOS/Console program. Like the SpriteBuilder, you can just extract it anywhere you want (although I STRONGLY suggest you put it in a folder - using it makes a lot of files that will cause issues if you put it on the Desktop). However, you need to do something special in order to use it correctly, which will be covered later in this guide.

 Be sure to know the path to wherever you put REVELATION - you'll need to know that later. The path will probably look something like the highlighted bit in the picture.

Alright, enough expository banter. Let's get down to the meat, shall we?

For this tutorial, I'll be extracting the Water Weedgrass from Aquatilis Caverna 2, but you'll probably be extracting a different plant/animal from a different metaroom. Your choice won't affect the tutorial at all, however. 


The Process
1. Navigate to your C3/DS "My Agents" folder. If you're running a "normal" C3/DS installation (i.e. the free DS Download or from Creatures Trilogy), then your path should look something like mine (highlighted bit):
If you're using Creatures Exodus (GOG version or otherwise), then it probably has a different path you'll need to navigate to. In the GOG version of Exodus, it's probably under "GOG/Creatures Exodus/*Game*/My Agents." I'm not certain about non-GOG installations of Exodus, but I imagine it's under "Gameware Development/Creatures Exodus/*See GOG version*." If someone can confirm the correct paths, I'll update this.

2. Find the agent file for the metaroom you wish to extract a plant/animal from. Usually, the agent file is named after the metaroom, but sometimes it's named oddly (for example, Aquanornia's agent file is simply called "AgentC3" or "AgentDS." Really descriptive, isn't it?). In that case, you might want to use Notepad to open up all the oddly named agents. Once the file's done loading, it'll say what the agent contains at the top. Either way, once you've found your metaroom, copy its agent file (right-click on it, then select "Copy").

3. Navigate to wherever you put REVELATION, and paste the agent file into that folder (right click on the folder and not on REVELATION itself and select "Paste").
 For the record, your folder probably won't be filled up with .cos files unless you use REVELATION a lot like I do. The important parts of this picture are REVELATION itself and the agent file.

4. Now, to run REVELATION. If you tried to double click on REVELATION itself, you'll find that it simply brought up a window for a split second and disappeared again. The same thing happens if you attempt to drop your agent file onto REVELATION. Neither will get you very far. To run REVELATION properly, you'll need to do this:
4a. On your main Windows menu, navigate to "Accessories" and click "Command Prompt." Alternatively, you can use the Run function and type "cmd" into the dialog to run the Command Prompt if it's not on your main menu. Just ignore the fact that the wrong thing's highlighted in this picture - the thing you want is right above it.
4b. The default path for the command prompt is "X:/Users/*Your name*". Since you probably didn't put REVELATION there, you'll need to navigate to the correct location. Type in "cd *your path to REVELATION*" and push Enter. This is why I told you to copy down the path to REVELATION's location earlier.
4c. Now type "revelation *yourmetaroom*.agents (or .agent - it doesn't matter which ending the file uses, it works either way). Push Enter again.
You'll get something that looks like this:
If you get an error, you might have misspelled the name of the agent file/misplaced it. Make sure the file is in the same folder as REVELATION, and check how it's spelled.

5. If the decompiling was successful, exit out of the Command Prompt (either by pushing the X button or by simply typing "exit" and pushing Enter). Go back to the folder you put REVELATION in.

6. Among all the random files you should have gotten (here's why I told you to give REVELATION its own folder), there should be a .cos file named *agent name*_*Agent Injector/Creator Name*-1. Open that .cos file with the CAOS tool.
6a. There are some agent files (such as anything CL made and the Norngardens) that simply will not produce a .cos file when decompiled with REVELATION. There is a way around this; unfortunately, I've forgotten it. If you're trying to get something out of a CL agent file then you're out of luck unless you use that alternative method, but for anything else you should still be able to get at the code by opening up the .agent file with Notepad. If you were able to install the CAOs Tool, then you can still follow the tutorial with the .agent file opened up in Notepad.

7. The CAOS Tool screen looks something like this:
 The first part of this file is simply injecting the room itself - you can ignore it. The part we're interested in is immediately after this - the part where the agents populating the room get injected.

Using the Find function (either by clicking "Find" in the Edit menu or by clicking the binoculars symbol on the toolbar), you can locate the plant/animal you want to extract. If the .cos file is commented, you may be able to get away with simply typing the name of the plant/animal into the search bar, but if not (or if the file is commented oddly), you'll have to use SpriteBuilder.
7a. Open up SpriteBuilder (wherever you might have placed it). Under the File menu, click "Open."
7b. Navigate to your "Creatures 3/Images" or "Docking Station/Images" folder.
7c. From here, we'll search for the sprite file of the critter/plant we want to extract. Most metaroom creators put the name or acronym of their metaroom before the name of the critter/plant (for example: "ac_shrimp" for the Aquatilis Caverna shrimp).

If you can't find a sprite file named in that fashion, then try looking for groups of images named in a similar fashion (Aquatopia's sprite files, for example, have underscores before and sometimes after the critter's/plant's name). If that fails...well, think of a descriptive word for whatever you're searching for and see if you find it. Provided you installed the metaroom, you will find it eventually.

8. If you searched via comments, the first thing you got taken to was probably the name of the critter/plant above a segment of code beginning with something along the lines of "new: simp." If you searched for the name of the sprite file, you probably got taken within this "new: simp" command itself. That's the installation routine of the critter/plant. Copy this entire routine (everything under the "new: simp" command up until the next space/"new simp" command - generally speaking, a single installation routine will end with either the "mvto/mvsf" command or the "repe" command).

9. Open up a new .cos file ("New" under the file menu or the single sheet of paper to the far left of the toolbar), and paste the stuff you copied into it. Check to see how many classifiers are contained within your installation script (seeds and adult plants are always classified differently, and sometimes adult and baby critters are classified differently as well). If there's more than one, then you need to get the scripts for all of them. As an additional note, the AC2 watergrass is an example of an installation routine that has a bunch of stuff other than "reps" or "new: simp" at the start of it - in this case, it'll be irrelevant soon enough, but if your installation routine looks like this one, don't count it off right off the bat.

10. Now it's time to find the event scripts for your chosen plant/critter. You can use the comments again, but this time it's easier to simply search for the agent's classifier. This is the set of 3 numbers to the right of the sprite file's name (which is in quotations). Copy these into the "Find" function and search. What the numbers mean is largely irrelevant to this guide, so don't worry about that too much.

11.  Click the "Find Next" button several times to judge how many scripts you need to copy. Note that the event routines are always within "scrp X X X X"/"endm" blocks. Stuff after the "rscr" command will be covered shortly, and just outright ignore the classifier if it shows up anywhere else.

12. Now, copy all the event scripts ("script X X X X"/"endm" blocks) that contain your chosen plant/critter's classifier into your new .cos file that was created in step 9. Make sure that you don't copy scripts from the agents immediately preceding/proceeding your chosen agent unless their classifiers also showed up in your installation script. Make sure you get ALL of the event scripts - if you miss one, you'll run into an error when it comes time to get your extracted agent into the game.

13. Now for the stuff after the "rscr" command. The "rscr" command is the remove script - that is, it gets rid of the room's agents and their scripts. Now, not all rooms have these (in fact, the room I'm using doesn't), so if it's not there you can skip this step. Otherwise, copy the commands that contain the classifier(s) in your installation script (they always look like "enum X X X/kill targ/next" or "scrx X X X X") into your .cos file. When you're sure you have copied everything, you can close the room's .cos file (but leave yours!). We won't be needing it for the rest of this tutorial.

14. Now, fire up your game. Before you go any further, make sure the game mentioned on the bar at the very top of the CAOs Tool window matches the game that you've chosen to run (it should read "Docking Station" if you're running Docking Station, for example). If they don't match, you won't be able to inject your extracted plant/critter into your game. Go to the spot where you want to place your extracted plant/critter (I'll be using the Norn Meso, which I've flooded).

15. Push "Shift+Ctrl+X" to bring up a pair of numbers next to the hand. These are the coordinates of the hand within the world - the top refers to the X-axis and the bottom refers to the Y-axis. Move the hand to the leftmost position of the area where you want to inject your plant/critter.
16. Copy down those coordinates - you can pause the game with the "Pause/Break" key on your keyboard to freeze the coordinates, or you can simply write them down on an external sheet of paper. Go back to your .cos file.

17. In your installation script, find the command labeled "mvto" or "mvsf." Replace the coordinates immediately after that command with the ones you just copied down. Don't worry if your script says something like "mvsf va00 va01" instead of "mvsf 34021 758" - treat the "vaXX's" like they were actual numbers.
18. In theory, you could inject the script now. However, there's a high probability that you'll get weirdness (such as multiple plants growing in the exact same spot) if you leave the "mvto/mvsf" command like this, so let's randomize the location a little. Go to the rightmost spot of your area and copy down the X-coordinate (not the Y coordinate - you got that in the previous steps) of that spot. 

19. Immediately after the "mvto/mvsf" command, type in the command "rand" and put a space between it and whatever your X-coordinate is. Immediately after your X coordinate, type in the X-coordinate you just copied down. Now, the script will randomly choose a location in between the two coordinates you typed in and put a plant/critter there.
  

20. Now it's time to inject your newly created .cos file into the game. In the CAOs tool window, push the button to the far right that has three lines on it.
 21. If you get no errors, then congratulations! You have successfully turned a critter/plant that was originally packaged with a metaroom into a standalone plant/critter! You can save this .cos file if you want to use it more than once; however, do NOT put it in your "Creatures 3/Bootstrap" or "Docking Station/Bootstrap" folder, especially if you injected your plant/critter into a third-party metaroom. Save it to somewhere else (I personally put mine in my EasyPRAY "Projects" folder).
21a. However, if you did get an error, check to see what it said. If it tells you something about an "invalid map position," you need to find different coordinates to inject your plant/critter into - the ones you chose originally couldn't fit the agent!
21b. If you get "tried to set bhvr X, but couldn't find one of the appropriate scripts," then you probably missed a script somewhere. Go back to the room's .cos file, find your plant's/critter's event scripts, and compare them to the ones you copied down.
21c. Finally, you might get a syntax error - if this happens, the affected parts of the .cos file in the CAOs Tool will be red instead of blue. If this happens, something got formatted wrong - make sure each bit of code is on its own line, and make sure that all "scrp X X X X" blocks end with an "endm."

Man, that was a long tutorial. Feel free to tell me if something doesn't make sense or needs elaborating. 

Thursday, March 22, 2012

Current Development World

For a first non-introductory post, I decided that I'd showcase my current development/general gameplay world, which has the exactly same name as this blog. While it might not be that interesting to some of you, others might like to know what I do differently as a Creatures player.

Before I say anything else, this post is very image-heavy with some very big images. I apologize to anyone with a slow connection.

I'll begin my world description by showing off my current Favorite Places list. Besides the default metarooms (as you can see, this is an undocked DS world), I also added the Hub by Annex (with some alterations - I'll get to those), the C3-in-DS Norn, Jungle, Ettin, and Aquatic Terrariums by Emmental, and C1toDS by a heck of a lot of people. I'm planning on adding more at some point, but as I can't think of any metarooms worth adding that aren't big empty expanses this line-up will do for now.

Speaking of big, empty expanses, here's a glimpse at my Norn Meso. There's nothing in here due to the fact that, since I like to run a lot of single-room wolfling runs and most of those runs are not in here, I removed most of the .cos files that would otherwise inject agents into here (such as the food vendors, the stinger pod, and the tuba). The only Meso-exclusive agents in this room are Muco, the Commedia, and the HLM. As this emptiness is typical of the rest of the default DS area, I won't spend much time on it.

Now for Annex's Hub. If there's anywhere that has a lot of altered code, it's this place. Let me list all the things that were changed:
  • The room's been remapped slightly (the bottom of the lift shaft was originally two rooms - I replaced those with one, singular room to add CA links).
  • The lift's gone and replaced with Amai's Elevines. The default lift is really, really buggy (among other things: click on it wrong and it'll trap creatures when it stops and won't carry them when it moves). The elevines themselves have been slightly recoded, as well - before, creatures who had just used an elevine would sit there looking at it due to getting stimmed to wait AFTER getting stimmed with "traveled in elevator."
  • The doors now tell creatures to wait before transporting them. Without that stim, creatures would repeatedly push the door and wind up triggering it again when they reached the other side, usually winding up back where they started. 
Besides the above alterations, I've also added Aquashee's Botanoid and Ghosthande's Chyme Plants (from her Gaius pack) to prevent Eat Elevator Syndrome. As you can see, it's actually quite a popular hangout even for naturally-inclined Apple Norns.

Now for the C3-in-DS metarooms. Since I've injected all four of the main C3 areas, I took it upon myself to re-add the doors linking them (that is, the ettin accessways and the norn-to-grendel door), and I've also applied Vampess's fixes to the lifts (note to self: Add Creatures Heaven to the links section).

The Norn Terrarium has Vampess's fixes to the wildlife applied to it and had the heat turned up to keep the carrots around, but apart from that it's pretty much the same room as it was in C3.
I'd also like to note the creatures in the picture. The two norns, Menrik and Seyon, were adopted from Discover Albia's CreatureLink, and had their starts in the scenario world detailed there. Unfortunately, neither of them has bred yet (I doubt Seyon's going to breed before she dies from old age. There's still hope for Menrik though, as he went to join the Apple Norns in the Hub shortly after this picture was taken). The fittingly-named Rampant Motion also seemed to be suffering from EES in this picture - I'll snap her out of it once I get back to playing.


Abundant Self, along with Rampant Motion, came from the Ettin Egg Layer. I'm not quite sure what genome she's using - she's definitely not a normal ettin, I can say that much. I originally thought she was a Lungfish Ettin, but she has normal sleeping patterns (Lungfish Ettins fall asleep constantly if they're above water).
Another random quirk about the world: The grendel and ettin egg layers typically produce grendels and ettins instead of other species with genomes beginning with "G" or "E," as the default layers do.



The Ettin Terrarium underground is decorated with Gaius's Spigot Plants and Chyme Plants. The geat himself is nowhere to be seen, though.

Okay, there's not a lot to say about this area. I just snapped this picture to show off the flora. Since there's nothing of major note about the Aquatic Terrarium, I'm moving on to C1toDS.

Godly Blood (interesting name) is a default C3 grendel from the egg layer. The only thing worth nothing about him is that he has learned to play with toys and eat birds. He didn't come here on his own - I dropped him onto the island after he attempted to attack Seyon (he didn't actually manage to hit her).

To wrap things up, I'll describe what I did to the Western Ocean. To accommodate Melted Example and Handsome Baby (a Hydrolisk and a Banshee Hydrolisk, respectively), I added the sponges and gumin grass from the aquatic terrarium (who have edible seeds thanks to my meddling), as well as the Kyutai whales, recoded so that creatures call them norns. They're pretty much there as punching bags for the grendels. Melted Example is the grendel who posed for the blog's current banner, by the way.

This'll probably be the last expository post. My next post is definitely going to be about something development-related.

Wednesday, March 21, 2012

Welcome to the Hole

Recently, I've found that I've been spending more time looking at Creatures blogs than the forums (probably because the blogs are more active). So I decided to get in on the fun.

First, some backstory on this place. The first time I attempted to edit this blog, it was under the simple name of "Grendel Man's Creatures Blog." The reason no one knew about it until now was because of a screw up I made. I exited the designer without saving my layout changes first, result in the template reverting back to its default settings. After getting extremely miffed at losing a lot of work, I decided to simply not bother. It wasn't like I was going to update it frequently, anyway.

Cue the present day, where the exploits of Amaikokonut and Jessica got me to give this thing another go. I spent a day formatting it until it assumed its present form. It's not the best looking blog (the background looks a bit grainy, for example - that's what happens when one has to resize a 3.6 MB background to get it under 300kb), but for my purposes it'll do. I'll probably make it look a bit better over the course of the next few months.

What do I plan on blogging about, you ask? First thing is first: As far as the Creatures series goes, most of the stuff detailed on this blog will be about Creatures 3 and Docking Station. Together, they are my favorite games in the series, as well as quite possibly my favorite games in general.

I'm a developer for the most part, so expect lots of details about my projects. Most of these projects will be genetic breeds, but I also code agents (not as much as the breeds though - I can't make images to save my life).

Granted, I also like just playing the games. However, unlike some other people, I'm not one for nurturing my creatures. I'm the sort of player who sets up a world, hatches some creatures, then sits back and watches how things turn out. As such, apart from the occasional tidbit about my main developing world, most posts about general gameplay will be detailing a wolfling run.

That said, I do plan on making a scenario world in the same vein as those at Discover Albia and Naturing :: Nurturing. However, I'm probably not going to be doing it for a while, as it involves coding - a lot of it. I'll detail the plans for that in a future post.

To wrap up my first post here, I'll say that I'm going to try to update this at least once a day. However, I'm seriously ADHD and as such my interests bounce around all over the place. There's likely to be periods where I'll update this blog frequently, and other periods where I'll be spending more time playing other games and won't post here for months or more. If I feel I'm going to be inactive for an extended period of time, I'll note so here.

I believe that's all that needs to be said. I hope you'll enjoy the blog!

P.S. If you got here through a Google search or something and have absolutely no idea what Creatures is, consult the Creatures Wiki. It will do a far better job at describing this series than I ever could.