• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

amzeratul/halley: A lightweight game engine written in modern C++

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

amzeratul/halley

开源软件地址:

https://github.com/amzeratul/halley

开源编程语言:

C++ 55.0%

开源软件介绍:

Halley Logo

License Language Standard

Halley Game Engine

A lightweight game engine written in C++17. It has been used to ship Wargroove, a turn-based strategy game, on Windows, Mac (experimental), Nintendo Switch, Xbox One and PS4 (with experimental Android and iOS ports WIP).

The Halley Game Engine is licensed under the Apache 2.0 license.

Check out this repo for a sample game (our Global Game Jam 2020 entry).

Join us on our Discord server!

Design guidelines & objectives

  • Modern graphics pipelines, with first-class shader support
  • Written in modern C++
  • "True" entity system based, with components that store data and systems that operate on families of components
  • Tuned for high performance
  • Code-first: no reliance on editor to generate anything
  • Easy to use: games should be easy to implement
  • Easy to maintain: games should be easy to keep working on long-term, after it has grown to a large project size
  • Cross-platform: support as many platforms as possible
  • No legacy: don't bother supporting legacy systems, such as Windows XP or older Android/iOS devices
  • Rich tools: where possible, provide tools to assist in development and debugging
  • Fast iteration time: hot-reloading wherever possible
  • Support scripting in other languages, such as Lua

Modules

Halley is divided in a several sub-projects:

  • engine
    • core: Core features of the engine, including looper, API management, resources, and graphics engine
    • audio: Audio engine
    • entity: Framework for dealing with entities, components, and systems
    • utils: Utilities library
    • net: Networking library
    • ui: UI library
  • plugins
    • asio: Network/Asio implementation
    • dx11: Video/DX11 implementation
    • opengl: Video/OpenGL implementation
    • metal: Video/Metal implementation (experimental)
    • sdl: System/SDL, Input/SDL and AudioOut/SDL implementations
    • winrt: System/WinRT, Input/WinRT, Platform/WinRT and AudioOut/XAudio2 implementations
  • tools
    • editor: Editor UI
    • cmd: Command-line interface to tools
    • runner: Provides an entry point for execution and dynamic reloading. Highly experimental.
    • tools: Editor tools to generate files and assets
  • tests
    • entity: Stress test of entity system
    • network: Stress test of network system
  • samples
    • (The samples project was taken down due to being too outdated, sorry about that!)

Platforms

The following platforms are supported:

  • Windows: Tested on Windows 10 Professional 64-bit (Might work on as low as XP 32-bit, but XP is no longer a tested target)
  • Mac OS X: Tested on Mac OS X 10.9.6
  • Linux: Tested on Ubuntu 16.04

Installation

Tools required

  • CMake 3.10+
  • C++17 capable compiler:
    • Visual C++ 15.9 (Visual Studio 2017)
    • Clang 5
    • GCC 7

Library dependencies

  • Engine:
    • Boost 1.72.0 (header only)
    • OpenGL [optional]
    • SDL 2.0.2 (2.0.7 recommended) [optional]
    • Windows 10 SDK [optional]
  • Also required if building Tools:
    • Boost 1.72.0 libraries: filesystem, system
    • Freetype 2.6.3
    • yaml-cpp 0.5.3

Set up

  • Ensure that all dependencies above are set up correctly
  • Build with CMake
    • Typical:
      cmake -DCMAKE_INCLUDE_PATH=path/to/headers \
            -DCMAKE_LIBRARY_PATH=path/to/libs \
            -DBOOST_ROOT=path/to/boost ..
      
    • Engine only:
      cmake -DBUILD_HALLEY_TOOLS=0 -DBUILD_HALLEY_TESTS=0 [...]
      
  • Run halley-editor tests/entity (or whichever other project you want to test)
  • Launch that project

Documentation

The full documentation is available on the Wiki.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap