#General aero-space games showcase

296 messages · Page 1 of 1 (latest)

neat palm
#

This is a post-successor for #945114878123860008 feel free to post your progress, share ideas, ask for help and discuss those particular and related genres of games.

P.S.: if this post is not appropriate - please let me know. I simply want a thematical thread dedicated to flying games.

#

I'll begin. Currently working on UI, trying to sort it all out.
Touchscreen layout is pretty much finalized, while desktop one will be tweaked a bit, but in the end the layout should be less or more the same (minus touchscreen controls, obviously).

Menu will be sorted out into tabs, so it will not be all-in-one-place.
Also worth mentioning that UI is now scale-able (stretch and shrink while retaining proportions on necessary controls).

#

Technically speaking, now it can be played on any screen size, but I will consider adding a GUI scale factor someday.

next meteor
#

This is really cool. I saw your Open World fork of Godot on github. Do you plan on updating to Godot 4?

neat palm
#

Maybe it will not be necessary with all the depth buffer implementations that are currently discussed by devs. Maybe we'll have an option to switch between them at that time, and the only tweak in such a case would be to make sure z-near and z-far limits are properly tweaked.

#

Actually I will just drop that notice in the issue.

#

To have options to switch to inverse or log depth would make Godot have a foothold on 3D open-world genre games, not just 3D.

#

In fact, I would much prefer to not to use a fork, but an official release with such features.

neat palm
neat palm
neat palm
#

Desktop GUI

neat palm
dense hearth
neat palm
#

I have some naive intuitive implementations of PID controllers all over my code, but I guess it would make more sense to make it right and proper at once.

#

Another interesting thing that I have discovered for myself is autoload feature of Godot engine. Now pretty much all the nodes have moved in there and the tree is free, because, well because this suits my needs perfectly so far.

#

I am considering using the tree for something situational, like spawning local NPCs and whatanot, while everything that is in autoload will be used for a game state less or more, and thus it all would have to be saved and loaded.

#

Due to complex coordinate systems layout loading ad saving a game is a bit of a nightmare now, because I have to save the state of universe translation due to having muktiole origin rebase systems working all at once.

#

One wrong move and you can mess up the universe 😅

#

I can't imagine how complex a real-time multiplayer would have been in this case, and it is good that I am not going for this ilementation.

lost marsh
#

Ah the thread is back

#

Well I started again working on my block-based building prototype, ported to Godot 4. Not much ship to show yet, but I'll eventually get to it

#

Very early build, unfinished, flies but only downwards

neat palm
#

Oh!

#

What blocks are there?

neat palm
#

Moved everything to autoload. Tree root will be used for some situational locally spawned things, that are not worth saving, I guess.

neat palm
#

UI will go to root so that it could be reloaded (when changing language).

#

Complete separation between UI and mechanics.

lost marsh
#

They are also scalable

neat palm
#

👍

stable dragon
round grotto
#

Oh yay new channel!
Love the blocks so far Zylann. Going for a full on Space Engineers / block 'n voxel construction game?

lost marsh
#

Yeah, although technically I dont think we can call it voxel, since it's not using voxel storage of any kind for ships

neat palm
#

Finally refactored the whole project to make it work with autoload, while keeping Ui In the root tree.

neat palm
#

I am making a star chart reference sheet in order to make an easy to use databank of stars. It will be a spreadsheet which will have both actual star data (generated) as well as editor-ready values for easy implementation.

dense hearth
dense hearth
neat palm
#

I am going to make it to have geometric and light data rather.

neat palm
neat palm
#

I have kinda figured out the qpproximate set up for star omni light.

#

For our Sun I assume range 1e13, attenuation 5 and energy 2.

#

For other stars only range will be adjusted according to their luminosity (square root of luminosity in Sun units multiplied by 1e13 range).

#

Now I will make a spreadsheet for main sequence stars and slightly randomize them.

#

According to distribution, there should be 80% of red dwarfs, but in my opinion that'll be way too boring.

#

