Skip to content

mogemimi/pomdog

Repository files navigation

Pomdog

Join the chat at https://gitter.im/mogemimi/pomdog

Pomdog is an experimental game engine, written in C++20 or later, developed as a hobby. It is open source and distributed under the MIT License.

Feedback, issues and pull requests are always welcome!

  • Bugs and issues can be raised in Issues on GitHub.
  • Please feel free to ping me on Gitter chat room if you have any questions or feature requests.
  • You can track feature requests and the progress of its features/issues on Trello board. So feel free to add some comments or vote for your favorite feature requests.

Supported platforms

Pomdog is available and supported on the following platforms:

  • macOS 10.14 and later Build on macOS
  • Windows 10 and later Build on Windows
  • Linux (Ubuntu 20.04 and Arch Linux) Build on Linux
  • Emscripten and WebAssembly (Wasm) Build on Emscripten

Please refer to Architecture in the wiki for more details about the supported platforms and backends such as OpenGL, Metal, Vulkan, DirectX 11 and 12.

How to build

  1. Clone the repository

  2. Make sure that submodules are checked out and up-to-date:

    git submodule update --init --recursive
  3. To generate all project files (.xcodeproj or .vcxproj), run the following command:

    cd path/to/pomdog
    
    # Generate Xcode project
    cmake -Bbuild/macos -H. -G Xcode
    
    # Generate projects for Visual Studio 2019
    cmake -Bbuild/windows -H. -G "Visual Studio 16"
    
    # Generate Ninja files for Linux
    cmake -Bbuild/linux -H. -G Ninja
    
    # Generate Ninja files for Emscripten
    cmake -Bbuild/emscripten -H. -G Ninja

After generating, open the .xcodeproj or .vcxproj in Xcode/Visual Studio. If you need further information about building runtime libraries and developing apps, please visit:

Getting started

To create a new project with Pomdog, run tools/quickstart/main.go:

cd pomdog/tools/cmd/quickstart
go build

cd path/to/your/directory
./pomdog/tools/cmd/quickstart/quickstart

For more information, please see Getting Started.