October 2021: Get back at it. 3D first
If I'm being honest, I was busy moving to Canada the last two months, so I hardly made any headway at all in the realm of physics engine work. Now that I am settled, it is time to get back on the horse! My goal is to have a believable 3D physics engine (rigidbody mostly) by the end of the year. From there, I will figure out what I want to do next.
- 3D Rigid Body Physics
July 2021: 2D loose ends and 3D headway
- Finish SAT Collision Info (very close)
- 2D rigidbody explanation 3
- 3D Rigid Body Collisions
- ZIP file creator for downloads
- Explanation of Quaternions
The last two months went almost as planned. I think I misjudged how long and how much brainpower it would
take me to write explanations for all of these things. A classic engineer mistake. We see writing,
and we think, "Easy, I can do that." And I usually can, but I am a bit rusty as of late. Additionally, this
writing involved a lot of diagrams and math equations that I struggled to put into HTML. I even had to learn
to make some simple drawings in gimp, which was a bit of a hurdle.
That being said, I am fairly configdent that I can finish the above items in the month of July (maybe minus the
quaternion work, but we will see). To get my confidence up, I am going to begin with the ZIP file creator for
downloading individual projects. That will definitely be worthwhile.
May/June 2021: More Collisions
- SAT Collisions for Convex Polygons with Explanation
- 2D rigidbody physics demo + explanation 1
- 2D rigidbody physics demo + explanation 2
- 2D rigidbody physics demo + explanation 3
- Remove (or hide) ellipse collision pages for now
- 3D scene setup
- 3D scene basic physics with spheres bouncing around a scene
- Pill Collisions
Obviously, the month of April did not go as planned. I got caught up with a number of tasks that I couldn't handle,
namely, the pill collisions. These, as I discovered, were quite unfeasible and involved a lot of complex maths
that I didn't quite yet understand. They are also unreasonable for game development's sake, so I will ditch that
effort and focus on doing other things. This, of course, is not time entirely wasted, as I now I have a somewhat
better understanding of why ellipses (and by extension ellipsoids, although I am not entirely sure of this). I should
instead try to figure out the intersection using pills, not ellipses. Pills are simply 2D shapes made of a
rectangle in the middle and two half-circles at either ends. This is a far less expensive collision to calculate.
I also failed when it came to getting a good physics collision system going. This stemmed from a general misunderstanding
of moment of inertia and how it can properly be implemented for each shape. I think I am getting a better grip on it now,
however.
And that brings me to May/June. I am combining these two months because I am quite busy in May with family stuff,
and hence won't be able to give my full attention to the project. That being said, as a high-level goal, I hope to
get some more 2D collisions going, and maybe move onto 3D fairly soon. For 3D, I would simply like to get the physics
simulation up and running with simple objects (spheres, cubes, etc.). From there, I want to begin exploring more complex
physics simulation topics like oct-trees, multiple collision resolution, etc. We will see what happens, but I am optimistic,
so long as I stay the course.
Edit: I am going to focus on SAT collision and AABB collision detection going forward for this month. In addition,
I am going to finish the descriptions/demos for regular rigidbody collision. Afterwards, if I have time, I will move onto
3D collisions.
April 2021: Ground Work and Initial Collisions
- Orthographic rendering basics
- Uniform build Process for WebAssembly
- WASM Framework with simulation loop
2D Collisions with Descriptions
- Ellipse-Line Collision
- Ellipse-Ellipse Collisions
- Ellipse-Circle Collisions
- Ellipse-Square Collisions
- Rectangle-Line Collisions
- Circle-Line Collisions (Redo)
- Rectangle-Circle Collision
Brief Wasm Series
- Getting started with WASM docs
- Wasm examples
- Getting started with WASM docs
- Wasm examples
Everything above has a due date of April 30th, 2021. None of it is that hard, so this should be a very doable timeline.