跳到正文

heheboobes

nebula-engine

Nebula Engine - 2D game engine built on C++ and SFML

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

这篇是英文原文

下面正文是项目自己的英文 README。想读全文就用浏览器自带的整页翻译: Chrome / Edge 点地址栏右侧的翻译图标,或用右键菜单里的「翻译成中文」; 手机浏览器一般在菜单里。

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

Nebula Engine

图片:Build Status 图片:Version 图片:License 图片:C++ 图片:Platform 图片:Tests

A high-performance 2D game engine built on C++ and SFML, designed for rapid prototyping and production-grade game development.

Features

  • Entity Component System (ECS) architecture
  • Hardware-accelerated 2D rendering pipeline
  • Built-in physics engine with collision detection
  • Spatial audio system
  • Scene management with transitions
  • Live editor and debugging tools
  • Cross-platform (Windows, Linux, macOS)
  • Post-processing effects pipeline
  • Particle system
  • 2D lighting system
  • Networking (TCP/UDP)

System Requirements

ComponentMinimumRecommended
OSWindows 10, Ubuntu 20.04, macOS 11Windows 11, Ubuntu 22.04, macOS 13
CPUIntel i5 / AMD Ryzen 3Intel i7 / AMD Ryzen 5
RAM4 GB8 GB
GPUOpenGL 3.3 supportOpenGL 4.5 support
Disk500 MB2 GB

Dependencies

  • C++17 compatible compiler (GCC 9+, Clang 12+, MSVC 2019+)
  • CMake 3.14+
  • SFML 2.6+
  • OpenGL 3.3+
  • OpenAL (audio)

Building

# Clone the repository
git clone https://github.com/heheboobes/nebula-engine.git
cd nebula-engine

# Configure
cmake -B build -DCMAKE_BUILD_TYPE=Release

# Build
cmake --build build --config Release

# Run tests
ctest --test-dir build

Build Options

OptionDefaultDescription
NEBULA_BUILD_TESTSONBuild unit tests
NEBULA_BUILD_EXAMPLESONBuild example projects
NEBULA_BUILD_EDITORONBuild the editor
NEBULA_ENABLE_PROFILINGOFFEnable built-in profiler

Quick Start

#include 
using namespace nebula;

class MyGame : public Application {
public:
    MyGame() : Application("My Game", 1280, 720) {}

    void onInit() override {
        auto player = ecs::World::createEntity();
        ecs::World::addComponent(player, "hero.png");
        ecs::World::addComponent(player, {640, 360});
    }

    void onUpdate(float dt) override {
        auto& t = ecs::World::getComponent(player);
        if (Input::isKeyHeld(Key::Right)) t.position.x += 300 * dt;
        if (Input::isKeyHeld(Key::Left))  t.position.x -= 300 * dt;
    }

    void onRender() override {
        Renderer::begin(camera);
        Renderer::drawSprites();
        Renderer::end();
    }

    ecs::Entity player;
    gfx::Camera camera;
};

int main() {
    MyGame game;
    game.run();
}

Downloads

PlatformLink
Windowsnebula-engine-v0.7.0-win64.zip
Linuxnebula-engine-v0.7.0-linux.tar.gz
macOSnebula-engine-v0.7.0-macos.tar.gz

Documentation

  • API Overview
  • Getting Started
  • ECS Tutorial
  • Graphics Guide
  • Physics Guide
  • Audio Guide
  • UI Guide
  • Scene Guide
  • Networking Guide
  • Editor Guide
  • Performance Guide
  • Best Practices
  • Examples
  • Changelog

Acknowledgments

  • SFML - Multimedia library
  • Dear ImGui - Editor UI framework
  • Tracy Profiler - Performance profiling
  • nlohmann/json - JSON serialization
  • All contributors and community members

License

MIT License

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。