u/PhonicUK

Dune Awakening self-hosted servers are now deployable on *normal* Linux systems!

Dune Awakening self-hosted servers are now deployable on *normal* Linux systems!

So - this was an absolute ball ache, but it works.

No Hyper-V, no Windows Pro requirement, no Kubernetes, no Alpine - just the server running on a plain Debian / Ubuntu / whatever Linux distro without too much extra mess. We still recommend that you use AMPs own containerisation for this because it'll save a few minor headaches.

You can read a little more about what the requirements are here: https://discourse.cubecoders.com/t/dune-awakening-server-guide/40200

Getting this into something simple and turnkey on normal Linux systems was absolutely absurd. But very worth it.

u/PhonicUK — 1 day ago

The self-hosted server could not possibly by any metric be a bigger mess than it is. Plus it's a security mess.

For those of you who don't know me - I run CubeCoders, we make the AMP game server control panel.

Security mess first: On the Windows side it ships a VM that has a pre-defined, static SSH key that's part of the repo. If you accidentally exposed the VM to the internet by using a bound network and DMZ or otherwise let SSH through intentionally or otherwise, the whole world has access to that VM. GG.

Lots of developers over the years have shipped some really daft servers that require some real fun tricks and hacks to get them to run in a way that make sense, because more often than not game developers don't make good server application developers.

But never in my 15 years of making server management software have I ever seen something so indescribably, so horribly, so unnecessarily convoluted and messed up.

The Windows side is just a virtual machine. They've not shipped a Windows server, they shouldn't have done this at all. This makes no sense and offers no value except confusion and extra limitations. Scrap this, don't bother with it, pay it no attention.

Now the Linux side is a real case of "Ship my machine" - the individual services are nothing remarkable. Postgres, RabbitMQ, and a few other bits. These are in docker images that are shipped directly. No "docker pull" - just the image files dumped in place. So okay lets pull these apart and ignore most of the unnecessary stuff in there.

  • But - When you drill down far enough, there's a fairly normal and unremarkable UE5 Dedicated Server application sitting at the bottom of it. Just sat there hidden under layers of images and scrips that don't need to be there.

Funcom: Stop trying to be cute, stop trying to make it turnkey, ship the damned server directly and let the existing management tools handle it all properly and handle all of the dependencies and other tooling that's needed. Don't try and ship your machine, don't try and make it turn key because it's having the opposite effect. Just document what the requirements are, don't expect to have to ship something that works OOTB because virtually nobody does for anything with these kinds of dependencies.

We are working on pulling this to shreds until we can make something sensible.

reddit.com
u/PhonicUK — 3 days ago
▲ 1.5k r/retrogamedev+1 crossposts

The track is procedurally generated at startup time, I've got 3x Ai players with collision avoidance. Physics and collisions work great and let ships nudge each other around.

This is using an ST7796 SPI display. As I said in the title this is doing interlaced updates using two half height buffers leveraging both CPU cores so one draws the next frame while the other takes care of IO.

This is a fully custom 3D engine, right now its got a set of directives turned on to only do the fastest style which is solid filled triangles with no lighting.

The shadow dynamically adjusts to match the track surface and ship orientation but is other a flat outline of the ship as a separate model. There's about 2000 on screen triangles peak.

u/PhonicUK — 16 days ago