project-image

Cloudscape

Created by Konitama

An action-adventure farm-life survival game for PC and console, launching the 22nd of June! Regrow not just your farm - but the world.

Latest Updates from Our Project:

HUGE update to wrap up February! Lots of info about Villagers, Shopping and Mail!
about 1 year ago – Thu, Mar 02, 2023 at 08:17:25 AM

Hey everyone! It's been some time since the last update and I have been super busy with development so I'm going to try and include mostly everything I've been doing but I might leave a few things out.

So for the past two months I've been primarily focusing on NPCs (non-playable characters) otherwise known as the Villagers of Cloudscape. I've been touching on many different aspects and systems, including but not limited to:

  • Villager routines/waypoints
  • Villager dialogue and Affection system
  • Villager gifting
  • Town Board/Villager Requests
  • Shops
  • Sending and Receiving Mail
  • Placing buildings around Wimnim and creating placeholder room layouts

Villager Routines/Waypoints

To kick things off, one of the first things I got to work on was making sure the villagers could move around the island and get to various destinations to perform their daily routines. This involved setting up custom nodes which can link together to allow the villagers to calculate the fastest route to any given point on the island.

As of writing this, Wimnim Island alone has over 200 waypoints! With many more to be added as the island gets more filled out.

Above video shows waypoints/connections for villagers to travel. (will not appear in game, only for debugging purposes)

I've also set up many of the villagers basic schedules. These are driven through Schedule Events. The basic idea of a Schedule Event is that it has a list of Conditions that need to be met to trigger the event, and then a couple of Outcome parameters to decide what actions to perform. For example, a villager might have a Schedule Event where the conditions are that on a certain day of the week at a specific time, they will travel to a specific location, face a specific direction and perform a specific animation. With these basic actions, villagers can move all around the island and do all sorts of things!

(above video shows a simplified routine for one villager, this is a heavy WIP so please don't mind the unfinished buildings/environments!)

Around a dozen of these events allows most villagers to have a full routine where they can wake up, get dressed, eat, go to work, work throughout the day, then go home to eat dinner, relax and go to sleep. As the game develops more, each villager will have many more Schedule Events added to really give them a lot of flexibility in what they can do and where they can go. Villagers will even travel to other islands!

Villager Dialogue

Villagers would be pretty boring if all they did was walk around... so the next thing to do was focus a bit on the dialogue system and affection system.

I set up Chat Events, which behave quite similar to Schedule Events. Just like with Schedule Events, Chat Events have a list of conditions that must be met in order for specific dialogue to be triggered. Some of these conditions can be location, weather, time of day, season and of course the villager's affection toward you. So far I've set up a couple lines of dialogue for all of the villagers in Wimnim. They also have dialogue for when they receive gifts. Speaking with and gifting villagers will help raise their affection toward you... However, this isn't a single static value. Instead, it's actually two different values.

Each villager has both a friendship level and romantic level which you can increase. I've decided to split these up because I've noticed that in most social games, the option to just be good friends with people is not really available. Which leads to a lot of people falling in love with you that you don't really have any romantic interest in! I wanted to change that, so now in order to get romantic interest from a villager, you will need to first reach a certain friendship level with them and then gift them a special item. This will unlock the romantic system, and from there you can start building up your romance level in order to date and eventually marry eligible villagers.

The overall goal of this system is that you'll be able to max out friendship with everyone without having their dialogue shift toward romantic stuff. Finally you can just be good friends with someone! This means the dialogue for villagers will actually be determined by both friendship AND romantic levels.

Villager Gifting

Gifting villagers works quite as you would expect. You can hold an item and walk up to interact with a villager. When you do this, the villager will first ask if you are giving them the item. This is a nice safeguard in case you accidentally didn't mean to give them the item. There is also no penalty for canceling an item gifting.

If you say yes, the villager will respond with unique dialogue depending on their preference for the gift. Villagers can hate, dislike, be neutral toward, like and love various items. You may learn about their preferences through talking to them. If you give a villager a disliked or hated gift, they will lose some affection for you. However, the first time you give a villager any disliked or hated gift, it will actually not count against you! Whenever a non-neutral gift is given to a villager, their preference for it will be added to their villager profile. What this basically means is that you can know which items not to give them again without taking a penalty.

Villagers also will each have their own inventories! This means whatever you gift them they will keep. This can lead to special dialogue about items you gifted them. They might also even wear hats or other accessories. (totally not copying that Animal game :P)

Town Board/Villager Requests

After setting up basic villager routines and interactions with the player, I wanted to also work on setting up the Town Board which allows villagers to place Requests which the player can try to complete. Requests can vary from simply bringing the villager certain items, to actually doing deliveries, being asked to speak to other villagers on their behalf, or having to go out and perform various tasks in different locations.

Villagers will provide you with a secret reward after completing requests. I decided to not show what the reward is ahead of time in order to encourage players to try out different requests to get the mystery reward. I hope this will make it feel less like work and more like prolonging a surprise. :) Villagers will also gain some affection when you complete their tasks, so it's another way to help boost affection along with speaking to them and giving them gifts.

