{"id":35128945,"url":"https://github.com/slizr/cardoom","last_synced_at":"2026-04-08T16:01:39.084Z","repository":{"id":328480650,"uuid":"1115688266","full_name":"SlizR/Cardoom","owner":"SlizR","description":"Use this pocket shooter game in your Arduino projects!","archived":false,"fork":false,"pushed_at":"2025-12-13T14:33:50.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-15T02:11:17.614Z","etag":null,"topics":["250","arduino","card","cardoom","cpp","doom","esp","esp8266","github","kb","mcu","node","nodemcu","release","sliz","slizr","total","version"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SlizR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-13T10:54:56.000Z","updated_at":"2025-12-13T14:33:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SlizR/Cardoom","commit_stats":null,"previous_names":["slizr/cardoom"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/SlizR/Cardoom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlizR%2FCardoom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlizR%2FCardoom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlizR%2FCardoom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlizR%2FCardoom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SlizR","download_url":"https://codeload.github.com/SlizR/Cardoom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlizR%2FCardoom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["250","arduino","card","cardoom","cpp","doom","esp","esp8266","github","kb","mcu","node","nodemcu","release","sliz","slizr","total","version"],"created_at":"2025-12-28T04:27:21.913Z","updated_at":"2026-04-08T16:01:39.077Z","avatar_url":"https://github.com/SlizR.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## CardDoom: Raycasting Engine on ESP8266\n\nCardDoom is a minimalist 3D engine implemented using the **Raycasting** technique (similar to the classic Wolfenstein 3D), designed to run on a **NodeMCU (ESP8266)** microcontroller utilizing a 128x64 OLED display (I2C).\n\n### Project Overview\n\nThe project serves as a high-performance demonstration of 3D graphics on resource-constrained hardware. It is built upon the Arduino framework and uses optimized trigonometric look-up tables (fixed-point math) for rapid frame rendering.\n\n### Hardware Connection and Controls\n\nThe engine uses five digital pins for core movement and action. Since the code utilizes `INPUT_PULLUP`, buttons must be connected between the specified pin and **GND** (Ground).\n\n| Game Action | Code Pin (`digitalRead`) | NodeMCU GPIO | D-Pin | Function |\n| :---: | :---: | :---: | :---: | :--- |\n| **Forward** | 2 | GPIO2 | D4 | Moves player forward |\n| **Backward** | 3 | GPIO3 | RX | Moves player backward |\n| **Turn Left** | 4 | GPIO4 | D2 | Turns camera left |\n| **Turn Right** | 5 | GPIO5 | D1 | Turns camera right |\n| **Fire / Action** | 6 | GPIO6 | SD\\_CLK | Triggers the weapon animation |\n\n### Game Map\n\nThe map is defined as a 10x10 array (`M[]`).\n\n  * **1**: Represents a **Wall**.\n  * **0**: Represents a **Free Space** (Path).\n\nThe player starts near the center of the free space and navigates a labyrinthine structure.\n\n| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |\n| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |\n| 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |\n| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |\n| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |\n| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |\n| 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |\n| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |\n| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |\n| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |\n\n### Custom Display Library: `SSD1306Wire.h`\n\nThis project uses a custom version of the SSD1306 display library.\n\n  * **Origin:** The library is based on the original `SSD1306Wire` from **ThingPulse**.\n  * **Modification:** The core code was refactored and tailored specifically for CardDoom's performance needs, reducing its size significantly (from approximately 1MB down to 200KB) without changing the display functionality essential for the project.\n\n### Map Visualization Tool\n\nThe repository includes a Python script, [`map_cardoom_3d_view.py`](https://www.google.com/search?q=%5Bhttps://github.com/SlizR/Cardoom/blob/main/map_cardoom_3d_view.py%5D\\(https://github.com/SlizR/Cardoom/blob/main/map_cardoom_3d_view.py\\)), that provides a separate **3D visualization** of the map structure as a model. This script helps developers understand the labyrinth's layout.\n\nTo run the visualization tool, you must install the required Python libraries:\n\n```bash\npip install matplotlib numpy\n```\n\n### Licensing\n\nThe CardDoom project uses two distinct licenses.\n\n#### 1\\. CardDoom Project (Main Code)\n\n**MIT License**\n\nThe main CardDoom engine code is licensed under the permissive MIT License. This grants users the freedom to use, copy, modify, and distribute the code, provided the original copyright and license notice are retained.\n\n#### 2\\. Custom `SSD1306` Library\n\n**Sliz Open Source License (SOSL) Version 1.0, 2025**\n\nThis custom license applies *only* to the modified `SSD1306` library files.\n\n**Key Terms of SOSL:**\n\n  * **Attribution (Section 2):** Any use, copying, or modification of the library must include clear attribution to **Sliz®**.\n  * **Derivative Work Restriction:** While the library is open-source (Section 1), you are **prohibited from taking the custom library, modifying its core purpose or attribution, and claiming it as your own independent custom product**. You may use the library as is, or modified within another open-source project, but must always acknowledge its origin from Sliz®.\n  * **Legal Enforcement (Section 4):** Failure to comply with the attribution requirement and other terms will result in legal action by Sliz®.\n\n\u003e **In short:** You can use and modify the custom SSD1306 library within CardDoom or other open-source projects, but you cannot copy the custom code, rename it, and distribute it as a different, original custom library without explicit permission.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslizr%2Fcardoom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslizr%2Fcardoom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslizr%2Fcardoom/lists"}