The content, at pet.triquence.org, is a bit
much for a single J-term course. We did not cover everything. A regular semester might be a better container.
Scope
Here's the pattern followed in the J-term course:
- Worked through most of the 1D assignments. Made the Gui Controls
and the Hollow Cars and Demos assignments optional.
- Presented the Vector Class Module and the 2D Framework, but made the assignments optional.
This makes a good
weekend (or two or three) challenge for those students that have coding experience.
- Presented the Multiplayer Demo (networking) assignment. This
makes a very nice in-class demo where multiple students (with laptops)
can connect their clients to the server which is rendering to a large
projection screen in the room. But again, the development of the
client/server files is a good overload assignment for students looking
for more. However, this can be taken as a result and used by those that want
multiplayer functionality in their game.
- Then it was back to required assignments where the students learned
techniques for embellishing their moving pucks to make them playable:
rotating turrets, firing bullets (and the associated impulse forces),
visual indicators of health, etc. All the assignments between the
2D Framework and the Perfect Kiss were required.
- At this point, they started working on projects while I presented the
material on Pybox2d. There are no required assignments here. A few
students used this in the end for their projects, but most used our
own 2D Framework.
Revisions
- June, 2019
- May, 2019
- Added a second video on the reversibility of the
Perfect Kiss algorithm.
- Code changes for demonstrating the reversibility of Perfect
Kiss:
- Refined the game loop to give the option to limit (clamp)
the game loop FPS and set a corresponding fixed timestep for the
physics engine calculations. "Shift-p" toggles in and out of
fixed-timestep mode. The current FPS is used as the clamping
limit and the associated fixed timestep. The clamped FPS is
shown in parenthesis.
- The "e" key sets all pucks to have elastic collisions.
- The "z" key (as before) enables the perfect-kiss algorithm.
Now it also sets all collisions to be elastic and displays a
collision counter in the upper left corner.
- The "r" key reverses the velocity of all pucks. "Shift-r"
reverses the direction of time incrementation.
- The "t" key starts and stops a general timer.
- November, 2016
- Started translating the final assignment (A16c_2D_B2D_serverN)
into JavaScript for running in a web browser using the HTML5 Canvas.
See main page at
triquence.org.
- January, 2016
- Added the Raspberry Pi 2 page.
Script revisions are discussed at the end of the RPi page.
- October, 2015
- Added the pure-Python
physics engine (a.k.a. string rendering; a.k.a. the one-pager).
- Added this revision-history page.
- August, 2014
- July, 2013
- June, 2013
- Added conceptual drawings for the content in the PDFs.
- Improved the documentation for the 2D framework and
multiplayer-networking code.