Shops

I've add a few different shops around Wimnim Island so far. They include Frut's General Store, where you can buy seeds and supplies along with some clothing and furniture. There's also the Bait and Tackle, where you can buy various fishing bait and tools, along with getting your fish weighed there. If you can beat the record weights for each fish, you will receive a special reward!

I've also added Rin's Ranch, where you can purchase animal supplies and of course, some cute little animals! As of now you can purchase the bare minimum to get started with ranching, including a Chick. But in order to actually purchase animals, you'll first need a barn... which you can buy over at Bagaroot's Builds. This is the local carpenter who will offer up building blueprints and other useful structures. Here you can buy the Tropical Barn Blueprint, and place the barn on your island. Once you have a barn, you can purchase up to 8 animals to inhabit it. There isn't currently a limit to how many Barns you can have on your own island... only until you run out of actual land! I'll get into more details about Ranching in later updates, but so far it has all of the basics in there to take care of your animals.

Another feature of shops is the ability to sell your items to the shop. When you sell items, they will also get added to a special Sold Tab, which you can access to buy back your items. Just in case you accidentally sell something you didn't want to, or you change your mind!

Shops will also have seasonal items and even items that get rotated in and out daily! This means you might find a different piece of furniture on Tuesday that wasn't there on Monday! I'm hoping this will encourage players to frequent the shops more in order to find new things. But no worries if you don't want to visit every shop every day trying to track down certain items... because you can subscribe to a shop's Mailing List and get new item updates in the mail! Speaking of which...

Sending and Receiving Mail

I'm currently midway through completing the mail system for Cloudscape, but I'd like to just talk a bit about how it all works. Wimnim Island is home to a post office called the Gull Post. Here you can obtain your first Shipping Bin and you can also buy Mailboxes and all sorts of stationary, postcards, gift boxes and envelopes to send mail!

When you place down a mailbox on your island, you'll be able to start receiving mail from villagers. Villagers will send you mail based on a variety of factors, primarily their affection level toward you, and also if you send them mail as well. There are three types of mail you can send and receive: Postcards, Letters and Packages

Postcards are the simplest form of mail. These are simply decorative cards with a message written on them.

Letters include both Stationary and an Envelope. A letter can also include a small attached item, like money, coupons or other bits.'

Packages include a note and an attached item.

When receiving mail, you can open your mailbox and transfer the mail to your inventory. From there, you can open it at your leisure. When sending mail, you can place either an empty envelope, blank postcard or empty shipping box into your mailbox. This will trigger the Letter interface, where you can pick a recipient, write a message and attach an item. If you aren't keen on writing out messages all the time, there will also be the option to choose a pre-written note instead!

Villagers might even have a preference for the type of postcards, stationary or gift wrapping, which can further help boost their affection. Aside from simply another way to boost affection, when you mail gifts to villagers they might mail gifts back! You never know what you might receive in the mail.

Various shops may also send you coupons in the mail. These coupons could offer limited time deals and discounts in shops, so these are definitely something you want to keep an eye out for!

As mentioned above, you can also subscribe to mailing lists for shops. This means you'll receive news about new products added to shops, special events, and other notices like a change to shop hours or a shop closing temporarily.

Building out Wimnim

Finally I just wanted to briefly talk about the progress for Wimnim Island that isn't entirely villager related. The island of course has a variety of buildings scattered around it. I've been working to add these buildings into the game, and have added pretty much all of the buildings for the island so far. Of course, these are really crude right now, and simply let me be aware of the size and placement of each building on the island. It also lets me set up all of the villager waypoints in and around the buildings. I can then use them to set up routines for the villagers. This is all the first steps into bringing the island to life.

