Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
0750ac5
feat(dependencies): add nlohmann-json to vcpkg dependencies
maelemiel Jan 12, 2026
2729ba7
feat(config): add configuration files for client, server, local, and …
maelemiel Jan 12, 2026
d4a5c28
feat(engine): implement core GameEngine library and client executable
maelemiel Jan 12, 2026
852f35f
feat(engine): enhance thread safety with shared_mutex for module access
maelemiel Jan 12, 2026
d6902dc
feat(engine): implement local mode support with ZeroMQ context sharin…
maelemiel Jan 12, 2026
7b1e5c2
feat(config): update module paths in configuration files to use relat…
maelemiel Jan 12, 2026
b5fbfcb
feat(engine): enhance module loading and command line argument parsin…
maelemiel Jan 12, 2026
2ff5029
feat(window): enhance SFML window management with improved event hand…
maelemiel Jan 12, 2026
28833b0
feat(engine): implement run method for GameEngine and optimize module…
maelemiel Jan 12, 2026
ba268ea
feat(engine): implement fixedUpdate method for ECS and Physic engines…
maelemiel Jan 12, 2026
b109e7f
feat(engine): enhance GameEngine shutdown process and improve module …
maelemiel Jan 12, 2026
f6c76a4
feat(renderer): implement destructor and cleanup method for GLEWSFMLR…
maelemiel Jan 13, 2026
8f03a69
feat(engine): enhance cleanupMessageBroker method with error handling…
maelemiel Jan 13, 2026
f792f5f
feat(engine): refactor GameEngine destructor for improved resource ma…
maelemiel Jan 13, 2026
943b25d
feat(engine): improve AModule stop method to handle thread detachment…
maelemiel Jan 13, 2026
ee6d71c
feat(game): unify GameLoop for solo and multiplayer modes, enhance te…
maelemiel Jan 13, 2026
0303bc6
Implement centralized logging system with Logger class
maelemiel Jan 13, 2026
6634a99
feat(engine): integrate Logger for improved error handling and event …
maelemiel Jan 13, 2026
3ea588c
feat(input): implement input polling decoupling and keyboard state ca…
maelemiel Jan 13, 2026
ea95598
feat(game): refactor GameLoop to enhance initialization and update lo…
maelemiel Jan 13, 2026
7dddadd
feat(config): remove BulletPhysicEngine and PhysicModule from local c…
maelemiel Jan 13, 2026
d78e420
feat(config): remove engine configuration file to streamline setup
maelemiel Jan 13, 2026
f744f43
feat(game): enhance GameLoop with player movement, shooting, and enem…
maelemiel Jan 13, 2026
780ad6a
feat(game): refactor GameLoop to consolidate game state management an…
maelemiel Jan 13, 2026
ab6f8be
feat(game): implement collision detection for bullets and enemies, an…
maelemiel Jan 13, 2026
5e20f19
feat(engine): add Vec3 struct and Lua bindings for vector operations
maelemiel Jan 13, 2026
694ab86
feat(game): refactor GameLoop for improved readability and collision …
maelemiel Jan 13, 2026
407c5af
feat(sound): add sound playback functionality and integrate with Lua …
maelemiel Jan 13, 2026
ee0fcb0
feat(game): enhance collision handling with sound effects and adjust …
maelemiel Jan 13, 2026
68bd014
feat(api): generate Lua API definitions from ECSManager with function…
maelemiel Jan 14, 2026
916ab8c
feat(tests): add LuaECSManager lifetime tests for capabilities, Vec3 …
maelemiel Jan 14, 2026
8cedbf0
feat(lua): optimize Vec3 bindings and add in-place operations; implem…
maelemiel Jan 14, 2026
02d545d
feat(game): initialize ECS and Vec3 as global objects in GameLoop
maelemiel Jan 14, 2026
4a6dedf
feat(engine): add Collider, Mesh, and Transform structures with valid…
maelemiel Jan 14, 2026
6e09439
feat(lua): add Lua bindings for Transform, Collider, and Mesh types; …
maelemiel Jan 14, 2026
7dc2ab6
feat(tests): add unit tests for LuaECSManager bindings and functionality
maelemiel Jan 14, 2026
1c14ea6
refactor(logger): remove unused timestamp retrieval in Log function
maelemiel Jan 14, 2026
71f332c
feat(ecs): add ECS compatibility wrapper with camelCase and snake_cas…
maelemiel Jan 14, 2026
a8c9675
feat(lua): enhance LuaECSManager with music playback, collider manage…
maelemiel Jan 14, 2026
4fa1a09
feat(api): expand ECS API with music control, collider management, an…
maelemiel Jan 14, 2026
0f191e0
Merge branch 'main' into feat/engine-refactor
maelemiel Jan 14, 2026
a9cc847
refactor(renderer): remove unnecessary whitespace in GLEWSFMLRenderer…
maelemiel Jan 14, 2026
2375b9b
feat(renderer): enhance GLEWSFMLRenderer with safer parsing functions…
maelemiel Jan 14, 2026
1195fdb
Merge branch 'main' into feat/game-engine-code: Resolve conflicts in …
maelemiel Jan 17, 2026
3c4e794
fix: add .cache/ to .gitignore to prevent caching files from being tr…
maelemiel Jan 17, 2026
f43ba2d
feat(breakout): Implement Breakout game with ECS architecture
maelemiel Jan 17, 2026
6120e1e
feat(score-system): Adjust score position and font size based on scre…
maelemiel Jan 17, 2026
28afd1f
refactor(MenuSystem): Clean up whitespace and improve button creation…
maelemiel Jan 17, 2026
7a41543
refactor(GLEWSFMLRenderer): Remove periodic logging for performance o…
maelemiel Jan 17, 2026
159772a
feat(LuaECSManager): Enhance event handling for keyboard state and Lu…
maelemiel Jan 17, 2026
002ab36
feat: Implement throttled input velocity updates, disable client-side…
maelemiel Jan 17, 2026
bc0057c
feat(config): Add BulletPhysicEngine to module list and update module…
maelemiel Jan 17, 2026
ff6bc2b
feat(AApplication): Enhance cleanupMessageBroker with detailed loggin…
maelemiel Jan 18, 2026
0273f33
feat(GameLoop): Implement block creation utility for level design and…
maelemiel Jan 18, 2026
5305954
feat(GameLoop): Refactor game loop to enhance level creation, remove …
maelemiel Jan 30, 2026
c362cf0
feat(AApplication): Prevent double cleanup in cleanupMessageBroker an…
maelemiel Jan 30, 2026
f518f21
feat(LuaECSManager): Enhance entity synchronization with renderer and…
maelemiel Jan 30, 2026
13481e9
feat(GLEWSFMLRenderer): Add debug rendering for lines and text with o…
maelemiel Jan 30, 2026
7918f08
feat(BulletPhysicEngine): Implement BulletDebugDrawer for optimized d…
maelemiel Jan 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ CMakeFiles/
*.user
*.opendb
Notes
.cache/
13 changes: 8 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
cmake_minimum_required(VERSION 3.20)
project(RTypePOC VERSION 1.0.0 LANGUAGES CXX)