So I guess I will make a set of ration which are more game-friendly, as well as add some "exotic-ness" to stars in order to make them, well, less boring.

dense hearth
neat palm
#

🤔

neat palm
#

Something like this.

#

I could have automatized it with scripts and get the output right into the Godot scenes, but I feel like handcrafting it all.

#

So the star chart will be just for reference.

#

You can see that this nebula is rather small in this approximate local star group.

#

In fact I want to rework the nebula.

neat palm
dense hearth
neat palm
dense hearth
#

Sent again, as DM

neat palm
dense hearth
#

The star shader is amazing. Great job!

round grotto
#

Wow, all three of those are so pretty! 😗 👌

neat palm
neat palm
neat palm
neat palm
#

Youtube compressed the hell out of a video.

dense hearth
# neat palm

Wow! The project is moving forward fast! Great work!

neat palm
#

Is it better to render targeting informqtion directly over the object, or below in the fixed position of the window?

wanton goblet
#

hot and sexy

stable dragon
neat palm
#

I will do middle option.

#

Targeting readout - over the object (like selecting), autopilot and combat targeting readouts - in the bottom.

neat palm
neat palm
small yacht
#

space/astronomy game which also has building rockets and flying them too

neat palm
#

I am eager to see more of this.

small yacht
neat palm
#

Attached: 1 image

Here is a test list of main sequence stars from M0 to O9 (70 types in total).
Each star will be visually depicted by the color code in the near proximity (which allows exotic apparent in-game colors for stars for gameplay purposes) and usual apparent color at distance.

https://github.com/roalyr/GDTLancer/blob/master/Doc/Unive...

▶ Play video
#

Here is a test list of main sequence stars from M0 to O9 (70 types in total).
Each star will be visually depicted by the color code in the near proximity (which allows unusual apparent in-game colors for stars for gameplay purposes) and ordinary apparent colors at distance.

https://github.com/roalyr/GDTLancer/blob/master/Doc/Universe/Star_types_test.md

GitHub

A performance-friendly 3D space game inspired by Freelancer, Orbiter and EVE (and many other games). Made with Godot engine. - GDTLancer/Star_types_test.md at master · roalyr/GDTLancer

dense hearth
#

First version of the board for a crazy space strategy game idea

dense hearth
#

Adding ships

#

...and camera controls

neat palm
#

Oh my

neat palm
dense hearth
dense hearth
pastel lake
#

still in early prototyping phase

pastel lake
neat palm
#

Interesting! Looking forward to see more.

dense hearth
pastel lake
#

that's cool

dense hearth
#

Added traits to ship captains. Traits affect the ships' stats and the ships' behavior in battle. Captains can even run out of battle ignoring orders

neat palm
#

That's some solid progress going on out there, good!

lament jay
timid mulch
#

i think that counts lol

#

its a complete overhaul of this game I made

#
neat palm
#

Sure thing!

dense hearth
dense hearth
#

Shields, explosions, ship damage...

neat palm
dense hearth
#

Adding formations. Players will be able to arrange all the ships in one formation, split the fleet into two formations, or manage each ship individually. It will also be possible to detach some ships from the formation

dense hearth
#

Chaos and destruction 😅

neat palm
granite ledge
#

https://www.youtube.com/watch?v=53f49mSARDI
A space simulation thingy I've been working on for the past two weeks 🙂
It uses the Danby-Stumpff method to solve the Universal Kepler Equations for the two-body problem, which in turn drives the celestial bodies (and also the "vessels" that I spawn during the video).
From what I can tell it's very stable, even on obscenely high time scale (ie. 32768x) it still behaves accordingly.
I'm also employing SDF shaders to draw the orbits of the vessels, which performs a lot better than using vertex based splines.

Showcase of a Space Simulation project I've been working on.
It uses the Danby-Stumpff method to solve the Universal Kepler Equations for the two-body problem.
Early testing seems very promising on the accuracy, stability and performance of the simulation.

▶ Play video
neat palm
granite ledge
#