In the coming months I will work more to further update these buildings to each be unique and have their own artwork. I will also be adding a lot more detailing around the island and some more points of interest for both the player and the villagers.

Other Stuff

There's still a lot I haven't touched on in this update... including but not limited to:

  • Completely updating the lighting system to be more optimized and improved
  • Rewrote how the game handles keeping track of what villagers you've spoken to, gifted, etc.
  • Optimized the game code quite a bit
  • Completely reimplemented Buildings and their complex layering with interior walls, doors and windows
  • Added a lot of base villager portraits
  • Added monetary value to over 100 different items, each calculated based on the item's base value and what materials it is comprised of
  • Added 31 different Dye items which will later be used to dye clothing and other items
  • Added dozens of recipes for items that didn't have them. Mainly to keep track of the item's monetary value

Oh... and I almost forgot that I had a random idea to add fragrances to the game... so I spent 1 day implementing that. :)

Fragrances!

There are 4 different types of fragrances the player can use. When used, the player gets a buff applied to them for 8 hours. The buff depends on the fragrance used. The 4 fragrance types are Sweet, Spicy, Musky and Fresh.

The current use for fragrances is to increase affection with villagers when speaking to them. Each villager has a preferred fragrance which you can learn about. If you speak to a villager while wearing their preferred fragrance, you will gain extra affection that day.

One important thing to note... you can only wear one fragrance at a time! If you use two fragrances, you will actually instead get a Bad Smell debuff! If you talk to villagers with the Bad Smell debuff, you will not receive ANY affection from them that day! But no worries, it's quite easy to fix the problem. All you need to do is hop into some water to wash off the Bad Smell. Even standing in the rain will wash it away. Just be careful, this applies to good smelling fragrances too, so it's best not to try wearing fragrances on a rainy day!

I have some ideas on how to build on to this feature of the game later on as well. I'd like to possibly have various monsters interact with the player differently based on fragrances. There will also be ways for the player to craft fragrances or simply buy them from a shop.

Wrapping It Up

That's all for this update! Again, I'm definitely forgetting some stuff, but I hope this update helps ease anyone's concern about the game's development progress. I'm working pretty much every day on the game, even if the update frequency might not reflect it much!

Thanks everyone for your continued support and I can't wait for everyone to play this game!

- Koni

December update! Dungeons, movers, machines, and treads, refining the early game and your journey as Kumo!
over 1 year ago – Wed, Dec 28, 2022 at 11:33:37 PM

Hi everyone! We're back with another periodical update for the game. The last time an update was published was in September, and I wanted to cap off the year with one final post for 2022. Especially given the time of year, I thought it'd be good to deliver you a bunch of goodness new to the game! Admittedly, September was quite a while ago... but rest assured I've been fully focused on the game's development. So with all that said, one final other thing to say before getting into things: Merry Christmas!

Machines, movers, treads, mechanics and more

So, a large feature in Cloudscape will be the dungeons that you can eventually explore in order to help find things that'll help you progress through each island, and eventually the whole world. Dungeons contain puzzles, obstacles and monsters to challenge the player. As part of this, I first created basic systems to support things like togglable traps, moving hazards bottomless pits.

Switchy switch

For example, in the animation above you can see a conveying block automated on a tread, toggling two switches which then trigger the spike hazards at the bottom. Many of these buttons, switches, levers and triggerable objects will be available to the player to create their own contraptions.

You spin me right round, Kumo, right round

Color Blindness Accessibility

One thing I always have in the back of my mind is how accessible the game will be for different people. I have several friends who have different color blindness and so I always do my best to design objects and menus in a way that are still easily readable. Here is an example of the red, green and blue buttons/switches and obstacles for someone who is red/green colorblind. With the contrast in colors and the patterns/symbols on various objects, it's possible to tell at a glance what switch triggers what object.

Sometimes I still might miss this sort of thing, so if you have any sort of colorblindness or feel like Cloudscape is lacking in accessibility in some area, please don't hesitate to let me know!

Here are a few videos highlighting some of the Dungeon mechanics in action!

(Push and Pull Blocks on to switches to trigger blockades. Special colored buttons reset all of the colored Blocks in the area)

(An obstacle room has you dodging moving obstacles to avoid falling into the pit!)

