Welcome to Protogame¶
Protogame is a cross-platform .NET game engine. It aims to allow developers to prototype games quickly during the early stages of development, and then scale those games into full projects.
Protogame is fully open source and available under an MIT license.
This documentation is organised into several sections, depending on what you need to achieve:
General Information¶
Basic Walkthroughs¶
If you’re just starting out with Protogame, it is highly recommended that you follow the first walkthrough: Creating your first game. This will walk you through creating your first game with absolutely nothing installed or set up.
Engine API¶
This documentation covers the core concepts of the engine, as well as the APIs that are available for use. It is organised into sections that roughly correlate with various aspects of the engine; core structure, graphics APIs, networking, etc.
- Core: Architecture
- Core: Services and APIs
- Asset Management
- Audio
- Graphics
- Graphics: 2D Rendering
- Graphics: 3D Rendering
- Graphics: Caching
- Events (Input)
- Physics
- Level Management
- Command Framework
- AI Framework
- Particle Systems
- Networking: Multiplayer
- BooleanTimeMachine
- DoubleTimeMachine
- FlowControlChangedEventArgs
- FlowControlChangedEventHandler
- Fragment
- FragmentStatus
- INetworkEventContext
- InputPrediction
- Int16TimeMachine
- Int32TimeMachine
- InterpolatedTimeMachine<T>
- MxClient
- MxClientEventArgs
- MxClientEventHandler
- MxDisconnectEventArgs
- MxDisconnectEventHandler
- MxDispatcher
- MxMessage
- MxMessageEventArgs
- MxMessageEventHandler
- MxMessageReceiveEventArgs
- MxMessageReceiveEventHandler
- MxMessageSerializer
- MxPayload
- MxReliability
- MxReliabilityReceiveState
- MxReliabilitySendState
- MxReliabilityTransmitEventArgs
- MxReliabilityTransmitEventHandler
- MxUtility
- SingleTimeMachine
- StringTimeMachine
- TimeMachine<T>
- TransformTimeMachine
- Vector3TimeMachine
- Networking: Dedicated Servers
- Scripting and Modding
- Hardware Sensors
- UI Framework
Engine Utilities¶
Protogame provides various smaller utility APIs that serve very specific purposes. These APIs are often only used for specific games, or when targeting specific platforms.
Third-Party APIs¶
Protogame makes wide usage of third-party libraries to provide functionality, most notably MonoGame. Classes and methods in those third-party libraries are documented in the section below.
Other Documentation¶
Miscellanous documentation that doesn’t belong under any other category.