I'm attaching this shader to a PlaneMesh (on a MeshInstance3D) with it's orientation set to FACE_Z

granite ledge
neat palm
#

Godot 4 shader?

granite ledge
#

Yep

#

But should be fairly easy to convert to 3.x just removing the #defines should work

#

Besides that, I'm using Orbital Elements to size and position the ellipse in World Space, not sure if you are dealing with values like these in your game

granite ledge
neat palm
#

Not sure if I will need to build the orbits visualization, but traces might come handy.

#

Meanwhile, since missiles and drones are still in airspace, I haven't slept and was moderately productive. Decided to test how stars look up close (in LOD0 range) with 2 omni lights on poles instead of 1 in center. A poor imitation of light surface, but still better than point source in center.

neat palm
#

Added a faint outer halo as a final touch.

Maybe will add some protuberances and loops later on.

dense hearth
#

A lens flare effect could be nice too

neat palm
neat palm
lost marsh
#

Will you add sound to the game?

neat palm
#

Yes. First I'd want to write an ambient theme for it, then ship and "environment" sounds.

dense hearth
lament jay
dense hearth
#

Sadly I will have to replace the ships if I finally turn the prototype into a game 😔 ... but I can try to add support for mods, because every space strategy game should have a Kobayashi Maru scenario 😆

lament jay
dense hearth
#

Ship commanders will have different personalities and traits. This one is just for testing 😇

granite ledge
granite ledge
# granite ledge https://www.youtube.com/watch?v=53f49mSARDI A space simulation thingy I've been ...

In case anyone is interested, I ended up scraping the idea of using SDFs for the orbital traces.
While they are relatively cheap to compute/draw (mostly GPU bounded), they have some shortcomings which ended up being a deal breaker for me, namely:

  • They have those aliasing artefacts from afar (which are hard to get rid of)
  • While 2D SDFs are really cheap, they don't have thickness, so the effect break when viewing from the side. And although 3D SDFs don't have this problem, they're significantly more expensive, since they basically require ray marching in order to be drawn

After a lot of experimentation and testing, I ended up settling with using a MeshInstance3D with an ImmediateMesh as it's mesh, to which I add the orbital positions as vertex in a line strip.
100 orbital traces barely cost 30MB of RAM, have no noticeable performance impact, and have none of the previous shortcomings, seems like the optimal choice

#

For the record, I also experimented with using a MultiMeshInstance3D and while it worked it still had the aliasing problem, which although fixable, was quite finicky and unreliable

#

The result (ignore the random death-spirals, probably a bug in my orbital path algorithm lol)

neat palm
#

What about projecting onto 2D canvas?

#

And doing it in 2D?

granite ledge
#

That's a possibility, but I'm not sure the complexity makes it worth it
Dealing with projection is not my forte

hoary iron
#

Super new to Godot (like 2 days), and I made a basic N-body simulation. The planet would be moving too, but I locked it for the sake of the simulation not moving off-screen lol

#

The higher moon is in a retrograde orbit because it just flung itself and the other moon out of orbit otherwise

granite ledge
hoary iron
#

Just my boy Newton's law of universal gravitation. This is my code (it's probably not the most optimized it could be, but again, I'm new):

func _physics_process(delta: float) -> void:
    var bodies = get_tree().get_nodes_in_group("Bodies")
    
    for body in bodies:
        if body != self:
            var direction: Vector2 = (body.global_position - global_position).normalized()
            var distance: float = global_position.distance_to(body.global_position)
            var force: float = Universe.G * body.mass / distance ** 2
            
            apply_force(force * direction)
#

Universe.G is some crazy value like 250,000

#

And I have time sped up to 5x I believe

granite ledge
hoary iron
#

Anything I could do to optimize it or make it more "standard" for how people code? I'd like to learn early on so I don't have to correct it when I've already built habits with GDScript

granite ledge
#

Not really, I guess you could use more "standard" functions, like:
instead of computing the distance by subtracting one position from another and normalizing, you could use "body.global_position.direction_to(global_position)", like you did with the distance