(A seriously dangerous floor spike room! Every automated obstacle in dungeons is driven by an actual trigger being activated. Here the movers pass over the colored buttons, which deactivate the floor spikes that match those colors)

A softer landing

One thing that's become apparent through internal testing, is that the beginning of the game didn't provide a clear enough path for the player to move forward. The main goal in Cloudscape is to leave the uninhabited island you wake up on, and travel to many different islands where you will meet all sorts of different inhabitants and discover all sorts of new things. 

With the way beginning of the game was structured, this wasn't communicated very clearly, and the player's needs were a bit nebulous - there was a dialog line in the backpack you pick up off the beach implying you need to meet someone, but it was easy to mistake this as throwaway flavor text, as opposed to a statement orienting the player towards a long-term goal. 

The result of this came through in testing, where a lot of testers ended up playing the game as if it was a generic survival sandbox game, not realizing there is actually progression and storyline beyond just staying alive. That said, the open-world and sandbox nature of the game is still crucial to Cloudscape, so any solution to this couldn't be overly controlling or linear.

The solution to this problem, without overly restricting the player or removing the potential for open-ended gameplay, turned out to be quite simple: just create something which is a direct representation to the player of a long-term goal! This came in the form of adding a wrecked dock and raft within earshot of the opening scene; the player still reads the letter you find on the beach from Bagaroot, telling you to find a way off and come meet them eventually. But combined with the wrecked docks and raft nearby, the implication is immediately drawn to the player's mind that this is the method of leaving the island, providing a light structure and general direction for gameplay, without the restrictiveness of creating an actual linear requirement. The opening's no longer just a throwaway line, but rather an important piece of context that has a direct meaning for the player.

A cool side-effect of improving the opening's design was the creation of whole new systems/mechanics to support it, too! In order to have the wrecked dock and raft be repairable, a new... well... repair system was created! As you can see from the video above, buildings/structures that you can repair or interact with will now prompt you for materials, and give you an option on what to do. I actually planned to have the player repairing various structures on different islands later on in the game, so this worked out nicely as it was already a needed feature.

Other changes and improvements

I've been working on all sorts of things, so I'll list a few things below with some footage to show progress.

I've added various types of Debris to the player's starting island. This debris will spawn in randomly over time. At the moment it consists of sticks, logs, roots, weeds and small rocks. Debris has two purposes, the first is to give the player an objective to clean up the island and improve its appearance. The second is to provide another method of obtain wood and stone. Because the island does not respawn trees and rocks, it's important that the player still has ways to get access to those resources if they clear their entire island. Wood and Stone can now be obtain directly from trees/rocks, but also from Debris and from washing up on the beach. This ensures the player never gets soft locked from being able to build simple tools to progress in the game.

Debris has also been added into Caves, along with new Stalactite and Stalagmite objects. The player can break Stalagmites to obtain Stone, Dirt and Sand, along with a new material, Calcite, which will later be used in various crafting recipes.

I've also added all of the fish to the Starting Island. There are currently 45 types of fish to catch on the starting island alone!

I've also been busy adding various settings to the game, which will improve the quality of life for players in a variety of ways. Here is the latest setting added, which is the Item Auto-Collect option. Enabling this will allow the player to automatically pick up items within a certain distance away. This works much like you would find in other games in the genre, so if you prefer to have automated item pickup, you can enable this option!

Finally I have started adding different weapons for the player to use in the game. Here's a quick demo of the Bow and Arrows being used! You will be able to collect the arrows that get stuck in the wall or other objects for a brief period of time. Arrows also penetrate through multiple enemies, so they can be quite powerful when you line them up to go through several enemies at the same time!

Shoutout time: Windswept!

Lastly, we're ending this update by paying it forward for another developer looking to run a Kickstarter soon: Windswept! Classic platforming is back, and it's brought company! Windswept is a 2D collect-a-thon platformer paying homage to the good old days. After a gigantic storm blows them away, a duck and turtle friends try to find their way home. Play as both 🦆Marbles and 🐢Checkers by tag-teaming -- You control the lead character while the other follows close behind. 

Available with local co-op, and with a treasure trove of hidden challenges, bonuses, and secret modes, as well as 5 different regions with more friends to meet along the way, Windswept is inspired by the legends of both retro and modern platforming such as Donkey Kong Country 2, Celeste, and Yoshi's Island. Be sure to sign up for their campaign launch by clicking this link, or the image below!

