https://github.com/Dr-Nekoma/lyceum Skip to content Navigation Menu Toggle navigation Sign in * Product + GitHub Copilot Write better code with AI + Security Find and fix vulnerabilities + Actions Automate any workflow + Codespaces Instant dev environments + Issues Plan and track work + Code Review Manage code changes + Discussions Collaborate outside of code + Code Search Find more, search less Explore + All features + Documentation + GitHub Skills + Blog * Solutions By company size + Enterprises + Small and medium teams + Startups By use case + DevSecOps + DevOps + CI/CD + View all use cases By industry + Healthcare + Financial services + Manufacturing + Government + View all industries View all solutions * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} Dr-Nekoma / lyceum Public * Notifications You must be signed in to change notification settings * Fork 3 * Star 141 An MMO game written in Erlang (+ PostgreSQL) + Zig (+ Raylib) License Apache-2.0 license 141 stars 3 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 0 * Pull requests 1 * Actions * Projects 0 * Wiki * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights Dr-Nekoma/lyceum master BranchesTags [ ] Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 198 Commits .github .github client client server server .gitattributes .gitattributes .gitignore .gitignore .rsyncignore .rsyncignore LICENSE.md LICENSE.md README.org README.org deploy.sh deploy.sh docker-compose.yml docker-compose.yml flake.lock flake.lock flake.nix flake.nix game.gif game.gif justfile justfile menu.jpg menu.jpg View all files Repository files navigation * README * Apache-2.0 license Lyceum [?] built with nix [Build] Client [Build] Server Client [Deploy] Server Status About This is Lyceum -- an MMO game with the server written in Erlang and the client written in Zig (superchanged with raylib and Zerl). The game menu game How to run There are several ways to run this project, but they all leverage Nix . We have a single devenv configured, that has all the tooling required to run this project, it also includes postgres. Testing the Game (DEMO) 1. nix develop --impure 2. devenv up (or devenv up -d) to launch a local postgres 3. just db-reset or db-reset, to initialize postgres for local development 4. Initialize the map: just shell # (...) (lyceum_server@euclid)1> map_generator:main(["Pond", "./maps/Pond"]). Connecting to "127.0.0.1" at "5432" Successfully connected to "127.0.0.1" ok (lyceum_server@euclid)2> After populating the maps inside the DB, you can now: 1. server 2. followed by client-release 3. Once you get the client to launch, connect to localhost and you can try playing with any of the local credentials here. Development Shell # To enter the developmet shell nix develop --impure # To spawn postgres devenv up -d For more commands, make sure to check just. # Will list all commands we have right now just to migrate the local dababase, you can use just db-up or db-up. Nix Builds You can also build the server and related OCI images with Nix. nix build .#server if you prefer running a container for the server: nix build .#buildImage docker load < ./result docker container run --network=host lyceum:latest Deployment This game is deployed in our NixOS server. Assets References for assets used in this project: * sand_texture * grass_texture * dirt_texture * water_texture * tile_model (used for all types of tiles) * chest_model * bush_model * tree_model * logo_font * text_font * background_music * button_select_sound * button_click_sound * error_sound * character_model (slightly modified in blender) Everything else was made by developers from the project or generated using tools. Lore At the dawn, a solitary tower rose at the very heart of creation. Its heights soared beyond measure, each stone wrought by the hand of Adraman. Within its lofty chambers, knights slumbered in homage to their lord, their dreams steeped in profound reverence, each to an ultimate idea. With time, some knights, restless and wide awake amidst the collective slumber, were drawn by the haunting whispers of the wind. Captivated by the unseen melodies that danced upon the breeze, he cast himself from the tower's precipice. As he plummeted, his trumpet echoed through the realms, a clarion call that shattered the tranquility of ages past. 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. Now at each strike, the meanings of such ideas changed; losing the ideas with time. In the aftermath of countless battles, only one knight remained standing amidst the echoes of strife. His valor and defiance marked him as both hero and pariah, banished to the realm of the lowly ones where he ascended to rule over the twin cities of Tlova. To reclaim the lost harmony and seek redemption in Adraman's eyes, the Lyceum arose -- a monumental testament to humanity's quest to bridge the chasm between the heavenly mind and the mortal libraries. Now far from the tower, a new era dawns as humanity's torch flickers into darkness, its once radiant light dimming against the encroaching shadow of over their minds! With trepidation etched upon their faces, barbarian tribes lay claim to the northern realms, and their conquests marking a steady advance southward. Meanwhile, corruption festers within the cities' beating heart, severing its ancient ties to the source of all truth. In the fading twilight of their former glory, the heavens whisper of impending change, and the lands tremble beneath the weight of uncertainty. As the cities now struggle to stem the tide of internal decay and external aggression, the balance of power shifts perilously, casting doubt upon the fate of civilizations wrought by the hands of gods and men alike. It is your duty, oh great Philosopher, to mend the meanings and bring us all closer to truth once again. About An MMO game written in Erlang (+ PostgreSQL) + Zig (+ Raylib) Topics game erlang nix zig postgresql raylib erlang-otp justfile ziglang nix-flake raylib-zig zerl Resources Readme License Apache-2.0 license Activity Custom properties Stars 141 stars Watchers 3 watching Forks 3 forks Report repository Releases 1 v0.1.0 Latest Nov 5, 2024 Packages 0 No packages published Contributors 5 * @EduardoLR10 * @z-silver * @mtrsk * @MMagueta * @github-actions[bot] Languages * Zig 63.7% * Erlang 21.9% * Nix 6.8% * PLpgSQL 4.9% * Just 1.4% * Shell 1.3% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.