Blog

Fallstar 1.1: A major upgrade

It’s finished! We actually rolled in some features we planned for the next version into this one.

  • Top scores! The top five scores are displayed for your enjoyment.
  • Gradient shapes! No longer just for backgrounds, we’ll see if you can match something you can barely describe!
  • Three new levels! Yes, you’ll have to work your way up from level 5 to see them.
  • Two new distractions! And global, not local.

But we haven’t run out of ideas yet. Next time: bonus rounds…

Fallstar 1.1: Coming soon

We are hard at work on a major upgrade for our latest app Fallstar.

Development is an iterative process of the application of limited resources, which in this case means that the full roster of changes destined for Version 1.1 is in flux from day to day, but the biggest update is likely to be new gradient coloring for pieces. The effect is difficult to describe (and so are the colors) but it’s a game-changer!

Aside from numerous improvements under the hood, we’ll also have new layers and distractions for all five of our users to enjoy. (That’s a 400% increase over our last non-free app, so the electricity around here is ecstatic!)

We expect to wrap up 1.1 in the next two weeks…

Update: It’s here!

Announcing Fallstar!

Heurihermilab is / are extraordinarily pleased to announce the release of Fallstar, now available in the App Store for iPhone and iPad. This deceptively simple matching game for one or two combines timing, multilayered geometry and animation to make cognitive overload more enjoyable than you might reasonably expect.

iPhone-6-Plus---1P-lev2-B-400px

Match in every lane and advance to the next level for new shapes, sizes, and distractions.

iPhone-6-Plus---2P-lev4-A-400px

Fallstar joins Twitchbox in Heurihermilab’s portfolio of fine iOS game apps.


Download_on_the_App_Store

 

Why games?

In my own mobile app work, published and unpublished, I’ve been focusing on making games. Why? For several reasons:

  • Games are an area where there’s more room for experimentation in user interface but also a strong requirement for usability. Unlike a more typical business app whose interface is primarily focused on presentation or access to information, games combine presentation with action in a way that must be fun. If it’s not fun to play no one will play it.
  • Games push the tactile, interactive parts of the touch device to the foreground. Interactive touch is the third great interface paradigm of modern computing, after the command line and the graphic interface, and keeping it flowing is hard work. Just a little lag and the illusion of interaction is gone, a bit more and the user is needlessly frustrated. Games force you to get all the details right.
  • Games allow me to make up new methods of interaction other than tapping buttons, drawing and selecting items from a list. I think of a way I would like to interact with the screen and then develop a game from it. For example, I created Twitchbox to explore how to use multiple and independent touches (up to 8) at the same time. (Fun fact: iOS can handle up to 11 simultaneous touches.)
  • Games have rules, and rules about rules. You wouldn’t voluntarily play a game that is obviously unfair (a rule so fundamental that chimpanzees understand it, by the way). You probably wouldn’t like a game where the second player doesn’t get as many turns as the first. And when you make a move, it should be clear that the move has been made — if there isn’t a reaction of some sort, visible or audible, when you touch the screen, most people will try touching just a few more times and if there’s still no response will quit in frustration. These are rules so implicit that we don’t even think about them unless they’re broken, so one way to uncover them is to create from scratch and see what’s intuitively required.
  • Games are hard. But it wouldn’t be a challenge if they were easy…

Programming Isn’t for Everybody

I was at a training event related to the AT&T Developer Program a little while back. We were one of a series of groups who were given these nifty little credit card-sized Texas Instruments LaunchPad computers and they were running us through the process of uploading code onto them and executing it.

Working with embedded systems like the LaunchPad, where you’re presented with a CPU (in this case a 32-bit ARM Cortex–M4F) and a bunch of discrete components with some glue code so they can communicate, you’re programming “close to the metal,” and if one small step in the sequence is slightly off the whole thing may hang and never respond again. This is a case where turning the problem machine off and back on again is definitely a viable strategy to fix problems!

More people than expected were in attendance, so I was sitting on a couch in an overflow room where the trainer was mostly audible and visuals partly visible, following an example procedure in the written materials when the output from the computer froze. As I unplugged the LaunchPad from the laptop to reset it and started rebooting and connecting to the development environment, I turned to the person next to me on the couch to see if he was any further along than I.

Alas, such was not the case, and he was feeling like he had run into a brick wall following the instructions. He would simply have to start again without knowing what had gone wrong and hope the result would be different. I asked if he was a programmer, and he said no, he was in marketing. I told him, “The next time someone tells you that everyone must program, remember this moment.”

– – –

Programming computers, like any other professional trade or substantial body of knowledge, is difficult to learn. To use the ever-popular car analogy, most people would just like their car to take them places and not have to fiddle with the engine. There are very few things on a car that your average person could fix without professional help. Computers, like cars, are technological enablers, and though someone with expert skills can do amazing things with them, most folks are content with the basics (communication, social connection, entertainment) and more or less leave the creativity to others.

And computers are becoming more difficult to understand than ever, even for pros. Modern consumer OSes have hundreds of thousands of system calls that can be made, far too many to memorize or even be entirely familiar with. We may behave as though our code is the dominant force operating but in fact it’s constantly being swapped in and out of working memory at gigahertz speeds as the computer is doing a dozen other things including updating screen widgets like clocks and other background processes like networking, disk transfers and memory management.

For that matter there are fundamental parts of the computer the even the people who write the OS and design the hardware don’t have access to. The CPU may have boot code written in an entirely separate and undocumented language. The keyboard has its own dedicated processor. Your smartphone has a whole parallel operating system to run the onboard radio transceiver that communicates with the cellular network and makes your phone calls possible — even manufacturers like Apple or Samsung who design their own processors use someone else’s chips for this. (The potential for security failure is very real in these areas, and virus scanners don’t check them. If one of these gets infected there is currently no cure short of junking the device.)

– – –

I do think most folks would benefit from learning a little programming at an early age. Developing a concept of what an algorithm is and how it is executed step by step like a recipe, having an idea of how a general-purpose processor operates, understanding the basics of how a web page is made and served over a network — these should be part of basic cultural literacy.

And those of us who excel in all this, no more than 10% of the population I’d imagine, would be introduced to the joys (and perils) of programming at an age when brains are still developing, potentially encoding in hardware the kind of logic, fidelity to facts, and capacity to assimilate and act on very large aggregates of information that — let’s face it — our species needs to continue to operate a worldwide industrial civilization without making the planet uninhabitable.

Why “Heurihermilab”?

Names are important. They’re like handles for ideas. When I named my place of work Heurihermilab, I was trying to bring together three ideas:

  • heuri, for heuristic
    Heuristics are general rules of thumb that can be used to make decisions. They are often incomplete but over time can form the basis of full understanding.
  • hermi, for hermetic
    Hermeticism is a philosophical tradition associated with the development of early science, with echoes of hermetic as in “an airtight seal.”
  • lab, short for laboratory
    A laboratory is a place for experiments, research, teaching, or manufacture.

I pronounce it hyur-uh-herm-uh-lab.