State Vector April 25
New aspect ratios
It’s another month, and this time around there’s even a small patch! It’s not that much for now, just support for aspect ratios other than 16:9. The game now also supports 16:10, 4:3 and 21:9 resolutions. Though honestly, I’m not sure about the 21:9 layout. I’ve tried to make use of the additional space by making both side menus and a challenge displayable at once, and they are, but their arrangement is a bit over the place. I don’t know. You try it, tell me what you think of it. There’s also a slight hitch, which is that tutorials might be a bit off right now. Tutorial positioning right now is screen-relative and was made for 16:9, so other aspect ratios are going to see tutorial windows slightly off. Well, 4:3 and 21:9 are going to see them off by a lot, to be honest. They can be moved, however, and if I rework that now I’ll rework it twice, so for now I’m afraid it’s staying that way.
In any case, this was an important first step to reworking the entire way challenges are presented, which is an important step to putting in some background graphics. I needed to clear this first obstacle and make the entire thing more flexible before grabbing in there and tearing out some of its guts. However, development is not suddenly all about reworking the graphics.
Un-announcement
However, I also have to scale back some announcements from the last state vector. Namely the one about wanting to join Steam Next Fest early next year. Nothing in my plans has changed fundamentally, but I realized one thing about Next fest: A game can only participate once! While the plan still is to get a steam demo up early next year, the game won’t be ready to fire that one shot. I need to find some ways of promoting the demo that limit my future options less.
The ravages of time
Apart from reworking the layouts, important foundations for a lot of things have been laid this previous month. One of them is the core infrastructure for timers and tickers, which will see introduction into actual gameplay soon. The first thing I’m planning to use these for is a maintenance clock that deteriorates your craft/EMU condition when it runs out, and that can be reset at any time by doing routine maintenance. All the stuff needed to make them tick is here, just the timers themselves are not yet in the game.
The next thing I intend to use these timers for is spacecraft endurance and EMU oxygen supply, because it will be much more convenient to handle this way. Spacecraft endurance in particular will be a bit tricky and will require some preparation before putting it into the game. It’s essentially a death-clock (no, not a fictional death metal band!) that starts ticking as soon as your spacecraft leaves station. Needless to say, if I’m not careful about balancing this it might get very frustrating. But I’m not quite there yet anyways.
Spacecraft upgrades in prep
Another foundation I’ve laid this month was to decide the spacecraft’s basic properties and infrastructure to track and store changes to them. Here’s what I have come up with. Note that these are not in the game yet (though they are already in the code. Most of them just don’t do anything yet). Spacecraft upgrades will play with any of these, often several at once, forcing tradeoffs between them.
- Dry mass: How heavy the spacecraft is without any remass loaded. Unfortunately negatively impacted by most other upgrades.
- Specific impulse: Another word for “efficiency of your rocket thruster”, i.e. how much bang you’re getting out of your remass.
- Max remass: How much remass the spacecraft is able to load. More remass means more delta-v, though with rapidly diminishing returns.
- Maneuverability: Maneuverability is a very abstract measure for how strong your thrust and your reaction control systems are. It mostly determines how load (both payload and remass) affects your ship handling, and results in bonuses and penalties on burn and dock challenges etc.
- Endurance: An abstract value representing life support, sanitary equipment and electricity. Essentially, how long a spacecraft can keep you alive.
- Reliability: Determines how long the spacecraft’s maintenance clock is, i.e. how many days you have to perform maintenance before its condition deteriorates by 1.
- Comfort: Look, at least the initial craft will be a sardine can. Cramped conditions, not much room for exercise, no shower, catheters, the works! This will be a pretty important stat, as it will determine the likelyhood of losing drive or even vitality while being locked up in the craft for long periods.
- Complexity: This is a bit of a meta-property. Complexity determines how difficult it is to modify the craft further, and most upgrades will be increasing it. Though there’s probably also going to be some that can reduce it a bit…
So there’s a small glimpse of what to expect from the spacecraft system in the future. But all of that would not be so important if we didn’t have a spacecraft…
Spaceship, Spaceship, Spaceship!
My name is Beni, after all… Right now, there’s not really a “spaceship” in the game. There’s a couple of ballpark numbers that resemble some kind of spaceship performance parameters. But I’ve never thought about how much sense they really make and what the craft they represent would actually look like. All that wasn’t on the priority list. Now it’s starting to make its way there.
This means that the current stats will need to go and make way for new ones that are actually based on something that could be real. Based on something that makes sense in the game world. Based on something that, I’m afraid, will be quite a bit less capable than what’s in there now, because the current stats are pretty overpowered. I’ve taken about 10 hours out of this month to design a solid outline of what at this point in time I have to consider the “Hero Ship” of the game. It’s not exactly heroic, but you get what I mean. It’s the ship. At some later point, I hope there will be others, but for now, this will be it.
You’re probably expecting pictures by now, but I’m sorry to say I don’t have those yet. When I said “designing”, I didn’t mean fretting over the drawing board until it looked good. I meant doing research, making estimations, calculating masses and performances, thinking about implications. Implications like, what is the best alloy for a pressure tank if you want to manufacture it on the moon, where heavy metals are notoriously hard to come by and therefore extremely valuable? I need all that to even start picturing what the darn thing looks like, how it was manufactured, what upgrades might be available for it, etc. However, I realize that many readers will find it difficult if I start nerding out about a spacecraft without them even knowing what it looks like. And an image, as they say, says more than a thousand words.
So I’ll save that for next month when I hope I’ll have an image! Maybe even one that might make it into the game? Really not sure yet. Come along and find out with me! Oh, and tell me what you think of that 21:9 layout. I’m really not sure if it’s a good idea…
Files
Get Orbital Margins
Orbital Margins
A hard-SF character-driven small-business rpg in cis-lunar space
Status | In development |
Author | RandomActsOfConstruction |
Genre | Role Playing |
Tags | Dice, Economy, libGDX, Non violent, Sci-fi, Singleplayer, Space, Turn-based, Working Simulator |
More posts
- Patch Notes 0.11.122 days ago
- State Vector March 2549 days ago
- Patch Notes 0.11.049 days ago
- State Vector January 2585 days ago
- State Vector December 24Dec 27, 2024
- State Vector November 2024Nov 11, 2024
- Patch Notes 0.10.0Nov 11, 2024
- State Vector August 24Aug 26, 2024
- Patch Notes 0.9.1Aug 26, 2024
Comments
Log in with itch.io to leave a comment.
Greetings. I had a brief look into your game, partly because I ran into a crash on the first launch after the tutorial cargo mission (the first mission completes correctly, launching from the new station again crashes). This happened on two separate games. The contact I found on both was into Salvage and only good at finding Retrieve Object missions, so I took one of those on both games. The '... 12 more' part is what's in the console and the log, I didn't truncate it. Good luck.
ERROR [main] (Lwjgl3Launcher.kt:20) - Fatal Error!
java.lang.RuntimeException: Actor: KTextButton: SET FLT
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:125)
at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:93)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:71)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:354)
at com.badlogic.gdx.InputEventQueue.drain(InputEventQueue.java:70)
at com.badlogic.gdx.backends.lwjgl3.DefaultLwjgl3Input.update(DefaultLwjgl3Input.java:189)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:378)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:193)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:167)
at ch.raoc.orbitrucker.lwjgl3.Lwjgl3Launcher.main(Lwjgl3Launcher.kt:14)
Caused by: java.util.NoSuchElementException: List is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:214)
at ch.raoc.orbitrucker.ui.navigation.CelestialNavigationUiComponent$setFlightPlanButton$1$invoke$$inlined$onChange$1.changed(events.kt:639)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
... 12 more
Exception in thread "main" java.lang.RuntimeException: Actor: KTextButton: SET FLT
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:192)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:152)
at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:125)
at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:93)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:88)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:71)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:354)
at com.badlogic.gdx.InputEventQueue.drain(InputEventQueue.java:70)
at com.badlogic.gdx.backends.lwjgl3.DefaultLwjgl3Input.update(DefaultLwjgl3Input.java:189)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Window.update(Lwjgl3Window.java:378)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.loop(Lwjgl3Application.java:193)
at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:167)
at ch.raoc.orbitrucker.lwjgl3.Lwjgl3Launcher.main(Lwjgl3Launcher.kt:14)
Caused by: java.util.NoSuchElementException: List is empty.
at kotlin.collections.CollectionsKt___CollectionsKt.first(_Collections.kt:214)
at ch.raoc.orbitrucker.ui.navigation.CelestialNavigationUiComponent$setFlightPlanButton$1$invoke$$inlined$onChange$1.changed(events.kt:639)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:188)
... 12 more