Hey all, here’s an update on what I’ve been working on for the past couple of months.
The main challenge I’ve had lately is with the design of the tutorial scenarios, my original idea for these didn’t work out to my liking. They ended up being rather boring and didn’t give a very good first impression of the game. So I decided to try a new direction to create a more entertaining experience for first time players while introducing some basic concepts.
Unfortunately this will likely mean scrapping some of the work I’ve already done, but hopefully I can reuse some of it at least. For now I’ll say no more about the new tutorial scenario design, until I’m further along with it and more confident that it’s going to work out.
I found all this rather dispiriting and frustrating to be honest, so to try and keep myself motivated and move things forward, I’ve also been working on some other stuff!
Recently I’ve been playing the game a lot (to build content for the tutorial scenarios and trailer video), this has highlighted some bugs and other usability annoyances, which I’ve been fixing as I find them.
- When detaching selected parts from other ones, the attachment types between them would be lost, and after re-attaching them you’d have to change the attachments back to the desired type. Now, the types are saved while the selection is being moved, and restored after re-attachment.
- Part highlighting has been improved so that tools only highlight parts relevant to them (e.g. only paintable parts for painter tool).
- Fixed several bugs (such as parts sometimes not attaching to engaged gears, random rotation after freezing a construction, part duplication issues, and so on).
On the subject of annoyances, I built a race car to showcase on the race track map, which was fun to drive around but really emphasised the need for proper braking.
Electric motors provide regen braking by running them backwards, but this was hard to control. If a vehicle’s wheels had insufficient grip they’d slip and the motor would spin up in reverse. So I made some changes to the motor part behaviour to address this:-
- Above a certain speed a “braking direction” is now set, which is then used to prevent the motor from spinning in reverse after coming to a stop during braking (the braking direction is reset once directional control is released).
- Added a separate tweakable value for braking torque.
Electric motor regen may not provide enough braking on its own however, and so I’ve now implemented a new braking part behaviour for wheels (that can be activated by a bound key). This makes driving vehicles way more controllable and enjoyable.
When braking is enabled, a brake disc is shown inside the wheel.
I plan on adding separate brake and clutch parts in the future that will also make use of this same part behaviour implementation.
Analog joystick control
After spending some time driving vehicles around, I couldn’t resist implementing something that would greatly improve the experience – analog control. More specifically, being able to bind a joystick axis to a controllable part behaviour (such as a motor).
This, in combination with braking, transforms the enjoyment of driving vehicles in the game. It is optional however, and the regular bound keys are still a decent method of control.
Another thing I couldn’t resist adding was a “chase” camera, which is now selectable when the player is seated. It’s similar to the existing third-person camera except that side-to-side movement is smoothly locked behind the seated player, and the mouse can only move the camera up and down.
This camera mode makes driving vehicles in a third-person view much easier, as you don’t have to manually track the vehicle by moving the mouse.
More parts and improvements
Again, after spending time driving vehicles, I wanted to improve how leaving seats worked:-
- Rather than having to look down at a seat to leave it, you can now simply press the “jump” action (i.e. Space by default).
- When leaving a seat, if possible the player is now repositioned at a free position in front or to the side of the seat, rather than on top. This is more better for a vehicle with a roof for example, where before the player would just be repositioned on top of the roof.
I also improved some other part behaviours (e.g. key bind for differential locking, tweakable light brightness) and added several more parts (e.g. seat, gear, steering wheel, connectors) to facilitate some of the example constructions I’ve been making.
Finally, I decided to implement the last remaining tool in the game, the “grabber” tool. Although this wasn’t a particularly high priority, it was quick to implement and I wanted to get it done so that I have the option to include it in the tutorial scenarios, without having to go back and modify them later.
The grabber tool allows constructions to be moved around as physical objects, i.e. without freezing them first.
It has two modes, “grab” and “shove”:-
- Target part of a construction, then click the left mouse button and drag, to grab that part and drag the construction around by it.
- Target part of a construction, hold the right mouse button to charge up, then release to apply a shove force to that part of the construction.
The grab and shove forces are configurable, as is the ability to have free or locked rotation while grabbing.
What about the full game release?
Before the early access release of the game, there are two main tasks left I need to get done: finish the in-game tutorials and make a trailer video.
The tutorial scenarios have not progressed to where I would have liked by now, but I needed a break from them to clear my head, and work on something else. Anyway, now I really need to focus back on finishing the tutorial scenarios, finish building content for the trailer video, and get that captured and edited.
I was hoping to release the game before the end of the year, but unfortunately it’s now looking like the date will have to slip by a few months.
This is really disappointing I know, but by way of compensation, I’ve decided to do another demo release update soon, which will include many of the improvements mentioned in this post, so keep your eye out for that!