#

But other than that, it seems pretty good

hoary iron
#

Oh, direction_to is a thing?

#

Godot has some useful built-in functions

#

I'm not used to these luxuries lol

granite ledge
#

It does!

#

Yeah, was surprised when I first learned about them also

hoary iron
#

Well, now to make the planets big

#

Floating point rounding errors here I come...

#

Does Godot have doubles?

granite ledge
#

Yep, but you gotta build from source

#

Which is a lot easier than it seems

#

Just clone the repo, install the needed deps (they have a page in the docs listing what you need depending on which OS you're in) and run "scons precision=double" to build the Editor with f64 support

#

That's what I use daily

hoary iron
#

Oh man, I've never been good with building from source, dunno why

#

It just confuses me for some unknown reason

granite ledge
#

It's really straightforward, in which OS are you in?

hoary iron
#

W11

granite ledge
#

Right, one min

hoary iron
#

But I might move over to Linux again soon, the only reason I moved over was because I wanted VR and Unreal, neither of which I use anymore

#

I just love Plasma too much

granite ledge
granite ledge
hoary iron
#

Endeavour is my favorite by far

#

Gives the benefits of Arch (the AUR!!!!) without the, uh, struggles

granite ledge
#

Yeah, Arch has a reputation....

hoary iron
#

Endeavour is the best of both worlds imo

#

In fact, I will just install it now. Got nothing of value on my PC anyways.

#

Sorta been wanting to for a few weeks now

granite ledge
#

For programming Linux is the most versatile option IMO

#

If not straight up for faster compile times, for the fact that you have a central software store/repository, which makes it sooo much easier to install your tools

hoary iron
#

I love the AUR so much

#

It's lightning fast

hoary iron
#

And here comes the Linux struggle... for no reason my monitor is flickering black

granite ledge
#

Are the planets/suns procedurally generated?

neat palm
#

No, hand-crafted and manually placed. But according to procedurally-generated 'blueprints'.

hoary iron
#

Anyways, yayy, I can make space things again

#

@granite ledge Sorry for the ping, but is there any way I can check for sure that I built it with double precision enabled?

granite ledge
# hoary iron <@340659932036595722> Sorry for the ping, but is there any way I can check for s...

Sorry for the delay, but yeah, you can just use the OS.has_feature("double") method to check for that
Have a look at the documentation on feature tags to get a better understanding on what feature tags are: https://docs.godotengine.org/en/latest/tutorials/export/feature_tags.html

hoary iron
#

Oh, perfect

#

Looks like I did it right

#

Thanks :)

granite ledge
#

Just glad to be of help

hoary iron
#

So I just use the normal type "float" and it'll have double precision?

granite ledge
#

Yep

hoary iron
#

Great

granite ledge
#

Well, floats already have double precision by default, so what you're really gaining are double precision Vectors (both 2d and 3d) and vertex handling

granite ledge
#

Definitely, doesn't really matter that you can store a planet-sized number if you can't show it lol

hoary iron
#

I'll definitely read that article

granite ledge
#

All in all, if don't plan to support mobile, double precision is basically free

#

Even in terms of performance, AFAIK it doesn't really eat you perf budget

granite ledge
hoary iron
#

How can I increase my far clipping plane further than Godot typically allows? When dealing with really big things like planets, it's sometimes not enough

#

For now I'm just going to have to make it 1:1000 scale, but that's not necessarily ideal

frank ice
granite ledge
#

Oh

#

lol

#

sorry about that

#

I could swear I typed "Frosty", guess I got played

lament jay
hoary iron
#

I'm an amateur game dev (never even really finished one...) so I'm not 100% sure what you're saying, but I think I get the general idea

neat palm
#

In that file in the bottom there is also a limit for the in-editor camera option, it should be adjusted too.

#

It doesn't support double-precision floats.

#

So only origin rebase.

hoary iron
#

I see

dense hearth
#

