MODULAR FLUFFY PROJECT
After all the projects over the years started from scratch and then abandoned, it’s safe to say that making a fluffy breeder game requires another kind of approach. My suggestion is a modular one, where the loss of individual coders and artists won’t cripple the project, and new participants can donate smaller pieces to it without needing to familiarize themselves with the entire codebase.
To achieve this, my plan is to have each part of the game and AI split into distinct modules, with easily accessible functions for communication between the parts. This way changes and additions to any one module won’t affect the others, as long as the API’s required for their interaction remain the same. Likewise, new items and elements can be added freely as long as they included the tags and stats to interact with the rest of the game.
I believe Unity3D would be the best choice for the engine, as it already includes crowd-based pathfinding and physics engine capable for handling large crowds of fluffies. Making the game in 3D also reduces the artists workload, as the same models and animations work from any direction.
In short, the modules for the fluffy AI would be:
-
Stats module: This includes the fluffy base stats like health, hunger, poopies and so on, and handles them changing over time. Other modules access this information for things movement speed and the fluffies decision making. Fluffies individuality modifiers are also stored here, allowing varied personalities by altering things like how much a fluffy prefers any given toy, how much it fears any given threat, or how quickly it starts to feel lonely.
-
Thinking module: Thismodule handles the fluffy deciding its next action, by calculating the priority of each possible action and choosing the highest scored one. For example, hunger raises the priority to eat, and tiredness the priority to sleep. These priorities are calculated for each food source and sleeping place individually with their relevant modifiers like quality, distance, and novelty affecting the decision making.
-
Pathing module: This module is responsible for pathfinding and calculating the distances to accessible items. The distance calculations allow the thinking module to prioritize objects that are close, and the pathfinding in general guides the movement of the fluffy itself. As a default Unity’s pathfinding moves actors without any physics, but handling the fluffies actual movement as a physical object allows for more chaotic things like stumbling over and bumping into stuff.
-
Acting module: This handles the default physical actions of the fluffy, from moving in the direction determined by the pathing module, to running around, sleeping, and getting upright after falling.
-
Social module: This integrates strongly with the thinking module, but due to its complexity deserves to be a separate module of its own. It keeps tables on fluffies relationships with each other and their owner, about things like strength of their frienship, how much they miss each other, romantic interest and so on. The values from the social module are mainly used by the thinking module to calculate priorities for actions like hugging, playing and mating, but also affect other actions to make the fluffy more likely to eat sleep, or play with a friend rather than alone. These are advanced features though, so this module can be mostly ignored until the first four modules are implemented.
-
Chrisis module: This will handle anything that interrupts the fluffies regular activity, for example getting hurt, seeing another fluffy crying, or seeing an alicorn. Like the social module, this should only be started after the first four primary modules.
Just like the fluffies, the individual items in the game can be handled as self-contained modules as well. For example, as long as a food item has a value for taste, the fluffy AI can use it to calculate its priority for eating that specific item. And as long as it has an eating function, it can affect the fluffies hunger, health, and other stats as defined in the food items own code. But most of all, pretty much any additional features from appearance to spoilage to leaving leftovers can be implemented without affecting the rest of the project. This allows people to add new foods, beds, toys and other items into the game without needing to learn about the inner workings of every part of the project.
This is my mission statement for the modular fluffy project. I hope we can make this happen, doing what countless fluffy games have already done, but this time in a way that creates a permanent foundation for future development. If you’d like to work on a breeder game, this should be the framework to attain lasting results towards a fluffy breeding game.