{"id":13412920,"url":"https://github.com/EngoEngine/engo","last_synced_at":"2025-03-14T18:32:41.927Z","repository":{"id":23165640,"uuid":"26521386","full_name":"EngoEngine/engo","owner":"EngoEngine","description":"Engo is an open-source 2D game engine written in Go.","archived":false,"fork":false,"pushed_at":"2024-07-12T07:03:02.000Z","size":11344,"stargazers_count":1752,"open_issues_count":50,"forks_count":136,"subscribers_count":48,"default_branch":"master","last_synced_at":"2024-10-25T05:22:29.502Z","etag":null,"topics":["engo","entity-component-system","game-engine","go","opengl"],"latest_commit_sha":null,"homepage":"https://engoengine.github.io","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/EngoEngine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2014-11-12T05:50:03.000Z","updated_at":"2024-10-20T01:16:49.000Z","dependencies_parsed_at":"2024-01-08T15:03:00.336Z","dependency_job_id":"3b1dddff-eac1-4d58-9ffb-1240dac710d2","html_url":"https://github.com/EngoEngine/engo","commit_stats":{"total_commits":860,"total_committers":68,"mean_commits":"12.647058823529411","dds":0.7674418604651163,"last_synced_commit":"d9e2073335d37d774d356372e57ce52a6934fca8"},"previous_names":["paked/engi","engoengine/engi"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngoEngine%2Fengo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngoEngine%2Fengo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngoEngine%2Fengo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngoEngine%2Fengo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EngoEngine","download_url":"https://codeload.github.com/EngoEngine/engo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221495314,"owners_count":16832458,"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":["engo","entity-component-system","game-engine","go","opengl"],"created_at":"2024-07-30T20:01:31.097Z","updated_at":"2024-10-26T04:31:25.374Z","avatar_url":"https://github.com/EngoEngine.png","language":"Go","readme":"# Engo\n[![GoDoc](https://godoc.org/github.com/EngoEngine/engo?status.svg)](https://godoc.org/github.com/EngoEngine/engo)\n[![Join the chat at https://gitter.im/EngoEngine/engo](https://badges.gitter.im/EngoEngine/engo.svg)](https://gitter.im/EngoEngine/engo?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) ![License](https://img.shields.io/badge/License-MIT-blue.svg)\n[![Build Status](https://travis-ci.org/EngoEngine/engo.svg?branch=master)](https://travis-ci.org/EngoEngine/engo)\n[![Build status](https://ci.appveyor.com/api/projects/status/019qc8hncmhnje83?svg=true)](https://ci.appveyor.com/project/otraore/engo)\n[![Go Report Card](https://goreportcard.com/badge/github.com/EngoEngine/engo)](https://goreportcard.com/report/github.com/EngoEngine/engo)\n[![Coverage Status](https://coveralls.io/repos/github/EngoEngine/engo/badge.svg?branch=master)](https://coveralls.io/github/EngoEngine/engo?branch=master)\n\nA cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is\ncurrently compilable for Mac OSX, Linux and Windows. With the release of Go 1.4, supporting Android and the inception of\niOS compatibility, mobile has been be added as a release target. Web support\n([wasm](https://github.com/golang/go/wiki/WebAssembly)) is also available.\n\nv1.0 is now available! To celebrate, there will be a game jam coming soon to celebrate the release, start actually\nbuilding things and hopefully find any issues. Updates for this will come soon.\n\n## Getting in touch / Contributing\n\nWe have a [gitter](https://gitter.im/EngoEngine/engo) chat for people to join who want to further discuss `engo`. We are happy to discuss bugs, feature requests and would love to hear about the projects you are building!\n\n## Getting Started\n\n### Theory: `common` vs `engo`\n\nThere are currently two major important packages within this repository: `github.com/EngoEngine/engo` and `github.com/EngoEngine/engo/common`.\n\nThe top level `engo` package contains the functionality of creating windows, starting the game, creating an OpenGL\ncontext and handling input. It is designed to be used with Systems designed as per `github.com/EngoEngine/ecs` specifications.\nThe `common` package contains our ECS implementations of common game development Systems like a  `RenderSystem` or\n`CameraSystem`.\n\n### Practice: Getting it to Run\n\n1. First, you have to install some dependencies:\n  1. If you're running on Debian/Ubuntu:\n    `sudo apt-get install libasound2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev libgl1-mesa-dev git-all`\n  2. If you're running on Windows you'll need a gcc compiler that the go tool can use and have `gcc.exe` in your PATH environmental variable. We recommend [Mingw](http://mingw-w64.org/doku.php/start) since it has been tested. You'll also need git installed, we recommend getting it from [The official Git site](http://git-scm.com/download/win)\n  3. If you're on OSX, you will also need Git. You can find instructions [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git#Installing-on-Mac). You can also use homebrew to install git as well. [Open an issue if you have any issues](https://github.com/EngoEngine/engo/issues/new)\n2. Then, you can go get it:\n`go get -u github.com/EngoEngine/engo`\n  1. You may also want to get the dependencies of platform specific builds, so that build tools like godef can use them:\n  `go get -u -tags js ./...`\n  `go get -u -tags android ./...`\n3. Now, you have two choices:\n  1. Visit [our website](https://engoengine.github.io/), which hosts a full-blown tutorial series on how to create your own game, and on top of that, has some conceptual explanations;\n  2. Check out some demos in our [demos folder](https://github.com/EngoEngine/engo/tree/master/demos).\n4. Finally, if you run into problems, if you've encountered a bug, or want to request a feature, feel free to shoot\nus a DM or [create an issue](https://github.com/EngoEngine/engo/issues/new).\n\n## Breaking Changes Since v1.0\nEngo is always undergoing a lot of optimizations and constantly gets new features. However, this sometimes means things break. In order to make transitioning easier for you,\nwe have a list of those changes, with the most recent being at the top. If you run into any problems, please contact us at [gitter](https://gitter.im/EngoEngine/engo).\n\n* TMXObject Width and Height is in pixels, and can be fractional. This has changed from an int to a float64.\n* TMXTileset now uses a Spritesheet instead of a Texture. This helps keep track of the guid better and allows the gid to not start at zero and have skips in it, as well as for borders and spacing in the tile sheet.\n* TMX Level's objects have all been rolled into Object rather than have separate things like \"PolyLineObject\". This is to be\nconsistent with the TMX format.\n* The Shader interface now has a `SetCamera(*CameraSystem)` method. This method allows shaders to automatically update the camera system as it changes, such as between scenes or when the camera system is added.\n* The domain engo.io has expired. Now use `github.com/EngoEngine/engo` as the import path, and the site can be located at\nengoengine.github.io\n\n## Roadmap to v1.1\nA list of issues for v1.1 can be found [here](https://github.com/EngoEngine/engo/issues/552). There's always room\nfor improvement! Feel free to submit proposals, open issues, and let us know how we can improve!\n\n## History\n\nEngo, originally known as `Engi` was written by [ajhager](https://github.com/ajhager) as a general purpose Go game engine. With a desire to build it into an \"ECS\" game engine, it was forked to `github.com/paked/engi`. After passing through several iterations, it was decided that the project would be rebranded and rereleased as Engo on its own GitHub organization.\n\n## Credits\n\nThank you to everyone who has worked on, or with `Engo`. None of this would be possible without you, and your help has been truly amazing.\n\n- [ajhager](https://github.com/ajhager): Building the original `engi`, which engo was based off of\n- [paked](https://github.com/paked): Adding ECS element, project maintenance and management\n- [Newbrict](https://github.com/Newbrict): Font rendering, TMX support\n- [EtienneBruines](https://github.com/EtienneBruines): Rewriting the OpenGL code, maintenance and helping redesign the API\n- [otraore](https://github.com/otraore): Adding in GopherJS support, maintenance\n- [Everyone else who has submitted PRs or issues over the years, to any iteration of the project](https://github.com/EngoEngine/engo/graphs/contributors)\n\nThese are 3rd party projects that have made `engo` possible.\n- The original [engi](https://github.com/ajhager/engi) game engine which engo was based off of ([BSD license](https://github.com/ajhager/engi/blob/master/LICENSE))\n- [Oto](https://github.com/hajimehoshi/oto), a low-level cross-platform library to play sound. The AudioSystem uses this and is based on\nthe audio package used in [Ebiten](https://github.com/hajimehoshi/ebiten).\n","funding_links":[],"categories":["Game Development","Go","\u003cspan id=\"游戏开发-game-development\"\u003e游戏开发 Game Development\u003c/span\u003e","游戏开发","Relational Databases","[Applications powered by ECS](#contents)","Libraries"],"sub_categories":["Advanced Console UIs","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e","Search and Analytic Databases","SQL 查询语句构建库","检索及分析资料库","[Game Engines](#contents)","Go"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEngoEngine%2Fengo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEngoEngine%2Fengo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEngoEngine%2Fengo/lists"}