# Centralize all build outputs
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

# Support Conan fallback - REMOVED (Replaced by FetchContent in cmake/Dependencies.cmake)

set(CMAKE_CXX_STANDARD 17)
Expand Down Expand Up @@ -45,16 +50,14 @@ if(NOT OpenGL_FOUND)
message(WARNING "OpenGL not found. On Linux, try: sudo apt install libgl1-mesa-dev")
endif()

# Set output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

# Include directories for engine
include_directories(
${CMAKE_SOURCE_DIR}/src/engine
)

# Add core engine library
add_subdirectory(src/engine/core)

# Add subdirectories for modules
if(SFML_FOUND OR TARGET sfml-system)
add_subdirectory(src/engine/modules/WindowManager/SFML)
Expand Down
28 changes: 28 additions & 0 deletions assets/config/breakout.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"engine": {
"max_fps": 144,
"fixed_step": 0.016666666,
"max_frame_time": 0.25
},
"modules": [
"../lib/SFMLWindowManager.so",
"../lib/GLEWSFMLRenderer.so",
"../lib/SFMLSoundManager.so",
"../lib/LuaECSManager.so"
],
"module_order": [
"LuaECSManager",
"RenderModule",
"WindowModule"
],
"startup_scripts": [
"assets/scripts/breakout/GameLoop.lua"
],
"network": {
"mode": "local",
"server_address": ""
},
"lua": {
"debug": true
}
}
29 changes: 29 additions & 0 deletions assets/config/client.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"engine": {
"max_fps": 144,
"fixed_step": 0.016666666,
"max_frame_time": 0.25
},
"modules": [
"../lib/SFMLWindowManager.so",
"../lib/GLEWSFMLRenderer.so",
"../lib/NetworkManager.so",
"../lib/LuaECSManager.so"
],
"module_order": [
"NetworkModule",
"LuaECSManager",
"RenderModule",
"WindowModule"
],
"startup_scripts": [
"assets/scripts/space-shooter/GameLoop.lua"
],
"network": {
"mode": "client",
"server_address": "127.0.0.1:5555"
},
"lua": {
"debug": true
}
}
30 changes: 30 additions & 0 deletions assets/config/local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"engine": {
"max_fps": 144,
"fixed_step": 0.016666666,
"max_frame_time": 0.25
},
"modules": [
"../lib/SFMLWindowManager.so",
"../lib/GLEWSFMLRenderer.so",
"../lib/SFMLSoundManager.so",
"../lib/LuaECSManager.so",
"../lib/BulletPhysicEngine.so"
],
"module_order": [
"LuaECSManager",
"BulletPhysicEngine",
"RenderModule",
"WindowModule"
],
"startup_scripts": [
"assets/scripts/breakout/GameLoop.lua"
],
"network": {
"mode": "local",
"server_address": ""
},
"lua": {
"debug": true
}
}
27 changes: 27 additions & 0 deletions assets/config/server.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"engine": {
"max_fps": 60,
"fixed_step": 0.016666666,
"max_frame_time": 0.1
},
"modules": [
"../lib/NetworkManager.so",
"../lib/BulletPhysicEngine.so",
"../lib/LuaECSManager.so"
],
"module_order": [
"NetworkModule",
"PhysicModule",
"LuaECSManager"
],
"startup_scripts": [
"assets/scripts/space-shooter/GameLoop.lua"
],
"network": {
"mode": "server",
"server_address": "0.0.0.0:5555"
},
"lua": {
"debug": false
}
}
17 changes: 17 additions & 0 deletions assets/config/test_minimal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"engine": {
"max_fps": 60,
"fixed_timestep": 0.016666667,
"max_frame_time": 0.25,
"enable_vsync": false,
"enable_lua_debug": true
},
"modules": [],
"module_order": [
"ECS"
],
"network": {
"mode": "local"
},
"startup_scripts": []
}
Loading
Loading