Hey guys! I think it’s time to update you guys on the status of the Peace Engine. I’ve got a little bit of good news to share so let’s get right into it.
I said before that I wanted to go with SDL2 and C++ as the language and framework for Peace Engine. I’ve changed my mind. There are a few reasons why that I’ll mention later, but we’ve decided to go with .NET Core and MonoGame.
The main reasons are ease of development and easy portability. Whereas a C++ program needs to be compiled separately for each architecture and OS supported by the app, a .NET Core program can be compiled just once. Moreover, C# and .NET are far easier to learn than C++.
Okay, so what will it be like?
The engine is still in planning stages. I was not bluffing when I said we’d be planning every little detail of the engine before even beginning to code. I’ve got John Tur (reflectronic) on the planning department with me, and we’re currently planning the engine’s core architecture.
There are however some confirmed features so far, however I can’t go into great detail about how they’ll work since we don’t know yet. I can however confirm they’ll be coming.
- Editor: Definitely won’t be as advanced as the Unreal Editor, but we will be writing a visual editor that you’ll be doing most, if not all, your work in.
- UWP-based UI: The structure of the GUI engine will be based on the structure of the Universal Windows Platform (UWP). Essentially this means that your game’s UI will be responsive, scalable, skinnable, consistent, and generally fucking robust. Yeah, I just fucking swore. Twice.
- “Declarative” game design: It’s hard to explain exactly what this means, but essentially it means we’re doing to game programming what WPF did to Windows app development.
Features like packaging, scripting, a custom MSBuild SDK, and more are being planned as well.
On the topic of SDKs…
This isn’t planned yet, however I am working on a .NET Core wrapper library for the Bit Phoenix Projects (a.k.a Project: Cassian) API. This wrapper will allow you to integrate Projects into your C# applications, and we’ll most likely be using it inside the Peace Engine editor to allow you to easily reference your game design doc, manage tasks, and more without leaving the editor UI.
Some useful notes before I go
- The source code for Peace Engine will be at https://github.com/bitphoenixsoftware/peace-engine.
- The API reference and documentation will be at https://peace-engine.bitphoenixsoftware.com/.
- There is now a #peace-engine channel on our Discord.
- And you can find the Bit Phoenix Projects .NET Core wrapper at https://github.com/bitphoenixsoftware/bps-dotnet.