Skip to content

erichlof/Glider-Ball-3D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

232 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Glider Ball 3D (w.i.p.)

A fully path traced 3D action game for all devices with a browser. This game is a work in progress: Core gameplay and AI opponent ability will be added soon!
Click to Play --> https://erichlof.github.io/Glider-Ball-3D/Glider_Ball_3D.html

Goal of this game

The goal of Glider Ball 3D is simple, yet challenging: Drive your Glider and knock the ball into the opponent's goal!
Think 'Rocket League' car-soccer gameplay, but instead of playing on boring, flat levels, our futuristic Glider vehicles battle it out on interesting curve-shaped courses. And instead of having normal Earth-type gravity, Glider Ball 3D features Anti-Gravity, allowing the Gliders and ball to follow and hug the course surface wherever it leads, even if that means going upside down!

Desktop Controls

  • Click anywhere to capture mouse
  • move Mouse left/right to steer your Glider
  • move Mouse up/down to look up and down (does not affect Glider steering)
  • Mousewheel to zoom camera in or out
  • W/S keys thrust Glider forward and backward
  • A/D keys strafe Glider left and right
  • SPACEBAR to make Glider jump!

Mobile Controls

  • Swipe left and right to steer your Glider
  • Swipe up and down to look up and down (does not affect Glider steering)
  • Pinch to zoom camera in or out
  • large up/down directional buttons to thrust Glider forward and backward
  • large left/right directional buttons to strafe Glider left and right
  • small up button above directional controls to make Glider jump!

TODO

  • Add basic AI to the opponent Glider. It must be able to locate and target the ball while everything is moving fast. Must be able to line up a shot towards player's goal. This will probably be really challenging, but I will start with very simple target/follow mechanics for the AI Glider, and then refine further.
  • Make the Glider models more interesting visually, by using CSG (Constructive Solid Geometry) modeling. This technique makes cool models (think 1982 TRON light cycles) and is easy for my ray tracing renderer to handle, because the game objects are made from a combination of smaller ray tracing-friendly shapes (spheres, paraboloids, capsules, cones, cylinders, etc). The blue metal Paraboloid that you drive around now is just a placeholder.
  • Add game sound effects: maybe a low humming/sliding sound as the Gliders hover around the 3D courses, a sound when the Gliders collide with each other, when a Glider hits the ball, when the ball goes into a goal, when a Glider collides with a black-void boundary area, when a match begins, and when a player wins a match.
  • After basic AI is working, consider allowing 2 human players to play against each other online over a p2p network connection. This would have to use WebSockets or similar Web technology (WebRTC Data Channels?). I've done this before on my old game, Deep Space Pong, but that was many years ago. I'm sure the technology and networking APIs have changed.

ABOUT

Glider Ball 3D is the original game that I always wanted to make, but didn't fully know how - until now. This game represents the culmination of all my graphics/game programming skills over 25 years (I started game programming with OpenGL 1.1 and C for Windows back in 1998). By the early 2000s, before I even knew what Ray Tracing was, I was able to make small, simple 3D action games in my spare time. I made 4 games altogether back then (around 2000 to 2003). When a game was finished, I would upload and send the raw game executable (yeah I know lol) and a few screenshots to free games websites, where anyone in the world could see the gameplay screenshots and then download my games for free. At one point, my younger brother Brian helped create and host our own game website. We called ourselves the Binary Brotherz (with a z). I forget who got to be the number "1" and who had to be the "0" (lol), but we thought it was a cool game developer team name. If you want to see what our Binary Brotherz website looked like all those years ago, check it out: https://web.archive.org/web/20010405004141/http://www.binarybrotherz.com/games.html

I'm so grateful for the Internet Archive WayBack Machine for preserving our old website for history. Shortly after 2002, my brother and I could no longer afford to keep hosting our own website, so sadly we had to let the domain name go. If it wasn't for the Internet Archive, this happy little piece of my past would be lost forever. During this time period (around 2001 probably), I got the idea to make a game like Glider Ball 3D, where 2 players would drive fast hovering vehicles around a large course and knock a large glowing ball into their opponent's goal (basically car soccer, but much faster-paced and futuristic). I drew inspiration from the classic 1983 LucasArts game, BallBlazer, but wanted slightly different vehicle and ball mechanics. I even wrote about it on the Projects page at our Binary Brotherz website: https://web.archive.org/web/20010406023749/http://www.binarybrotherz.com/projects.html

ballblazer

I began making prototypes of Glider Ball 3D (first in QBasic for DOS, then later with OpenGL 1.1 and C for Windows 98). But sadly, the source code and executables were lost over the years. Not to worry though, they were just prototypes - the playing course was a boring flat ground plane, and the AI opponent Glider was barely serviceable. I didn't have a clue how to add interesting-looking curved 3D courses, because I hadn't yet entered the world of Ray Tracing and ray casting those math-type shapes. Visually, my OpenGL 1.1 prototype didn't have any special lighting (except maybe stock 90's OpenGL diffuse lighting), so it looked kind of dull and basic.

Fast-forward to today, and with Glider Ball 3D we have the entire game rendered with beautiful photo-realistic Ray Tracing at 60fps, on any device with a browser (even mobile!). And since I have been learning how to do efficient Ray Tracing in the browser, I finally was able to realize my dream of having different curve-shaped 3D courses for players to navigate with their Glider vehicles. This game's simple type of car-soccer gameplay was pretty fun when I had it running on a flat ground plane course, all those years ago. But now I am so excited to update and enhance my original game idea by using sophisticated Ray Tracing for the graphics, and by using the same intersection routines for physics raycasting against the large curved course interiors. This will allow players to navigate fun and interesting courses as they play, often going up the sides of large curved walls and even going totally upside down, riding along the ceiling. I believe that having interesting, curve-shaped courses for players to compete on will take Glider Ball's gameplay and fun-factor to the next level!

About

A fully path traced 3D action game for all devices with a browser. https://erichlof.github.io/Glider-Ball-3D/Glider_Ball_3D.html

Resources

License

Stars

9 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages