Game engine physics

I have begun creating the physics for entities. Currently, I am in the process of making a cube bounce, changing only in the Y-axis (for now).


I have also managed to generate my own cuboid. This allows me to define the dimensions, and so allows me some basic customisation for my entities. I will work on defining spheres and other shapes soon. Note that the textures and lighting work too.

Finally, I have also managed to change the code for how the player moves. Still as a cube, the player will now change direction when attempting to move forwards, move backwards, strafe left, or strafe right; specifically, in the camera's direction. Meanwhile, jumping/crouching does not change the player's direction. This solvesĀ the problems of swinging the camera to the player's direction and changing the player's direction, by instead simply combining the too and letting the player choose in which direction they wish to go by moving the camera.


Things to consider:

  • I have put restrictions for the control of the camera; however, I would personally like to make this more clever, by detecting collisions. Collision control in general might be what I should next look into.
  • I need to increase the number of hedrons necessary for creating more complex entities. Spheres, cylinders, triangular prisms, etc. will all be needed.
  • I still have not yet created any GUIs. Basic logging GUIs will be useful. Since I am in the debugging stage, GUI buttons may be useful as well, to say e.g. replay an animation.
  • Terrain is going to be a headache, I presume. Currently, it is just flat, which is most likely undesirable. Often a game engine will utilise a height map: an image that dictates the height of each vertex. The problem with this is that I would need to create such a height map, which is both tedious and not efficient for a large map, and that terrain such as caves cause exceptions, as any form of overhang is not possible. Personally, being able to enter/exit a cave without a loading screen or similar concept would be wonderful.