{"id":29143526,"url":"https://github.com/pticalin/simple-game-engine","last_synced_at":"2026-04-27T18:03:55.483Z","repository":{"id":301050090,"uuid":"1008002479","full_name":"PtiCalin/simple-game-engine","owner":"PtiCalin","description":"A handcrafted game engine for point-and-click adventures, puzzle games, and narrative experiments. Written from scratch in Python with PyGame, YAML, and deep modularity in mind.","archived":false,"fork":false,"pushed_at":"2025-06-24T22:33:32.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-24T23:19:41.147Z","etag":null,"topics":["2d-game","adventure-game","custom-engine","dialogue-engine","experimental-game-engine","game-development","game-engine","interactive-fiction","modular-system","narrative-game","open-source","point-and-click-adventure-game","point-and-click-game","puzzle-game","pygame","python","surreal-games","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","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/PtiCalin.png","metadata":{"files":{"readme":"README.md","changelog":"change-log.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-24T21:49:41.000Z","updated_at":"2025-06-24T22:33:35.000Z","dependencies_parsed_at":"2025-06-24T23:19:42.429Z","dependency_job_id":"72e3f367-247a-44e7-a0a6-e3eb1289725a","html_url":"https://github.com/PtiCalin/simple-game-engine","commit_stats":null,"previous_names":["pticalin/simple-game-engine"],"tags_count":0,"template":false,"template_full_name":"PtiCalin/temp_repo-gen","purl":"pkg:github/PtiCalin/simple-game-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PtiCalin%2Fsimple-game-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PtiCalin%2Fsimple-game-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PtiCalin%2Fsimple-game-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PtiCalin%2Fsimple-game-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PtiCalin","download_url":"https://codeload.github.com/PtiCalin/simple-game-engine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PtiCalin%2Fsimple-game-engine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262842920,"owners_count":23373167,"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":["2d-game","adventure-game","custom-engine","dialogue-engine","experimental-game-engine","game-development","game-engine","interactive-fiction","modular-system","narrative-game","open-source","point-and-click-adventure-game","point-and-click-game","puzzle-game","pygame","python","surreal-games","yaml"],"created_at":"2025-06-30T20:07:47.552Z","updated_at":"2026-04-27T18:03:55.475Z","avatar_url":"https://github.com/PtiCalin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔧 simple-game-engine\n\n\u003e A modular point-and-click adventure engine written in Python.\n\nSimple Game Engine is built to support surreal, story-rich games inspired by\nRusty Lake, A Little to the Left, Frog Detective, Tangle Tower, Outer Wilds and\nmore. It focuses on smooth interactions, seamless modularity and expansive\npossibilities.\n\n\u003cdiv align=\"center\"\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![CI](https://github.com/your-username/simple-game-engine/actions/workflows/ci.yml/badge.svg)](.github/workflows/ci.yml)\n[![Status: WIP](https://img.shields.io/badge/status-in_progress-yellow.svg)](#)\n[![Pull Requests Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./.github/pull_request_template.md)\n[![GitHub Discussions](https://img.shields.io/badge/💬-Discussions-blueviolet?logo=github)](https://github.com/your-username/simple-game-engine/discussions)\n\n\u003c/div\u003e\n\n---\n\n## 🌟 Key Features\n\n- Scene manager with interactive hotspots\n- YAML-based item, character, and puzzle logic\n- Inventory and contextual action systems\n- Persistent ``GameState`` for flags and progress\n- Modular dialogue engine with branching paths\n- Timeline system for synced events and time loops\n- Support for character traits, interaction effects, and narrative memory\n\n## 🧠 Goals\n\n- Total creative freedom\n- Extensible for visual scripting or modding\n- Engine + toolkit for building games that are weird, personal and beautiful\n\n## 🗺️ Project Roadmap\n\nThe full development roadmap lives in [ROADMAP.md](ROADMAP.md).\n\n---\n\n## 🚀 Getting Started\n\nClone this repo and install dependencies:\n\n```bash\ngit clone https://github.com/your-username/simple-game-engine.git\ncd simple-game-engine\npip install -r requirements.txt\n```\n\n### 🛠 Run the Demo\n\n```bash\npython main.py  # or your preferred dev command\n```\n\n### ⏱ Timeline Events\n\nScenes can schedule delayed actions:\n\n```yaml\nscene:\n  id: intro\n  features:\n    time_loop: true\n\nevents:\n  - trigger: delay\n    time: 30  # seconds\n    action: set_flag\n    flag: door_closed\n```\n\n### 🗺 World Manager\n\nWorlds are described in YAML files that list regions and scenes. This new format\nincludes metadata like ``title`` and ``start_region``. Load a world with\n``WorldManager``:\n\n```yaml\nworld:\n  id: montreal\n  title: \"Surreal Montreal\"\n  start_region: mileend\n  regions:\n    - id: mileend\n      scenes: [ruelle_portail]\n```\n\n```python\nfrom engine.world_manager import WorldManager\nwm = WorldManager(\"game/worlds/montreal.yaml\")\nprint(wm.current_scene())\n```\n\n### 🎨 Asset Manager\n\nUse ``AssetManager`` to cache images and music referenced by scenes:\n\n```python\nfrom engine.asset_manager import AssetManager\nassets = AssetManager()\nscene = ...  # a Scene object\nassets.preload_scene(scene)\nbackground = assets.get_image(scene.background)\n```\n\n---\n\n## 🤝 Contributing\n\nWe welcome bug reports, feature ideas and pull requests!\n\n- [🐛 Bug Reports](./.github/ISSUE_TEMPLATE/bug.yml)\n- [🌟 Feature Requests](./.github/ISSUE_TEMPLATE/feature-request.yml)\n- [📦 Pull Requests](./.github/pull_request_template.md)\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for how to get started.\nJoin us in [💬 GitHub Discussions](https://github.com/your-username/simple-game-engine/discussions) to share ideas.\n\n---\n\n## 📜 License\n\nDistributed under the [MIT License](LICENSE).  \nYou are free to fork, remix, and share — just be kind.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpticalin%2Fsimple-game-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpticalin%2Fsimple-game-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpticalin%2Fsimple-game-engine/lists"}