Skip to content
/ glos Public

experimental 3d multiplayer game framework using simple data layer 2 and opengl es3 in c++ 20

Notifications You must be signed in to change notification settings

calint/glos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

glos

experimental 3d multiplayer game framework using simple data layer 2 and opengl es3 in c++ 20

intention:

  • multiplayer framework
    • synchronized client input signals
    • clients render at the rate of the slowest client
    • server synchronizes clients signals
  • grid of cells that partition world space
    • update and collision detection of objects
    • multithreaded
  • game where most objects are visible on screen
    • cull grid cells and objects to render within frustum (todo)
  • importing blender exported obj files
  • explore legacy opengl rendering
  • intuitive programming of game objects and logic
  • game code written in src/application/
  • collision detection (that is "good enough" for games)
    • sphere vs sphere
    • sphere vs convex volume
    • convex volume vs convex volume
  • collision reaction
    • sphere vs sphere
    • sphere vs convex volume (todo)
    • convex volume vs convex volume (todo)

ubuntu packages used:

  • libglm-dev: opengl math
  • libtbb-dev: parallel unsequenced for_each
  • sdl2 related packages
  • opengl related packages

sample game

  • multiplayer enabled proof of concept
    • threaded_grid must be false for deterministic behavior
  • shoot asteroids and pick up power ups for the gun
  • developed to test the framework
  • source in src/application/ and assets/
  • howto keys
    • w: thrust
    • a: rotate left
    • d: rotate right
    • j: fire
    • F1: print cells
    • F2: collisions on/off (this will make clients out-of-sync)
    • F3: render on/off
    • F4: cycle through shaders
    • F5: render normals on/off
    • F6: render bounding spheres on/off
    • F7: hud on/off

starting multiplayer mode

multiplayer mode

single player mode

single player mode

todo

  • tidy the source in src/engine/
  • another sample game in a 3D sandbox-like environment
  • and much more in todo.txt

About

experimental 3d multiplayer game framework using simple data layer 2 and opengl es3 in c++ 20

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages