Hi y'all! I've been solo developing Guiding Spirit since March 2019. Most of this time was spent setting up the infrastructure, as I'm building the game from scratch using SDL2 with C++. In late November I've finally gotten through most of the boring technical stuff and started working on actual game features, so I think it's time to start sharing my progress and hopefully drum up some interest from potential players. The game is still far from completion, as I'm only at milestone 10 out of planned 23 (subject to change), but I am planning to start closed testing at milestone 12 to get some player feedback on what's fun and what's not so I can make this game the best it can be. I'm projecting this testing to start in February this year, and completion of the game is guesstimated to be in late 2020 or early 2021. The final game will be a commercial product (price TBA).
What is Guiding Spirit?
Guiding Spirit is a top-down 2D singleplayer god game. The player is cast in the role of the supernatural guardian of a small tribe of paleolithic hunter-gatherers. The tribe has to obtain food, water, shelter and tools to survive in the game's harsh world. The game has an animistic theme, which means that all these resources are associated with various spirits which protect them. For example, there might be a spirit of a lake, or a spirit of a herd of antelopes. These spirits don't appreciate the tribe exploiting their resources, and will retaliate with diseases, animal attacks and inclement weather. The player's job is to keep the tribe safe from these spirits, which can be done by moving the tribe before the local spirits get too angry, appeasing the hostile spirits with sacrifices or manifesting an avatar of the tribe's spirit and engaging hostile spirits in magical combat. The last method allows the player to break the nature spirits for a while, which will not only keep them from attacking the tribe but will also unlock new spells for player to use and new technologies that can be granted to the tribe via visions. The downside is that without their guardian spirit the resources will dry up, so the tribe will have to move to a new location where they'll be accosted by new local spirits.
Since the player will be busy dealing with the spirits, the tribe itself is autonomous for the most part. Instead of giving direct orders to the people, the player will mostly just be giving them buffs via spells and unlocking crafting recipes by sending visions to individuals. The exception will be direct control over migration of the tribe on the overworld map and sending visions instructing the tribe to perform various rituals which can buff the tribe spirit, appease or debuff nature spirits, or alter the flow of the magical currents which dictate the power of both tribe and nature spirits' spells.
The game has two modes: local area and overworld. Local area is played in real time, and most of the game is spent in this mode. The tribe collects resources and crafts in this mode. Overworld is a quasi-realtime mode, much like Mount & Blade's overworld map where time only advances when you move. In this mode the tribe uses the resources gathered in local mode, and must switch to local mode when they run out of food or water. The game starts in a relatively hospitable area of the overworld, but as the tribe unlocks new technologies that let them survive in harsher environments the player must take them to more dangerous parts of the world to unlock higher tier technologies by defeating more powerful spirits. The victory condition of the game is unlocking neolithic (ie farming), which means the tribe can finally settle down in one place. The loss condition, of course, is extinction of the tribe.
Main menu:
Early camp:
Design Goals
- Deep mechanics: I've always been a fan of games with lots of depth, such as Dwarf Fortress. Relationships between your minions and the world around them allows interesting scenarios to arise and increases the immersion. To this end I've based the game around status effects which can interact with eachother and characters' stats, for example a tribesperson can get a broken bone from fighting a hyena, which limits their mobility and makes it necessary for other people to take care of them. A low empathy person might get a morale debuff from having to take care of an incapacitated tribemate, decreasing the mana they generate for you to use for casting spells.
- Replay value: Single player games are great because they let you play in a non-optimal way (ie roleplay). On the flipside, they can't generate novel scenarios from interaction with other players, so they can get stale quicker. To alleviate this problem, I intend to add plenty of content that's unlocked non-linearly. That is, there'll be an element of RNG in determining which spells and technologies you get when defeating a spirit, and the order in which you get to different spirits will depend on the procedurally generated world you're playing in. Additionally, there'll be multiple tribe spirits to choose from, each focusing on different types of magic.
- Mod support: Procedural generation can only take you so far, and ultimately the best way to extend replayability is modding. This is why I've avoided hardcoding everything I could, and placed as much as I could in external files. Graphics are stored in simple PNG files. Creatures, spirits, resources, spells, magic currents and even UI are all defined in plaintext XML files. Currently the XMLs are edited by hand, but I intend to implement tools for editing them so even players that aren't tech savvy can create mods.
Latest Developments
The last milestone was implementation of the local spirits. They spawn a focus object around which they spawn resources, and they gain anger when humans harvest these resources. When sufficiently angry an avatar is manifested which walks around and inflicts disease debuffs on humans.
Ancient stump, focus of a Wood Spirit:
Wood Spirit avatar:
I also had to do some UI work to make it obvious to player what's going on when the avatar is manifested, so I added indicators for spells being cast, and status effect indicators for showing current status of a creature (which status effects are shown is definable in XML).
Wood Spirit avatar casting fever on a pregnant woman:
And while I was working on UI, I also implemented auto-generated tooltips for clarifying what status effects and spells do.
Spell tooltip:
Status effect tooltip:
And since I was working on spells for the avatar to use, I also implemented magic currents. Specific currents can be edited in XML files, and for now I settled on having six different currents: Sun Magic, Moon Magic, Fertility Magic, Death Magic, Blood Magic and Soul Magic. The currents' baseline power can wax and wane on a time cycle, for example Sun Magic is weakest at the winter solstice and strongest at the summer solstice, and Moon Magic waxes and wanes on a 28 day cycle. The baseline power can be adjusted by bonus power, which is a result of in game events. For example Blood Magic increases in power when wounds are inflicted in combat and Fertility Magic increase in power when new resources are spawned or new creatures are born. The power of magic currents ranges from 0% to 100%, and it acts as a multiplier to power of spells that use that type of magic. For example the Watchful Gaze spell in the spell tooltip screenshot will create a Watchful Gaze object (removes fog of war in an area) with ~75% Revealed status, which means the created object will expire sooner than if the spell was cast at 100% power. In addition to magic currents, caster stats can also influence power of spells.
Indicators showing current power of magic currents:
Anyway, that's all for now, I'll keep you updated as I implement more features and content. Please don't hesitate to ask questions or give any sort of feedback. It's been a challenge working in isolation for the past nine months, so any interest would be a welcome motivation boost ;)