June 20, 2015
As they say in the backpacking world, yesterday and today were “nero” days, or near-zero days. I began Friday anxious and overwhelmed, then gradually sunk lower into a prolonged funk, a sure sign of burnout. Developing Tidepool during back-to-back business trips took its toll, to say nothing of the stress of my other neglected project.
While curled in a fetal position, feeling my long ignored emotions as they caught up to me, I dwelt on just why it is I’m doing all this, and whether it’s worth it. Existential doubt is a familiar theme in any bounds-stretching project. It’s a recurring rite of passage to question pretty much everything you once held dear.
I’m a week away from a conference where I need to brag shamelessly, and tonight I feel like I just don’t have the power. Between the hotel, bus, and printing costs, the conference will cost $2000 we really can’t afford right now. Yes, the conference could lead to great & mysterious things. Yes, I’ll make contacts that’ll build our community.
But it’ll all be a waste if I’m a lump on a log. It’ll hurt that much more if I don’t have it in me to represent my dream. Tonight I want to cancel the trip and switch to money-mode.
Okay, I’ll sleep on it. If I don’t post for a while, assume I put Tidepool on a shelf again so I can bill a bunch of hours.
June 18, 2015
we have codability!
Tidepool is now officially a programming system. Today’s version lets you teach your agents new words and have them execute their steps. For example, when I type this:
#seymour.3 when mosey, begin forward 1000, turn 90, sound ow, end
the agent “seymour.3″ learns that the word “mosey” means it should move forward 100, turn at a right angle, and make a sound. To do it, type:
See it yourself in our latest screencast:
June 16, 2015
animated gifs, almost
Last two days, I’ve been knee-deep in code, which is a wonderful feeling. There’s nothing quite like having time and freedom to craft things the way you want them, especially after a LONG code-freeze (six months of nothing new). Not surprisingly, yesterday’s and today’s podcasts were mostly tech-heavy details of what I’m building.
I did grant myself a non-scheduled fun thing. For a while I’ve wanted to have a page on the website that showed everyone’s sketches and animations in-game. Showing the images was easy … the tougher part was converting my PNG frames into animated GIFs on the fly. I got it almost working, which will have to be good enough for now. Yes, it’s not erasing previous frames as it proceeds through the GIF.
June 14, 2015
two weeks left
Friday in Phoenix, I gradually talked myself down off a ledge and lowered my expectations for this release. Today back home, I reversed my views, convincing myself to finish Alpha 3 before the ISTE conference.
The thing about deadlines is that they only work if you really believe them. The stress of an approaching date helps focus and limit efforts. For most, it’s the needed kick in the pants to actually do the work. Or not. Too often deadlines sap your motivation, causing burnout and lost productivity for no good reason.
For me, deadlines have their own kind of magic. You visualize the impending outcome and circumstances align in mysterious ways. Great ideas arise that normally wouldn’t. Things click into place exactly when needed. Wrapping up a release can be as exciting as good movie … surprises, setbacks, solutions, resolve.
I’ve imagined myself showing off Tidepool at ISTE for years. Here I am only weeks away and close enough to finish the part that’s better than Scratch and Tynker. Do I settle for the last version and say, “Imagine the rest”, or do I finish the new version so I can showthem why Tidepool is better. Obviously the latter, which means I’ve got a deadline.
Here’s a punch list I just put in our stairwell so my wife and daughter can follow along.
June 11, 2015
Yesterday and today I talked about some the nitty-gritty details of the eight new features I’m adding. With only twelve days left before testing, I’m getting much less ambitious. Amazing how a looming deadline clarifies your expectations.
Before this though, I need to finish the trailer and printed materials, so I’ve got a mini-deadline now, the 17th, which is now set aside to make game movies for the trailer and the postcards. Before I can do these, I need to finish the director, the primary programming interface in Tidepool. Both the movies and cards will show it.
Meanwhile I’ve been battling some extreme exhaustion, mostly from my ill-fated attempts to adjust to this new time zone, which I’m sure will only get worse after my red-eye flight tomorrow and the whiplash jet lag soon to follow. All I can do is keep moving forward.
And oh! I forgot! Yesterday while coding, I typed “#seymour.1, forward 1000″ and seymour moved! A minor, but exciting, milestone.
EDIT: The mouse should be named Alan, not Seymour.
June 9, 2015
Today I paced an empty dark Phoenix downtown while I talked and sketched the Tidepool director box UI flow.
Imagining how clicks and presses navigate a complex interrelation of data is never easy. Imagining children using it is a whole ‘nother ball game. What stays on the screen at the same time? Will the player get lost? Will she need to click back and forth between the panes too much?
In the end, you make the best design you can and implement it. The sketch above is like a lump of clay that later gets molded after repeated use. No one ever gets it right the first time.
June 8, 2015
five, maybe six
This morning’s talk was a good one. As I paced my hotel’s pool deck in downtown Phoenix, I discussed the five coding concepts in Tidepool, then introduced a possible sixth concept. If you’ve ever wondered how someone actually makes a programming language, this talk might interest you.
June 7, 2015
Today I fly to Phoenix and I woke up too damned early. Stressing over all of it, today’s talk is a jumbled mess of pre-conference prep and daunted expectations.
My reach has always exceeded my grasp, so why should now be any different? The blessing of such ambition is consistently exceeding the norm. The curse is stress and broken promises. “In the long run men only hit what they aim at. Therefore, though they should fail immediately, they had better aim at something high.”
So what’s to do? Fifteen features, 9 improvements, 22 bugs, conference handouts, finish the trailer, make the Kickstarter page, publicize to new audiences, and keep these daily devlog posts going. All the while spending working hours consulting for the State of Arizona and all my “free time” doing billable hours on my other project.
Twenty-one days. Criminy. Will I finish all of it? Of course not.
Will I try? That’s the plan.
June 6, 2015
The hardest thing to do is write tiny bits of texts. Today I debated the new Tidepool talking points which, when written, will go on the back of the postcard and will replace the “About” page. I’ve talked about each point a hundred different ways over the years. I’ve written a full business plan and made a project trailer.
So once more, in rough form, here goes … what makes Tidepool different?
A good start, but more is needed before it’s brochure quality. I’ve also got to match my icons to the concepts:
June 5, 2015
Last time my wife used the Tidepool website, she was overwhelmed. “Where do I click? There are two many choices.” Over time, the site has grown in complexity. With fourteen choices on the side navs, it was overdue for some serious pruning.
June 4, 2015
In 24 days, I’ll be attending the largest annual gathering of education tech enthusiasts, the ISTE Conference in Philadelphia. While I won’t be presenting, I do hope to speak with as many teachers as I can. This morning I debated what printed materials to hand out.
I’m a fan of moo.com, primarily for their ability to print a different image, front and back, on every business card or postcard you print. I’ve been around the advertising world for literally my entire life. Such flexibility (and pricing) is pretty much unheard of until recently.
I plan to print a variety of in-game sketches on the front and signup details (including unique codenames) on the back. Right now I’m debating between their square cards (left), mini cards (center), and postcards (right). The postcards would be best to leave on a table for people to take, while the others would be great to handout. At these prices, I might even do both.
Now to convince my alpha team to spend the next few weeks drawing sketches.
June 3, 2015
rubber duck debugging
In today’s podcast, I talk through a current bug involving 3D coordinate transformations. After some recent refactoring, the player no longer moves in the direction they are facing. The WASD keys move along the X and Z axes only, even though you can look around correctly.
Talking about it with you, the imagined audience, is an example of something called rubber duck debugging, where you try to explain a problem in simple terms to a non-technical stand-in. The act of explaining it often clarifies the problem, allowing you to fix the bug. In truth, the rubber duck is often more helpful than most managers.
Last night I was at dinner with my consulting client until 10pm. Between the time this bug has taken, and the hours I’ve lost down here in Jackson, I’m beginning to worry that I won’t be able to make up the lost time. I’m not at the “change the plan” stage yet, but I’m fast approaching it.
June 2, 2015
what if we succeed?
Today I let myself dream a little, imagining what I would do if Tidepool attracted thousands of players. Such “counting of chickens” has both practical and motivational value. Planning for 25,000 users is daunting technical task in the short term, especially when you consider that popular Minecraft servers rarely (if ever) reach that limit.
June 1, 2015
Today’s podcast begins with a rundown of the four primary ways a software development schedule can slip:
When a deadline is looming, these fears are my constant companions. Collectively they can turn a month into three pretty easily. We try to manage this with daily status checking and course corrections, but even then the schedule’s pretty much a gamble. Software is hard.
So how do I know that Milestone 3 will be done in the next nineteen days? Honestly, I don’t. It’s a reasoned estimate, one that the software gods are likely laughing about right now. With more than thirty years of software project experience behind me, I can say with certainty that software schedules are uncertain.
Which is why we use tools like agile and timeboxing, but that’s another story.
May 31, 2015
prepping for the party
Two weeks since the Alpha 2 launch and my website visits have simmered down to a handful a day. We reached 255 new visitors, with only 9 signups to test the next version. Feel free to signup now and reserve your username.
May 30, 2015
Well, yesterday I really broke things. Tidepool has several commands that operate on the player, such as forward, rotate, and so forth. I wanted to generalize the system to use the same commands on any visible item in the game, so I could say “seymour.19 forward 20″, etc.
May 29, 2015
command & control
Some code is central to everything, a kind of Grand Central Station through which all activity passes. Nowadays such code is usually provided for you by third-party frameworks. Since I’m essentially making a framework, I get to craft my own centerpiece, which I just named perform, which I discuss in today’s podcast.
Whenever you press a key or issue a command, it goes through perform. Each line of your scripts go through perform. Whenever a player near you does something, it goes throughperform, both yours and hers. If there was one place in all of Tidepool’s twelve-thousand pages of code where a bug would wreak the most havoc, it would be the nine lines of perform.
Which is why I’m nervous, since yesterday I completely rewired things to allow for the new programming functionality. Such major changes are best left for the beginning of milestones, since this gives time to let the ramifications reveal themselves. We’re 30 days from the ISTE conference, but I’m still leary of such system-wide changes. Time will tell.
May 28, 2015
I am of course imperfect and emotional. While academia and business pretend they’re immune, working solo on a two year project, I have no such luxury. From the start, I’ve maintained that the biggest risk, the most likely reason for failure, is not being emotionally strong enough to finish. While I left this risk off the business plan for obvious reasons, it’s been foremost in my mind all along. I guess I should give myself credit for putting in a full year so far.
May 27, 2015
blinders and design
After a year plus working on my own, it’s both wonderful and horrible to have new people playing Tidepool. As hard as I try to find and fix my own bugs, I’m necessarily, categorically, awful at the task. Like racehorses trained to go straight around a circle, developers have well-established blinders with their own code. We create our own ruts, repeating the same sequence of steps sometimes hundreds of times until we can no longer see another way around.
One funny, and inexplicable, example happened last night. I was playing Tidepool with my friend Jon, typing to him, making jokes. “Wait, what just happened?” A little later, “There it is again.” Turns out whenever you type the closed parenthesis, it sends you “home”, just as if you clicked the home button. How on earth did I go so long without finding this bug? Well, it turns out I didn’t make smiley faces with myself when typing “this is a test” and “right back at ya” over and over.
Also in today’s podcast, I brainstorm the new director box, a fresh and full-of-possibility UI design … my favorite thing to make. Instead of talking about it, here’s a scan from my design book. Nothing makes me happier than solving puzzles like this.
May 26, 2015
summer goals & kickstarter
A big part of developing & marketing a software product is management, or talk-talk-talking through your goals, plans, and pesky side issues. Given a choice, I’d gladly ignore such things and happily wallow in the code all day, but given my background and skills, I’m usually the one brainstorming schedule and marketing plans, as I do in today’s podcast.
The plan is to release the next version, Alpha 3, the programming version, on June 20th. On that day, we also launch our Kickstarter campaign to raise funds for our courseware authors. I’m planning to pay eight people to create 24 courseware units. Each will get paid $1000 a unit for 40 hours work (two weeks).
Kickstarter donors who give $50 or more get to use Tidepool right away. All other donors wait till we finish our Kickstarter and release Alpha 4, the courseware version, on July 19th. By then, we should have eight units.
A month later, we launch the Tidepool beta on August 13th. On that day, we open up the floodgates and let everyone play. We focus our publicity efforts in August on teachers and schools, who are just beginning their fall prep.
* $50 gets you in during Alpha 3 (June 20)
Sounds like a plan, and a lot of work!