Click here to follow along for WIndswept's launch!

--------------------------------

That's all for this update! I hope everyone is doing well and having a happy holiday! I will likely have another Dev Log video to release some time in January so look out for that. For now it's time for a short holiday break and then it's right back to work on Cloudscape!

- Koni

September Update! Animals, Shipments, Journal Pages, New Lighting and Villagers!
over 1 year ago – Fri, Sep 16, 2022 at 06:21:28 PM

I'm back with a new update!

Development is still chugging along at full speed. I've just finished a new Development Log video that is posted to YouTube which covers a bit of what I will talk about in this update. You can watch that here:

Animals

Last update I talked about implementing animals, and showed off the Chicks moving around. I've since added the adult Chicken with 10 different color variations! Chickens now seek out food and water, will sleep periodically, and of course… you can pet your chickens to raise their affection levels!

There's also an Animals list which shows all of the animals you currently own, and various useful information for each one at a glance.


Collections

I've also implemented a rough first pass of the Collections page in the Journal, which allows you to view all of the items you've collected or discovered throughout the world. There will be some additional features added to this later on in development which should be pretty useful.


Shipping Containers and Shipments

I've also fully implemented Shipping Containers, which work mostly like they do in other farming games in the genre, however there are a few key differences. You can place your Shipping Container anywhere on your island, and you can also place as many as you'd like. You can access your Shipping Container just like other Storage objects, which means you can drop items in or take items out whenever you'd like.

You can also drop items directly into the Shipping Container without opening the inventory interface. At 8AM each day, all items in the Shipping Containers will be collected and the lid will be left open with a Receipt attached. When you interact with the Shipping Container, you will collect the money for the items sold, and the Receipt will get added to your Journal for later viewing.

This feature has also be implemented, and you can see here that you're able to check each Receipt to see an itemized list of everything that was sold that day.


Fishing Skill Goals

I've added all of the Skill Goals and Rewards for the Fishing skill, so now you'll earn all sorts of boosts and rewards to fishing simply by hitting these skill milestones through fishing! These might be tweaked throughout testing but the end goal is to give an additional layer of bonuses to players as they progress through fishing throughout the game.

New Lighting System

I've also been implementing a new lighting system with dynamic lighting and shadows. This is a big improvement both visually and performance-wise. Objects in the world will now react to lighting and cast shadows, creating a much more ambient environment. More work is needed to really make this look good, so it's still a work in progress for the time being.


Wimnim Island Villagers

I've spent time working on the villagers for Wimnim Island. There is now a base sprite for every villager and I've been working on writing their bios, dialogue and more. Here's a handful of villagers I've been working on!

Early Concepts for Wimnim Villagers

Most of my time is spent working on Wimnim Island right now, and I'm slowly building it up, adding more details to the island, more shops, more points of interests, etc. I'm also currently re-working how I've set up buildings as I want them to be even more dynamic and flexible to allow for more customization and options.


Shoutout: Paper Animal RPG!

Paper Animal RPG is a game that's all sort of fuzzy and cute! Taking place in a papercrafted world, in Paper Animal RPG you and your band of animal adventurers have to go on a quest to find the missing king. As you cross the world, and explore different dungeons, you'll meet other critters on their own journeys, fight dastardly enemies like talking tomapples, shroomheads, and... some slightly scary things, and at the end of it, relax by the campfire together as you sort out dinner.

Click this image to go to Paper Animal RPG's campaign!

Paper Animal RPG is currently running their own Kickstarter, so if you're a fan of all things animal and cute related go check them out!


That's all for this update. I hope everyone is doing well out there, and I can't wait for everyone to play this game when it's finished! Thanks for your support!


- Koni

New Development Update: Adding a new island, shopping, villagers, animals and more!
almost 2 years ago – Fri, Jul 01, 2022 at 08:41:03 PM

Hey everyone! Thanks for the patience with these sporadic updates. As development progresses I find myself drifting farther away from frequent post-writing and focusing more on the development of the game itself. With that said, expect fewer update posts for the duration of the game's development. And by that I mean just on the written updates - actual progress and updates on the game itself are going faster than ever! I still plan to update everyone on the progress, however I won't be adhering to a monthly update schedule or anything of that nature, as it's adding a bit more stress and time away from development than I prefer. 

