Thursday, November 23, 2017

Some Yule Nostalgia


Do any of you remember the 1999 Creatures 3 Yule Pack? I remember that year all I wanted for Christmas was Creatures 3. I had spent the last almost two months dying of jealousy as I watched other members of the community play their copies, just released at the beginning of that November. My naive and hopeful child mind believed that in the worst case scenario, someone would 'simply' convert the C3 world, breeds, and agents to work in C2, of course! Oh, the absurd faith I had in the sorcery of the development community, like they could just wave a magic wand and make all our dreams come true! Kid-me wanted nothing more than to join their ranks, but even now knowing as much about CAOS as I do, I cringe at the idea of attempting such a project, knowing how much effort such a venture would have been and how vastly different and limited the final product would be to even sort of work within C2.


But thankfully I did find my copy of Creatures 3 under the tree and did not have to spend years hoping a developer would undertake such an absurd project. Though I'm sure I got other gifts that year, I certainly don't remember any of them. Perhaps that's why the old C3 Yule pack holds so many memories for me, as it was part of my introduction to the game as well as my holiday memories.

I've been wondering for a while if anyone's ever converted the agents to work in undocked DS worlds, but so far my searches have yielded only one result, KittyTikara's Modified Yule Lights (and they are fantastic!) So I decided to take a stab at the rest of them, just to appease my nostalgic soul. Most of them are pretty quick and dirty conversions, but I did add missing stims to several of the toys and tweaked a few other things along the way that I've forgotten the details of by now.


You can download the pack here! It contains the following agents:

  • Yule Booze
  • Yule Car
  • Yule Crackers
  • Yule Ettin Tree
  • Yule Fireworks
  • Yule Food
  • Yule Ettin Tree
  • Yule Norn Tree

You'll still need C3 installed for some of the agents that borrow C3 sprites, like the Crackers. I did not convert the SuperClean kit (I just didn't find it terribly necessary or festive, sorry) or the Yule Lights (since a great conversion has already been done).

If you're a fan of Creatures lore, I will make one very strong recommendation for this pack. Take a look at the in-game help files for each object! There's an awful lot of amusing and silly hints at the origins of traditions among the norns, ettins, grendels, and shee alike.

Maybe it's a little early, but I hope you all have a lovely holiday season!

Half-Lives and Other Genetic Mysteries

So I found out something recently. I think the official C3 genetics kit has been lying to us this whole time.




If you've ever messed around in the genetics kit, chances are you have at some point come across the massive Half-Life gene. This single gene is responsible for determining the rates at which every single chemical in a creature's bloodstream degrades. By selecting a chemical and moving the half-life slider bar, you can determine how long it takes for a chemical to drop to half its original value. Lower values result in a faster degradation, while higher values are slower. If you watch the bottom bar of your genetics kit window, you will see what that time is estimated to be, from 50 milliseconds at 0, to 148.8 years at 255.


But while I was looking at the half-life of the Life chemical in an average ChiChi, 99, I noticed the genetics kit claims that half life only amounted to 15 minutes. And well, that just doesn't make sense.


The "die of old age" receptor kicks in when Life drops to 0.02. And we already know that tends to happen around the 5h39m mark. But if the half-life chemical is really 15 minutes, that would mean:

15 minutes after birth Life would be 0.5
15 more minutes later, or 30 minutes after birth Life would be 0.25
45 minutes after birth Life would be 0.125
60 minutes after birth Life would be 0.0625
75 minutes after birth Life would be 0.03125
and 90 minutes after birth Life would be 0.015625, which is below the 0.02 mark at which a ChiChi dies of old age. And we all know norns live a lot longer than that! What's going on here?

I wrote up a script to output some information about a Creature's life chemical to the debug log, and this is what I found:

Contrary to what the Genetics kit tells us, the half-life of 99 seems to actually be closer to an hour.


I was curious as to how this scaled, so I set Life to have a half-life of 88, or what the genetics kit considers to be five minutes.


And it was actually more like twenty.

