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.
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]
Regarding Zerl, my friend just presented about it in Functional Programming Sweden: https://www.youtube.com/watch?v=5Cuv0WnbZtk&t=795s.
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.
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.
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?
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?
Seems cool, would love to see a couple more videos of gameplay, but otherwise looks really cool. I would definitely consider playing
Did you happen to tinker with https://machengine.org/ it's a Zig game engine & graphics toolkit?
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.
Props for using Nix.
Will the game evolve further, and what is its future?
is Lyceum a reference to Ultima?
> 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?
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!