The reality is, that as I get further into developing the game, a substantial amount of work is done on the day-by-day implementation and design of really complicated systems - and most of that boils down to putting down lines of code, concepting data structures, etc., and it's really hard to make a public update focusing on those. Not very thrilling stuff to see. However, when all of that comes together for a system - like the scheduling and pathfinding systems detailed below, it's easy to show that working visually! Hence, update posts will become a bit less regular as I finish building out the game's most complex systems, but once these are done I'll be able to give everybody a sneak peek at them.


With that out of the way, lets get into what I've been working on, as I'm excited to share with you!


Wimnim Island

Work has started on putting together the first fully hand-crafted island the player will get to visit in the game. Wimnim is a tropical island with a year round temperate climate, meaning it doesn't really experience cold winters or harsh summers. The island is inhabited by plant-like people with pointy ears.  As of writing this, there are currently 18 villagers inhabiting the island. These villagers will all have homes on the island and many of them run businesses as well.

The island is host to a General Store, Museum, Ranch, Farm, Carpenter's Hut and more.

Visiting this island will give players their first chance of interacting with other (living) characters in the game, along with the ability to buy and sell all sorts of items at the various shops.

A rough mockup of Wimnim Island

First Step

The first goal I needed to tackle was to get players from the starting island over to Wimnim Island. I had already created a Dock and Raft for this purpose, but for most of the game's development, the Raft didn't do anything. Now the Raft has the option to use it for traveling off of the island! For now, the traveling is instant between the two islands, however I plan to add a map which will appear when accessing the Raft, so that the player can choose what destination they would like to travel to. But for testing purposes, just going back and forth between the two islands works for now.


Another obvious step was for me to actually generate the island and start designing the areas. I've laid out the general shape of the island and the areas to be found on it, however much work will be needed to refine this and add in all of the details, buildings and more.


General Store

For now I wanted to at least add one important building, and that's the General Store. So I went about creating a larger building asset along with some new artwork for it. I needed to set up buildings in the game, so now buildings will load in properly and the player can enter and exit the buildings. Upon entering, the exterior will fade away seamlessly.

The next important feature to add was to include a new character to interact with, and also set up the shop system.

It made the most sense to just... make the new character the shop keeper, so that's what I did. The shop keeper of the General Store is named Cheri Frut and her shop is simply called "Frut's".

At Frut's, you can purchase a lot of general goods, including Seeds, Grass Plugs, Sod, a variety of resources and also some Tropical clothing and decorations.

The shop system is still a heavy WIP, but I've managed to get buying/selling items working nicely. The plan is to also add a portrait/dialogue of the shop keeper at the top of the screen. There they can talk with you while you shop. They might mention new items added, sales, or just help you with your shopping process.

One feature that hasn't been added is the ability to check a "sold" tab to see what items you recently sold to the shop, with the option to buy those items back. Just in case you accidentally sell something you didn't intend to.


Schedules and Routes

In order for Cheri to run her General store, she needs to actually get to and from work! So the next rather complicated step was to create schedules for villagers to adhere to, along with creating some type of pathfinding so that villagers could go from one location to another properly.

After quite a lot of fiddling around, I settled on having villagers use a node based path system to navigate their islands. This allows me to designate waypoints so the villagers know *exactly* where to position themselves. By setting up all of these waypoints, the villager can navigate along them to find the shortest path to their destination, while avoiding any sort of obstacles.

A Debug display of the node points and their connections

Then it's just a matter of setting up their schedules. I've created events which can be triggered through a lot of different conditions. Time of day, weather, season, special festivities, and more. It will even prioritize events which happen on specific days instead of more generic days. For example, if a villager usually walks to a certain location on Mondays, I could have an event set up that specifically triggers on the second Monday in the month. That event will override the normal Mondays event.

With all that said, what this does is it gives me a lot of flexibility in setting up villagers so that they have more dynamic activity in the world. Instead of always sticking to a very strict routine, villagers can diverge if certain conditions are met.


Here's an example of Cheri navigating to work along the node paths (village area is unfinished and node paths are only being displayed for debugging purposes)

 Animals and Global Pathfinding

After doing all of this I decided to switch things up and work on getting animals properly implemented into the game. My goal is to hopefully set up the Ranch on Wimnim Island where you'll be able to purchase animals to place on your own island. With the shop system, villager routine and path system, and animal behavior system in place, it will be fairly easy to implement this. So my next goal was to get animals properly moving around on your island.


