1. Solar Lander
  2. News

Solar Lander News

v0.2.14: Fixed Invisible Bug

Bug Fixes:
  • Fixed a null reference exception (that has zero impact to the user) triggered by moving axis response sliders when no axis is assigned to the control.


Additions:
  • Added the "physics-update" branch to list of betas which will contain the latest build of the Physics Update.
  • Added the "pre-physics-update" branch to the list of betas which contains the last build before the Physics Update. Note: You must move "steam_api64.dll" from "SolarLander_Data/Plugins" to "SolarLander_Data/Plugins/x86_64" for this build to run properly.

Devlog #003: Project Status Report

It's been a while since the last devlog. And it's also been a while without any work being done on this game. I haven't forgotten about the game, but it was necessary to put the development of this game on pause for a while. While the development of this game has been paused for the vast majority of the time between posts, there have been brief periods of time that I have spent developing this game, which we'll discuss later on in this post.

Also, just a heads-up: I do not intend to make a Devlog post for April, but I do intend to make one for May. The original intent behind these posts is to publish them on the 1st of each month unless it lands on a Saturday, then it'll be published on the 2nd of that month. I intend to get back to that schedule.

[h2]What Happened?[/h2]
In short, life has forced me to put the development of this game on hold for a while. This is obviously beyond my control. For nearly the entire time from the previous devlog installment to the beginning of January 2025, almost no progress has been made on updating the game for this very reason.

Pretty much as soon as January hit, I got a lot more free time and started working on my various projects again. Some of which actually helped indirectly with the goal of taking Solar Lander off of the Unity engine. Others I just wanted to get out of my way and I thought they'd be quick to do so. Turns out only one of the three projects I tried to knock out of my way was able to get done quickly. But at least it's finished. During the time I spent trying to knock these projects out, I spent almost zero time developing Solar Lander. But there has been work done on Solar Lander during this time, which we'll discuss later.

Over the last couple of weeks though, I've spent almost zero time on any of my projects, which I really shouldn't have considering the fact that I do have enough free time to get work some done on these projects each week. For this, I apologize.

[h2]What has been done?[/h2]
In the time I spent working on Solar Lander, I managed to get some stuff working with my game engine, such as buttons. Here's a screenshot of the main menu in the non-Unity version of the game.

The text is a bit rough, as I'm using prerendered font sheets, which only looks good in a pixel-perfect text alignment and size. Also, the way I'm generating these font sheets is very manual, and I don't really care for that. I have started a project to automatically generate the font sheets, but I'm not sure that this is the best solution. I do have other ideas, such as procedurally-generating the font sheets at run time. There's also the option of simply not using font sheets at all, but instead rendering the font directly to the screen, or maybe to a separate texture that is then rendered to the screen. I haven't decided yet.

There are other element types that I have to get working in my game engine, such as sliders, toggles, edit fields, dropdowns, and scroll views. I also have to integrate the control system into the game engine, but thanks to another project that is now paused, I actually have a control system to integrate. And this control system works exactly like Solar Lander's current system.

By the way, the control system and input system are two distinct systems. The input system takes user input from the operating system and converts that input into a uniform format that the rest of the game can use. The control system is what allows game-specific controls to be defined, and allows users to change the key, button, and axis assignments to those controls, along with changing how the controls respond to user input.

When you're modifying input assignments and responses, you're interacting with the control system. When you're moving the joystick around or pressing buttons and keys, you're interacting with the input system.

By the way, Solar Lander's loading screen (for the non-Unity version) is working now, but may only appear for a few frames if that. In some tests, I don't see it at all, while in other tests, it appears for just one frame. Currently, it's set to only appear after the splash screen while the game's menus are being loaded. Eventually, I'm also going to make it appear when loading each level, but I suspect that the screen will also only appear for a few frames at most.

[h2]What's next?[/h2]
As far as Solar Lander's development is concerned, the next steps are to get the other UI element types working properly in my game engine. I'll work on improving the font rendering later (perhaps last). The toggles and sliders should be the easiest to implement, so I'll work on those elements first. Some elements, such as the input feedback elements, should also be fairly easy to implement. The more complicated elements will be the scroll view, and all of the elements (such as the drop down and text edits) which rely on them.

