✧ cinni’s blog ✧

dreamweaving in Furcadia

the past few days ive been engulfing myself in making a new dream in furcadia, a very old pixel furry mmo. i was active as a kid in like, 05-08 and started getting into it again the past year because i missed making dreams, the in-game term for worlds you can create. almost every part of the client is customizable in your dream - the objects, the ui, music, etc! though there has been a lot of updates since i last played which has improved the dream-making aspect. furcadia has its own scripting language called dragonspeak which is easy enough to read. i'm dipping my toes into more advanced dragonspeak this time with a really useful time system i found and am building on top of it ^-^

screenshot of the dragonspeak editor (even the dragonspeak editor is customizable to an extent)

some of the features i'm working on are a calendar system (pictured here, which is a current mess atm but it keeps track of birthdays), a zodiac system (the dream keeps track of what the current zodiac season is), and some fun day/night cycle effects like changing the color palette of the patches, and changing the background music!

i'm also feeling a bit more comfortable with phoenixspeak, a type of dragonspeak that memorizes data about the dream or furre in a database, so even if you re-load a dream the information is saved. this is how info about the current time&day of the dream is saved, and how the birthdays are being tracked in dream.

the script is still a big work in progress while i have a lot more ideas i want to do, plus dragonspeak is a little jank at times. i tried to improve my day/night cycle script for changing the objects to save some lines by using this code (which i am cutting down for brevity):

*when someone arrives and the hour is 12am*
(0:9) When someone arrives in the Dream,
 (1:200) and variable %TS_Time_Hour is equal to 0, (12am)
*or when an hour passes and it's 12am*
(0:100) When %TS_Time_Scale seconds have passed, offset by 0,
 (1:200) and variable %TS_Time_Hour is equal to 0, (12am)
*what frame of the animation to jump to*
    (5:300) set variable %animFrame to the value 1.

I repeat this for every hour that passes, and changing the variable of %animFrame to what frame of an animation the object should jump to. then, every hour the frame of the object is updated to %animFrame.

*when someone arrives in the dream*
(0:9) When someone arrives in the Dream,
*or an hour passes*
(0:100) When %TS_Time_Scale seconds have passed, offset by 0,
*jump the animation of the floor*
    (5:431) jump the animation of all copies of floor 1 in the Dream to step %animFrame.
    (5:431) jump the animation of all copies of floor 2 in the Dream to step %animFrame.

though what happens i think is the dream is not updating the value of %animFrame AND jumping the animation of the floor at the same time because some objects do not change palette at the same time. i've resorted back to the older code i was using just because it works better, but it does use up a lot more lines. for each hour of the day, i am declaring what frame each object should jump to, for each object.. so now for every hour of the day, there is this block of code:

*when someone arrives in the dream*
(0:9) When someone arrives in the Dream,
*or an hour passes*
(0:100) When %TS_Time_Scale seconds have passed, offset by 0,
*and it's 12am*
 (1:200) and variable %TS_Time_Hour is equal to 0, (12am)
*jump the animation of the floor*
    (5:431) jump the animation of all copies of floor 1 in the Dream to step 1.
    (5:431) jump the animation of all copies of floor 2 in the Dream to step 1.

as opposed to just changing all the objects with a variable & changing the value of that variable. i'm not sure if that makes sense but.. :p even if it's a bit more tedious, atleast it works..!

i'm also doing some fun stuff with the client UI, or skin. you can have up to 99 individual buttons that you can script with dragonspeak. i've made about 33 or so buttons so far, which are the little square icons in the upper right & left corners in the view window.

screenshot of my game in furcadia (screenshot of my dream atm, i created the skin and even the custom font! which is saved in .pcx format lol)

The icons currently show the hour (if you hover over the clock it tells you the time), time of day (morning/afternoon/night), zodiac season, and season of the year on the right side, and the left side will be more furre-stats focused. right now i have a button for switching between having angel wings or devil wings but i would love to have a more in-depth inventory system and make the player earn new effects.

screenshot of my game in furcadia

(there are 4 different palettes that cycle through. there is also an ambient overlay which has a much smoother transition throughout the day)

i mostly spend time making and being in casual hang-out dreams, but i also love dreams with interactive elements like build-a-home dreams. while i don't want to make an in-depth build-a-home dream, i did want to include some casual gameplay like pet-raising...like chao island or tamagotchi! the idea loosely would be to register yourself in the dream as a caretaker and answer a short questionnaire to determine your zodiac/alignment etc. depending on the time of day, or season, or zodiac season, you can find different types of eggs and your zodiac/alignment can determine what type of objects you are more likely to find (the details are still TBD). you would also be able to change your alignment through potions or something (and change between angel/devil mode). the pets wouldn't require too much attention though, so you can still just chill in the dream but still have a reason to check back. the way the palette of the world is done is through animation, since you can set the animation of an object to loop through certain frames with script. so one object can have 16 frames - 4 frames of animation for 4 different color palettes. i can use this same idea for furniture, and let players customize their own place by cycling through the frames with commands and it would only take up one object space.

screenshot of my game in furcadia

(switching between angel/devil forms)

screenshot of my game in furcadia

(the night time..)

screenshot of my game in furcadia

lastly, i'm still working on the patches! i made some cloud&water tiles tho i want to make more interior objects and the like. i made a few different versions of the local avatar so you can change your outfit, but i have to make two versions of each one for the wings @-@

different avatars for the dream

i used this patch as a base for my avatar, but i edited it to be more my liking. the hair is messier and i changed the sitting pose. i made a few outfits but i want to make more! :3 like some pants or even seasonal clothes. each avatar has 20 poses in total so it does take a while..

this is about all i've done so far~! in the next update i want to work more on inventory and finalize a layout for the world itself haha. till next time..☆彡

#furcadia