engo

EngoEngineMIT更新放缓

用 Go 写的开源 2D 游戏引擎,基于 OpenGL 渲染和实体组件系统架构,适合用 Go 快速开发跨平台 2D 游戏。

Engo is an open-source 2D game engine written in Go.

v1.0.8发布于 2022-11-12 22:54 UTC1,822star132fork同步于 2026-11-07 07:34 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v1.0.8
  1. v1.0.8engo v1.0.8最新正式版2022-11-12 · 2022-11-12 22:54 UTC
    • Added some functions to get pre-loaded fonts and sprite sheets in common
  2. 1.07engo v1.0.72022-07-10 · 2022-07-10 16:10 UTC
    查看更新说明

    What's Changed

    • Add support for Apple M1 chip here
    • Added pause feature to Audio Demo here
    • Added LoadedSpritesheet and LoadedFont functions here to access preloaded spritesheets and fonts without having to pass pointers around scenes/systems

    Full Changelog: https://github.com/EngoEngine/engo/compare/v1.0.6...1.07

  3. v1.0.6engo v1.0.62021-10-26 · 2021-10-26 17:18 UTC
    查看更新说明
    • Added support for go's standard library's binary data packing, as well as an example
    • Updated font to accurately create Atlases without a buffer. This saves space and allows the letters to be better positioned on screen.
  4. v1.0.5engo v1.0.52020-06-20 · 2020-06-20 17:02 UTC
    查看更新说明

    engo v1.0.5

    This minor version has small bug fixes, updated the glfw build to use GLFW 3.3,

    • fixes to common.AudioSystem's usage of oto
    • update to go1.13.x
    • common.RenderComponent now has a field for StartingZIndex, so SetZIndex doesn't need to be immediately called just after creation all the time
    • depreciated gopherjs in favor of wasm
    • a TextureAtlas added to common, as well as support for TexturePacker file types
  5. v1.0.4engo v1.0.42019-04-06 · 2019-04-06 05:13 UTC
    查看更新说明
    • Import path is now "github.com/EngoEngine/engo" instead of "engo.io/engo".

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Engo

    GoDoc Join the chat at https://gitter.im/EngoEngine/engo License Build Status Build status Go Report Card Coverage Status

    A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. Engo is currently compilable for Mac OSX, Linux and Windows. With the release of Go 1.4, supporting Android and the inception of iOS compatibility, mobile has been be added as a release target. Web support (wasm) is also available.

    v1.0 is now available! To celebrate, there will be a game jam coming soon to celebrate the release, start actually building things and hopefully find any issues. Updates for this will come soon.

    Getting in touch / Contributing

    We have a gitter 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!

    Getting Started

    Theory: common vs engo

    There are currently two major important packages within this repository: github.com/EngoEngine/engo and github.com/EngoEngine/engo/common.

    The top level engo package contains the functionality of creating windows, starting the game, creating an OpenGL context and handling input. It is designed to be used with Systems designed as per github.com/EngoEngine/ecs specifications. The common package contains our ECS implementations of common game development Systems like a RenderSystem or CameraSystem.

    Practice: Getting it to Run

    1. First, you have to install some dependencies:
    2. If you're running on Debian/Ubuntu: sudo apt-get install libasound2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev libgl1-mesa-dev git-all
    3. 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 since it has been tested. You'll also need git installed, we recommend getting it from The official Git site
    4. If you're on OSX, you will also need Git. You can find instructions here. You can also use homebrew to install git as well. Open an issue if you have any issues
    5. Then, you can go get it: go get -u github.com/EngoEngine/engo
    6. You may also want to get the dependencies of platform specific builds, so that build tools like godef can use them: go get -u -tags js ./... go get -u -tags android ./...
    7. Now, you have two choices:
    8. Visit our website, which hosts a full-blown tutorial series on how to create your own game, and on top of that, has some conceptual explanations;
    9. Check out some demos in our demos folder.
    10. Finally, if you run into problems, if you've encountered a bug, or want to request a feature, feel free to shoot us a DM or create an issue.

    Breaking Changes Since v1.0

    Engo 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, we 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.

    • TMXObject Width and Height is in pixels, and can be fractional. This has changed from an int to a float64.
    • 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.
    • TMX Level's objects have all been rolled into Object rather than have separate things like "PolyLineObject". This is to be consistent with the TMX format.
    • 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.
    • The domain engo.io has expired. Now use github.com/EngoEngine/engo as the import path, and the site can be located at engoengine.github.io

    Roadmap to v1.1

    A list of issues for v1.1 can be found here. There's always room for improvement! Feel free to submit proposals, open issues, and let us know how we can improve!

    History

    Engo, originally known as Engi was written by 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.

    Credits

    Thank 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.

    These are 3rd party projects that have made engo possible.

    • The original engi game engine which engo was based off of (BSD license)
    • Oto, a low-level cross-platform library to play sound. The AudioSystem uses this and is based on the audio package used in Ebiten.