{"id":17502765,"url":"https://github.com/dab0mb/radial-snake","last_synced_at":"2025-08-27T15:15:36.650Z","repository":{"id":66209457,"uuid":"74881904","full_name":"DAB0mB/radial-snake","owner":"DAB0mB","description":"A tutorial for creating a Tron-style game","archived":false,"fork":false,"pushed_at":"2018-08-29T05:01:28.000Z","size":1063,"stargazers_count":73,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-03T15:24:28.501Z","etag":null,"topics":["cpp","emscripten","es6","game-development","javascript","tutorial"],"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/DAB0mB.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":"2016-11-27T10:53:14.000Z","updated_at":"2024-02-28T20:59:59.000Z","dependencies_parsed_at":"2023-05-29T23:30:10.684Z","dependency_job_id":null,"html_url":"https://github.com/DAB0mB/radial-snake","commit_stats":null,"previous_names":[],"tags_count":96,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DAB0mB%2Fradial-snake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DAB0mB%2Fradial-snake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DAB0mB%2Fradial-snake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DAB0mB%2Fradial-snake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DAB0mB","download_url":"https://codeload.github.com/DAB0mB/radial-snake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232786434,"owners_count":18576419,"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":["cpp","emscripten","es6","game-development","javascript","tutorial"],"created_at":"2024-10-19T21:38:52.617Z","updated_at":"2025-01-06T21:13:42.464Z","avatar_url":"https://github.com/DAB0mB.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# How to implement a game engine in JavaScript and build a Tron-style game\n\n[//]: # (head-end)\n\n\n![snake-demo-full-small](https://cloud.githubusercontent.com/assets/7648874/21073892/ae331a8a-bed2-11e6-9141-9554f9bb808b.gif)\n\nThis tutorial will guide you through the following steps:\n\n- [**Step 1**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step1.md) - Creating a server\n- [**Step 2**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step2.md) - Creating a game engine basis\n- [**Step 3**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step3.md) - Creating a splash screen using a keyframe animation engine\n- [**Step 4**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step4.md) - Creating a main menu screen using a font engine\n- [**Step 5**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step5.md) - Creating a snake and related geometry shapes\n- [**Step 6**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step6.md) - Creating a complex game screen with multiple layers\n- [**Step 7**](https://github.com/DAB0mB/radial-snake/blob/master/.tortilla/manuals/views/step7.md) - Bonus! Re-implementing geometry in C++\n\nMake sure you have the following software installed:\n\n- NodeJS with an ECMAScript 2015 support (v6.0.0 and above).\n- Any web-browser which supports ECMAScript 2015, with a preference for Google Chrome.\n\n\u003e The final project is a hybrid of C++ and JavaScript. A JavaScript **only** version of this tutorial is available [here](https://github.com/DAB0mB/radial-snake/tree/master%40step6%400.1.3).\n\nThis tutorial is mostly based on pure JavaScript, so people can have a deeper understanding of the language and its dynamics. In addition, this tutorial makes a great practice on how to build a nice architecture for complex systems, which can then be expanded and maintained with ease. Yes, it is specifically designed for games, but I truly believe that video games can easily get messed up if not planned and designed properly in terms of object oriented relationships. They are naturally more complicated then any web-app you gonna see out there, so if you can create a game engine and understand its flow, creating a web-app would be a piece of cake for you. By the end of this tutorial, your general sense for programming should be enhanced greatly.\n\nSo hopefully that I got you pumped up by now, let's get started!\n\n\n[//]: # (foot-start)\n\n[{]: \u003chelper\u003e (navStep)\n\n| [Begin Tutorial \u003e](.tortilla/manuals/views/step1.md) |\n|----------------------:|\n\n[}]: #\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdab0mb%2Fradial-snake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdab0mb%2Fradial-snake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdab0mb%2Fradial-snake/lists"}