I did several more tests with different values (and different chemicals too, just to be certain this wasn't something with Life specifically) and came to the same conclusion. The half-life time specified in the genetics kit is actually only about 1/4th the actual half-life.

But why? Such a vast difference seems like kind of a big oversight, doesn't it? Well, I'm not certain exactly why, but I have a theory. As I continued to run more tests to learn more about half-lives, I wrote a script that output the amount of a chemical every tick. And that's when I noticed it.


See the pattern? It appears that the engine only processes chemical degradation in creatures once every four ticks. So it would make sense to consider that the C3 genetics kit was developed during a time when that was not the case. If the chemicals did indeed degrade each tick, then the times specified in the kit would match up! It seems possible to me that the process rate was changed sometime after the genetics kit was developed and no one ever thought to update it.

Before I wrap this up, I have one more bit of information to share. While I was testing different half-lives I noticed that despite what the genetics kit claimed, any chemical with a half-life setting greater than 171 never degraded. Ever. All chemicals with half-life settings between 172 and 255 stayed the same and only lowered if they were used up through other chemical reactions. Why is 172 the magic number? I honestly have no idea. Ultimately this information probably has no practical use, since a half-life of 172 would take real-time months to degrade anyway and norns generally don't live that long, but it's still quite an interesting mystery to me.

Anyway, I hope the results of these experiments have left you a little more informed about half-lives. If anyone else has done similar experiments, I'd be interested to see if you got the same results or discovered anything that might be contrary to these findings!

Wednesday, November 22, 2017

On Vocabulary Lessons

I actually gave the Magic Words Core a small update recently. One of its weirder flaws was that if it was injected multiple times, it would respond to commands multiple times, including bringing up the multiple copies of the help menu. This generally wasn't a huge issue, but it could be a bit of annoyance if you placed the core's cosfile in your bootstrap, then forgot you had done that and injected it too. This recent update should reduce the chances of that happening quite a bit.

While playing through my last world, I ended up making another update to an older agent-- this one to the Magic Words Hand-Teaching module. Just to refresh you, this was a module that allowed teaching norns a word by simply typing 'teach [word]'. It was my attempt at finding a pleasant hybrid between the instant-learn method of the Holistic Learning Machine (and the Stones of Knowledge) and the dull, tedious grind of the Learning Computer (which more often than not resulted in me dumping the newborns into the learning room and then going off to do something else for a while). I wanted a method of teaching my creatures that was a little more hands on, and Magic Words seemed to offer me the solution. 

 I still really enjoy hand-teaching my norns when possible, but sometimes I don't want to type out 'teach hungry for protein.' Nor can I always remember the names of all the drives off the top of my head. And one of the more frustrating aspects of Hand Teaching is when a creature has a high drive but can't tell you what it is yet (and all your guesses are incorrect). So this update was written to address those issues. It has the same functionality of the original, but includes a few new commands:

Teach Random will teach creatures a random, non-noun word. I've found that using this command on occasion during normal care takes a lot of the frustration out of hand-teaching creatures Literally Every Word, which can become so tedious especially when your favorite pair just had their eighth child.  Just making a habit of using it every so often to teach a couple words here and there allows creatures to eventually learn everything without taking all the personal hand-norn interaction out of the process. The Vocab-Bot has the same effect, just in a toy form.


Teach Drive will teach the name of the currently selected creature's highest drive. One of the first words I teach creatures is "express" but that doesn't do a whole lot of good when they stand there shouting "Clover rly boop" over and over again. While they would otherwise probably end up learning a lot of other words while I attempt to figure out what they actually need, this tends to simplify the process a little.


Teach Qualifier and Teach Hunger both accomplish similar purposes as just being shortcuts for the teaching the categories of words I don't always feel like typing out. The first will teach a random word like Very, Extremely, etc., and the second will teach a random of the three hunger drives.

I might be the only one who enjoys this particular playstyle, but just in case I'm not, you can download the updated version here. I hope you enjoy!


Tuesday, November 21, 2017

On Creatures Journalling



Despite my community inactivity overall (I'm doing an extra-bad job of sticking to the 'community collaboration' theme this year), I feel like I'm playing Creatures more than ever these days. I've just switched to logging my Nurturing worlds in Google Docs files. As much fun as it is posting logs here to share, it can be a bit tedious to deal with uploading pictures and placing them nicely and writing lovely descriptions of everything. It's fun in its own sort of way, but it sometimes gets to the point where I feel like I can't really play Creatures without making a chore out of it. Keeping these more casual, personal creatures journals shared only with a handful of close friends at most feels like a happy medium to me. These peeks inside are really only the most public-worthy examples-- most of the logs tend to tangent off into rambles on things I want to develop but never will, or worse, tell stories about the creatures in the world that died of neglect while I was too busy rambling (for how long I've played this game, you'd think I'd be able to keep creatures alive by now).

One thing that I really love about Google Docs is the fact that I can paste screenshots directly into the documents themselves without having to save or upload them elsewhere first. Using a tiny application called SnapaShot (I greatly prefer the free Classic version; it's much lighter), I can easily copy a portion of my screen to my clipboard, and then paste it directly into my document-- no saving, cropping, or uploading mess required!

It's worth mentioning there's also a service called Gyazo that does something similar, but also uploads the image to their servers and gives you a link you can easily share with others. I don't use this personally for the screenshot feature (I'm still slowly going through and fixing all the photobucket images on my blog so I'm a little wary about where I host my images right now) but I love using it to take short animations to demo how something might work.

Anyway, back to journalling. The only pitfall I ran into was actually getting good screenshots. In order to be sure I get creatures into a good pose, without their eyes closed, their nametags overlapping, looking away from the camera, etc., I usually have to pause and unpause the game a few times to get the perfect shot. Personally, I much prefer using the Pause button on my keyboard to avoid dealing with that that panel getting in the way, but guess what happens when you press Pause on your keyboard? The big ugly panel slowly pulls itself out from the side, and then when you unpause, it slowly moves back into place before you can pause again. That doesn't really work well with my style of pausing and unpausing many times in succession. So I wrote up a modification to the DS Keyboard Handler which I'm calling QuickPause. You can download it here.

QuickPause does just what you'd expect-- pauses the game as soon as you tap the Pause button on your keyboard, unpauses when you tap it again. Additionally, it hides the creature and attention indicator arrows, which I feel get in the way of otherwise lovely screenshots most of the time. I haven't taken the time to super bugproof this script, so it's probably not a good idea to mix pausing with the control panel and the Pause key. I've also only tested this on my Windows 7 computer, so I don't know how it will work on Macs or other systems, but I thought it was worth sharing at least.

If you're like me and find yourself sometimes struggling with the added work of documenting your Creatures worlds publicly, you might get something out of keeping a journal in Google Docs or any other software that lets you paste images directly into the document. I guess this suggestion is actually kind of counter to the theme of community involvement, but at least for me personally, the more I play (and document) this game, the more I am inspired to develop for it. A lot of the little things I'm trying to tidy up to get into a releasable state this week were inspired by the worlds I was logging over the summer, so despite the reclusive nature of private logs, I probably wouldn't have much to post this year without them!

Monday, November 20, 2017

Eleven Months Later, a Speech Bubble Update

Hello friends. I'm still around, if in a mostly lurktacular sense.

I've gotten a little fed up with myself and my bad habit of posting "hey, look at this thing I'm working on!" and then never releasing it, or in this case, releasing it almost a year later. It's something I have mixed feelings on because on one hand I feel like it's important to document the process of things so that other can chime in and maybe learn from it, and on the other hand, it stresses me out so much to have little loose ends of projects I haven't finished floating around out there. I've also kind of come to the conclusion that I think gain a lot more satisfaction out of documenting and discussing the process with people than actually finishing/releasing something. But of course, just talking or posting about something doesn't do much to help people who just want to see the finished product!

I think the standard I am going to try to set for myself is to only post about an unfinished project if A) I require more feedback/information from the public to move forward on a project, B) if the documentation of the process can help people in some way, such as including discoveries or notes about how a particular aspect of CAOS, genetics, or the brain works, or C) If it's a particularly large project that I've already posted about previously and people are asking about how it's going.

