timothy falconer's semantic weblog
Big Fractal Tangle

near zero

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.

(editor’s note: continued dev talk here.)

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:

#seymour.3 mosey

See it yourself in our latest screencast:

Hear me debate the particulars in yesterday’s and today’s podcasts.

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.

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.

Fourteen days.

Here’s a punch list I just put in our stairwell so my wife and daughter can follow along.

minor milestone

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.

director flow

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.

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.  

The five concepts are:

agents – the codable do’ers in Tidepool
properties – name/value pairs, aka variables, parameters, arguments
rules – bundle of things to do when conditions are met, aka functions or methods
conditions – a list of boolean expressions that determine if a rule is fired
messages – instructions for an agent, aka statement, method call

Towards the end of the talk, I introduced “forms” as a general way to introduce the concept of records or objects.  This led to a coalescence of UI & concepts that I haven’t completely thought through yet.  Instinctively, properties and conditions seem like they should be contained in forms.  I need more exploration to say exactly how.

In other news, I finally fixed the “don’t turn when I move” bug.  My changes unexpectedly sped things up considerably, so I had fun zooming around the world on hyperdrive before I put a slow-down factor in there.  It’s good to know players can get zippy if we want.

twenty-one days

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.

marketing haikus

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?

  • world – explore and create a shared hand-drawn 3D world
  • stories – make interactive stories and games for others to play
  • coding – program your creations to watch for conditions and respond to events
  • courseware – build supplemental educational materials that teach concepts deeply
  • fundraising – players can purchase crystals from vetted schools and NGOs
  • agents – chat with cognitive agents, allowing a conversational approach to coding

A good start, but more is needed before it’s brochure quality.  I’ve also got to match my icons to the concepts:


website revamp

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.

This morning I split the site in two, with half pertaining to the actual game and the other half to project nuts and bolts.  Now you have to click “Project” to see things like “Roadmap”, “Biz Plan”, and “Tracker”.   

While this helps, I’m still feeling fairly “meh” overall.  I designed this to be an internal project site, so didn’t spend much wow time on it.  I’d love to add more images and color, with some nifty scrolling sections as is so common these days, but I just don’t have the time to do it justice.

Besides, I don’t want it to be too slick.  Tidepool is a hand-drawn world.  The website should showcase this aesthetic.