<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<link rel="stylesheet" href="/index.css">
		<title>Physics for Games</title>
		<link rel="shortcut icon" href="/favicon/favicon.ico" type="image/x-icon">
		<meta name="description" content="A place to learn all about real-time physics simulations through descriptions, code snippets, and example programs all written in C++ and OpenGL.">
		<meta name="og:description" content="A place to learn all about real-time physics simulations through descriptions, code snippets, and example programs all written in C++ and OpenGL.">
	</head>
	<body>
		<header>
			<h1><a title="physicsforgames.com" href="/">Physics for Games</a></h1>
		</header>
		<main>
		<nav>
		<ul class="outer-tree">
			<li><a href="/">Introduction</a></li>
			<li>
				<span>&#127936;<span>2D</span></span>
				<ul class="inner-tree">
					<li><label>Rigidbody</label></li>
					<li><a title="/2d/rigidbody/rigidbody_1.html" href="/2d/rigidbody/rigidbody_1.html">Linear Forces</a></li>
					<li><a title="/2d/rigidbody/rigidbody_2.html" href="/2d/rigidbody/rigidbody_2.html">Rotational Forces</a></li>
					<li><a title="/2d/rigidbody/rigidbody_3.html" href="/2d/rigidbody/rigidbody_3.html">Collisions</a></li>
					<li><label>Collisions</label></li>
					<li><a title="/2d/_collisions/rectangle_rectangle.html" href="/2d/_collisions/rectangle_rectangle.html">Rectangle-Rectangle</a></li>
					<li><a title="/2d/_collisions/polygon_polygon.html" href="/2d/_collisions/polygon_polygon.html">Separating Axis Theorem</a></li>
					<li><label>Softbody</label></li>
					<li><a title="/2d/softbody/softbody_1.html" href="/2d/softbody/softbody_1.html">Springs</a></li>
					<li><a title="/2d/softbody/softbody_2.html" href="/2d/softbody/softbody_2.html">Springy Rectangle</a></li>
				</ul>
			</li>
			<li>
				<span>&#127776;<span>3D</span></span>
				<ul class="inner-tree">
					<li><label>Rigidbody</label></li>
					<li><a title="/3d/rigidbody.html" href="/3d/rigidbody.html">Rigidbody in 3D</a></li>
				</ul>
			</li>
			<li>
				<span>&#128295;<span>WebAssembly</span></span>
				<ul class="inner-tree">
					<li><a title="/intro/intro.html" href="/intro/intro.html">Introduction</a></li>
				</ul>
			</li>
			<li>
				<span>&#128712;<span>About</span></span>
				<ul class="inner-tree">
					<li><a title="/roadmap.html" href="/roadmap.html">Roadmap</a></li>
				</ul>
			</li>
		</ul>
		</nav>

<style>
  section ul {
	  list-style: none;
	  padding-left: 0;
  }
  section li {
	  position: relative;
	  padding-left: 1.5em;  /* space to preserve indentation on wrap */
  }
  section li:before {
	  content: '';
	  position: absolute;
	  left: 0;
	  width: 1rem;
	  height: 1rem;
  }
  section ul {
	  list-style: none;
  }

  section ul li:before {
	  content: '-';
  }

  .done {
	  color: green;
  }

  .halfway {
	  color: orange;
  }

  .failed {
      color: red;
  }

  .abandoned {
      color: grey;
  }

  section ul li.done:before {
	  content: '✓'
  }

  section ul li.halfway:before {
	  content: '⚠'
  }

  section ul li.failed:before {
      content: '✗'
  }
</style>
<article>
  <section>
    <h1>October 2021: Get back at it. 3D first</h1>
    <p>
      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.
    </p>
    <ul>
      <li>3D Rigid Body Physics</li>
    </ul>
  </section>
  <section>
    <h1>July 2021: 2D loose ends and 3D headway</h1>
    <ul>
      <li class="done">Finish SAT Collision Info (very close)</li>
      <li class="halfway">2D rigidbody explanation 3</li>
      <li class="failed">3D Rigid Body Collisions</li>
      <li class="failed">ZIP file creator for downloads</li>
      <li class="failed">Explanation of Quaternions</li>
    </ul>
    <p>
      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.
      <br /><br />
      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.
    </p>
  </section>
  <section>
    <h1>May/June 2021: More Collisions</h1>
    <ul>
      <li class="halfway">SAT Collisions for Convex Polygons with Explanation</li>
      <li class="done">2D rigidbody physics demo + explanation 1</li>
      <li class="done">2D rigidbody physics demo + explanation 2</li>
      <li class="halfway">2D rigidbody physics demo + explanation 3</li>
      <li class="done">Remove (or hide) ellipse collision pages for now</li>
      <li class="done">3D scene setup</li>
      <li class="abandoned">3D scene basic physics with spheres bouncing around a scene</li>
      <li class="abandoned">Pill Collisions</li>
    </ul>
    <p style="font-size: 18px;">
	  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
      <i>instead</i> 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.
      <br/><br/>
      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.
      <br/><br/>
      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.
      <br/><br/>
      <i>Edit:</i> 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.
	</p>
  </section>
  <hr/>
  <section>
	<h1>April 2021: Ground Work and Initial Collisions</h1>
	<ul>
	  <li class="done">Orthographic rendering basics</li>
	  <li class="done">Uniform build Process for WebAssembly</li>
	  <li class="done">WASM Framework with simulation loop</li>
	</ul>
	<h2>2D Collisions with Descriptions</h1>
	<ul>
	  <li class="halfway">Ellipse-Line Collision</li>
	  <li class="failed">Ellipse-Ellipse Collisions</li>
	  <li class="failed">Ellipse-Circle Collisions</li>
	  <li class="failed">Ellipse-Square Collisions</li>
	  <li class="done">Rectangle-Line Collisions</li>
	  <li class="halfway">Circle-Line Collisions (Redo)</li>
	  <li class="failed">Rectangle-Circle Collision</li>
	</ul>
	<h2>Brief Wasm Series</h1>
	<ul>
	  <li class="halfway">Getting started with WASM docs</li>
	  <li class="halfway">Wasm examples</li>
	</ul>
	<p style="color: black; font-size: 18px;">
	  Everything above has a due date of <b>April 30th, 2021</b>. None of it is that hard, so this should be a very doable timeline.
	</p>
  </section>
</article>
		</main>
	</body>
</html>