StoneSpace is a complete pure crafting expertise with lots of of recipes protecting each kind of crafting, from metallurgy, to cooking, to erecting buildings.
It’s written in C# utilizing Monogame (XNA). I’ve been engaged on it single-handed for about 18 months, studying every little thing from scratch (coding, pixel artwork, sound design, and so on.), so I am on a really difficult studying curve.
The primary biome (plains, pictured above) is slowly coming collectively. The visuals are beginning to look… satisfactory, I feel. Although there are nonetheless lots of of small particulars I wish to enhance.
The world is procedurally generated (the algorithm wants tweaking a bit to get the density proper), and you may specify the seed when beginning a brand new sport if desired.
The participant can discover and collect numerous sources, which unlocks new crafting recipes. Every biome has its personal assortment of spawnable objects and distribution of spawn probabilities throughout them. Sure objects solely spawn in particular sub-areas (akin to branches solely showing close to bushes) or usually tend to seem in some zones (like rocks and flint showing extra typically on riverbanks).
The participant can forage fallen nuts or acquire berries from bushes to replenish their stamina. Many extra meals varieties and cooking recipes can be added over time.
Timber could be felled with an axe. Branches and logs can then be harvested and used as early crafting elements. All of the bushes have the identical form at the moment with some various color palettes for selection, however in future I’ll add two or three extra species.
I just lately completed including the day/evening cycle. The display fades at nightfall and lightens once more at daybreak. The participant doesn’t know the precise time, however they’ll choose the approximate time of day utilizing the place of the solar within the sky. A visible illustration within the high left nook exhibits the solar rising, shifting throughout the sky, and setting, and mousing over it provides some flavour textual content for what time of day it’s (instance beneath).
I’ll begin experimenting with localised lighting results quickly, once I’m accomplished including hearth to the sport.
I’ve acquired just a few extra mechanics already absolutely coded that I am going to showcase in future dev updates.
« Final Edit: As we speak at 12:14:42 PM by DrBPW »
StoneSpace is quintessentially a crafting sport, so the crafting mechanics are paramount. I’m pretty proud of the progress I’ve made integrating the various facets of the crafting system right into a single menu (above). A fast rundown up to now:
The participant selects the merchandise they wish to craft on the left aspect of the menu. They’ll choose a class, akin to masonry or textiles, to see a scrollable checklist of identified objects in that class, or kind all or a part of the merchandise’s identify into the search bar. There are filters that may be toggled to additional refine these lists, like solely seeing objects the participant hasn’t crafted but (only one filter kind has truly been coded up to now). The participant may favorite objects (e.g. the starred flint wedge above), which provides them to a particular checklist for fast entry. If a class accommodates a newly unlocked merchandise, it has an exclamation mark on it. A brand new merchandise is flagged as such (e.g. the flint blade above) till the participant mouses over it and sees its description.
Clicking an merchandise shows it’s recipes on the suitable aspect of the menu. Many objects could be made multiple means. The participant can cycle via each recipe that features the chosen merchandise as an output. Recipes have inputs, that are consumed when beginning to craft, and outputs, that are gained when the recipe is full. Many recipes additionally require the participant to own particular instruments. Many instruments have sturdiness and put on whereas getting used. If a device breaks earlier than the recipe is accomplished, progress is paused. Some recipes additionally want the crafting station being was provided with enough energy (e.g. the electrolyzer), or to be burning at a minimal temperature (e.g. the blast furnace), and typically the gas used should fulfill a sure purity threshold. These three mechanics can be absolutely carried out in a future replace.
There are 3 kinds of output:
Regular outputs: the participant at all times receives a precise variety of the merchandise.
Variable outputs: the participant receives a random variety of the merchandise between two values (e.g. between 4 and 10 leaves).
Attainable outputs: there’s a likelihood to get this merchandise however it isn’t assured (e.g. sure ores from breaking down stone).
The participant crafts the recipe by holding down LMB on the massive inexperienced craft button, and releases LMB to pause.
Every recipe additionally has an related talent (e.g. blacksmith or tailor) and most require the participant to be a minimal degree in stated talent to craft it. Finishing a recipe rewards the participant with expertise factors in its corresponding talent. Extra on abilities one other time. The participant may queue a recipe to finish it a number of occasions in a row with one click on. Paused recipes could be cancelled (pictured beneath).
Recipes could be pinned to the suitable aspect of the display, permitting the participant to trace what they want vs what they’ve (instance in top-right above). Pinned recipes could be rapidly unpinned or opened within the crafting menu utilizing the cross and e book buttons. The participant can pin as many recipes directly as they like; as soon as they now not match the display, they turn into a scrollable checklist.
I could create a brief video demonstrating these crafting mechanics, host it on YouTube or someplace, and hyperlink it right here.
Along with crafting numerous objects, the participant may assemble many kinds of constructing, from workbenches, to pottery wheels, to beds, to blast furnaces. Most buildings double as crafting stations, so erecting them unlocks extra crafting mechanics. For instance, the participant can use a smelter to refine numerous ores into metals.
There is no such thing as a devoted ‘construct zone’ within the sport; the participant can construct anyplace there aren’t obstacles, and virtually all obstacles (like rocks or bushes) could be cleared with the suitable instruments. They’ll subsequently create as many bases as they like, wherever they like, or simply place buildings arbitrarily across the map, relying on their play model.
It’s vital to me that the participant have the ability to see the dimensions and form of a constructing, and plan the place they wish to construct it, even when they don’t at the moment have the supplies to assemble it. This makes it simpler for them to plan and visualise their base. It additionally spares the participant the frustration of saving up sources to construct one thing, solely to seek out that it’s a lot bigger than they anticipated or doesn’t look good anyplace of their present structure (many video games have this shortfall).
I obtain this with what I name the construct website mechanic: step one to establishing a brand new constructing is putting a construct website the place you wish to erect it. The participant can do that as quickly as they know the recipe for making that type of constructing, even when they don’t have all or any of the required building supplies.
Construct websites are represented by a semi-opaque greyscale model of the constructing texture (generally known as a ‘blueprint’) and could be deleted at will (instance pictured beneath). The participant can place as many construct websites directly, and subsequently have as many incomplete buildings on the go, as they like.
When putting a brand new construct website, the blueprint snaps to a grid, making it simpler to line every little thing up neatly and create organised base layouts. I’m contemplating giving the participant the choice to toggle this on or off for advert hoc placement in the event that they’re that means inclined.
The participant may rotate construct websites whereas putting them, flipping between totally different orientations. This offers them extra freedom when laying out their base(s).
The flexibility to line issues up on a grid, and rotate them, are two options that once more plenty of video games lack. However I actually recognize having them when they’re there, so I wished to go the additional mile to incorporate them.
When putting a construct website, the constructing’s blueprint can have a inexperienced spotlight over it if the proposed website is evident of obstacles, and a crimson spotlight over it, in addition to over the impediment(s) that it overlaps with, if the position is invalid. An instance of this visible suggestions whereas putting a brand new construct website is offered beneath.
The participant may queue a number of cases of the identical constructing, identical to queuing a number of cases of the identical crafting recipe, and place a number of construct websites . So, for example, you may place 5 smelter construct websites in a row , with out going into and out of the menus.
After putting a construct website, the participant wants to collect the required supplies to erect the constructing after which assemble it. I’ll run via the place I’ve acquired to with these mechanics in a future replace.
« Final Edit: August 29, 2024, 02:13:17 PM by DrBPW »
For the previous 3 weeks, I’ve been engaged on the sport’s save system. There have been definitely just a few fascinating challenges to work via, however ultimately it didn’t take an extended as I feared.
The participant can now Quicksave/quickload near-instantaneously utilizing keyboard shortcuts.
The save system is sort of complete, within the sense that it remembers principally every little thing, even which pages have been open wherein menus, so the participant can choose again up proper the place they left off.
It’s additionally dynamic; it would robotically adapt to any new content material I add, and is meant to be maximally suitable with future variations. I’m planning forward for playtesting, Early Entry, and DLC, and doing all I can to avoid wasting individuals the annoyance of getting to begin over after each main replace.
The save knowledge itself is at the moment saved in an easily-editable format, making it easier to arrange particular circumstances for playtesting and probing edge circumstances.
There aren’t any screenshots to point out off right here, as visually the one distinction is a popup message saying the sport has quicksaved or quickloaded.
In future, the sport can even autosave each time the participant sleeps (particularly, once they get up). That is easy sufficient to do, however I don’t plan to implement it simply but.
Full disclaimer: I did have a working save system a few 12 months in the past, however it was extraordinarily primary and rapidly turned outdated because the undertaking grew. It was principally a proof of idea within the very early levels of growth. I assumed it will be greatest to attend till the entire sport’s core mechanics had been carried out earlier than arising with a save system that might deal with all of them.
The subsequent large step is so as to add the handbook saves as properly, and the save/load menu. Presently, the participant can load with the keyboard shortcut, however not entry a listing of various save information. There’s just a few quality-of-life options I wish to embody right here that I’ll run via once they’re accomplished.
After a code-intensive month, it’s probably I’ll return to creating the sport look a bit prettier earlier than returning to the save/load mechanics.
« Final Edit: October 03, 2024, 10:39:55 AM by DrBPW »
I just lately expanded upon the sport’s notification mechanic (pictured beneath).
Notifications seem within the bottom-left nook of the display and supply a passive affirmation/reminder of what’s taking place. They let the participant know, amongst different issues:
What merchandise(s) they picked up, crafted, dropped, ate, or ‘consumed’ (utilized in a crafting recipe).
When their stock is full.
Once they be taught to craft a brand new merchandise.
Once they’ve levelled up a talent.
Why they can’t craft a recipe (or why a crafting try failed).
Once they’re out of stamina.
When their instruments break.
Once they haven’t got a selected device they should do one thing (e.g. in the event that they attempt to chop down a tree with out proudly owning an axe).
Once they have efficiently saved or loaded their sport.
I beforehand had a easy text-only system that I at all times deliberate to improve.
Notifications at the moment are accompanied by a sprite (akin to the feel of the merchandise they’ve simply picked up, or a save image).
Some are additionally accompanied by a selected sound impact, such because the level-up SFX or the error SFX.
Notifications are additionally colour-coded:
Impartial ‘info’ messages, akin to saving or loading, are black.
Constructive messages, like gaining or crafting objects, are inexperienced.
Detrimental messages, like breaking a device or failing to craft an merchandise, are crimson.
Particular occasions, like levelling up a talent or studying to craft a brand new merchandise, are blue.
Sorry if these updates appear a bit everywhere – there are many components to this undertaking and hopping from one factor to a different retains me and the progress flowing! I’ve acquired heaps extra to speak about, however work on the sport comes first
Yeah, considered one of my large targets for this undertaking is basically creating my very own ‘crafting sport maker’ that can permit me to only add as a lot new content material as I like: objects, instruments, recipes, biomes, and so on. Every little thing is ready as much as be dynamic and computerized, so I can broaden as a lot as I need and the code will know what to do. There’s nonetheless extra work to do, however I’m near that magical second the place I can simply deal with including content material and increasing the world. It additionally provides me the facility to in the future overhaul the entire thing with totally different biomes, graphics, objects, and so on., basically remaking a special model of crafting sport with no need to recode any core mechanics. This ‘sport maker’ could even be a marketable piece of software program in itself… perhaps.
I can undoubtedly see the enchantment of doing it your means too although. I’m investing plenty of effort and time now to make issues simpler later, however it means ready a very long time to even get the primary space of the sport ‘accomplished’.
The sport’s stock system has been virtually completed for some time now. There are just a few mechanics, together with a number of high quality of life options, that I’m fairly proud of, so right here’s a fast rundown.
The participant has 10 hotbar slots, proven on the backside of the display. The energetic slot is highlighted by a border. Clicking the LMB or RMB will set off the first or secondary motion of the merchandise within the energetic slot (if any), akin to utilizing an axe to cut a tree, consuming a consumable, or emptying a bucket. A slot could be set because the energetic slot by clicking it, urgent its related quantity key (1-0), or scrolling the mouse wheel to cycle up or down via the hotbar slots.
Along with these, the participant additionally has as much as 30 backpack slots, which could be accessed by opening the primary stock display.
The participant can click on and maintain to drag the contents of 1 slot to a different, permitting them to merge 2 stacks of the identical merchandise, swap the contents of two slots, or drop an merchandise by releasing it outdoors the stock space. When the participant drops an merchandise, it would robotically merge with another close by stacks of the identical merchandise.
There may be additionally an auto-sort mechanic that merges all objects within the stock into the fewest potential stacks, then teams them by class (e.g, all instruments collectively, all metallic elements, and so on.). This may be accomplished individually for both the hotbar or the backpack, permitting the participant to, for example, maintain their hotbar how they prefer it however kind every little thing of their backpack by kind.
The participant may use the ‘Add to stacks’ and ‘Take from stacks’ buttons to immediately switch all objects from the hotbar to any matching stacks within the backpack, or vice versa.
Numerous hotkeys can be utilized to rapidly carry out frequent actions, together with:
Open and shut the stock,
Drop 1 merchandise from a slot,
Drop all objects from a slot,
Switch 1 merchandise from a hotbar slot to a backpack slot, or vice versa,
Switch all objects from a hotbar slot to a backpack slot, or vice versa,
Kind the stock
There are 2 components limiting stock capability. The primary is the variety of backpack slots the participant has entry to. Extra slots could be unlocked by crafting and sporting larger, extra sturdy backpacks.
The second is the participant’s present most carry weight. All objects have weight, and carrying greater than your most encumbrance slows you down, first by disabling the run mechanic, then by reducing stroll pace, till the character can now not transfer in any respect. Max carry weight is proportionate to the character’s power, which could be elevated in numerous other ways.
Only a fast replace on the progress remodeled the vacation season.
Now that I’ve acquired the code all set as much as permit fast, dynamic creation of extra biomes, I can broaden the sport world a lot simpler and sooner. (This did create just a few fascinating technical bugs that I had some enjoyable fixing over Christmas, however it’s now working very properly.)
To start, I’ve made a tough begin on the forest and seashore biomes (screenshots above). Once more, there are nonetheless heaps and plenty of little issues to do right here, however it provides a flavour.
Exploration is an important a part of this sport from minute one, as totally different biomes comprise distinctive sources and/or the identical sources however with totally different drop charges. The participant must discover and map the totally different areas to seek out the varied uncooked supplies they should full the TIER 1 crafting recipes.
Mechanics replace: stamina, exhaustion, meals, and sleep
Doing virtually something in StoneSpace drains the participant’s stamina. Crafting, mining, constructing, chopping down bushes – all of it takes power.
The participant can eat meals to replenish their power bar, beginning with easy foragables like nuts and berries and steadily changing into extra substantial as they be taught to prepare dinner extra complicated meals. Some forms of meals additionally present extra bonuses, akin to briefly rising their most pace or carry capability (extra on the encumbrance mechanics later).
Nevertheless, burning stamina additionally will increase exhaustion; for each level of stamina that the participant burns, a fraction is transformed into exhaustion. Exhaustion eats into the stamina bar, slowly decreasing the participant’s most power. Whereas meals can be utilized to recuperate stamina, it doesn’t take away exhaustion. The one method to take away exhaustion is to sleep.
Due to this fact, whereas the participant can use meals to high up their stamina, their most stamina will regularly deplete as they work, requiring them to eat increasingly more typically, till the one sensible method to proceed is to sleep, thereby eradicating exhaustion, and begin afresh.
As talked about again in devlog 1, StoneSpace has a day/evening cycle. However there isn’t a requirement to work in the course of the day and sleep at evening, and no curfew. The participant is free to sleep at any time when they like, for so long as they like, offering they’ve entry to a mattress, and may discover, collect, and craft at any hour of the day.
I selected this mix of mechanics as a result of it looks as if the perfect compromise between numerous design ideas. Any complete crafting sport should embody cooking, and if the participant could make meals then they’d higher have the ability to eat it, and it had higher be advantageous to take action. However I additionally wished to seize some extent of realism by limiting how a lot the participant can depend on meals alone to replenish stamina, all with out creating an arbitrary deadline of the shape “be in mattress by 2am or go out”. By permitting them to increase their time away from dwelling by utilizing meals to recuperate stamina, the participant is rewarded for good preparation earlier than heading out to discover and collect sources. However, by requiring them to finally sleep or else turn into too exhausted to do something, the sleep mechanic can’t be completely bypassed and the core sport loop of discover, collect, craft, sleep, repeat is maintained.
The participant additionally receives a well-rested bonus, which will increase their most stamina, in the event that they sleep for lengthy sufficient to completely take away their exhaustion, with higher beds yielding larger bonuses. This offers extra incentive for the participant to craft higher furnishings and sleep repeatedly to additional maximise effectivity.
I assumed it was about time I shared the contents of the Design Ideas doc. These are the 5 guidelines I persist with, as a lot as humanly potential, when making StoneSpace. As such, they paint a common image of what the completed product will appear like.
First Precept: Realism inside Cause The ideas and processes underpinning real-life engineering are distilled into simplified, but consultant, sport mechanics. Desire a picket plank? You’ll must make an axe, chop down a tree, hew a log from the trunk, debark it, break up it into tough flitches, and make one thing to sand them easy with. Desire a metallic ingot? You’ll must dig a mineshaft (and ensure it’s correctly supported), extract mineral-rich chunks, break these down to seek out nuggets, construct the correct of smelter, course of limestone into lime, use adequate gas, maintain the hearth on the proper temperature, and take care of the waste slag. There are lots of extra levels and complexities to those issues in actual life, however when it turns into too tedious to be enjoyable, it has no place in a sport. Quite than beginning with what different video games do and correcting upwards for realism, I’m beginning with actual life and correcting downwards for enjoyable and practicality.
Second Precept: Fewest Attainable Shortcuts Begin with nothing. No wreckage conveniently strewn across the crash website to get you going, no fancy multi device, no 3D printer. Not as a lot as a backpack to place issues in. Even your garments are tattered and principally ineffective. You’re not going to be given the naked bones of a ship to repair up, or uncover a magical alien useful resource that miraculously solves your power wants. You’ll begin from scratch, be given nothing, and end with a space-faring vessel.
Third Precept: Complete Go on a journey via the whole historical past of science and know-how. Begin by making flint instruments and finish with nuclear reactors, navigation computer systems, and rocket gas. You’ll must grasp every little thing ‘artful’ you may consider, from metallurgy to cooking, from stitching to glassware, from pottery to chemistry. A variety of issues are non-obligatory enhancements to processes and effectivity, however finally you’ll must completely discover each avenue of the sport if you wish to escape.
Fourth Precept: Zen No fight, no well being bar, no starvation or thirst meters to fret about, no harming animals for meals or sources. Simply discover, advance, and slowly craft your means towards your final objective.
Fifth Precept: Function-rich Pin recipes to the HUD, bookmark your favorite objects, seek for issues by identify, construct anyplace, plan your base(s) earlier than committing sources, recycle what you now not want, rapidly transfer, drop, and organise issues with shortcuts… all the perfect quality-of-life options out of your favorite crafting video games.