R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
server::IGameLogic Interface Referenceabstract

Interface for server-side game logic orchestration. More...

#include <IGameLogic.hpp>

Inheritance diagram for server::IGameLogic:
Inheritance graph
Collaboration diagram for server::IGameLogic:
Collaboration graph

Public Member Functions

virtual ~IGameLogic ()=default
 
virtual bool initialize ()=0
 Initialize game logic and ECS systems.
 
virtual void update (float deltaTime, uint32_t currentTick)=0
 Update game state for one frame.
 
virtual uint32_t spawnPlayer (uint32_t playerId, const std::string &playerName)=0
 Spawn a player entity.
 
virtual void despawnPlayer (uint32_t playerId)=0
 Remove a player from the game.
 
virtual void processPlayerInput (uint32_t playerId, int inputX, int inputY, bool isShooting, uint32_t sequenceId)=0
 Process player input event.
 
virtual uint32_t getLastProcessedInput (uint32_t playerId) const =0
 Get the last processed input sequence ID for a player.
 
virtual ecs::RegistrygetRegistry ()=0
 Get reference to the ECS registry.
 
virtual bool isGameActive () const =0
 Check if the game is active.
 
virtual void resetGame ()=0
 Reset game state (new game)
 
virtual const class GameRulesgetGameRules () const =0
 Get the game rules.
 

Detailed Description

Interface for server-side game logic orchestration.

Manages the deterministic game loop, entity lifecycle, and game state. Coordinates all ECS systems in a fixed update order.

Update order:

  1. Process player input
  2. Movement system (update positions)
  3. Collision detection
  4. Health/damage system
  5. Spawning system
  6. AI system
  7. Projectile system
  8. Boundary system (remove off-screen entities)
  9. Serialization (state snapshots)

Definition at line 42 of file IGameLogic.hpp.

Constructor & Destructor Documentation

◆ ~IGameLogic()

virtual server::IGameLogic::~IGameLogic ( )
virtualdefault

Member Function Documentation

◆ despawnPlayer()

virtual void server::IGameLogic::despawnPlayer ( uint32_t  playerId)
pure virtual

Remove a player from the game.

Parameters
playerIdPlayer ID to remove

Implemented in server::GameLogic.

◆ getGameRules()

virtual const class GameRules & server::IGameLogic::getGameRules ( ) const
pure virtual

Get the game rules.

Returns
Reference to game rules

Implemented in server::GameLogic.

◆ getLastProcessedInput()

virtual uint32_t server::IGameLogic::getLastProcessedInput ( uint32_t  playerId) const
pure virtual

Get the last processed input sequence ID for a player.

Parameters
playerIdPlayer ID
Returns
Sequence ID or 0 if none

Implemented in server::GameLogic.

Referenced by Server::_serializeEntity().

◆ getRegistry()

virtual ecs::Registry & server::IGameLogic::getRegistry ( )
pure virtual

Get reference to the ECS registry.

Returns
Registry reference

Implemented in server::GameLogic.

◆ initialize()

virtual bool server::IGameLogic::initialize ( )
pure virtual

Initialize game logic and ECS systems.

Returns
true if successful

Implemented in server::GameLogic.

◆ isGameActive()

virtual bool server::IGameLogic::isGameActive ( ) const
pure virtual

Check if the game is active.

Returns
true if game is running

Implemented in server::GameLogic.

◆ processPlayerInput()

virtual void server::IGameLogic::processPlayerInput ( uint32_t  playerId,
int  inputX,
int  inputY,
bool  isShooting,
uint32_t  sequenceId 
)
pure virtual

Process player input event.

Parameters
playerIdPlayer ID
inputXHorizontal input (-1, 0, 1)
inputYVertical input (-1, 0, 1)
isShootingWhether player is shooting
sequenceIdInput sequence ID (for redundancy handling)

Implemented in server::GameLogic.

◆ resetGame()

virtual void server::IGameLogic::resetGame ( )
pure virtual

Reset game state (new game)

Implemented in server::GameLogic.

◆ spawnPlayer()

virtual uint32_t server::IGameLogic::spawnPlayer ( uint32_t  playerId,
const std::string &  playerName 
)
pure virtual

Spawn a player entity.

Parameters
playerIdUnique player ID
playerNamePlayer's display name
Returns
Entity address or 0 if failed

Implemented in server::GameLogic.

◆ update()

virtual void server::IGameLogic::update ( float  deltaTime,
uint32_t  currentTick 
)
pure virtual

Update game state for one frame.

Parameters
deltaTimeTime since last frame in seconds
currentTickCurrent server tick number (from ServerLoop)

Implemented in server::GameLogic.


The documentation for this interface was generated from the following file: