Sunday, December 17, 2023

CCSF '23 Release: Speech Repeater


Grab the download here! (REQUIRES Magic Words Core 1.3 and Updated Magic Words Agents, as well as Speech Bubble Upgrades 1.2)

This, this right here, is the reason I had to rewrite the Magic Words Core. And it was totally worth it. It was Mea's idea, and I think it's the whole reason I ended up working with connectable agents and generally trying out a lot of new stuff. She also provided a ton of lovely sprites for the exterior of the agent, so don't miss out on clicking that bottom button!

Note that you don't HAVE to use this as a connectable agent-- clicking the top antenna button will activate the command itself. Just make sure you remember to hit "enter" after typing in the box, otherwise it won't register and it may hog focus of the text input, meaning it won't let you type normally into the speech bubble until you find the agent and hit enter. (or, just as a general tip, if you ever find you can't type in the hand's speech bubble, quickly opening and closing the CAOS command line (shift+ctrl+c) will reset the text focus to the hand's speech bubble again).

I'm sure you all can get more creative with this than me, so let me know what you end up building!

Thursday, December 14, 2023

CCSF '23 Release: Real-Timer


Grab the download here!

When Mea first suggested this idea to me, I thought it would be a simple project I could knock out in an afternoon. I was wrong. This is one complicated gizmo! I never thought programming something as simple as a timer/clock would be so involved (or have so many bugs!), but this was certainly a learning experience. In the process I even found a bug in my own PCs settings that was causing this agent to display the time wrong!

I would appreciate you glancing at the help/readme for this one, just to get an idea. While writing it, I sincerely felt like I was writing a detailed user manual for an actual physical object. I'm very happy with the result though. I think this is the first connectable agent I've ever coded!

For all that it took though, it is pretty straightforward to use; it just has a bunch of little details that might not be immediately apparent. Its purpose is simply as a connectable gadget that counts real time. You can either use it in timer mode (sends a signal when the timer reaches 0) or Alarm clock mode (displays the real time and sends a signal each day at the time the alarm is set for). It also has a "closed game awareness" button you can toggle that controls whether or not the timer ticks down while the game is closed. And don't forget to click the bottom right button! Mea made a ton of lovely skins for this agent, so explore them and pick one you like!

Wednesday, December 13, 2023

CCSF '23 Release: Universal Wires


Grab the download here!

This is one of those things that I made as proof-of-concept ages ago, but couldn't really find a practical use for it, so it got shelved. But I've been working a bit with gadgets this year and...well, I'm still not certain of a practical use for it, other than to more easily spam the SERU drop point. But... it is very fun to play with. I feel like it might also be useful for testing agents at some point too. Let me know if you do anything useful or fun (or horrifying) with it! 

Some technical info-- by default, if you don't select a script with the SHIFT key, connecting a wire to any agent that isn't already connectable will result in activate 1 on that agent being run when it receives any non-zero signal, unless script 8880 exists on that agent. I've included a handful of 8880 scripts with this for various C3/DS agents that throw errors if you try to directly run activate 1 on them, so if it finds it, it will run that instead. There's also a few "888X" scripts included to perform other actions for which I found the agent's native scripts to be disappointing or difficult to use, so if you see those while on the script selection screen, know that they are generally wire-safe.

Otherwise, know that when sticking wires into things you will almost certainly run into errors and/or unexpected behavior if you select a script on an agent that was never meant to be run independently. But isn't that half the excitement?

Have fun sticking wires in things!

CCSF '23 Release: Magic Words Core 1.3 Updates


Grab the megapack download here! Or if you want to download each update individually, select below: 
[Magic Words Core 1.3] (also requires the Speech Bubble Upgrades 1.2 for all the features to work) 

Whoof, this one was a lot! The backstory behind this is that I wanted to make Magic Words more flexible by allowing other agents to call them-- not just the hand. But since I had written all my magic words commands assuming that the hand would always be the one to call them, it was going to require a bit of an overhaul. Personally, I feel like it was worth it, especially since it got me to push out a couple other Magic Words updates I've been working on.