I also need to modify the text generator to output information on how many lines of text was generated, and where each line starts and stops. This actually might be fairly easy, and I have a few ideas of how this might be done.

Oh, and all of the game's content is going to be vector graphics. Currently, it's a mixture of vector graphics (planet's surface) and sprites (space craft, exhaust particles). The sprites and particles are going away in the next version.

v0.2.13: Stranding Detection Bug Fix

[h2]Bug Fixes[/h2]
  • Disabling both Command Module RCS blocks now gives a game over screen.

v0.2.12: Bug Fixes and Demo Update

[h2]Changes/Bug Fixes[/h2]
  • Removed the old restriction preventing portrait layout from being used in-game.
  • Audio and chunk size settings are now properly saved and loaded. You will need to re-adjust these settings for them to take effect.
  • Changed the minimum selectable screen resolution to 1024 x 768.


[h2]Demo Changes[/h2]
  • Adjusted the planets featured in the demo to force the use of the upgrade system.

Devlog #002: Bigger Than Expected Update

Remember back to the previous Devlog where I said I wanted to do a number of things over several, small, incremental updates? Well, that didn't quite go as planned. First off, I started working on the updates about 2-3 weeks late. And of course there was a lot of time debugging when things didn't work as intended. But here's what I originally intended to do as individual updates.
  • Update base screen resolution to 1024 x 768.
  • Migrate settings storage out of PlayerPrefs and into a Settings.INI file.
  • Separate button and axis assignments and give another visual guide on axis interpretation.
  • Improve how the game handles Unity's axis reporting.
  • Add version and edition labels to the main menu.

Of course, some of these items were going to be combined. For example, adding the version and edition labels to the main menu (which auto-updates every time the version changes) were supposed to be in the same update. But that still left about 3 or 4 updates that were supposed to happen over a slightly longer period of time. So how many items are left? Well, I forgot to change the settings code so that you can no longer select any resolution below 1024 x 768, but I might let that slide. That just leaves updating the help screen so that it's up to date with all of the changes that have been made.

I am not looking forward to updating the help screen. I think I would rather create a bunch of help pages on Solar Lander's website and have the Help button send you there instead. Of course, for the Steam Edition, you can always press "Shfit+Tab" and get quick access to any guide you want, but that's not going to be an option for all editions of the game. And that also depends on me and others making guides on how to play the game. I believe the Solar Lander website (perhaps as a wiki) is the way to go.

I've also thought of a few things I may need to update just in case someone somehow manages to break my game. So there will probably be at least one more update for that. Of course, if you find any bugs, do let me know.

[h2]Future Plans[/h2]
Once I've finally finished all of the incremental updates to the Physics Update (hopefully, will be just one more update), I will be able to proceed with working on my game engine so that (at least for the Windows version at first) Solar Lander will no longer be on the Unity engine. Currently, it's the GUI library I'm writing that is the limiting factor, as it does not yet contain support for buttons, toggles, sliders, or other interactive GUI elements. The GUI system should be simple enough to complete. Currently, the non-Unity version of the game shows the splash screens (unless you skip them), then gets stuck on the loading screen. By the way, Solar Lander might be getting some loading screens for the Modding Update depending on how long those screens appear during testing.

Also, for the Modding Update, I've typed-out an ASCII flow chart of game states to make it easier to keep track of the game's target architecture. That should make it simpler for me to implement all of the game states. Speaking of which, there will be changes to the in-game state machines so that if you or the command module crashes, you will hear the sound of the crash every time before you are taken to the game over screen.

Also, I'm thinking of adding some floating text for when you land and redock telling you how many points you earned from those events. And even color-coding it to indicate if you beat your previous record. Also, I intend on implementing the self-destruct system for the modding update. Using it will trigger an instant game over, so don't actually use it.

[h2]Other Projects[/h2]
By the way: The main reason why it took me about 2-3 weeks to get started on the first of the incremental updates is because I have many other projects to work on, and I've been rotating them. So I would work on one project for a bit, then another project, then another project. I will be continuing this pattern until all of my projects are complete. Since Solar Lander's Physics Update is still the current project in the rotation, the next of the incremental updates should happen soon(ish). But I believe after that, most of the v0.2.x updates will be taking place outside of the game, followed by a final v0.2.x update before I resume work on the Modding Update.