Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Lightweight, cross-platform, 2D game engine | ECS; Lua Console; Physics; Tile based

License

Notifications You must be signed in to change notification settings

JerboaBurrow/Hop

Repository files navigation

Hop

A lightweight 2D game engine, in C++ with embedded Lua

Features

  • Free, MIT open sourced..
  • Use as a standalone engine or as a drop in component (e.g. with SFML)..
  • Entity component system (ECS) based.
  • Physics (Discrete element method):
    • collision primitives (circles, rects).
    • collision meshes built from primitives (rigid and soft).
    • configurable friction, gravity, drag, and restitution.
    • super-sampling.
    • (good) multithreading.
    • Cell list collision detection.
    • Quad tree collision detection.
    • Object-object and object-world collisions.
    • collision islands and other optimisations.
  • Rendering (provided by jGL, Vulkan is a WIP):
    • OpenGL.
    • Vulkan.
    • sprites (atlasing, and animateable atlases).
    • collision primitives (circles/rects).
    • Freetype fonts.
    • shapes (it is in jGL).
    • lightmaps and shadows.
    • msaa.
    • particle effects (it is in jGL).
    • texture management.
    • (compressed) texture asset packs.
    • Engine UI (Dear ImGui).
  • Window management:
    • Single window creation.
    • Multi-window.
    • Key and mouse events.
    • Frame limiting.
    • Snapping and resizing.
    • Screenspace bbs.
  • Worlds:
    • Perlin (marching squares).
    • Tile maps.
    • object-world collisions.
    • editable.
    • saveable.
    • tile textures.
  • Lua console
    • ECS bindings (object management).
    • Compressed script asset archive support.
    • Live in game console
  • Cross platform:
    • Linux.
    • Windows.
    • macOS.
    • Android.
    • IOS (mostly held up by jGL rendering).
  • Tooling
  • mesh editor.
  • Lua script packer.
  • World editor.
  • Texture packer.

Documentation

Checkout the docs here, and also the jGL docs here

Setup

  • clone, and init the submodules (you can use submodules.sh)
  • the build.sh can be used to build

OSS Dependencies and Licenses

  • Freetype is licensed under the The FreeType Project LICENSE
  • GLEW is licensed under aModified BSD License, the Mesa 3-D License (MIT) and the Khronos License (MIT).
  • GLFW is licensed under the zlib/libpng
  • GLM is licensed under the MIT License (but also, no bunnies have been made unhappy)
  • Lua is licensed under the MIT license
  • Miniaudio is licensed under the MIT-0 license
  • stduuid is licensed under the MIT license
  • vorbis and ogg is licensed under a BSD license
  • zlib is licensed under the zlib license

Thanks to all the OSS developers: David Turner, Robert Wilhelm, and Werner Lemberg (Freetype), Milan Ikits <milan ikits[]ieee org>, Marcelo E. Magallon <mmagallo[]debian org>, and Lev Povalahev Brian Paul, The Khronos Group Inc (GLEW), Marcus Geelnard and Camilla Löwy (GLFW), G-Truc Creation (GLM), Lua.org, PUC-Rio (Lua), David Reid (Miniaudio), Marius Bancila https://github.com/mariusbancila/stduuid#MIT-1-ov-file (stduuid), Xiph.org Foundation (vorbis, ogg), and Jean-loup Gailly and Mark Adler (zlib).

About

Lightweight, cross-platform, 2D game engine | ECS; Lua Console; Physics; Tile based

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /