Yet more history: November 2014

(Just bringing things up to date, while looking through the checkin logs.)

(Bug-fixing, warning-fixing, object abstraction/refactoring snipped.  There was a fair bit of it; it’s boring.  Well, it’s exciting to me because it means less mess to cleanup later, but it makes for boring reading.)

* Nov 5, added pickup/drop objects, enter/exit things with interiors (the shed, your robot).

* Added bumpers & thrusters to the robot.  Thrusters let him move around (opposite of thrust direction), bumpers signal that he ran into something.  If you’re familiar with Robot Odyssey, it’s pretty-much the same idea.

* My FarmViewController was getting substantially cluttered with debug code, so I refactored all of that out into a category (FarmViewController+debug), which makes things much neater.

* The game is 2.5-D isometric view.  “2.5-D” means that it’s simulated 3D by putting objects behind/in front of each other as they move around, etc.  Iso means that things are on a diagonal, such that “left” is really “down and left”, “right” is really “up and right”, etc.  I’m sure you’ve seen games like that.

I had originally made an object called the IsoCellView that could be, for example, 3×3 or 2×1 to signify how many “cells” in the game the object occupied.  (In other farm games, this is the item’s “footprint”, as you place it.)  Turns out that my scheme complicated masking & collision-detection, so I altered the IsoCellView to be a collection of iso1x1View-s, laid-out properly in the grid.  While this ended-up making things nicer, overall, there was a period of “practically everything is broken” that had to be dealt with.

* For some unknown reason, I had originally decided that everything was an RfcObject except the Farm, itself, which was a special-case thing.  Turns out that was dumb and, barely a month after starting the project, I realized that the farm was just like any other RfcObject.  Another refactoring, and suddenly things were getting a lot cleaner, inside the code!

* The week before Thanksgiving, I finally got to adding the different kinds of logic gates, and designed a set of clock-phase triggers to get everything to happen in the right order.

Then added the solder-pen and made so you can connect inputs to outputs (11/25.)

Gates were originally in a toolbox (a la Robot Odyssey) but I moved them to a gate-drawer that I like better.  The “sliding drawer” thing is a cousin of the sliding-help view object, and sibling of the sliding inventory drawer and any other drawers I decide we need.