Show HN: Lyceum – An MMO game built with Zig and Erlang

by fluidwizardon 11/5/2024, 4:45 PMwith 69 comments

Hey HN, this is a small project myself and closer friends have been building on our free time (https://github.com/Dr-Nekoma/lyceum), it finally reached 0.1.0, we are open to feedback!

The original idea was to experiment with Zig + Raylib, eventually we wrote a small server in Erlang as well. We started by first interacting with Erlang via its C bindings, but this eventually led to some of us to prototyping our own tooling to better integrate Zig types with Erlang, we called such tool "zerl" as its avaliable here https://github.com/dont-rely-on-nulls/zerl.

Most of the developers are NixOS users, so the tooling heavily relies on Nix as well, including a Postgres running our devshell as well.

by Closion 11/11/2024, 12:59 PM

Pretty amazing effort, this looks like a great labour of love!

I can't give feedback on the code/technology, but on the writing on the lore section, I would try to simplify the writing. For instance the following:

> The reverberations of the trumpet stirred the knights from their deep repose, igniting a tumultuous awakening. With swords unsheathed and hearts ablaze, they clashed in a thunderous symphony of war, each seeking to claim dominance over the waking realm.

Feels too ornate (purple prose) and could be more directly put as:

> The trumpet’s call jolted the knights from their rest. Swords drawn and hearts alight, they clashed in a fierce battle, each striving for dominance.

I'm not an author or anything, but a little bit of copy writing could help - although this might just be me as it's probably a matter of personal taste!

by mtlynchon 11/11/2024, 2:39 PM

What's your experience been like with Nix?

How do you feel about devenv vs stock Nix? How are you getting devenv to work, as I don't see a devenv.nix file. I'm still a Nix beginner and would like to find ways of integrating it more into my development and improving my current techniques.[0]

[0] https://mtlynch.io/notes/nix-dev-environment/

by fluidwizardon 11/5/2024, 7:06 PM

Regarding Zerl, my friend just presented about it in Functional Programming Sweden: https://www.youtube.com/watch?v=5Cuv0WnbZtk&t=795s.

by diathon 11/11/2024, 6:08 PM

The BEAM is made with fault tolerance, scalability, and concurrency in mind at the cost of performance due to immutability and message passing approach among other things, which sounds like a terrible choice for a multiplayer video game that's anything more than a walking simulator. Erlang sounds like a good choice for auxiliary video game services, such as chat/social, guild management, auction house and so on, not so much for the game shard itself.

by racenison 11/11/2024, 7:35 PM

Do you think that you could use that Erlang feature where you can link up several server program instances running on separate physical servers?

Maybe you could simulate different parts of the game world on different physical servers.

I think this is something like what the Very Large MMOs do, but with Erlang it might be easier.

by mapcarson 11/11/2024, 1:20 PM

Its always nice to see people experimenting with different technologies.

I'm curious about Erlang server, do you see any advantage or features that Erlang provides, compared to for example if the server was running in Python via multiple instances?

by mysterydipon 11/11/2024, 1:32 PM

I'm confused by the use of a 10,000 poly model for a tile instead of a flat (2 poly) square. I didn't even realize there were changes in its height from the animation on the page. Was it just to test things out and you plan to go to a full terrain later?

by canadiantimon 11/11/2024, 12:47 PM

Seems cool, would love to see a couple more videos of gameplay, but otherwise looks really cool. I would definitely consider playing

by subsaharancoderon 11/12/2024, 5:03 PM

Did you happen to tinker with https://machengine.org/ it's a Zig game engine & graphics toolkit?

by 7biton 11/12/2024, 7:45 AM

I was clicking the source expecting to see what kind of game Lyceum is. There is no description about the game and no images of the game.

by pmarreckon 11/11/2024, 4:46 PM

Props for using Nix.

by lovegrenobleon 11/11/2024, 11:44 AM

Will the game evolve further, and what is its future?

by newobjon 11/11/2024, 6:15 PM

is Lyceum a reference to Ultima?

by lionkoron 11/11/2024, 11:39 AM

> the client written in Zig (superchanged with raylib and Zerl).

What does "supercharged" mean here? I'd guess raylib simply does all the rendering and input handling, what is it "supercharging" here?