[ad_1]

dangersam


Tutorials, new options and components

Hey all, this is an replace on what I have been engaged on for the previous couple of months.

Tutorial eventualities

The principle problem I’ve had these days is with the design of the tutorial eventualities, my authentic thought for these did not work out to my liking.  They ended up being fairly boring and did not give an excellent first impression of the sport.  So I made a decision to attempt a brand new route to create a extra entertaining expertise for first time gamers whereas introducing some fundamental ideas.

Sadly this can probably imply scrapping among the work I’ve already carried out, however hopefully I can reuse a few of it a minimum of.  For now I am going to say no extra concerning the new tutorial state of affairs design, till I am additional together with it and extra assured that it’ll work out.

I discovered all this fairly dispiriting and irritating to be trustworthy, so to attempt to preserve myself motivated and transfer issues ahead, I’ve additionally been engaged on another stuff!

Constructing enhancements

Not too long ago I have been enjoying the sport quite a bit (to construct content material for the tutorial eventualities and trailer video), this has highlighted some bugs and different usability annoyances, which I have been fixing as I discover them.

For instance:-

  • When detaching chosen components from different ones, the attachment sorts between them could be misplaced, and after re-attaching them you’d have to alter the attachments again to the specified sort.  Now, the categories are saved whereas the choice is being moved, and restored after re-attachment.
  • Half highlighting has been improved in order that instruments solely spotlight components related to them (e.g. solely paintable components for painter instrument).
  • Fastened a number of bugs (similar to components generally not attaching to engaged gears, random rotation after freezing a building, half duplication points, and so forth).

Braking

With reference to annoyances, I constructed a race automobile to showcase on the race observe map, which was enjoyable to drive round however actually emphasised the necessity for correct braking.

Electrical motors present regen braking by operating them backwards, however this was laborious to manage.  If a car’s wheels had inadequate grip they’d slip and the motor would spin up in reverse.  So I made some modifications to the motor half behaviour to handle this:-

  • Above a sure velocity a “braking route” is now set, which is then used to forestall the motor from spinning in reverse after coming to a cease throughout braking (the braking route is reset as soon as directional management is launched).
  • Added a separate tweakable worth for braking torque.

Electrical motor regen might not present sufficient braking by itself nevertheless, and so I’ve now carried out a brand new braking half behaviour for wheels (that may be activated by a sure key).  This makes driving autos far more controllable and fulfilling.

When braking is enabled, a brake disc is proven contained in the wheel.

I plan on including separate brake and clutch components sooner or later that will even make use of this identical half behaviour implementation.

Analog joystick management

After spending a while driving autos round, I could not resist implementing one thing that will vastly enhance the expertise – analog management.  Extra particularly, with the ability to bind a joystick axis to a controllable half behaviour (similar to a motor).

This, together with braking, transforms the enjoyment of driving autos within the sport.  It’s elective nevertheless, and the common sure keys are nonetheless an honest technique of management.

Chase digicam

One other factor I could not resist including was a “chase” digicam, which is now selectable when the participant is seated.  It is much like the present third-person digicam besides that side-to-side motion is easily locked behind the seated participant, and the mouse can solely transfer the digicam up and down.

This digicam mode makes driving autos in a third-person view a lot simpler, as you do not have to manually observe the car by shifting the mouse.

Extra components and enhancements

Once more, after spending time driving autos, I needed to enhance how leaving seats labored:-

  • Quite than having to look down at a seat to go away it, now you can merely press the “soar” motion (i.e. Area by default).
  • When leaving a seat, if potential the participant is now repositioned at a free place in entrance or to the facet of the seat, fairly than on prime.  That is extra higher for a car with a roof for instance, the place earlier than the participant would simply be repositioned on prime of the roof.

I additionally improved another half behaviours (e.g. key bind for differential locking, tweakable gentle brightness) and added a number of extra components (e.g. seat, gear, steering wheel, connectors) to facilitate among the instance constructions I have been making.

Grabber instrument

Lastly, I made a decision to implement the final remaining instrument within the sport, the “grabber” instrument.  Though this wasn’t a very excessive precedence, it was fast to implement and I needed to get it carried out in order that I’ve the choice to incorporate it within the tutorial eventualities, with out having to return and modify them later.