A tricky aspect to this, which people might not be aware of, is that the island loads objects in chunks based on the player's location on the island. This is to help with performance and memory issues. I wouldn't want to load in thousands of objects all at once, or it would cause the game to be very slow. So early in the game's development I made the decision to use a chunk system to handle this. While that works great and is very stable at this point, it causes a HUGE issue with creating pathfinding around the island.

The issues is that I have all animals loaded into the island at the same time, but not all animals are within the range of the player. You may have animals at the north most part of your island, while you are chilling at the south most part of your island. This means they are up there with no chunks loaded in. That's not great, because without chunks, there's no objects, and without objects, the animals don't know how to navigate around them. What could happen is you'd walk to the north of your island, objects would load in, and the animal would get stuck on top of them.

To solve this headache, I needed to essentially create a 2D array which will store the information of every single block on the island, without needing to actually have the terrain or objects physically present in the scene. This involved using terrain data and chunk data to create a "map" of walkable spaces.


The end result looks like this:

A heat map representing walkable spaces (red = solid objects, white = walkable, gray = avoid if possible)

This is basically what animals and monsters will "see" when deciding where to move. They can see this map regardless of whether the map or objects are physically loaded into the game. This means they can always properly navigate the world... even if it isn't there.

The next step was to actually create a pathfinding algorithm to do this. This was probably the easiest part of the whole process. I just used a pretty standard A* pathfinding algorithm and tweaked it to fit the game rules. Here's how that looks in action:

In this video example, I've set the starting location to the player's location, and the target location to the mouse cursor. When I click the mouse, it updates the path to show the shortest path to the target location. This is represented by the blue squares that appear. These are the destination points that animals/monsters will navigate to. The algorithm is set up to try and avoid walking right up against terrain like cliffs. This provides a more natural looking movement. Otherwise animals might hug the cliff walls to navigate and that would look odd.


With pathfinding out of the way, I went about actually adding animals into the game. Here's the current state of animals:

So far I've added Chicks into the game. These currently perform proper movement and animations, along with respecting the physics of the world. The player can push animals around (easier or harder depending on their size) and will soon be able to interact with them (petting them, picking them up, etc)

As of now, the animals don't use the pathfinding system and instead use a very crude random directional movement to just move around randomly. That's actually the next thing on my list to do!


Once I've got the Chicks using the new pathfinding system, I'll be implementing more interactions and finally getting the shop set up so you can purchase these Chicks and place them on your island to take care of.


Player Journal

Finally I wanted to note I've done a lot of work on the player's Journal which is an interface that lets you see all sorts of information on various things in the game. You can check your Personal Info which will display all of your own stats along with your current appearance and whatever buffs/debuffs you currently have, and how they affect you. You can check the Calendar which tracks all of the game's special events, villager birthdays and more. You can check the Social page which lists all of the villagers, along with details and affection levels.

Current state of the Personal Info, Calendar and Social pages

There are also pages for Animals, all of your Buildings, Collections of items, all of your Shipments and also your Mail. Those are all still early WIP so I'll have to show them later. :)


Other Stuff

Along the development process I also typically go back and play the game from the beginning and just find things I didn't finish developing, or check for bugs or issues with balance. I've made a TON of changes to things I haven't mentioned. Things like tweaking Kumo's walk cycle, adding new uses for the Campfire, updating and adding new Tasks, fixing various tools including the Water Pump, fixed a bug with Harvesting and picking up items, and disabling a lot of unneeded features while in Limbo. I wish I could talk more about all the little stuff I've added and/or changed, but I think it's best to just focus on development and let the final game speak for itself. :)


That's all for this update. Thank you everyone for your continued support. Not sure when the next update will be, but you can always check out the Twitter page or visit the Discord to find small updates or chat with me directly about the game's development.


- Koni

Adding your custom Spirits into Limbo - come and see your spirits! Plus new Dev Log is live!
about 2 years ago – Wed, Apr 06, 2022 at 09:28:53 PM

New Dev Log!

The next Dev Log video is now up on YouTube! This video goes a bit more in depth on the new dungeon stuff that has been implemented, along with some other smaller updates.

 Technical Improvements

