{"id":18818170,"url":"https://github.com/helloimkevo/godotsimplegames","last_synced_at":"2026-04-29T14:33:47.396Z","repository":{"id":215836672,"uuid":"739887864","full_name":"HelloImKevo/GodotSimpleGames","owner":"HelloImKevo","description":"Simple game projects powered by the Godot Engine.","archived":false,"fork":false,"pushed_at":"2024-02-10T23:06:57.000Z","size":26813,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-30T02:32:47.563Z","etag":null,"topics":["game-development","godot","udemy-course-project"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/HelloImKevo.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":"2024-01-06T21:05:02.000Z","updated_at":"2024-02-10T22:26:40.000Z","dependencies_parsed_at":"2024-01-17T01:48:08.233Z","dependency_job_id":"27ec174a-4c5b-474f-8521-baab2b55f094","html_url":"https://github.com/HelloImKevo/GodotSimpleGames","commit_stats":null,"previous_names":["helloimkevo/godotsimplegames"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelloImKevo%2FGodotSimpleGames","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelloImKevo%2FGodotSimpleGames/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelloImKevo%2FGodotSimpleGames/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelloImKevo%2FGodotSimpleGames/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HelloImKevo","download_url":"https://codeload.github.com/HelloImKevo/GodotSimpleGames/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239753732,"owners_count":19691162,"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":["game-development","godot","udemy-course-project"],"created_at":"2024-11-08T00:15:26.070Z","updated_at":"2026-01-15T15:30:18.099Z","avatar_url":"https://github.com/HelloImKevo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Godot Simple Games\n\n![godot-version](https://img.shields.io/badge/Godot-4.2.1-blue)\n\nSimple game projects powered by the Godot Engine.  \n\nhttps://godotengine.org/  \nhttps://docs.godotengine.org/en/stable/  \n\n\n## Godot: Useful Shortcuts\n\n### Quick Open\nTo use Quick Open, perform the following keyboard shortcut on Godot editor. \nBe careful, it does not work on script editor so you need to switch to 2D or \n3D Workspace if you use it.\n\nWindows: **Shift + Alt + O**  \nmacOS: **Shift + Option + O** -or- **Command + P**  \n\nhttps://www.peanuts-code.com/en/tutorials/gd0009_various_searches/#quick-open  \n\n### Visible Collision Shapes\nYou can turn on Visible Collision Shapes by checking / enabling:  \n- [x] Debug \u003e Visible Collision Shapes\n\n\n### Nav Agent Avoidance\nThe Navigation Agent will by default cap the maximum speed of a `CharacterBody2D`,\nbe sure to update the upper limit from the default 100 px/s.\n\n\n## Deployment with Python Web Server\nGo to Editor \u003e **Manage Export Templates...**.\n\nIf you see \"Export templates are missing. Download them or install from a file.\"\nSelect the \"Best Available Mirror\" and click **Download and Install**. The\ndownload is about 850 MB. Then close the window.\n\nThen to go Project \u003e Export. It will open a \"Presets\" window. Click the \"Web\"\noption from the dropdown.\n\nExport the Project to a new `web_export` folder (which you need to create).\n\n| Web Export for Tappy Plane |\n| :---: |\n| ![Web Export Window 1](Screenshot/export-01.png) |\n\nIn a Terminal instance, navigate to:\n```\ncd ~/GitProjects/GodotSimpleGames/TappyPlane/web_export\n```\n\nThen run this with Python 3 and confirm \"Serving HTTP ...\" output:\n```\n$ python -m http.server\n\nServing HTTP on :: port 8000 (http://[::]:8000/) ...\n```\n\nOpen this URL in a Browser: http://localhost:8000/  \n\nClick on the `TappyPlane.html` file and you'll see this error:\n```\nError\nThe following features required to run Godot projects on the Web are missing:\nCross Origin Isolation - Check web server configuration (send correct headers)\nSharedArrayBuffer - Check web server configuration (send correct headers)\n```\n\nRun the `create_server.py` script to create a local server with the proper\nconfiguration:\n```\npython ./create_server.py\n```\n\nNow you should be able to run the game by clicking on the `TappyPlane.html` file!\n\n### Quirk with Memory Madness Deployment\nIf you follow the above steps, Memory Madness will kind of work... Except all\nof the image assets will be missing!\n\nThis has to do with the relative path reference of `var path = \"res://assets/glitch\"`\nin our `ImageManager` singleton.\n\n| Resource Editor Tool for Memory Madness |\n| :---: |\n| ![Create Resource Icon 1](Screenshot/export-02.png) |\n\n| Saving the Resource for Memory Madness |\n| :---: |\n| ![Save Resource 1](Screenshot/export-03.png) |\n\n\n## Asset Links\nhttps://opengameart.org/content/parallax-2d-backgrounds  \nhttps://craftpix.net/freebies/free-cartoon-parallax-2d-backgrounds/?utm_campaign=Website\u0026utm_source=opengameart.org\u0026utm_medium=public  \nhttps://opengameart.org/content/512-sound-effects-8-bit-style  \nhttps://www.kenney.nl/  \nhttps://www.glitchthegame.com/public-domain-game-art/  \nhttps://ansimuz.itch.io/sunny-land-pixel-game-art  \nhttps://pixelfrog-assets.itch.io/pixel-adventure-1  \n\n## Mac Retina Display: Everything is tiny!\n1. Open Godot Settings.\n2. Check **Advanced Settings** (top-right corner).\n3. Go to **Display \u003e Window**.\n4. Un-check **DPI \u003e Allow hiDPI**.\n\n\n# Godot Infrastructure\n\n## Coroutines (and yield)\n\nThe `yield` keyword is only for Godot 3.0+. Coroutines are implemented in \nGodot 4.0+ with the `await` keyword.\n\nThe await immediately returns a value that may be ignored such that the calling \nfunction code or the game loop continues to run. But, if you call a function \ncontaining an `await`, then it becomes a coroutine that can be used with `await` \nin the calling function so that code execution is paused in that calling \nfunction. Here is an example:\n\n```python\nfunc _ready():\n    print(\"Started\")\n    try_await()\n    print(\"Done\")\n\nfunc try_await():\n    await get_tree().create_timer(1.0).timeout\n    print(\"After timeout\")\n```\n\nhttps://gdscript.com/solutions/coroutines-and-yield/\n\n# Tappy Plane\nInitial project setup: Open Project \u003e Project Settings.  \nGo to Display \u003e Window. Set Viewport Width to 480, and Height to 854.  \nChange Handheld \u003e Orientation to **Portrait**.\n\n| Tappy 1 | Tappy 2 |\n| :---: | :---: |\n![Tappy 1](Screenshot/tappy-01.png) | ![Tappy 1](Screenshot/tappy-02.png)\n\n# Angry Animals\nA clone of the popular \"Angry Birds\". Under **Project Settings**, \nGo to Display \u003e Window. Set Viewport Width to 1024, and Height to 600. \nSet **Stretch \u003e Mode** to `canvas_items`.\n\n| Angry Animals 1 |\n| :---: |\n| ![Angry 1](Screenshot/angry-01.png) |\n\n| Angry Animals 2 |\n| :---: |\n| ![Angry 2](Screenshot/angry-02.png) |\n\n# Memory Madness\nA tile-flipping memory game where you need to match tiles with the \nsame image. Features image randomization and asynchronous data loading \nusing Godot Coroutines. Under **Project Settings**, \nGo to Display \u003e Window. Set Viewport Width to 1024, and Height to 768. \nSet **Stretch \u003e Mode** to `canvas_items`.\n\n| Memory Madness 1 |\n| :---: |\n| ![Memory Madness 1](Screenshot/memory-01.png) |\n\n| Memory Madness 2 |\n| :---: |\n| ![Memory Madness 2](Screenshot/memory-02.png) |\n\n# Foxy Antics\nA 2D platformer where the player controls a Fox that can shoot projectiles\nto destroy wild enemies: Snails, Frogs and Eagles. Features a Boss Ent that\nuses an `AnimationNodeStateMachine` to manage transitions to multiple\nanimations that Scale, Re-Position, and Modulate the Visibility of the boss.\n\nLoosely based on CJ's Elephant Antics for the Commodore 64 and Amiga:  \nhttps://en.wikipedia.org/wiki/CJ's_Elephant_Antics\n\n| Boss Animation Node State Machine |\n| :---: |\n| ![Foxy Antics 1](Screenshot/foxy-01.png) |\n\n| Working with Tile Sets and Collisions |\n| :---: |\n| ![Foxy Antics 2](Screenshot/foxy-02.png) |\n\n| Balls Spikes Hazard moving along a Path2D |\n| :---: |\n| ![Foxy Antics 3](Screenshot/foxy-03.png) |\n\n| Main Menu with Language Selection |\n| :---: |\n| ![Foxy Antics 4](Screenshot/foxy-04.png) |\n\n| Game Level with Enemy Debug Labels |\n| :---: |\n| ![Foxy Antics 5](Screenshot/foxy-05.png) |\n\n\n# Sokoban (ish)\nA puzzle game where the player can push Boxes (Crates) around a 2D tile map\nonto floor switches. The level is complete when all floor switches are\nactivated. Based on the original Sokoban / Box World game. Levels are\nprogrammatically generated using a JSON-to-Tile-Map algorithm using 2D coordinates.\n\n| Level Selection Screen |\n| :---: |\n| ![Sokoban 1](Screenshot/sokoban-01.png) |\n\n| Level Generated from JSON Level Data |\n| :---: |\n| ![Sokoban 2](Screenshot/sokoban-02.png) |\n\n| Level Complete UI |\n| :---: |\n| ![Sokoban 3](Screenshot/sokoban-03.png) |\n\n\n# Space Ace (ish)\nA top-down Space shooter where the Player controls a Ship that can shoot\nlasers and collect Health and Shield powerups. The Game UI and on-screen\nenemies have Health Bars that use the `TextureProgressBar` built-in type.\nWaves of enemies are driven by Custom Godot Resources, and the enemies\nare assigned to a random `Path2D` to follow. The difficulty scales indefinitely\nuntil enemies are so fast, the Player will eventually be overwhelmed.\n\n| Main Menu Screen |\n| :---: |\n| ![Space Ace 1](Screenshot/ace-01.png) |\n\n| Player Ship Being Attacked by Waves of Enemies |\n| :---: |\n| ![Space Ace 2](Screenshot/ace-02.png) |\n\n\n# Sneaky Agent\nA top-down stealth game (like Metal Gear Solid) where the enemy soldiers have\na Field of View and a Line of Sight to the player. The enemies will pursue\nand chase the player, and eventually lose sight of the player if outrun.\nEnemies will also shoot bullets at the player, and the player must collect\nmedication pill `Pickups` to reveal the level exit.\n\n| Main Menu Screen |\n| :---: |\n| ![Sneaky Agent 1](Screenshot/sneaky-01.png) |\n\n| Player Spotted by Enemy Soldiers |\n| :---: |\n| ![Sneaky Agent 2](Screenshot/sneaky-02.png) |\n\n\n# Godot GDScript Style Guide\nhttps://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelloimkevo%2Fgodotsimplegames","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelloimkevo%2Fgodotsimplegames","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelloimkevo%2Fgodotsimplegames/lists"}