Announcing our new iPad game: SquirrelWarz!

SquirrelWarz for iPad Claws Its Way Onto the App Store
Real Time Strategy Game Challenges Gamers to Gather Resources,
Build Towers, and Protect Their Home Tree

San Francisco, CA, October 6, 2014 – Prepare to defend your homestead while battling your greatest enemies – the other squirrels. IGORLABS today announced that SquirrelWarz is now available for iPad for $1.99.  While the boots may be small, that doesn’t mean they’ll be easy to fill. In SquirrelWarz, you take command of your very own squirrel army. Gather resources, train your infantry, and build towers in this fast-paced real time strategy (RTS) game. SquirrelWarz combines tower defense elements with RTS for a casual-feeling game with some surprisingly challenging levels and a fun sense of humor.

SquirrelWarz is available now on the App Store at: http://appstore.com/igorlabsllc/squirrelwarz

With games lasting as little as five minutes, SquirrelWarz is perfect for gamers looking for a quick, fun experience. Developed by a small team of Bay Area artists, SquirrelWarz feels like a handmade game… because it was made by hand! Most of the game’s art was created with watercolors and Sharpies, while the music was created with toy pianos, melodicas, and other toy instruments. Even the code is custom made by the developers. It’s all of these personal touches that make SquirrelWarz feel like a living piece of art.

Gamers looking for additional maps and another breed of squirrel to add to their army, can download an expansion pack for $0.99 cents.

SquirrelWarz is the first game release by IGORLABS. Founded in 2010 by Steve Hales, IGORLABS is a small studio filled with a great history in games. Steve, along with his brother – and SquirrelWarz lead artist – Mike Hales, worked at Danger, Inc. during the early days of the mobile gaming revolution. Together they created classic games for the Sidekick device including Bob’s Journey, Rock & Rockets, and Pumpjack. The music and writing of SquirrelWarz are the work of Doctor Popular, a yo-yoer turned game designer. The team is rounded out with the coding wizardry of Brian Hales and his dog Indy.

For more information contact:
press@igorlabs.com

Twang!

Today, with permission from Beatnik, Inc, I am releasing a code base, loved and hated by millions. It has probably been in a device in your pocket. We call it miniBAE, short for mini Beatnik Audio Engine.

First, let me apologize. Set your wayback machine to the year 2000. Nokia, the king of mobile phones, and their default Ringtone

The Ringtone heard around the world. My fault. Not that it's bad, but after a billion phones and countless trillion plays, maximum exposure has a new limit. The code being released today was responsible for enabling that audio meme to a wide audience.

As with any technology, there’s a story, and this one was an interesting one. The first version was created in 1991 by my business partner, Jim Nitchals, and myself. At that point it was called SoundMusicSys. Appearing in many successful video games for the Macintosh OS: Prince of Persia, Lemmings, Sim City to name a few. In 1997 we joined forces with Beatnik, Inc, founded by Thomas Dolby, and ended up in iconic consumer electronics from Apple, Sun’s Java, MagicCap, WebTV, BeOS, Nokia, Motorola, Danger, and others.

We were both obsessed with creating something that would allow music to be played and be small in size. We ended up creating the first software wavetable synthesizer that read and played standard Midi files all done in software. Prior to our technology, the only solution was hardware: a dedicated sound card.

But because of our background in video games, we understood low latency interactive audio and music, and the end result is this code. Before OpenAL, PortAudio, before many audio hardware abstraction layers, there was miniBAE.

The last commercial product that this code was used in was the Danger, Inc, T-Mobile Sidekick 3 in 2005.

The motives in releasing the code into the open source community are many:

  1. Jim and I believed in the Jeffersonian ideal that a inventor has a lock on an idea for a limited period of time. There were many ideas in this code that could have been patented. However, we chose not to pursue it. We chose the Trade Secret route. Because of that, this code did not end up in the hands of a Patent troll. Now it can be mixed back into the culture, to be recycled and reinvented.
  2. This engine is perfect for anything that requires small storage to create audio. Midi is a standard and is tiny. It does require great skill and effort to craft something beautiful, but it can be done. Along with this package are countless examples of Craftsmen and Musicians doing their best to create 5 minutes of music in 100k bytes.
  3. There were some outstanding people involved in this technology from 1991 to 2005, and I want to acknowledge them. Without their passion, belief, and considerable help, this code would have never gotten far.
  4. Because it is now available, some of the interesting DSP algorithms can be reused: File formats, fast reverbs, fast chorus, and fast sample rate converters (SRC).
  5. I want to use it!
  6. Both Jim and I are digital historians, and this code has some small value in preserving. And the best way to do that is release it as a BSD license.
  7. I have a small hope that our mission at Beatnik, to sonify the web, can become a reality now that the entire software stack is available. From the Javascript musicObject API, down to the C code that does the mixing.

 

On to the code, which is here:

ROBOT.BRAINS

Been looking through old 6502 code archives, and ran across this snippet of code from my game Fort Apocalypse. I’ve always gotten a thrill when watching Terminator because when we see the robot's code from his point of view, it's a 6502, and it looks sort of like this.
 

 
ROBOT.BRAINS
     LDA R.STATUS
     CMP #OFF
     BEQ .1
     CMP #CRASH
     BEQ .2
     LDA FRAME
     AND ROBOT.SPD
     BEQ R.START
     RTS
*
     LDA TIM7.VAL
     BEQ .0
.1   DEC TIM7.VAL
     BNE .2
.0   LDA #$88
     STA PCOLR2
     STA PCOLR3
     LDA #8
     STA ROBOT.ANGLE
     LDA RANDOM
     AND #7
     LDX LEVEL
     DEX         X=1?
     BNE .3
     CLC
     ADC #8
.3   TAX
     LDA ROB.X,X
     STA R.X
     LDA ROB.Y,X
     STA R.Y
     LDA R.X
     SEC
     SBC CHOP.X
     BPL .4
     EOR #-2
.4   CMP #34
     BGE .6
     LDA R.Y
     SEC
     SBC CHOP.Y
     BPL .5
     EOR #-2
.5   CMP #8
     BLT .2
.6   LDA #FLY
     STA R.STATUS
     LDX #0
     STX R.FX
     STX R.FY
     STX TIM7.VAL
     INX         X=1
     STX TIM8.VAL
     JMP POS.ROBOT
.2   RTS