-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the Sunset Engine wiki. This wiki will be used to give developers all the tools and knowledge they need to create the best works of art they can. The engine also has API documentation for a full rundown of all systems and functions that you can use. Personally, I've always found that reading the API can answer a lot of unanswered/unasked questions too. For any mistakes or questions please submit an issue with the corresponding tags. Enjoy the engine and hope these documents find you well.
The Wiki, API and Documentation are all great resources into how this project works and I plan to keep adding to the documents as this project progresses. If you have any questions or run into any issues, please check out the project's issues, the wiki pages here or feel free to send me an email (@srepollock).
This project is for my final project to complete my Bachelors of Computer Systems in Games Development. I began working on this project as I thought I could bring something groundbreaking and new to game development and maintenance, but through my reading, learning and quest to build the engine I've come to realize that sometimes groundbreaking doesn't always mean completely new and revolutionary. Simply, it could be a new approach or feature - a new perspective if you will - of concepts already implemented. I plan to approach my project in this manner, showing from my perspective how an engine can operate and utilize frameworks to its full potential to deploy continuously and thoroughly tested, to an ever-changing ecosystem. I hope that I can document my findings and procedure well enough that all who would like to work on this project in the future can pick it up quickly. The main goal of this project is to create a system that has one code base and can be deployed to multiple operating systems with no changes to the codebase and is targeted at reusability, versatility and modding from and for developers.
The engine will use a stream-based messaging system that will allow each system to talk to one another in a decoupled manner, without having any connections to each other. This could also allow for connectivity at a later date. The message system is very important in a game engine and getting a message system that allows an engine to be decoupled in its dependency tree is key. The backbone of the engine is the message system, so be sure to check out the Wiki on that sooner than later.
The engine will also feature an entity component system for objects. This is simply because the developer can create new and specific game files that work in each and every scenario. Adding game entities should be simple and quick to get running, without issues arising out of nowhere and saying nothing about them. TypeScript by default is a strongly typed language and will catch type errors in most IDE's.
Finally, the engine will allow for real-time changes to take place, without having to recompile the entire game. When changes are made to objects, with the TypeScript compiler's watch
function files can be compiled once they are saved and changes take effect right away!
To contribute, please see the CONTRIBUTING file.
By Spencer Pollock @srepollock