Yet more further, different history (Jan, 2015)

(Getting my dev-blog caught up to current (3/15) while skimming the checkin comments and skipping most of the boring bug-fixes, etc.)

* The first couple of weeks in January included a lot of tweaking, adjusting and writing of the help/tutorial scenarios, then fixing bugs/features related to the tutorial scenario, then clarifying the help, etc. — all dedicated to making the first-time-user’s experience better.

* Jan 12: created the “timer label”, which shows the time remaining for a task (such as N-seconds to chop down a tree.)

* Jan 13: added data-driven <code>resultForTool:</code> function, which tells the result when a specific tool is applied to a specific object (example: apply saw (tool) to tree (object)), how long it takes, etc.  Some tool/object combinations only have one possible result, but others select from a random/weighted list.  So, for example, if you saw a tree, you might get 1 wood + 1 seed, or you might get 2 wood, etc.

Jan 14: Added generic sensor object, and also the “is the thing I’m bumping a tree?” sensor.  If you wire this sensor to the “use the currently-selected tool” input, and the currently selected tool is a saw then, when the robot bumps a tree, it’ll use the saw on it.

Also allowed templates to recurse templates.  This let there be a generic “sensor” template, of which “bumped a tree sensor” is one.

Jan 15: Implemented “Grab item-on-ground” and “put item from grabber into inventory.”  Today’s checkin comment:

commit 49dd49e0038e9f41af583da8c1ff9452be7d614f
Author: Olie
Date: Thu Jan 15 14:53:01 2015 -0800

bump tree -> saw tree -> pick up items -> held items into inventory works

Woot!  We can harvest trees into inventory!  🙂

Also: robot can use tool (ex: saw tree) and pickup items (ex: items dropped by previous tree sawn) at the same time.

Jan 19: Chip interior added.  Chips, in the robot-interior view, are about the size of a logic gate or sensor.  However, you can “go inside” a chip and place a whole bunch of circuitry — about as much as would normally fit inside a robot — and create whatever design you want.  Then, back in the robot-interior view, you just have the 1 chip to wire to the robot, making everything much neater than if all the gates were in the robot.

Over the next few days, I implemented all of that.  Also added the “ElectroPowerZap” item, which you can drag across input connections to make them “hot”, so you can test your circuits manually before hooking them up to the robot.

Jan 26: After a discussion with my friend Shannon about chips within chips within chips, I decided it would be a good idea to check on performance of a robot with thousands of logic gates.

NOTE: I don’t expect any “real” robot to even require 100 gates to do any serious farming work.  However, I know how us geeks are, and we like to build things — like those guys who built an entire ALU inside of Minecraft.  So, as a test, I ran debug timing on a robot with 3200+ gates, all wired together, running on an older iPad3.

…Turns out everything ran just fine.  Crazy-fast, in fact.  So I’m no longer really worried about it.  If players start reporting that the game is too slow, I’ll look into optimizing but, until then, I think we’re good.

Jan 28: Woot!  Trees grow from seeds!

commit 5ac43def9298e42615f5de4ec47c5648c9fea266
Author: Olie
Date: Wed Jan 28 11:12:39 2015 -0800

bugzid: 3 add seedling -> sapling -> tree cycle

Jan 29: New hoe tool.  Robot can hoe (apply tool: hoe to object: ground) to make plantable dirt.

Jan 30: New dibble tool.  Robot can now plant seeds in dirt.

Woot!  Harvest -> plow -> plant -> grow -> harvest… cycle implemented!