The Peace Engine - the peaceful motor of all our games.
Find a file
2018-06-25 20:11:39 -04:00
Documentation reimplement most of the UI 2018-06-23 23:25:35 -04:00
Libraries New command parsing system 2017-10-29 19:28:21 -04:00
OpenWheels@4c6b320625 dramatically enhance circle primitive rendering performance 2018-06-03 08:39:30 -04:00
OpenWheels.MonoGame@ca892f3e9d MUCH BETTER RENDERER WHEEEEE 2018-06-03 01:39:44 -04:00
PeaceEngine WIP music player demo 2018-06-25 20:11:39 -04:00
PeaceEngine.DemoProject WIP music player demo 2018-06-25 20:11:39 -04:00
WatercolorGames.Utilities Fix scissor rects and texture allocation 2018-06-09 23:39:47 -04:00
.gitattributes rylan doesn't like python 2017-06-20 20:35:43 +10:00
.gitignore Seriously 2018-06-14 21:17:23 -04:00
.gitmodules MUCH BETTER RENDERER WHEEEEE 2018-06-03 01:39:44 -04:00
appveyor.yml Okay NOW it should work 2018-06-17 08:47:17 -04:00
build.sh Update build.sh 2018-03-27 08:44:32 -04:00
CONTRIBUTING.md Update CONTRIBUTING.md 2017-03-23 17:45:42 -07:00
CREDITS.md Added links to GitHub profiles in CREDITS 2017-01-14 09:11:20 -06:00
LICENSE Update license to gplv3, and make the engine stop updating while the window isn't in focus 2018-03-16 09:24:14 -04:00
PeaceEngine.sln Remove dev console, let the OS draw the mouse, and fix a range exception with cutscene disposal. 2018-06-21 13:22:32 -04:00
README.md Update NuGet packages 2018-06-14 16:17:41 -04:00
updatepackages.sh remove -e that breaks everything 2017-11-03 20:19:58 +11:00

The Peace Engine

Build status

Peace Engine is a game engine written ontop of the MonoGame framework, compatible with Windows, macOS and Linux using OpenGL.

There are three main key features of Peace Engine that may interest you.

  1. Modular components - Every API and feature of the engine is inside a modular component managed completely by the engine. You should never have to tell the engine that you're adding a feature to your game. You just tell it what other components you'll need, and it'll do the rest.
  2. Layered entity system - Everything you see, hear or interact with in youur game is a Peace Engine entity. Entities can be spawned on different layers, they can render to the screen, accept mouse or keyboard input, and access any Engine Components you'd like. You can spaw them whenever you want.
  3. Extended Content Pipeline - You can save a lot of disk space in your game by using Peace Engine's built-in content pipeline extensions for sound effects and textures. Instead of letting MonoGame store your raw texture or audio data in .xnb files, you can keep your files in their compressed formats (.png, .jpg, etc for textures, and .ogg for audio) and load them in as Texture2D or SoundEffect just like you would in regular MonoGame.

Setting up the Peace Engine

So you want to set up the engine for your own game? Well, all you need is to follow this article on our website.

That article is a good spot to start for modding The Peacenet as well, but getting the code is a bit different.

Other neat features

  1. Robust UI system - The API is loosely based off Windows Forms for ease of use, but the UI itself can do many more things than Windows Forms will ever be able to. Scrollables, editables, labels, check boxes, list views, the list goes on. Animation is also extremely simple. You can very easily build complex user interfaces for your game.
  2. Ready-made configuration and save system - with Peace Engine, you don't have to worry about writing your own configuration manager or save system. You just need to know what you want to store. We'll take care of storing it for you.
  3. Rendering things on screen has never been easier - Thanks to our Graphics Context class, all the usual things you'd want to do in a paint program can be done in-engine - drawing circles, lines, rectangles, polygons, text, and more. Sprite shaders, scissor-testing and render offsets are also supported.

...I wonder if the commit that adds this line of text will appear on Developers Swearing.