Heh. Ok, so I looked back at the logs and….
* It looks like I created the initial (skeletal) project on October 7, 2014.
* The first feature was the report-a-bug dialog (10/8). To my way of thinking, this thing can’t succeed if I don’t have a clear, easy-to-use, open channel of communication with my users. Sure, I can post stuff here, and you can leave comments (right?! I should check that), but the bug-report dialog just seemed important. In addition to offering what an example bug report looks like, it also has templates for cheat-reporting, praise, suggestions, etc.
* The 2nd feature was the “debug” button, which lets me build bits of infrastructure, then activate it at a button-press to test before fitting all the little pieces together. If you’re interested, I tend to design things from the top down, but implement more-or-less from the bottom up. In this way, I can test each piece in isolation, then together with its related pieces as a group, then the groups together, etc. This makes for somewhat slow-going at first, but then my projects tend to wrap-up fairly quickly (and largely bug-free!), which I like. 🙂
(No, I don’t want to argue with you about my design methods. (a) The above is a gross over-simplification and (b) I’m right, so arguing would just lead to us annoying each other. 😉 )
* My first debug action was to create a starter-farm comprised of rings of trees with a clear patch in the middle, then to turn that into a small database read at launch. I also added “template” items, so each tree didn’t have to carry around duplicate data. With templates, I could basically say “template: tree-1, location: 10,15”, then “template: tree-1, location: 12,15” and have two identical trees side-by-side, without the start-farm having to list all of the properties of tree-1 multiple times.
* After that, I messed around with oauth (login) stuff for a while, first under the debug button, then on the login screen.
* By mid-Oct, I was ready to save farm changes so that I didn’t have to re-load the starter-farm every time.
MILESTONE: “Farm” Achieved Oct 14, 2014
* I spent some time designing what I wanted the user’s first minutes of play to include, then wrote-up several steps of introductory tutorial then created the “slide-out” tutorial view, which could take (from the tutorial database) plain text, HTML text or an HTML filename.
Oh! Important note! From the beginning, the whole thing is designed to be data-driven and with download-updatable content. So there’s a lot of infrastructure around that.
Also of note: by March of 2015, I had decided that, initially, I will not be downloading the initial farm & content from the internet but, rather, the game will ship with all of the initial content. I go back & forth on this, but I think the correct solution is to have the game ready-to-play once installed. This also simplifies vsn 1.0, as my download/update code can be less-rigorously tested until I actually have updates to ship. My current (3/15) thinking is that the first few updates will come via the app-store. However, I will still write all the code to be internet-update-able — I just won’t be using that mechanism until the game is further along.
* It took me a few tries to get the “big red arrow” animation to work correctly in an abstract way where it would pick a random direction from which to point at something, but rotate away from the edge of the screen, if it was too close. I have a fun screen-cap of a grid of arrows all across the screen showing that it all works; I’ll dig that up & post it, later.
* We’re using Flurry Analytics to collect aggregated usage info like what device types, what vsn OS, how many active robots, etc.
* According to the logs, it wasn’t until Oct 22 that I added AStar path-finding, then the next day before the first robot appeared on screen. So I guess you could say that, on Oct 23, 2014, we achieved “RoboFarm”.
MILESTONE: “RoboFarm” achieved.
* (A bunch of boring bug- and warning-fixing, snipped)
* By 10/23, I got tired of having to log-in every time I wanted to test a bug-fix (even with the “remember me” checkbox!), so added a debug “skip login” mode that just loaded the starter-farm every time.
* The rest of October was pretty much just bug-fixing, object-abstraction and refactoring, and general “make things better so that, as I continue forward, my life won’t be a living hell of dealing with messes left early-on.”