Ships now try to escape when under fire. I still have to fine-tune the weapons and AI behavior, but the battle system is almost complete

granite ledge
#

@hoary iron Logarithmic Depth might be something worth looking into also

#

I believe @neat palm implemented it in his fork on the engine, but as he said it's only available for 3.x, so on 4.0 you'll have "to do it yourself", which tbh shouldn't be that much of a hassle

#

The basic idea is that by default (due to the way float works) you have a unbalanced amount of precision closer to the near plane than far away. That makes it so the further your far plane is the less precision you have to resolve objects.
Using a log function to encode you depth in the depth buffer, you get essentially a linear relation between distance and precision, which translates to a lot more precision when dealing with far objects.
I find this video particularly useful in explaining how it works and how it can be implemented: https://www.youtube.com/watch?v=8bRS9RRWfSs&list=PLRL3Z3lpLmH3PNGZuDNf2WXnLTHpN9hXy&index=9

Support me on:
Patreon: https://www.patreon.com/simondevyt

Follow me on:
Twitter: https://twitter.com/iced_coffee_dev
Instagram: https://www.instagram.com/beer_and_code/
Github: https://github.com/simondevyoutube/

In this project, we look at floating point precision, logarithmic depth buffers, and the problems that come with planetary scale re...

▶ Play video
hoary iron
#

I'll take a look when I have some time

hoary iron
#

Oof, that's some stuff that's a little advanced for me lol

neat palm
#

This comment from @vital otter esp.

dense hearth
#

The central square is the battlefield

neat palm
#

Neat!

neat palm
#

I have implemented death zone threshood based on aluminium melting temperature, coating albedo and star flux.
This is the safe distance for stars of B7 and G8 types.
Getting close to O0 star will be tricky.

#

I've also made a simple targeting rectangle.

dense hearth
#

Impressive! Great job!

neat palm
neat palm
#

Attached: 2 images

I have added fake stars as placeholders to see how it would look like when there are many of them, and I really like it.

Those are not background dots (you can distinguish camera decoration light as more faint), rather, those are star sprites in the space.

#укргеймдев #gamedev #IndieGameDev #indiedev #indiegame #godot #spac...

neat palm
neat palm
neat palm
dense hearth
#

My design documents are a lot more confusing 😄

neat palm
#

So long as it works and help.

dense hearth
#

The campaign editor

neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
neat palm
toxic basin
#

Started making a 2D strategy/RPG game, got carried away with making the planets look nicer...

neat palm
#

Oh yes, I know this feeling.

toxic basin
#

Higher resolutions look nice too

neat palm
#

Happy accident.

toxic basin
neat palm
#

Oh my, a proper editor, seems comfortable.

toxic basin
#

It does the trick, relatively good results fast enough, and can export the .tscn of the planet that you can open back up in the Godot editor itself if need be

#

But will work on random generation next

neat palm
toxic basin
toxic basin
#

The planet editor is also put up on itch.io, I put it in showcase (Planetarium2D)

neat palm
neat palm
#

The big nebula.

dense hearth
#

Amazing!

wanton goblet
#

that's beautiful

neat palm
onyx cradle
#

Just added an updated video of my space game. I'm finally getting into making some combat Let me know what you think! https://youtu.be/tpof4vCBXBg

This latest update on my Godot engine space game I've been building for the past 18 months shows the main menu, character customizer, and gives a quick look at space combat.

#godot #godotengine #gamedev #programming #3ddevlog #spacelegs #elitefeet #starship-interiors @GodotEngineOfficial

▶ Play video
neat palm
#

Good stuff, plenty of progress!

neat palm
#

I have tested vertex lighting with normal (also AO and specular) maps.
Took atlas from decal machine for a quick test.
What I am surprised about is that normal maps work with vertex lighting, albeit poorly. I am resorting to vertex lighting for the sake of performance here.

#

Also I think I will be switching to a new thread dedicated to my game, since there are quite a lot of updates coming in next 2 months.

wanton goblet
#

wow bro, i love this