Ramping Up
I'm sorry, I've been terrible at keeping everyone up to date with Lemma. If you want to see what I've been up to since Alpha 3, my TIGSource DevLog has a few posts you might have missed. Starting now I'll be focusing more on blogging, so expect more posts in the coming days!
Here are some highlights from the past... gosh. Seven months? Wow.
- Player movement has been drastically improved. No more floaty, slow acceleration.
- New auto-respawn system. No more backtracking 10 minutes to the last checkpoint.
- Full Xbox 360 gamepad support
- Major gameplay overhauls. The pistol and energy pickups are gone.
- Major level design overhauls. All but the first level has been thrown out.

- Four new types of enemies
- New, cleaner textures

- New logo

- New website
This is just the beginning. As the title suggests, I'm getting ready to ramp up development in a big way. As such, I found it necessary to upgrade my workspace. I've been using a standing desk at work, and I love it so much that I decided to build one of my own out of $200 of IKEA parts:
Auto-generating JSON serialization code in Objective C
I wrote this article for the Sidebolt company blog. Reposting it here for your reading pleasure!
Our latest game Skyward Slots makes extensive use of JSON. We send Gigabytes of it flying back and forth haphazardly between client and server over a WebSocket connection. At first, we wrote code by hand to pack and unpack each message. Later on we decided that life is too short for that.
In the beginning, we just dove into the JSON right where we needed it.
Simulating UIScrollView in Cocos2D
I wrote this article for the Sidebolt company blog. Reposting it here for your reading pleasure!
We publish our games on both Mac and iOS. Since UIKit is not available on Mac, we have to build all of our UI by hand in Cocos2D. One of the hardest parts to get right was emulating the UIScrollView bouncy scroll formula. Here it is in action:
There are tons of implementations available in nearly every language and framework, but few of them nail all the important properties of the UIKit scroll:
Lemma - Alpha 3 Ready to Play
After seven months of hard work, Alpha 3 is ready to play!
Some interesting statistics:
- 28,000+ lines of code
- 29 MB of compressed voxel data
- 63 MB of sounds and music
- 38 animations
- 60+ textures and normal maps
- 220+ revisions since Alpha 1
Incidentally, most of that is open source! If you're a developer, check it out on GitHub.
Quantity Brings Quality
As I suspected, I have an almost insurmountable case of coder's block after a full day at work. Nevertheless, things are getting done. In fact, this might be the best thing that's happened for Lemma because it's forced me to cut a lot out of the design and focus on core things. It's the only way I'll ever finish.
Screenshot below gives an idea of the new direction. I've dropped any pretense that the game occurs in our world as we know it. It was a restriction that existed only to service the story, and it was limiting the gameplay and visual style a lot. Now I'm free to do a lot more, and I'm not precluded from telling a story just because it's fantasy rather than sci-fi.
Anecdotes ahoy
A smorgasbord of anecdotes carefully compiled just for you, dear reader. This is #2 in a series of three posts which were originally one, before I decided I just had too dang much to say.
OpenStack
I spent a few weeks at work building a fully operational death star OpenStack cluster. What does that mean? Basically, we have our own little private version of Amazon Web Services. We can create virtual machines, virtual hard drives, even virtual IP addresses, all with just a few clicks. It also includes an S3-alike called Swift.
My Biggest Fear for the Future of Human-Computer Interfaces
I recently had to install and configure an 18-node OpenStack cluster, a process which involved a lot of SSHing and text-editing in terminals. I thought about learning Vim, but I was afraid of the incredibly steep learning curve, so I made do with GNU nano. It's not at all powerful, but it's easy.
Eventually I realized, "This is my job. This is what I do every day. Why am I holding off on learning something now, thinking it will slow me down, and that I'll have time to learn it later? It's not like I'm anticipating a major career shift any time soon."
Internet is Back
I just got internet back after being without it since before Christmas. It was a tearful reunion, to be sure. Turns out, I was actually more productive than usual without internet. There's a one-word explanation for that, and it rhymes with "edit".
ANYway, here's what got done:
Analytics
When you finish a play session, you'll see something like this:
I haven't figured out the server side of this system yet, but all it really needs to do is accept plain text file uploads. Once I have the files, it's easy to load them into the editor, yielding data like this:
Progress Report
Lemma has been radio silent recently, but that does NOT mean things aren't happening! I've been able to do a ton of work almost every day these past few weeks. Here's what's going on:
- Did some massive surgery on the very first tutorial section after getting some feedback from a limited alpha release. It introduces, jumping, climbing, vertical wall-running, and rolling/crouching.
- Added a second, underground section that introduces horizontal wall-running, wall-jumping, and some important story elements.
- Added a THIRD section, which you will see in a moment, that reviews everything and introduces the flying kick move.
- Wrote a small chunk of dialog for the text-message system. It's harder than I anticipated, making the conversations truly interactive without having the dialog tree explode exponentially in size.
- Simplified and consolidated the controls. Everything is on Shift, Spacebar, and Control now, should be very intuitive for FPS players.
- Overhauled some of the animations and added new ones for some new parkour abilities.
- Made the menu a lot more user-friendly.
- Committed approximately 15 million bug-fixes and tweaks.
TL;DR: Things are happening. Here's a video that shows one of several ways to get through the third tutorial section in quick fashion.
Mac and Linux Support
How's everyone doing? I'm doing okay. It's a Monday. Hope you're doing okay too. Surviving Sandy aftermath, school, work, and whatever other forms of oppression you may be under.
I don't have anything pretty to show for the past... wow, it's been three weeks. I've been working on a very lofty addition to Lemma's feature bullet list. And that is Mac and Linux support, via the awesome MonoGame project.
Don't get too excited. There is a ton of work left to do before this becomes a reality. But after a few weeks' work, I do know a few things:
