{"id":26758533,"url":"https://github.com/wdevore/ranger-go-ige","last_synced_at":"2025-07-29T19:19:02.458Z","repository":{"id":57543177,"uuid":"258882220","full_name":"wdevore/Ranger-Go-IGE","owner":"wdevore","description":"Ranger implemented in Go using GLFW and a Scenegraph","archived":false,"fork":false,"pushed_at":"2023-03-07T03:49:15.000Z","size":20216,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T11:59:23.109Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/wdevore.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":"2020-04-25T21:55:00.000Z","updated_at":"2021-11-13T21:54:21.000Z","dependencies_parsed_at":"2024-06-20T11:10:49.648Z","dependency_job_id":"4d4ed32c-c53f-440b-b679-f81a1b3d3573","html_url":"https://github.com/wdevore/Ranger-Go-IGE","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdevore%2FRanger-Go-IGE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdevore%2FRanger-Go-IGE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdevore%2FRanger-Go-IGE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdevore%2FRanger-Go-IGE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wdevore","download_url":"https://codeload.github.com/wdevore/Ranger-Go-IGE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246062219,"owners_count":20717579,"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-03-28T16:29:24.589Z","updated_at":"2025-03-28T16:29:25.487Z","avatar_url":"https://github.com/wdevore.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ranger-Go-IGE\n**Ranger-Go-IGE** (IGE) is a continuation of [RangerGO](https://github.com/wdevore/RangerGo).\n\nAs was RangerGo, so is IGE, a variation of the [Ranger Dart](https://github.com/wdevore/Ranger-Dart) game engine but written in [Go](https://golang.org/) but using [OpenGL](https://www.opengl.org/) and [GLFW](https://www.glfw.org/).\n\nThis version is the great merging of RangerGo, RangerGo-GLFW and Ranger-Alpha.\n\n# Video demos\nGif of c4_lava example\n\n![Gif_c4_lava](docs/c4_lava.gif)\n\nGif was made using ```ffmpeg -i c4_lava.mkv -r 30 -vf scale=512:-1 c4_lava.gif```\n\nmkv version of video is in *docs* folder.\n\n# Audio\n\n![Sfxr](tools/sfxr/Go-Sfxr.png)\n\n# Games\n* Port Spout (standard)\n* Spout custom. In this verion instead of particles for the obstacles the obstacles are outlined with a polygon. The poly is updated when part of the obstacle is destroyed.\n* Port StarCastle / Star Barriers\n* Port Bosconian\n* Port Omega Race\n* Port 2048\n* Create New Game. A blend of **Lunar Lander** (Sky and Landings), **Moon Patrol** (Ground), **Atari Pitfall** (Obstacles), **Defender** (Rescue). Multi-planet and Moons.\n* Create a 1946 shooter like clone.\n* Create a BurgerTime like clone.\n\n# Demos\n* Combine vector fonts with tweening and physics. The text rotates and then randomly falls to the ground. Then the text moves back inline using tweening.\n* A triangle spaceship (with particle exhaust) that can fly around and shoot characters. The chars bounce off walls like asteroids.\n* A qix like demo where lines move around the view. Each end point bounces off the walls.\n* Particle system demo(s)\n* Infinite side-scrolling demo. A UFO can move left/right forever. The terrain is procedurally generated using One-Lone-Coder's algorithm.\n  * https://www.youtube.com/watch?v=ZZY9YE7rZJw\n* Infinite scrolling demo using a top-down view. Again using OLC's algorithm. In this demo you can \"drive\" over a terrain and encounter different objects.\n* 2D Light shadows.\n\n# Tools/Apps\n* Sfxr\n* Sprite editor\n* SVG to Vector font converter\n  * https://github.com/JoshVarga/svgparser\n  * https://github.com/rustyoz/svg\n  * https://play.golang.org/p/kyfff6Kg1c  implements parser xml interface (Nice)\n* Vector Editor\n\n# Current Tasks and Goals\n* [x] OpenGL 4.x Core\n* [x] Pixel Font (Slow version)\n* [x] Pixel Font (Faster version)\n* [x] Static shapes: Circle\n* [x] Dynamic shapes: Line\n* [x] Space mappings\n* [x] add Outline shapes\n* [x] Alpha coloring / transparency\n* [x] Node Dragging\n* [x] Zoom Node\n* [x] Filters: transform and translate\n* [x] Particles\n* [x] Animation (tweening) *Using tanema's library*: https://github.com/tanema/gween\n* [x] Box2D physics (with space ship). Uses: https://github.com/ByteArena/box2d\n* [x] Zones combined with Zoom\n* [x] Interpolation\n* [x] Sprite Textures (quads)\n* [x] Scene Transitioning\n* [x] Bitmap fonts\n* [x] Simple motion animations\n* [x] Audio (SFXR 8bit sound: https://sfxr.me/) (However, 16bit stills needs completion)\n  * built GUI using imGui: https://github.com/inkyblackness/imgui-go\n  * build using: https://github.com/faiface/beep\n* [ ] \u003cb style=\"color:red\"\u003e*working*\u003c/b\u003e Custom vector font (needs lower case completion)\n* [ ] Vector Fonts via SVG import\n* [ ] \u003cb style=\"color:orange\"\u003ePartial Completion\u003c/b\u003e QuadTrees\n  * [ ] Example 1: Random spread of points/particles into tree (with capacity)\n  * [ ] Example 2: Random spread of squares\n  * [ ] Example 3: Insert squares at Mouse\n  * [ ] Example 4: Triangle ship moving through tree\n  * [x] Example 5: Query and highlight tree according to obj-obj intersecting\n* [ ] Improve Bitmap fonts. Rename current bitmap font object to \"CharacterBitmapFont\" and add new one called \"StringBitmapFont\". The new one creates a buffer of quads.\n* [ ] Scripting via https://wren.io/ or make custom language using via http://craftinginterpreters.com/\n* [ ] Simple Widget GUI framework\n  * [ ] Buttons\n  * [ ] Checkboxes\n  * [ ] ListBox and Combo dropdowns\n  * [ ] Inputs (text, float, int, bool)\n  * [ ] Text\n  * [ ] Dialogs (OK, Yes/No, etc.)\n  * [ ] Grouping (i.e. Radio buttons)\n* [ ] Batch rendering\n* [ ] OpenGL ES (https://github.com/golang/go/wiki/Mobile)\n* [ ] Physics with Textures\n* [ ] Joysticks and Gamepads\n* [ ] Shaders with interleved vertex/color, for example, checkboards\n* [ ] Stippling with OpenGL patterns (aka advanced shaders)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdevore%2Franger-go-ige","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwdevore%2Franger-go-ige","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdevore%2Franger-go-ige/lists"}