from Hacker News

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

by fluidwizard on 11/5/24, 4:45 PM with 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 Closi on 11/11/24, 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 mtlynch on 11/11/24, 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 fluidwizard on 11/5/24, 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 diath on 11/11/24, 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 racenis on 11/11/24, 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 mapcars on 11/11/24, 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 mysterydip on 11/11/24, 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 canadiantim on 11/11/24, 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 subsaharancoder on 11/12/24, 5:03 PM

    Did you happen to tinker with https://machengine.org/ it's a Zig game engine & graphics toolkit?
  • by 7bit on 11/12/24, 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 pmarreck on 11/11/24, 4:46 PM

    Props for using Nix.
  • by lovegrenoble on 11/11/24, 11:44 AM

    Will the game evolve further, and what is its future?
  • by newobj on 11/11/24, 6:15 PM

    is Lyceum a reference to Ultima?
  • by lionkor on 11/11/24, 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?