The grabber instrument permits constructions to be moved round as bodily objects, i.e. with out freezing them first.

It has two modes, “seize” and “shove”:-

  • 1) Goal a part of a building, then click on the left mouse button and drag, to seize that half and drag the development round by it.
  • 2) Goal a part of a building, maintain the precise mouse button to cost up, then launch to use a shove drive to that a part of the development.

The seize and shove forces are configurable, as is the flexibility to have free or locked rotation whereas grabbing.

What concerning the full sport launch?

Earlier than the early entry launch of the sport, there are two primary duties left I must get carried out: end the in-game tutorials and make a trailer video.

The tutorial eventualities haven’t progressed to the place I might have appreciated by now, however I wanted a break from them to clear my head, and work on one thing else.  Anyway, now I actually need to focus again on ending the tutorial eventualities, end constructing content material for the trailer video, and get that captured and edited.

I hoped to launch the sport earlier than the tip of the 12 months, however sadly it is now trying just like the date must slip by a couple of months.

That is actually disappointing I do know, however by means of compensation, I’ve determined to do one other demo launch replace quickly, which can embody lots of the enhancements talked about on this publish, so preserve your eye out for that!


Logged

dangersam


GearBlocks Demo 0.7.8387

Simply launched a demo replace with new grabber instrument, brakes, joystick help, constructing enhancements, UI tweaks, bug fixes, and extra. See launch notes in sport for full particulars!

Steam retailer web page

Launch notes:-

  • Instruments:-
    • Carried out new grabber instrument, for dragging and shoving objects.
    • After detaching chosen components, attachment sorts are actually restored if those self same components are reattached.
    • Instruments now solely spotlight components related to them.
  • Half behaviours:-
    • Electrical motor modified to forestall reverse spin up after coming to a cease whereas braking (till management is launched), additionally now has individually configurable braking torque.
    • Added braking to “Automotive Wheel” half, controllable with a sure key.
    • Differential gear’s locking (i.e. slip restrict) can now be turned off with a sure key.
    • Gentle’s brightness now configurable partly behaviour settings.
    • Carried out analog joystick binding for half behaviours.
    • Activation state now serialized to saved constructions / video games.
    • Added choice to label an element’s perform within the building controls UI overlay (see under).
  • Physics:-
    • Changed “steady contact detection” sport possibility with “contact detection mode” scene setting.
    • Rotary bearings now have small angular drag (to simulate friction).
  • Participant seating:-
    • Participant can now go away seat with soar motion (i.e. urgent Area).
    • Improved participant positioning after leaving a seat.
    • Added new chase digicam mode, obtainable when participant is seated.
  • UI:-
    • Added new building controls UI overlay, proven when no instrument is chosen.
    • Improved and expanded assist UI display.
    • Eliminated participant stats (velocity, and so on.) UI overlay, this shall be changed with a script mod within the full sport.
  • Eliminated outdated “Corrugated Metal” plate half.
  • Bug fixes.
  • Upgraded to Unity 2020.3.42.
« Final Edit: December 19, 2022, 11:46:25 AM by dangersam »
Logged

dangersam


GearBlocks Demo 0.7.8420

Hello all, over the vacation interval I made a decision to take a while out to attempt an experiment: try so as to add undo performance to the sport.  Particularly, implement a command historical past, to which a command could be added for every instrument motion (e.g. choose, transfer, or connect components, apply materials or paint, and so on.) after which permit the participant to undo or redo the instructions in that historical past.

The sport’s instruments weren’t initially constructed with this in thoughts, however the code is fairly properly structured so I assumed it is likely to be potential.  The preliminary prototype turned out to be promising, and confirmed the potential enchancment to usability this could convey.

Properly, I could not resist seeing this by to completion, and so that is what I have been engaged on for the previous few weeks.  It required substantial refactoring of among the instrument code, and took some time, however the outcomes are properly price it I feel. 

Right here it’s in motion, I’ve uncovered the command historical past to Lua scripting, and made a script mod that reveals the present record of instructions:-

Implementation particulars

Quite than retailer an absolute snapshot each time one thing modifications, the instructions within the historical past retailer relative deltas.  A command retains a report of the change that was made by a instrument motion.  This implies implementation was sort of an “all or nothing” prospect: all instrument actions have to be accounted for the command historical past (in the precise order!) for every little thing to work correctly.

