This sample is a minimal Game DLL implementation meant to showcase how a game project can be built using only C++ code, as opposed to combining C++ with C# and / or Lua.
The sample implements the following:
The sample does not implement a player using the IActorSystem interface, instead opting for a dummy player entity for the sake of sample simplicity.
Keep in mind that the startup section only covers the Launcher functionality, Editor operates differently via the IEditorGame interface.
Entities in the sample all implement the CNativeEntityBase helper, a class that in turn implements ISimpleExtension and IGameObjectExtension in order to expose a few helper methods for setting and getting Entity properties that can be manipulated via the Sandbox Editor's Properties panel. The sample also implements a custom IEntityPropertyHandler implementation (instantiated once per entity class) in order to provide support for pure C++ entities. Without this, entities need a Lua script in order to expose properties to designers.
Each entity is registered in <sample root>/Code/Game/GameDll/Game/GameFactory.cpp, inside the CGameFactory::Init function. The entity being registered can specify any number of entity properties and then register using CGameFactory::RegisterNativeEntity in order to have the engine recognize and expose the entity to designers.
The "Player" in this sample is merely a dummy entity automatically spawned at the center of the map in CGameRules::OnClientConnect (called shortly after level load). The entity has no responsibility barring a manual update of the view camera position each frame to match the entity position.