My previous post about the Speech Bubble Update accomplished none of those things. In fact, in the time that it took to write up that post, I probably could have finished up the expanded sprites that I was too lazy to work with and just released the thing. This is the sort of posting I'm looking to avoid in the future. I'd like to indulge my desire to just talk about stuff pointlessly a little bit less, if it means I can get more done in the very limited time I have to develop these days.

But anyway, moping aside, you can now download the Speech Bubble Upgrades!

Just to refresh you, the purpose of these updates is twofold:


To provide a larger speech bubble so creatures with long names can completely express themselves.


And to allow easier directing of commands to specific norns, Prefacing a command with 'hey' will direct that command to your currently selected norn, without you having to type out their whole, ridiculous name.

The zip file contains a .cos you can just drop in your bootstrap if you don't want to have to fiddle with injecting it every time, but if you go this route make you you inject the agent into a world at least once first to ensure the new speech bubble file gets extracted.

Also, happy CCSF everyone! For once I'm not completely skipping out this year, but like usual I didn't make any formal submissions either since I'm so awful with deadlines and painfully subject to altering and finishing things at the last minute. Nevertheless I'm going to do my best to use the festival as motivation to get a few posts made over the next few days, so look forward to that!

(Note: The Speech Bubble Upgrade was updated on 11-27-17 to fix a critical bug reported by Pixis (Thank you Pixis!) The download link has been updated to the newer version, however, if you want the old, broken version (for some reason) you can still download it here.)

(Also note: The Speech Bubble Upgrade received a substantial update for CCSF 2021 to add support for custom styles! You can check out the release post for more details. If you prefer the old version, you can still download it here. If you prefer a camera-shy version of the old version, check out Invisible Speech Bubble Plus!)