Listed below are the instructions I ended up with, these are added to historical past when…

  • Choose instrument: …a instrument is chosen (some actions are solely legitimate when the right instrument is lively, so this should go within the historical past).
  • Choose components: …any frozen components are chosen or deselected.
  • Choose pivot: …a pivot level is chosen, which detaches all the chosen half(s).
  • Transfer / resize choice: …the chosen half(s) are translated, rotated, or resized by way of manipulators.
  • Substitute attachment: …an attachment’s sort is modified.
  • Lock attachment: …an attachment is locked or unlocked.
  • Delete attachments: …attachments are deleted (whether or not immediately, as a result of choice being indifferent, or because of an element being destroyed).
  • Spawn / destroy building: …an element / building is spawned or destroyed.
  • Freeze building: …a building is frozen or unfrozen.
  • Swap materials: …a fabric is utilized to an element.
  • Add / take away hyperlinks: …hyperlink(s) between hyperlink nodes are added or eliminated.
  • Apply paint: …paint color is utilized to an element.

The command historical past has a buffer containing references to the added instructions, within the order they have been added.  This enables for the instructions to be undone in reverse order, and redone in ahead order.

The historical past maintains an index of the final undone command, and if a brand new command is added, it’s going to go into the buffer at this level.  Any instructions that got here after the one most just lately undone shall be misplaced.

The buffer is a finite measurement (presently 256), if a command is added to historical past and it is full, the oldest command is eliminated.

New demo

So, the sport now has full undo / redo functionality (utilizing Ctrl + Z / Ctrl + Y).  This can be a characteristic that this style of sport actually ought to have, and I feel it was price making the hassle to get it carried out.

Steam retailer web page

There are nonetheless a few points left to take care of, however it’s now in a usable state, so I’ve simply up to date the demo to incorporate it.  Lots of code needed to change, hopefully I have never launched any evident bugs, it appears steady thus far.  Give it a attempt to let me know the way you get on with it!


Logged

dangersam


Tutorial, optimisations, and different enhancements

Hey everybody, time for one more lengthy overdue replace on what I have been as much as these days!  I’ve principally been targeted again on constructing the in-game tutorial state of affairs, however I’ve additionally continued engaged on the sport, each including options to help eventualities, and making different common enhancements.

Efficiency Optimisation

I observed some efficiency points, notably with numerous components or constructions, so I made a decision to spend a while addressing these.

UI optimisations:

  • UI components now solely resize themselves to content material when one thing modifications, fairly than each replace.
  • Improved efficiency of hyperlink and half intersection indicators when looping by half cases.
  • Improved the compass overlay implementation (not units gameobjects lively / inactive).
  • Optimised the scene instrument UI’s building record replace.

Different optimisations:

  • Eliminated pointless calculations from the development replace perform.
  • Eradicated the composite replace perform altogether.
  • Eradicated or simplified another mounted replace features.

These modifications save over 1 ms on the principle thread when there are lots of components / constructions within the scene (totalling a pair thousand components or so).

Talking of which, I’ve additionally investigated utilizing Unity jobs to maneuver work off the principle thread.  This has the potential for some extra important efficiency enhancements.

This is what I’ve deliberate:

  • 1) Gear and pulley wheel behaviour constraint updates – The code that figures out if a pair of gears are engaged, and the placement of their engaged “enamel” (information that is then used to replace the ConfigurableJoints).  This may very well be carried out in parallel in jobs I feel.
  • 2) Wheel behaviour constraint updates – Every wheel does a CapsuleCast and another trickery to approximate a cylinder that easily rolls on the bottom.  This can be a prime candidate for utilizing the CapsulecastCommand as an alternative.
  • 3) Half choice’s “discover legitimate attachments” code – Does lots of OverlapBox calls if numerous components are chosen, must be excellent case for changing with the OverlapBoxCommand.
  • 4) Collision contact reporting (used for impression sounds and so on.) – Horribly inefficient in the mean time, however Unity simply launched the Physics.ContactEvent, which must be precisely what I would like to enhance this.

All however the first of those duties would require upgrading to Unity 2022.2 although, which feels a bit dangerous in the mean time.  I’ll maintain off till the LTS model comes out.

