{"id":26931175,"url":"https://github.com/onebit5/onetek-engine","last_synced_at":"2025-04-02T07:12:59.289Z","repository":{"id":275864310,"uuid":"926836978","full_name":"Onebit5/OneTek-Engine","owner":"Onebit5","description":"2D engine for a FPS","archived":false,"fork":false,"pushed_at":"2025-02-12T23:48:50.000Z","size":43,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T07:12:56.247Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Onebit5.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}},"created_at":"2025-02-04T00:02:00.000Z","updated_at":"2025-02-20T19:54:05.000Z","dependencies_parsed_at":"2025-02-05T01:26:21.924Z","dependency_job_id":"3f4f8e19-56e9-473c-8107-cae1823b3f1b","html_url":"https://github.com/Onebit5/OneTek-Engine","commit_stats":null,"previous_names":["onebit5/onetech-engine","onebit5/onetek-engine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Onebit5%2FOneTek-Engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Onebit5%2FOneTek-Engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Onebit5%2FOneTek-Engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Onebit5%2FOneTek-Engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Onebit5","download_url":"https://codeload.github.com/Onebit5/OneTek-Engine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246769968,"owners_count":20830771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-04-02T07:12:58.329Z","updated_at":"2025-04-02T07:12:59.276Z","avatar_url":"https://github.com/Onebit5.png","language":"C","readme":"# OneTech-Engine Documentation  \n\n## Overview  \n\nThis engine is a foundational framework designed for rendering 2D levels, handling player input, and managing game objects such as walls, doors, and other interactive elements. It provides basic functionalities for:  \n\n- **Level Loading**: Parsing level data from text files to create grids with walls, open spaces, and doors.  \n- **Player Interaction**: Handling player movement and interaction with the environment.  \n- **Dynamic Door Animation**: Animating doors to open and close based on player actions.  \n- **Rendering**: Displaying the game world in a simple graphical format.  \n\nThe engine was developed as an early prototype for building simple FPS games, such as Wolfenstein 3D.  \n\n## Features  \n\n### 1. Level Management  \n\nLevels are loaded from text files, where each cell represents a specific type of tile:  \n\n- `0`: Empty space  \n- `1`: Wall  \n- `2`: Door  \n\nThe engine dynamically allocates memory for the grid and tracks door positions for animation.  \n\n### 2. Player Input  \n\n- Players can navigate the grid using keyboard inputs (arrow keys).  \n- Collision detection ensures players cannot move through walls or closed doors.  \n\n### 3. Door Animation  \n\n- Doors can transition between open and closed states with smooth animations.  \n- The state of each door is tracked individually, allowing for complex interactions.  \n\n### 4. Extensibility  \n\nThe modular design allows developers to extend the engine with additional features, such as enemies, items, or custom rendering pipelines.  \n\n## Limitations  \n\nWhile this engine served as a solid foundation for grid-based games, it has several limitations:  \n\n- Limited support for advanced graphics or physics.  \n- No built-in AI or enemy behavior systems.  \n- Performance optimizations are minimal, making it unsuitable for large-scale projects.  \n\nThese limitations led to the development of **OneTech Engine 2**, which addresses these issues and introduces modern features.  \n\n## Superseded by OneTech Engine 2  \n\nThis engine will be superseded by **OneTech Engine 2**, a more advanced and feature-rich framework\n\n## Getting Started  \n\nTo use this legacy engine, follow these steps:  \n\n### 1. Clone the Repository  \n\n```bash\ngit clone https://github.com/Onebit5/OneTech-Engine.git\ncd OneTech-Engine\n```  \n\n### 2. Build the Engine  \n\n- Ensure you have a C compiler installed (e.g., GCC or MSVC).  \n- Run the following commands:  \n\n```bash\nmake\n./OneTech-Engine\n```  \n\n### 3. Load a Level  \n \n- Edit the `level.txt` file to specify the level to load.  \n\n### 4. Play  \n\n- Use the arrow keys to move the player.  \n- Interact with doors to open or close them with space.  \n\n## License  \n\nThis project is licensed under the **GLP 3**. See the `LICENSE` file for details.  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonebit5%2Fonetek-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonebit5%2Fonetek-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonebit5%2Fonetek-engine/lists"}