[ad_1]
Last time I wrote about merchandise variants and randomization in roguelikes, and the way Cogmind is solely primarily based on a big set of static objects, however extra lately I’ve been working an experiment to play with not-so-static objects. The total mechanic revolves round a single new utility: the Scrap Engine.
The Scrap Engine operates just like the Field Recycling Unit in that along with the conventional inactive and lively states it will also be cycled to COLLECT mode, throughout which it’s going to “eat” objects on the present location. These objects are presumed to be disassembled and added to the Engine’s assets so as to be blended with others and reassembled into new “constructs,” the identify for a brand new class of randomized objects. Instead of making new ones it may possibly additionally use these assets to change present constructs. Although in each instances the outcomes are certainly primarily based on the inputs, the method will not be deterministic, so it’s not a pure “crafting” mechanic in that sense.
Constructs may be energy sources, propulsion, or weapons. Utilities are usually outlined virtually solely by their impact and its diploma, and as a result of structure (that once more!) can’t even mix results (this one is most positively unimaginable in Cogmind, in contrast to the workarounds that enabled randomizable merchandise stats with out an excessive amount of hassle), so no utility constructs, however ultimately that is in all probability for the higher as a result of variety of different causes I received’t get into right here.
I used to be actually uncertain any of this might work in any respect, since internally it’s fairly advanced and due to this fact arduous to gauge what outcomes are attainable and whether or not they’d actually match into Cogmind, which has a reasonably robust give attention to design steadiness. In truth, I used to be uncertain all through everything of constructing the system, which made it fairly difficult to work up the motivation to energy via plenty of what wanted to be performed (I usually have to see a transparent purpose to assist with that!).
As with constructing any advanced system, I took the safer route of beginning easy, utilizing energy constructs as a primary check case since they contain the smallest variety of variables. Of course that may make them rather less consultant of the sort of system we’d want later, and due to this fact require extra modifications down the highway (spoiler alert: it did :P), however at the least it might be simpler to wrap my head round this loopy function whereas engaged on the constructing blocks.
Creating a assemble and modifying one are two fairly completely different processes.
Construct creation requires a number of distinctive objects as enter, which is each extra fascinating and makes extra sense since we’re making an attempt to create one thing new however primarily based on present components (which turns out to be useful as a baseline for correct steadiness!).
The first iteration merely averaged collectively the stats of all of the enter objects. This may appear deterministic, although wasn’t essentially simple to regulate for the reason that Scrap Engine requires a number of completely different objects to be loaded as assets, however may solely use some of these to create a brand new assemble.
Still, merely averaging stats could possibly be extra predictable than I needed, to not point out generated much less fascinating outcomes by creating objects which had been principally “neither this nor that” with out a lot likelihood for actual distinctive qualities that stand out, so I later modified this course of to even have an opportunity to utterly ignore a selected enter supply for the needs of a single stat calculation.
As you possibly can see it additionally generates a brand new identify for the merchandise, which may be enjoyable and type of trace at the place it got here from, or in some instances its performance. More on naming later.
Despite the added randomization, new constructs usually are not going to be amazingly distinctive objects, for positive, or the place the system shines. Modifying constructs is the place issues begin to get loopy.
Like creation, modification usually requires having a number of distinctive enter components out there among the many Scrap Engine’s assets. However, the extra diverse outcomes of modification stem from two major elements:
- Only some particular person stats or properties are chosen to be modified, leaving others unchanged. This may end up in a lot wilder mixtures not seen in any of the handcrafted static objects.
- Having a larger variety of slots occupied by constructs will increase the ability of buffs, and likewise decreases the results of debuffs.
While consuming sure objects offers the participant an honest quantity of management over what to anticipate from an preliminary assemble’s creation, that management is decidedly extra restricted throughout modification, which is the place issues get fascinating. Controlling the final course of modification remains to be attainable, given expertise with the system, however it’s an total swingy course of that may make a construct fairly highly effective for a time, solely to finally turn out to be weaker afterward.
Playing this considerably chaotic model is akin to driving a wave of energy, working to creatively survive the downturns to rise once more and crush the opposition. In that approach it’s truly fairly just like Cogmind’s basic premise, dropping components solely to rebuild and are available again stronger, however for skilled gamers the troughs of these waves usually are not often as deep as a result of superior ways and technique, whereas a construct-based play model will drive most runs to experience these waves each deep and excessive.
To preserve steadiness, multislot objects used to create or modify constructs have their stats divided by their variety of slots, so their “multislotness” will not be a property they will switch usually. Instead, every time a assemble is modified it has an opportunity to broaden in measurement, with that likelihood falling the bigger it grows.
In truth, energy and propulsion constructs can solely develop so as to improve their effectiveness–having greater than separately will not be attainable. This was a really early resolution within the design course of after I realized that possessing too many distinctive constructs directly would result in the identical points I described as potential negatives of getting a randart-like system of quite a few variables to be acquainted with blended with Cogmind’s gameplay of steadily altering components.
It’d be advantageous if there have been just a few such gear slots, however in principle participant builds will finally high out at 12~15 assemble slots, which is plenty of objects with procedurally shifting stats to maintain observe of. Too many. Then there’s additionally the difficulty of getting to make sure propulsion is of the identical kind for it to be usable concurrently, which might be so much crazier in the event that they’re all particular person constructs which can be altering left and proper, and there isn’t even management over which ones undergoes modification. (Hybrid propulsion types are already attainable via the assemble system of stat merging, anyway, even when it’s simply mixed right into a single assemble.)
Basically there’s no purpose so as to add all that further complication, so multislot energy and propulsion it’s.
Weapon constructs can broaden, as a result of multislot weapons are cool, however multiple is feasible and even generally fascinating, each for dealing with completely different situations and likewise to permit a assemble construct to tweak its weapons on the lookout for higher candidates to retain and enhance (generally they will get so ineffective it may be good to begin one over?). Plus some ways work higher with quite a few weapons.
As standard the participant can at all times select to not evolve further slots of a sure kind, or use non-construct components to dam slots they don’t need constructs to make use of both for creation or enlargement.
Aside from multislot enlargement there are literally fairly just a few nuances to the design that had been required to maintain constructs enjoyable and balanced…
- As talked about earlier than, having extra constructs leads to higher mods. This displays the idea that every one such components are interconnected with the Scrap Engine and different constructs.
- For that purpose, eradicating (and even simply dropping) a assemble additionally damages the Scrap Engine itself! This places a cap on what may in any other case be a cycle of tedium by repeatedly consuming objects and modifying constructs looking for higher outcomes.
- Fortunately the Scrap Engine can rework into an armored model of itself by consuming armor (so there is a use for some utilities in right here, in spite of everything!), and likewise restore itself by consuming extra armor in that state. This mechanic is important for the reason that total construct revolves round this utility so it must be maintained all through a complete run! If the armored model is finally “destroyed,” it reverts to the conventional model, giving extra alternative to armor it up once more.
- Constructs themselves will also be repaired, a facet impact of any modification (35% of max integrity every time), and having constructs finally take harm is inevitable, so assemble evolution is in flip inevitable as a result of restore/modification course of. This reinforces the “chaotic wave of power” design described earlier.
- Like the armored Scrap Engine reverting to its unarmored model, “destroyed” multislot constructs usually are not absolutely destroyed! Instead the assemble loses a slot and turns right into a smaller model of itself. This is an particularly vital issue with regard to energy and propulsion constructs, which may solely enhance by rising, since in any other case there’s the possibility to immediately lose all propulsion directly and a necessity be prepared for that always, an enormous drain on assets. Cogmind half losses have to occur regularly so there’s ample alternative to recuperate or change ways earlier than the scenario will get even worse.
- Constructs acquire immunity to results that may in any other case outright take away components, resembling severing or thievery, since good constructs are arduous sufficient to construct and preserve as is, so dropping one on this approach could be fairly devastating.
- Construct weapons are additionally resistant to misfires brought on by system corruption, since that might be unnecessarily unfair since they will’t safely be eliminated in conditions the place misfiring would have probably disastrous penalties.
Having playtested this new mechanic for some time, I’ve discovered that it comes with many fascinating new strategic concerns, a complete new play model which may be each enjoyable and difficult in its personal methods.
Like when to go away some slots empty for an opportunity to develop an present assemble, since in multislot kind they acquire an extra bonus to their stats as per the conventional guidelines of handcrafted multislot objects to make up for his or her different drawbacks.
Or fascinated by when and what to eat, when to create new constructs, or attempt to modify some, or maintain off utterly and have the Scrap Engine save its assets for later (go away it off), and even retailer some assets individually in stock so as to feed it later as a part of a lone batch.
There’s additionally the balancing of such a construct’s constructs and the advantages they create (particularly in larger numbers) towards using regular objects, that are swappable… and predictable :P. How many slots to commit to utilities vs. construct-supporting slot sorts? The former don’t contribute to assemble effectiveness, however are probably the most versatile slot and helpful for any construct. Also there’s the truth that the Scrap Engine itself occupies two of these utility slots.
Should one evolve or reserve an additional non-construct weapon slot for swapping potential? On that word, one side not but talked about is that weapon constructs are solely constructed from weapons and cannons, thus excluding launchers and particular or melee weapons. The latter classes are excluded from the assemble system for having too few related variables or outcomes that wouldn’t steadiness correctly, however as regular components they will nonetheless be fairly helpful throughout most runs so leaving room for swapping one in may be vital relying on technique or choice.
Any huge new function is more likely to want some UI love, so for correct testing together with sport really feel and comfort I added just a few new related interface bits.
One helpful habits is to focus on all edible objects whereas the Scrap Engine is in COLLECT mode by intermittently blinking them white.
Technically the set of legitimate targets is a constant subset of merchandise sorts, so given time the participant will know what they will and can’t acquire, however this function helps be taught relevant targets to start with, and having the ability to parse the seen map to see all such objects at a look additionally turns out to be useful when there are numerous objects scattered about.
One of the extra typical however vital components of any new function is audio suggestions, so I added a spread of sound results (in some instances multiple for extra variation since they’ll be repeated so much) for gathering objects, creating constructs, and modifying them. Sure there’s the log messages recording these occasions, however the audio for a log message will not be particular to a given motion, so for vital actions it’s good to have distinctive sound results for further reinforcement.
At this time I spotted the Field Recycling Unit had been relying purely on the message log to report merchandise assortment, so whereas at it I additionally added a sound impact for that one so it stands out if you go away it on and it chomps down on that actually good merchandise that was sitting on the ground simply the earlier flip 😉
The most vital supporting UI function was one thing I didn’t even plan to implement at first, so as to add to the “mystery factor” (at the least in check builds, the place the Scrap Engine was initially code named the Mystery Engine :P). The thought was to not have any built-in strategy to know what objects had been eaten to this point, and due to this fact probably not ensure what assets had been at present or nonetheless out there to the Scrap Engine when turned on. But gamers may (and would) make word of issues they had been consuming if I didn’t discover a appropriate strategy to embody this within the UI, and if we’re together with it we could as nicely reveal what truly stays, since clearly the contents have a bearing on the potential outcomes, and it’s nicer to at the least have some foundation for planning with what’s already a chaotic mechanic.
The Scrap Engine stock quickly seems any time its content material modifications, e.g. as a result of merchandise assortment or utilizing some to create or modify a assemble, and likewise every time the Scrap Engine is toggled to COLLECT mode, making {that a} handbook technique to drive it to seem. There’s a brand new config setting to regulate the period it stays seen every time it seems, or flip it off utterly.
(I’m positive some gamers may need this explicit window to be one thing persistent and individually toggleable, however as an item-specific mechanic I’d choose to maintain it automated if attainable, particularly for the reason that record can usually be fairly lengthy and the one place to suit it’s over the map view.)
Through remark the record will also be used to be taught that the Scrap Engine will solely maintain as much as ten objects price of assets (i.e. ten objects) of a given kind earlier than gathering new ones begins to interchange previous ones in first-in-first-out precedence. So with sufficient assortment it’s additionally attainable to keep away from utilizing the contents and as an alternative change previous objects with higher new ones if desired. More technique! This may come into play if for instance plenty of low-quality objects had been picked up throughout an emergency however ended up not being obligatory, or assemble construct was merely maintained for therefore lengthy that different objects initially collected across the similar time have already been outclassed by newly out there ones.
While it might appear to be of secondary significance, in reality a part of my authentic drive to make this complete idea work was the potential I noticed in artistic naming potentialities. I had hoped that the naming of constructs may really feel as cool because the names generated by Cogmind’s seed system, a random mashup of merchandise names leading to some actually evocative stuff. “ReactiveArmageddonRifle,” “HypercooledWeaponHammer,” “GodChainStabilizer,” “AerolevSuspensionInjector,” “TacticalProtonAccelerator…” I wish to use a type of!
Alas, we’re not fairly going to get that stage of cool out of assemble names, as I’ll clarify under, however I do assume they’ll be fairly enjoyable. I truly ended up utilizing a considerably completely different naming scheme for every kind of assemble, relying on their wants…
Having began with energy constructs as a check case, and being impressed by the seed technology system within the first place, the underlying naming system for these was in-built the identical method, breaking up names of constituent objects and merging them to create a brand new identify.
Of course we’re going to want a suffix to characterize the sort (engine/core/reactor), and now have to obey total merchandise identify size limits so it matches in numerous UI areas whereas additionally being affordable to learn, so I made a decision to stay with solely as much as two phrases pulled from supply objects. For instance a Nuclear Core and Deuterium Engine may mix to create a Nuclear-Deuterium Engine; later modifying it with numerous Ion Engines may randomly change “Deuterium” with “Ion” to create a Nuclear-Ion Engine assemble. Overall it’s good for the assemble names to replicate what objects went into their creation/modification.
In the case the place supply objects are all variants of the identical class of energy supply, resembling many Ion engines, as an alternative of the consequence being an Ion-Ion Engine, which is fairly bizarre, the naming course of would convert it to “Multi-Ion Engine.”
The solely different particular case for energy constructs is the addition of a “Cld.” (cooled) prefix if overloadable, in order that the identify itself carries this convenient piece of knowledge prefer it usually does for regular energy sources. This is a crucial purpose we are able to’t actually have loopy assemble names–we’re going to want that area to incorporate significant data! (in contrast to the seeds, that are pure enjoyable and sometimes nonsensical)
This naming method was passable for energy sources, however the propulsion scenario provides new problems.
Right away I made a decision that every one propulsion constructs are dubbed “exoskeletons,” a time period generic sufficient that it may possibly theoretically discuss with any type of motion (whereas sounding cool!), and the precise kind of motion seems as a prefix in the beginning, e.g. Flying/Hovering/and so on, since we do want that data to be apparent from the identify. This offers us the naming format “[type] [unique] Exoskeleton,” the place [type] is excluded if legged (kinda the default type of an exoskeleton).
As for the [unique] a part of the identify, propulsion sadly couldn’t make efficient use of the seed-like “break down and recombine names” method. There are too many propulsion objects containing both no helpful phrases, or solely phrases that that aren’t moderately appropriate with this method insofar because it’s used to construct constructs. So I needed to design another for that element, and determined I’d simply specify relevant phrases manually. For instance Arm. Treads can contribute the phrase “Armored,” and Hvy. Siege Treads can contribute the phrase “Siege.”
(I initially most popular the seed-like system’s technique, as a result of it’s dynamic, and as soon as coded shouldn’t require any extra consideration to content material since it’s going to mechanically embody names from new objects as they’re added and used–basically much less knowledge to work with and fear about, however having last result’s in fact extra vital, and it’s not like tons of things are being added on a regular basis anyway.)
Propulsion assemble names don’t use “Multi-” like energy sources do. If duplicate phrases are all that’s out there from the given sources, the identify will simply go away it at a single phrase, fairly than inserting any sort of hyphenated resolution.
Note that in some uncommon instances it’s theoretically attainable to fail at assigning a reputation to a given assemble from its supply materials, during which case it’ll simply be referred to as a “Power Construct” or “Construct Exoskeleton,” although extra modifications will finally rename it.
Weapon constructs have an much more concerned naming scheme, being probably the most advanced of the constructs and due to this fact ideally conveying much more related data via their identify. The format: [optional prefix] [damage type] [unique] Construct/[G/C].
Construct/C could be a cannon, /G a gun, referring to their kind since regardless that gun constructs can technically turn out to be much more highly effective than cannons, the distinction can have a bearing on at the least some mechanics like gunslinging, knockback, and blasting matter off targets.
Again as a result of many weapon names embody phrases that may’t be successfully detected by an automatic system, I used the brand new knowledge choice added for propulsion to manually outline related phrases the place relevant, in order that’s the place [unique] comes from, pulling solely one random phrase to make use of there since we frequently don’t actually have room for extra. The pool of related phrases to select from is definitely weighted by the score of their supply objects, and restricted to utilizing solely these which match the ensuing assemble’s harm kind, altogether an try to extend the relevance of a selection whereas nonetheless permitting for some outliers.
I assumed it’d be a good suggestion to reference the harm kind within the weapon identify itself, however didn’t wish to be too repetitive about it, so as an alternative use an inventory of phrases associated to a given harm kind, and pull randomly from that. So an EM weapon may immediately insert “EM” for that part, or as an alternative use “Charged” or others.
The prefix in the beginning of a reputation is optionally available, however particular traits of many regular weapons in Cogmind are mirrored through a prefix, so I feel doing the identical with constructs is a good suggestion. They’re useful, could possibly be cool, and don’t take up an excessive amount of area since they’re all abbreviated.
These are assigned every time there’s some side of the weapon that stands out, rating all potential prefixes that replicate properties which meet a minimal threshold, just like the purpose system utilized by the construct classification system first described right here, however utilized as an alternative to frequent weapon prefixes.
So a weapon will get a sure variety of factors in the direction of the Precision prefix primarily based on its constructive focusing on modifier (if any), in comparison with factors in the direction of Hypervelocity earned through penetration, and so forth. Some prefixes sound like they could possibly be primarily based on relative values, for instance “High-powered,” during which case its diploma is set by weighing it vs. the common harm of all different different non-construct weapons of the identical harm kind.
Regardless of diploma, sure properties override all different prefixes since they replicate vital core habits: these embody guided and unfold (arc) weapons, and any that fireside a number of projectiles.
This has been a reasonably large detour from the principle plans for Beta 12, although at the least it’s wanting more and more doubtless this might truly work?
I don’t have any arduous participant knowledge with respect to this new mechanic since none was included within the scoresheet but, however the preliminary thought was to get anecdotal suggestions anyway–details and extra nuanced steadiness modifications may come later as soon as this function is established.
For some time it felt like this may find yourself reserved for some bizarre particular occasion mode the place it’s pressured on the participant with barely completely different guidelines, although after seeing others toy with it, and taking part in with it myself, I’m getting extra assured there could possibly be a spot in Cogmind’s subsequent model to incorporate the Scrap Engine (when it comes to design, that’s, as a result of lore is definitely the place it first got here up anyway so becoming it in there isn’t a difficulty). There’s nonetheless a have to see individuals utilizing it in a wider vary of situations, which I’m positive I’ll see within the meantime whereas engaged on different components of Beta 12.
In any case, constructing new assemble mixtures, and coping with the implications a method or one other, has been a enjoyable expertise.
I’ve streamed some assemble construct playthroughs of my very own, during which I speak concerning the design and technique whereas testing it out in precise runs. The first is right here:
[ad_2]