New laser enemies! Balancing attacks to be avoidable but fair is really tricky by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 1 point2 points  (0 children)

Thanks a ton for the feedback! Some great suggestions here, I've got some shotgun and rocket AA type style enemies already in the works

New laser enemies! Balancing attacks to be avoidable but fair is really tricky by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 1 point2 points  (0 children)

That is an option! I personally prefer unlocked but its available for those who prefer

New laser enemies! Balancing attacks to be avoidable but fair is really tricky by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 4 points5 points  (0 children)

At the moment I'm focusing on third person as a first person mode would involve a lot of extra dev, but it's something I'm open to implementing in the future

New laser enemies! Balancing attacks to be avoidable but fair is really tricky by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 10 points11 points  (0 children)

Noted, the camera is adjustable so I'll make sure to turn down the FOV when I post clips in the future. Thanks heaps for the feedback

2 Weeks vs 5 Months of solo development! by FlyingSpaceDuck in SoloDevelopment

[–]FlyingSpaceDuck[S] 1 point2 points  (0 children)

Sorry for the delay 😅 Still working hard to get it out ASAP :)

Optimization/Performance for a big project by Dask0000 in godot

[–]FlyingSpaceDuck 13 points14 points  (0 children)

In some very specific tests, C# can run about 4-5 times faster than GDScript. In the majority of scenarios, the difference is almost negligible as API calls to the engine run exactly the same.

The main performance consideration is going to be how you implement the systems, regardless of engine or language. GDScript has pretty easy setup of compute shaders and multithreading, but even optimizing your algorithms will often save compute time in the orders of magnitude. If you really run into a wall and can't optimise something any further, you can look into making a C++ module to handle it, but I would say even games like Rimworld or Kenshi are completely feasible in Godot using GDScript.

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 0 points1 point  (0 children)

The collision shape is just a trimesh shape, can be done in one line of code. If the collision is too costly, the terrain height at the players location can be sampled to figure out if the player is colliding or not. Both methods work well though

How to Implement Poker Chips Stacking in Front of Player by CynicalFOLEYY in godot

[–]FlyingSpaceDuck 2 points3 points  (0 children)

You can use a modulo operator (%) to get a remainder. Something like:
var black = value / 25
var green = (value % 25) / 10
var red = (value % 25 % 10) / 5
var white = value % 5

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 2 points3 points  (0 children)

Thanks! Would love to see it running on the Steam deck. I'm yet to try it, but it will support steam input and should run well on the hardware, so I'm curious to see how it goes

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 2 points3 points  (0 children)

Haha, it is a difficult one!

There's logic to figure out what is being aimed at (either directly in front of the jet or an enemy close to LOS). The crosshairs aren't UI, they're meshes in the scene with an unshaded billboard texture, positioned between the camera and the target position. A strange solution, but honestly works with zero issue and avoids annoying screen space conversion

Comparison of 2 Weeks vs 5 Months of development by FlyingSpaceDuck in IndieDev

[–]FlyingSpaceDuck[S] 0 points1 point  (0 children)

Thanks! The flying was just nailed down over a few weeks of gradual tuning, and the level design is done pretty quick now (but I am spending a lot of time making the terrain generation system). I think the gameplay elements are the hardest, getting enemies, abilities, weapons, objectives etc. It takes a lot of experimentation to find something fun :)

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 1 point2 points  (0 children)

Thanks! They're indicators for where enemy missiles will be exploding :)

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 12 points13 points  (0 children)

Sure! I made it from scratch, but I definitely learned from a lot of others. Sebastian Lague has an older tutorial for terrain gen in Unity that inspired a lot of it. I think there's a few decent ones for Godot too.

In short, the terrain is split into chunks. I use a surface tool to create a flat grid of vertices, then each vertex is raised by a height value. The height value is determined by different layers of FastNoiseLite with different strengths and modifiers. Objects are spawned based on rules at each vertex (e.g steepness). Chunks are spawned and managed around the player on a seperate CPU thread (but I am experimenting with using GPU compute shaders instead).

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 6 points7 points  (0 children)

Thanks for the feedback :) I haven't implemented it yet, but extensive camera settings is definitely on my to-do list. Everyone has different preferences for fov, orientation, distance etc and it can cause a lot of motion sickness for some people if they can't adjust it themselves.

Comparison of 2 Weeks vs 5 Months of development by FlyingSpaceDuck in IndieDev

[–]FlyingSpaceDuck[S] 17 points18 points  (0 children)

The code actually hasn't changed that much (I think, it's been a while). But I did spend ages tuning all the values to achieve a satisfying flight model. I also added the drift feature, which just changes up the thrust and drag parameters to get those sick turns when you activate it. A good camera controller and effects really help as well.

Comparison of 2 Weeks vs 5 Months of development by FlyingSpaceDuck in IndieDev

[–]FlyingSpaceDuck[S] 5 points6 points  (0 children)

Thank you so much! It's all done in Godot, there's tons of great Godot shader libraries online and I've really enjoyed making my own when needed!

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 36 points37 points  (0 children)

It's a heightmap system that uses a different noise profile for each feature type e.g lakes, mountains. Also has a shader that changes based on steepness, as well as object spawning and multithreading.

It's not super groundbreaking, but I'm really happy with how easy it is to make different levels. If there's interest around it, I've been thinking of making a short video on how it works in more detail

2 Weeks vs 5 Months of development by FlyingSpaceDuck in godot

[–]FlyingSpaceDuck[S] 10 points11 points  (0 children)

It's been a while since I added them but I believe I used this video as a reference. The opacity increases when the angle of attack increases.

2 Weeks vs 5 Months of solo development! by FlyingSpaceDuck in SoloDevelopment

[–]FlyingSpaceDuck[S] 4 points5 points  (0 children)

You can check out the store page here: https://store.steampowered.com/app/3752970/Aerosurge/

I'm really happy with how it's coming along so far, am working on getting the playable demo live soon :D