Unity 2021 improve

Within the meantime nevertheless, I’ve upgraded to Unity 2021.3 LTS.  I had tried upgrading to 2021 some time in the past, however discovered a few sport breaking points.  These appear to have been mounted now, and the improve went fairly easily this time.

The one slight challenge is that outdated saved building preview photos now will not load (compressed picture measurement must be a number of of 4), however this may be resolved simply by re-saving them first.

Constructing enhancements

I’ve made varied minor enhancements and fixes to the constructing system:

  • The half choice pivot level can not be moved under the bottom, stopping a building from being “misplaced” underground.
  • Now solely the transfer manipulator deal with has “drag thresholding”, the interpretation handles transfer immediately.
  • Engagement indicators are actually proven for all gears within the half choice throughout alignment.
  • Instructions are actually added to the undo / redo historical past when hyperlinks are eliminated whereas detaching components.
  • Fastened a bug the place destroying an unfrozen building did not add a command to the undo / redo historical past.

Elements

I’ve additionally made a couple of minor enhancements and additions to the components:

  • Carried out a resizable “L Plate” half, helpful for connecting stuff at proper angles.
  • Added checks for participant distance and dealing with route to the management wheel half behaviour (prevents the management wheel from getting used when the participant is simply too distant).
  • Added a light-weight half behaviour choice to disable shadow casting, helpful if you wish to save efficiency for a building with numerous lights.
  • Fastened a bug the place spring damper / linear actuator pistons may very well be connected to the incorrect alignment level.

This is what the L Plate half seems to be like:

Lua scripting

I’ve labored on varied new options which can be obtainable to be used from inside Lua scripts (as eventualities or script mods), principally to help what I would like for the tutorial state of affairs.

Video participant

Carried out an in-game video participant, with an interface that enables video gamers to be created from Lua scripts.  This is a take a look at Lua script, exhibiting a video enjoying in a window:

I am planning on utilizing this to point out quick explanatory video clips within the tutorial state of affairs.

Scroll record UI factor

Carried out a scroll record UI factor, could be added to a window like every other factor, however then different components could be added to it (together with extra scroll lists!)  For instance the undo / redo command historical past script mod can now present a bigger historical past that may be scrolled by:

Unlabelled UI components

Added unlabelled variants of the slider, enter area, and dropdown UI components for extra flexibility.  Proven right here on this Lua UI unit take a look at:

Profiling metrics

Uncovered efficiency profiler metrics (e.g. reminiscence, rendering and so on.), in order that script mods can implement customized profiler UI home windows, for instance:

Tutorial state of affairs

My authentic plan was to have a number of little tutorial eventualities, each introducing a couple of new ideas at a time.  As I discussed in a earlier publish, this concept turned out to be a bit boring in follow, and did not actually create a great first impression for the sport.

So then I pivoted to having one massive state of affairs with lots of issues to do in it, basically combining the separate tutorials into one which can be adopted by step-by-step.  Nevertheless as I began to construct this out I realised it was getting too huge and complex.  Other than the rest, efficiency was attending to be marginal with a lot happening within the scene directly.

So, I went again to the drafting board and reworked my design, attempting to essentially deal with what ideas I needed to introduce in every tutorial stage, and what ideas to bolster from earlier phases.

The outcome is a little more pared again than what I had earlier than, however I feel it ought to nonetheless be enjoyable.  It is going to nonetheless be a single state of affairs / scene containing a number of actions that the participant goes by, however with much less extraneous stuff.

The primary few actions will get the participant used to activating and utilizing half behaviours, utilizing the development menu, and so forth.

After which, every exercise would require the participant to do one thing (e.g. connect a management wheel, reposition a gear, hyperlink some pulleys, and so on) that may permit them to open a field with an element inside.  Once they’ve accomplished all of the actions they’ll accumulate all of the components collectively and construct one thing out of it, as the ultimate step (utilizing every little thing they’ve realized thus far).

For instance, the primary of those actions is to easily use the builder instrument to maneuver a weight and place it on a platform.  Issues ramp up in complexity from there!

The design is now full, I’ve constructed all the person constructions for the state of affairs, and made a great begin on the Lua scripting.  I am planning on making one other (small) map for the sport, for use for this tutorial (and any others to comply with).