I sincerely don't know anyone who even uses the keyboard handler's keybinding abilities-- for as long as DS has existed I can barely even remember anyone talking about it. (If you're a person who does, I would love to know what you bind to your keys.) But I figured it might be more useful if I made it compatible with Magic Words, so that you can assign Magic Words phrases to a hotkey for easy access. 

One thing I didn't mention in this video is that the keyboard handler implements another small update-- if you bind an F-key to a 'favorite place' as explained in the help, it will actually bind it to your current x/y location instead of the current metaroom. This has been super useful for getting around large metarooms like C2toDS quickly.

But I think in this entire pack of updates, I am most happy with the autocomplete feature added to the Magic Words Inject command. It's been on my wishlist for quite some time and I'm just glad I finally got around to doing it-- it's already making my life so much easier.

The rest of this post is aimed at developers, so if you're wondering what this core update might mean to you, read on:

Developers who have written/may write Magic Words commands, you will only need to consider updating your commands if 1) they take the location of the hand into account when deciding how to act, and 2) you want your Magic Words to instead take the location of the call-agent into account if something other than the hand called it. An example of this would be a command that typically produces or moves an item to the hand. The new Magic Words core now will send the calling agent in _P2_ to the magic words script, so you will want to update your script to check if _P2_ is an agent, and if it is, act in whatever way makes sense (like if your magic words generate an item, have that item move to _P2_'s location instead of mopx mopy). If you have any questions or difficulty with this, please get in touch with me; I am more than happy to help. I'll try to get a new template posted pretty soon, too.

Also, even if you don't update, your Magic Words will work just fine with core 1.3 -- they just may behave as though the hand is calling them even if another agent is calling them.

Developers who want to create agents that call magic words commands: You can do this by sending a MESG WRIT to script 1000 on the Magic Words Core (game "amk_magic_words_core_agent") with the command set in _p1_ and the agent doing the calling (or at least the agent you want the Magic Words to consider the agent you are calling, such as a creature) in _p2_. Example: mesg wrt+ game "amk_magic_words_core_agent" 1000 "import 1 norn" norn 0
 would use Magic Words Import/Export to import one norn next to the currently selected norn. This will not produce a speech bubble-- you'll still have to use SEZZ or call the speech bubble factory if you want to do that.

Notably, using SEZZ or triggering the speech bubble factory alone will not call the Magic Words-- you still have to message the core agent. Otherwise we would have the possibility of creatively named or vocabularied creatures calling Magic Words, which, while very funny to think about, is something I'd have to patch out anyway as soon as someone started naming norns "war" with all their drive words set to "time" and warping them out to unsuspecting people running unattended worlds. As amusing as the idea is, we probably should not give norns that much power. However if you did want to give creatures that much power... you could probably make an agent with a script 126 (which is called whenever a creature speaks) that waits a few ticks before calling mesg wrt+ game "amk_magic_words_core_agent" 73 13 "" 0 which will manually trigger the Core to scan speech bubbles, including creature speech bubbles, for commands to act upon.

...Anyway, evil tangenting aside...Again, please feel free to ask any questions you have about this and/or let me know if you're having any trouble with it! I know I'm not going into a lot of detail here but I'm hoping to do a better write up when I have more time.


Tuesday, December 12, 2023

CCSF '23 Release: Toasty Test Rooms


Grab the download here!

Toasty Test Rooms are metarooms that make me hungry for toast every time I read the name. (I probably should have eaten before writing these posts.) 

But, seriously. These are essentially your run-of-the-mill test rooms, except they come pre-heated for TWB friendliness, and perhaps more interestingly, you can inject multiple of them, allowing you virtually limitless (well... except within the limits of the engine) space to run large experiments or several smaller experiments within the same world. If you really wanted to, you could even set up CA links, elevines, and dovines to chain them together like little ant farms. If you do anything creative with them I'd love to hear about it!

These rooms are sort of an expression of something I have been playing with a long time. I first proposed the concept of Adaptive Metaroom Placement (AMP for short) on the now-dead Discover Albia forums back in 2016, yet this is the first time I'm actually releasing anything that uses it! A lot of trial and error and caos has led up to this, so even though it's just a humble test room, it's a pretty exciting day.

CCSF'23 Release: Static Gadgets


Grab the download here!

I've been doing a fair bit of work with gadgets lately (I keep saying gadgets, but technically many of the connectable agents in C3 are actually considered "machinery." I really should be calling them 'connectable agents' instead, but gadgets is just... easier), and it really is such a shame that the amazing possibilities for machine-building available in C3 were just... nullified by the fact that creatures would just break them apart so quickly it was barely worth building them.

I guess I get it. In vanilla C3 there were a handful of  'player challenge' elements. Bioenergy limits, power-ups, and so on. But DS did away with those, and I figure it's high time we do away with the gadget 'challenge' too, and unlock the all the potential gadgets connectable agents have to offer!

Sunday, December 10, 2023

CCSF '23 Release: Natural Learning & Natural Curiosity


Grab the download here!

I don't think many people really check this blog anymore. There's not a usually any reason to, not when there's direct download links on the youtube videos and the CCSF pages. But if you do, know that I appreciate you, and that you are getting access to all these little backstory tidbits that no one else is! So thank you. I wish we could bring blogging and forums back but... that's a whole other discussion.

Anyway, fun fact about this script: it was originally designed as a way to break the "like loop" that creatures in a group tend to get into where they just ramble loudly about who they love/hate forever because they keep echoing each other. Since creatures couldn't get into those loops if they didn't know the words, the original concept for this script was to teach creatures every word except Like, Dislike, Love, and Hate. But then Verm came up with the Like Loop Fix, which is thankfully much simpler. So this script instead morphed into a much slower paced, more general-purpose vocabulary helper.

Which, honestly, has been so helpful for my playstyle. Hand-teaching my creatures is one of my favorite things in the beginning of a world, but the first thing to start feeling like a chore as the population grows. I love that this script doesn't necessarily take hand-teaching away from me or make it pointless, but it doesn't require it of me either, because creatures will eventually learn the words even if I don't get around to each baby. Left alone, they naturally learn some words, but not all of them, and still benefit from a little hand-teaching here and there without needing to drill the entire verb and noun list. I feel like I'm finally finding a balance with this. 

I don't know how many people actually play creatures attentively these days. It seems like most players just have the game open and occasionally glance at it like a fishtank. Not that there's anything wrong with that, but I guess I'm just acknowledging the... narrow-ness of the audience for something like this. Still, I felt like it was at least cute enough to warrant a public release. And it's possibly the only release I have that's actually kind of sort of on-theme for CCSF, since the desire to reimplement "what dis?" and "why" stem directly from my C2 nostalgia.

Anyway, if you still enjoy playing creatures attentively, maybe leave a comment? There's more of us out there, right?

Saturday, December 9, 2023

CCSF '23 Release: Magic Words Love and War 1.1


Grab the download here! (v1.1.2, if you want the broken 1.1.1 version you can still get it here)

This is probably the tiniest update I have, but now you can make love time or war time continue on forever! Or until you stop it. I don't even remember what prompted this update, it's been sitting in my Pending folder for probably a year and a half. I think I just got tired one day of spamming ctrl-S while using love time!

Thursday, December 7, 2023

CCSF '23 Release: Friendly Fireflies


Grab the download here!

Happy CCSF all! I tried to tie up as many little projects as I could over the last month. It wasn't as many as I would have liked, but I hope you'll all enjoy these and what's to come over the next few days.

Anyway, to the matter at hand: Friendly Fireflies is an agent that produces tiny warming fireflies in any cold areas of your world which will heat them up to a comfortable temperature. They can hard to spot and light up only very intermittently, so see if you can catch a glimpse!

This was intended as a sort of "quick fix" solution to a problem I hear often repeated, that folks want to try out True Warmblood genomes, but aren't really up for the challenge of keeping them warm. While there are patches and heating-agents aplenty, ultimately a lot of older metarooms still don't have heat emitters, and not everyone's playstyle is heavy into world-setup.

I do have some mixed feelings about this agent, because I feel like it sort of 'flattens' some of the complexities that True Warmbloods are capable of. But then, I am chiefly a nurturing player (or at least some combination of nurturing and closely observing), so my priorities are different. I find creature behaviors just more interesting to watch when they are reasonably challenged. It's really cool to me how TWB activity and eating habits vary based on their environments, how they can mitigate lower temperatures by eating more fat and even get fat cravings if their environment is too cold. So while I would recommend using the Fireflies if temperature issue is the only thing keeping you from trying them out, I feel like I still have to throw out an encouragement to consider trying playing without them if observing creature behavior is an enjoyable part of your playstyle!

One last thing to keep in mind is that because this impacts the heat in your world, it may have an effect on any plants, critters, and other agents that take the heat CA into account! Another thing to remember is that this only creates heat, doesn't remove it, so extra hot areas will still be a hazard. Luckily, there aren't too many of these.... glaring at the C2toDS volcano

An extra thanks to Mea for helping me get the coloring on the sprites right. The way I was initially doing them were easily mistakable for bacteria!