{"id":22957506,"url":"https://github.com/tca166/doommc","last_synced_at":"2026-04-30T16:33:13.014Z","repository":{"id":218233198,"uuid":"725577228","full_name":"TCA166/doomMC","owner":"TCA166","description":"A custom Minecraft server that hosts a classic FPS gamemode","archived":false,"fork":false,"pushed_at":"2024-02-14T22:00:17.000Z","size":600,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-07T06:05:46.482Z","etag":null,"topics":["c","cpp","linux","minecraft-server"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TCA166.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-30T12:45:02.000Z","updated_at":"2024-02-11T17:24:36.000Z","dependencies_parsed_at":"2024-02-13T00:28:51.350Z","dependency_job_id":"2a500c29-24eb-4f0c-a30a-39357c85aa95","html_url":"https://github.com/TCA166/doomMC","commit_stats":null,"previous_names":["tca166/doommc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TCA166/doomMC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TCA166%2FdoomMC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TCA166%2FdoomMC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TCA166%2FdoomMC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TCA166%2FdoomMC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TCA166","download_url":"https://codeload.github.com/TCA166/doomMC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TCA166%2FdoomMC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32470879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","linux","minecraft-server"],"created_at":"2024-12-14T17:17:31.202Z","updated_at":"2026-04-30T16:33:12.996Z","avatar_url":"https://github.com/TCA166.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# doomMC\n\nLinux Minecraft server meant to host a DOOM style TDM game.\n\n## Overview\n\nThe general idea behind this project is to use the Minecraft internet protocol to create a unique player experience.\nThere is nothing in the protocol itself that requires the game sync'd with the protocol to be an open world survival sandbox.\nSo if we were to say convert DOOM maps to blocks, send these blocks once and make the map immutable, and hijack packets for clicking left click as shooting packets we would have a basic DOOM TDM server.\n\n## Lobbies\n\nOnce the player starts connecting they are put into a random lobby.\nEach lobby is running a single map.\nAdditionally each lobby has two threads, one for receiving player data, and the other one for performing game ticks.\nPlayer synchronization overall is split \"equally\" between the two threads.\n\n## Maps\n\nThe server by default needs maps placed in the /maps subdirectory next to the server executable.\nAs of right now the server supports two types of map files:\n\n- [mcr](https://minecraft.fandom.com/wiki/Region_file_format) files - minecraft region files\n- [udmf](https://doomwiki.org/wiki/UDMF) files - doom maps stored in the udmf format\n\n## Install\n\nIn order to run this server you will need to compile it.\nThis software is exclusively for Linux and trying to compile it under other *nix systems will result in problems.\n\n1. Install make\n2. Install requirements\n    If you are running a Debian derived Linux run the requirements target.\n\n    ```bash\n    make requirements\n    ```\n\n    Otherwise find the needed packages in your manager of choice based on the target specification.\n3. Compile\n    Run the server target and it should work as is and compile fine assuming you have all the necessary requirements installed.\n\n    ```bash\n    make server\n    ```\n\n## Static files\n\nIn order for the server to properly run some static files need to be available next to it.\nThese are:\n\n- registryCodec.nbt - this is a raw nbt file containing the registry coded. Extracted from a vanilla 1.19.4 server via a [modified client](https://github.com/TCA166/segfaultCraft)\n- tags.bin - raw contents of the [Update Tags](./https://wiki.vg/index.php?title=Protocol\u0026oldid=18242#Update_Tags) packet extracted from a vanilla 1.19.4 server\n- status.json - json template that will be sent to be displayed on the server list\n- version.json - Json definition of all blocks and items in Minecraft 1.19.4 taken from [PixLyzer data](https://gitlab.bixilon.de/bixilon/pixlyzer-data)([mirror](https://github.com/bixilon/pixlyzer-data))\n\n## Development\n\nAs of right now the project is still under development.\nThe server works in the very basic sense.\nI am still struggling with player synchronization, a big milestone will be having two players in a lobby being able to see each other and having the position and rotation accurately.\nFeel free to help.\n\n### Big TODO\n\nLong term TODO\n\n1. Support for older than 1.19.4\n2. Support for newer than 1.19.4\n3. Tests\n4. Fuzzing (libfuzzer)\n5. Position verification\n6. Anticheat\n7. Plugins for commands\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftca166%2Fdoommc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftca166%2Fdoommc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftca166%2Fdoommc/lists"}