Remote Space Devlog 6

Saving, changes, liftoff.
Remote Space Devlog 6

A lot of progress has been made, so let’s get right into it.

The It

 1* 2ede121 flying drone local yaw
 2* 3a253e1 Heli photo in printer ui
 3* 5afca81 Fix popups and shop
 4* dc5872a shop for flying drone
 5* 31b0b8b Drone `_on_store`
 6* df5dadc some adjustements
 7* 71029e1 Add flying drone to title screen
 8* f279730 Stabilizer
 9* 550959d heli stick ui
10* 28185f0 flying drone!!
11* f3b8a84 Keyboard and monitor
12* 9ff66a8 Battery warning popup
13* d123f6b Saving player state
14* 70b75df Small main menu fix
15* 2a693af some fixes
16* 3e31cf6 Placing items in local storage
17* e351ecd Pettier popups
18* 1ba649e Taking items from drones
19* 7223c23 adjust rock parameters
20* 7406099 pause menu cycling
21* b3557c5 Quit confirmation
22* 594d07a Pause Menu
23* f14f174 "Continue" button
24* 152ac76 Start loading main scene in main menu
25* 480ebb1 New rock
26* c7b072e Fix item detection
27* 2df0699 Use Jolt physics engine
28* 82a0756 Loading save files from main menu
29* 75de468 adjust (fix?) terrain shader depth
30* a9f416d Saving and loading pickupables
31* 939cf96 Fix saving strands and stored drone
32* 2741afb adjust cargo init
33* 9e5f4d9 Saving WIP
34* 1bb5e14 Terrain experiments
35* f67cf3c Adjust antenna upgrade
36* 3a86081 Add (basic) exterior to base
37* f4e7623 Update titlescreen
38* 180490c Remove devlog (moved to blog repo)
39* e9c46c5 Fix csg rockpile
40* 29a99c4 Add another battery upgrade
41* 003b663 Refill battery when swapping
42* 5a9f279 add drone photo

I’ve finally added saving and loading. I’ve been putting it off, because I feel like it’s one of the most complicated things in gamedev. Or at last one of the least fun to work on. There isn’t a one-size-fits-all solution and there is a lot of edge-cases. But with Godot’s easy serialization it’s been pretty painless, especially compared to what I expected.
Everything seems to be working fine, at least for now.

I noticed some issues with collision detection and, while I found the culprit, I couldn’t work around them. So I switched the physics engine to Jolt. With the godot-jolt addon it was about as painless as it could be. I just had to add it, enable it and toggle a few things to fit my needs. And it just works, my collision issue is gone.
I’ve heard that there are plans to officially integrate Jolt into Godot, which is nice.

I also added a new rock! I modeled it from ground up in Blender, based on some reference pictures I took in Death Stranding.

Screenshot of my rock and a rock from Death Stranding for comparison

Looking at it now, they differ much more that I thought, but it’s not too bad. The shape isn’t exactly what I needed, but I’m still experimenting with what I want and how I make it.

Terrain3D plugin that I use for the terrain, while being very good, might not be perfect for me. So I’ve been messing around with other ways to create terrain.

Some cliffy terrain in Blender Flat rocks scattered on the ground

Again, I haven’t yet settled on how the terrain will look, so I didn’t want to spend too much time on that. There’s also a matter of performance: Terrain3D has some handy optimizations built-in, which might be overkill for my case, but I worry that if I go my own route, performance will be too bad and I’ll be forced to implement something similar. But for now I’ll keep using that plugin to have the general shape of the terrain and I’ll reconsider that later on, when I’ll get to adding more detail to the terrain.

Last but not least, I added a new drone!

Gif showing helicopter drone

It’s a small flying helicopter, that will be used for scouting out new areas. You’ll be able to equip it with various components for finding materials and charting maps.
Flying it is a bit tricky, but if you don’t mind spending some of your hard-earned resources, you can buy upgrades that make it easier.

Gif showing first-person perspective of the flying drone

Btw, those gifs are heavily compressed, in order to have a reasonable size, but I’m planning to do a proper video soon™.

That’s all for now. Time to get back to work.