This tutorial state of affairs is actually there to get new gamers used to utilizing the constructing controls, it does not go a lot past that.  I wish to additionally construct extra tutorial eventualities that train superior use of gears, mechanical ideas, have extra advanced puzzles to unravel and so on.  These must come after the early entry launch although.


Logged

dangersam


New map, and tutorial completed

Hey all, I’ve made a good quantity of progress on the sport over the previous month, so let’s get into what I have been as much as.

“Gary Island” map

One conundrum I had whereas designing the tutorial state of affairs was the place to find it (i.e. which map to make use of and whereabouts on that map).  I may have used one of many present maps however they’re all fairly massive and “open plan”, which made it laborious to put out the scene for the tutorial.  I wanted one thing small with clear boundaries that spatially confine the participant.

For some time I had been proof against the thought of including one other map for the tutorial state of affairs, however it grew to become obvious that this was going to be mandatory, and worthwhile investing the effort and time in.  So I made a decision to make a brand new map, an island surrounded by water, with a 250×250 m playable space.

For very long time followers of the sport’s improvement, I resurrected the water from these outdated procedural island maps!  I used to be additionally reluctant to do that truly, as introducing water brings about a complete host of implications (what occurs whenever you go within the water? buoyancy? drag? sound & particle results? participant swimming animations?)  So for now the water is past the map boundary and is simply there for visible impact.

As normal, first I began with making the terrain top map:

Then, painted the textures (reusing these from the opposite maps):

Lastly, added particulars (e.g. grass) and bushes:

Total I am fairly happy with how the map turned out.  It has a central space (which I’ve used for the tutorial state of affairs), and different areas which can be related by way of paths for a little bit of selection.  I am pondering this shall be good for different eventualities, and in addition as a common starter map for gamers.

Water reflection optimisations

After bringing again the water, I wanted to do some efficiency optimisations to the outdated reflection rendering implementation (water reflections are rendered utilizing one other digicam with a view that’s flipped upside relative to the principle digicam).

I improved the code by eliminating some costly per-frame calls (GameObject.Discover(), GetComponent(), and so on.) and eliminating GC allocs.  I additionally decreased the extent of element through the reflection render (by overriding the LOD bias, turning off terrain particulars, and decreasing the tree LOD change distance).

Lastly, I added a “video choices” setting to make the water reflection rendering solely embody the terrain & sky, or be turned off altogether (falling again to a mirrored image probe).

Tutorial state of affairs

To complete the ultimate iteration of the tutorial state of affairs, first I needed to create a scene within the new map.  I laid out all of the constructions, checkpoints, and so forth for every of the tutorial phases that the participant completes in sequence.

Then I labored on the state of affairs scripting, organising the Lua scripts by breaking them up into the tutorial phases.  The scripts are answerable for monitoring participant progress by the duties they’ve to finish for every stage, exhibiting a UI window with directions (textual content and movies), and serving to the participant get again on observe in the event that they make a mistake.  This turned out to be an enormous quantity of labor, however I feel the outcomes turned out rather well.

This is a sneak peak of the beginning of the tutorial state of affairs:

So the tutorial state of affairs is now (kind of) full, which is a large milestone, as that was the final main activity earlier than early entry launch.  There’s nonetheless a bunch of labor to do, however I am now ready to organize the sport for launch which could be very thrilling!

Half resizing indicator

I’ve carried out one other indicator that reveals unit dimension numbers close to an element when resizing it with the resize manipulator.

This makes it a lot simpler to see the half dimensions whereas resizing, because it saves having to look down on the half UI overlay.

Script mods

The script mods included with the sport have continued to develop.  For instance, I carried out a “builder instrument extensions” script mod that gives an interface with choices for exact half placement.

I additionally improved and added to the varied debug instruments, and added a easy “good day world” instance.  I can not wait to see what script mods of their very own gamers can provide you with!


Logged

dangersam


Extra tutorial and scripting enhancements

Hey everybody, it has been months since my final dev weblog replace!  As you’ll hopefully have seen, I just lately introduced the approaching launch of GearBlocks into early entry for November ninth.