The month of March really flew by, and while a lot of progress was made to the game, there isn't much of it that I can actually show off for one reason or another. I can say that quite a bit of time was spent on improving the architecture of the game itself, and finding ways to better improve and optimize all of the underlying systems.

I can list off a few of these major changes for those interested in the technical bits:

  •  Reduced camera jitter while moving around, caused by where the camera position was updating in code
  •  Optimized some of the Update methods to be more performant
  • Updated all item data to use Addressables instead of Resources.Load
  • Created a custom static method which can automatically load sprites via Addressables to replace      the not memory friendly Resources.Load. Character sprite sheets now use this method, and eventually all sprites that need to load in will use this method as well
  •  Fixed some glitches with a handful of animations that were causing small but noticeable flickering in a couple animations

Just as a note about the Addressables thing.. the way I was originally loading in lots of the assets for the game was through Resources.Load… which after learning more about Unity, I've found that this is not a great way of loading resources. It makes them harder to manage and it inflates the file size of the game itself. 

In fact, before making some of the above changes, the total file size for the game was over 2GB! This was clearly way too high. I've since reduce this down to 800MB which is a drastic improvement, and I will continue to find ways to reduce the file size down to a reasonable level by release time.


Water Fun

As for some more visual things I've been working on, I finally got around to figuring out water shaders for a top down environment. As of now, I've only added in reflections, but I think they turned out really well. Still to add will be some distortion in the water. I've also added ripples when items are dropped in the water.


Quality of Life Updates

For some quality of life improvements, I've added some small but impactful changes:

  • Camera zooming and mini-map zooming is now inverted from what it initially was, to better fit what      most people are used to
  • The next task in the player's task list will now auto-pin after completing the previous task. A toggle      in game settings will be added to disable this feature
  • When completing a pinned crafting recipe, it will automatically unpin the recipe. Again, this will be a toggle in the game settings.
  • Picked up items now initially attempt to move to the tool bar instead of the backpack. Again another      toggle setting to choose if you prefer sending to toolbar or backpack first.
  • Toolbar item info layout is now the same as inventory item info layout for better clarity
  • Several tasks have been adjusted or removed to better accommodate early game play
  • Crops at seed stage will no longer turn into dead plants when the season changes, and will instead      remain seeds

Energy Orbs

Another quality of life feature I've been experimenting with is Energy orbs. Testers have initially been struggling to maintain decent energy levels in early playthroughs of the game. To combat this, I'm going to experiment with adding these Energy orbs into the game. Basically, when you defeat monsters, they will occasionally drop an Energy orb which when touched, will replenish 10 Energy. 

These orbs will only exist for a short period of time before vanishing, so it's best to collect them as soon as you can. The hope is that this will provide a much needed boost of energy when other energy restoration methods aren't available to the player. Balancing energy is one of the most critical aspects of the game and I'll continue tweaking things until everything feels right.


Your Spirits!

Finally, I've spent the last couple of days implementing custom Spirits into Limbo! I'm happy to report that every single backer who backed a tier that included a custom Spirit, and who have submitted their Spirit info, has had their Spirit added into the game! 

Over 125 Spirits have been added! Another fun thing to note, is that I went ahead and made portraits for all of the Spirits, which can be seen when you interact and chat with them! When the game releases, you'll find these little Spirits roaming around Limbo at random, which should really liven up the place!

And a shoutout!

As we're all Zelda fans, there's a project that just has to be shouted out this month - it's Toasty: Ashes of Dusk! Toasty is a charming, heartfelt tribute to A Link To The Past, mashed up with Earthbound/Mother, and with the humor of Monty Python. They're currently running a Kickstarter, and it's well worth a look. They also have a special Switch physical edition available on their campaign!

Marshall, the Marshmallow Knight - Toasty's hero!

Toasty tells the story of Marshall, the Marshmallow Knight, who quests across the world of Geldia after a great calamity befalls the land. With no history or clue about who he is, Marshall faces many tests, makes many great friends and allies, and faces the most devilish evil - all the while, trying to answer that one tricky question... why is he a talking marshmallow?

Just look at those beauties!

Click here to check out Toasty's campaign!


Wrap Up

That's all for this month. Getting super close to working more on developing a lot of new content for the game, so that should be coming soon, now that a lot of the technical stuff is out of the way. Hope to show more new art and stuff in the next update. Take care!


- Koni