Skip to content

Latest commit

Β 

History

History
78 lines (54 loc) Β· 1.98 KB

File metadata and controls

78 lines (54 loc) Β· 1.98 KB

πŸ“– Project Overview

This document provides a high-level overview of the R-Type Clone project.

For detailed technical architecture, see πŸ—οΈ Architecture.


🎯 Project Goals

  • Modular Engine: Lightweight, modular game-engine prototype
  • Cross-Platform: Runs on Linux and Windows
  • Dynamic Loading: Modules loaded at runtime as shared libraries
  • Message-Driven: Inter-module communication via ZeroMQ pub/sub

πŸ›οΈ Architecture Summary

Application Host

The main process handles:

  • Loading modules from shared libraries
  • Wiring messaging endpoints
  • Managing program lifecycle

Module System

Each subsystem (window, renderer, ECS, physics, sound, network) is:

  • An independent shared library
  • Implementing IModule interface
  • Running in its own thread
  • Communicating via messages

Communication

  • Pattern: Topic-based publish/subscribe
  • Transport: ZeroMQ sockets
  • Format: String topics, string/binary payloads

πŸ”§ Implemented Modules

Module Library Purpose
WindowManager SFML Window creation, input events
Renderer OpenGL/GLEW 3D rendering
LuaECS Lua/Sol2 Entity Component System
PhysicEngine Bullet3 Physics simulation
SoundManager SFML Audio playback
NetworkManager Asio Client-server networking

πŸ“¦ Dependencies

Managed via vcpkg:

  • sfml - Window and audio
  • glew - OpenGL extensions
  • zeromq / cppzmq - Messaging
  • lua / sol2 - Scripting
  • bullet3 - Physics
  • asio - Networking
  • msgpack - Serialization
  • gtest - Testing

πŸ“š Further Reading