Lots of my time these days was spent making ready for this announcement.  The trailer video was the most important chunk of this work: planning, constructing content material in sport (together with many new built-in constructions!), capturing footage, and modifying all of it collectively.  I additionally improved the Steam retailer web page and web site with new screenshots, gifs, blurb, presskit, and so on.

Tutorial state of affairs

I just lately took the sport to an area indie meetup, and had a couple of folks check out the tutorial state of affairs.  It was actually helpful and informative to observe folks play it in individual.  The suggestions was considerably sobering although, some discovered it too difficult and struggled with data overload!

So I made some modifications to the tutorial to attempt to simplify the data introduced to gamers, and added extra code to deal with edge instances the place gamers have been getting caught.

I’ve additionally arrange a brand new construct configuration for a particular demo construct with simply the tutorial state of affairs in it, which I am planning to make use of for the Steam Subsequent Fest (approaching October ninth).

Lua scripting

I’ve continued to enhance the Lua scripting interfaces, exposing extra properties and strategies for manipulating components and constructions, including extra instrument interfaces, and extra vector / quaternion math stuff.

Additional enhancements have been made to among the included script mods, together with the builder instrument extensions (now with the flexibility to set / snap the pivot place & orientation, change the manipulators to work in world or native area, and so on.)

Equipment constructing

For the trailer video I needed to point out time lapses of some constructions being constructed.  I additionally wish to attempt creating eventualities the place the participant follows directions to construct pre-designed blueprint constructions, a bit like constructing from a mannequin equipment.

So I carried out a characteristic I am calling “equipment constructing”, to cater for each of those conditions.  Elements can now be assigned a stage index and constructions have an lively stage that may be set (the place any of their components in increased phases than the lively one are hidden).

I made a script mod instrument for setting half stage indices, and previewing a building’s phases.  I truly used this instrument when capturing for the trailer, simply manually advancing by the phases so as, revealing the components.

I additionally prototyped a equipment constructing state of affairs with a easy Lua script to permit the participant to advance by a blueprint building’s phases, routinely spawning the components they should construct that stage.  This concept has potential I feel, however will want work to make it extra consumer pleasant.

Minor demo replace

I made a decision to launch one other fast demo replace, out now with some fixes and different small tweaks:-

  • Minor UI enhancements, together with a brand new “getting began” window that reveals some useful pointers when launching into a brand new sport.
  • Improved attachment locking undo / redo (single command for a number of attachments).
  • Bug fixes (together with fixing the differential loafer gear centre-of-mass once more).

Logged

dangersam


New tutorial demo now stay for the Steam Subsequent Fest, Oct ninth to sixteenth

Howdy all, GearBlocks is now collaborating within the Steam Subsequent Fest, from October ninth to sixteenth!

I’ve made an all new demo obtainable only for this week, with the tutorial state of affairs. You may be taught extra about constructing within the sport, and in addition check out some new components, so be sure you test it out.

https://retailer.steampowered.com/app/1305080/

The outdated demo remains to be obtainable within the 0.7.8657 construct department.


Logged

dangersam


GearBlocks 0.7.8726

Hey everybody, I’ve simply launched an replace.

New within the sport – “attachment bridging”, a barely simpler solution to do “node skipping”, with the additional benefit that the attachment indicator now reveals the place the bridged attachments are:

Launch notes:-

  • Carried out “attachment bridging” characteristic and added choice to BuilderToolExt script mod to allow it.
  • Added choice to the choice GUI to disable number of locked neighbouring components.
  • Enabled rotary, linear, and linear rotary attachment sorts for pulleys.
  • Enabled rotary bearing attachments for angled connector components.
  • Enabled rotary bearing attachment on steering arm half.
  • Added resizable “scaffold” axle half.
  • Eliminated TweakEnergyStore variable, tweaking of battery cost remaining now routinely prevented when power consumption is enabled.
  • Added LimitedPartBehaviourTweaking variable, enabling it limits half behaviour tweaking to participant enter (e.g. key binds) solely.
  • Added setting to video choices that enables for the number of unique or borderless full-screen, or windowed display mode.
  • Added setting to sport choices to show off “Begin Right here!” assist message.
  • Added error message popup proven when making an attempt to unfreeze an intersecting building.
  • Updating localised strings with Russian translations because of Ludanton!
  • Bug fixes.

Logged

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *