# storm-engine
**Repository Path**: jjzhang166/storm-engine
## Basic Information
- **Project Name**: storm-engine
- **Description**: Storm Engine 是《海狗》和《加勒比海盗》等游戏背后的游戏引擎,该游戏引擎已在 GPLv3 许可下开源
- **Primary Language**: C/C++
- **License**: GPL-3.0
- **Default Branch**: develop
- **Homepage**: https://www.oschina.net/p/storm-engine
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2021-12-02
- **Last Updated**: 2021-12-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Storm-Engine
Game engine behind [Sea Dogs](https://en.wikipedia.org/wiki/Sea_Dogs_(video_game)), [Pirates of the Caribbean](https://en.wikipedia.org/wiki/Pirates_of_the_Caribbean_(video_game)) and [Age of Pirates](https://en.wikipedia.org/wiki/Age_of_Pirates_2:_City_of_Abandoned_Ships) games.
[](https://discord.gg/jmwETPGFRe)
[](https://github.com/storm-devs/storm-engine/actions/workflows/cibuild.yml)
* [GitHub Discussions](https://github.com/storm-devs/storm-engine/discussions)
* [Discord Chat](https://discord.gg/jmwETPGFRe)
## Supported games
- [Sea Dogs: To Each His Own](https://github.com/storm-devs/sd-teho-public)
- [Sea Dogs: City of Abandoned Ships](https://store.steampowered.com/app/937940/Sea_Dogs_City_of_Abandoned_Ships/) (work in progress)
- [Pirates of the Caribbean: New Horizons](https://www.piratesahoy.net/wiki/new-horizons/) (work in progress)
## Building the project
You need to install [Conan](https://conan.io/downloads.html) and add it to the `%PATH%` environment variable. Also, make sure you have the following Visual Studio components installed:
- C++ CMake Tools for Windows
- C++ Clang Compiler for Windows
- C++ MFC for latest v142 build tools (x86 & x64)
Open the repo root as a CMake project in Visual Studio 2019 and select `engine.exe` as a startup item.
For running `engine.exe` you need to have [DirectX 9 runtime libraries](https://www.microsoft.com/en-us/download/details.aspx?id=8109) installed.
You will also need assets from one of the supported games.
## Roadmap
Since our development team is small, we want to reduce the amount of code we have to maintain.
For this reason, we decided to rely on the C++ standard library or third-party libraries if possible.
Some things that we are going to do:
- Replace a custom math library with a third-party one, e.g. [glm](https://github.com/g-truc/glm).
- Replace custom rendering code with a [bgfx](https://github.com/bkaradzic/bgfx) library.
- Replace custom input handling code with a third-party library (see the [discussion](https://github.com/storm-devs/storm-engine/discussions/19)).
- Replace custom data structures with C++ standard types.
- Replace a custom scripting language with Lua.
- Replace ini config files with a standard format (see the [discussion](https://github.com/storm-devs/storm-engine/discussions/26)).
- Replace custom binary asset formats with standard ones.
- Update code using the latest C++ standard
## Contributing
If you'd like to get involved, please check [CONTRIBUTING.md](https://github.com/storm-devs/storm-engine/blob/develop/CONTRIBUTING.md).
## License
[GPL-3.0 License](https://choosealicense.com/licenses/gpl-3.0/)