FIRST Robotics 2015

Yesterday was the 2015 kickoff of the FIRST Robotics Competition. What’s that, you say? Well, watch this video and listen to the soothing voice of Morgan Freeman while he explains it to you:

Don’t worry, I’ll wait for you to finish before I continue…

…done? Okay.

FIRST Robotics is a way for me to give back to the community, and a way for me to help further Science and Engineering in the U.S. You see, for a long time I’ve read the articles and seen the statistics of the state of decline of Science and Engineering within the U.S. and how all these jobs and proficiencies are going off-shore. It’s disconcerting, to say the least. Then I came to the realization: What am I doing about it? I’ll save you the platitudes about how even one person can make a difference, blah, blah, but the fact remains that if I’m not doing my part, I can’t get all preachy about other people not doing theirs. That would make me a hypocrite, which is something I vowed I would never be.  It’s a worthy goal, and lots of people in the public eye agree, for once.

Who would have thought you’d see Snoop Dogg and the like bestowing the virtues of Science?  Did I mention that Will.I.Am performs at the FIRST Robotics Championship basically every year?

He’s doing his part.  I guess I should do mine.  That’s why for the last 2 years I’ve been involved in FIRST Robotics as a Judge and a Mentor.  That’s also why this year I accepted the primary coach position for the Raymore-Peculiar High School Robotics team, at which I’ll be spending at least 3 days a week coaching and mentoring 30-40 students every week, getting ready for the Kansas City Regional on March 13-14.

More on the actual kickoff and design later!


Mobile Game Concept

So, ever since I vowed to start my own mobile game last summer, I’ve been working toward that goal whenever I can. Here’s my progress so far.

  1. Compare game frameworks

I started out looking at several frameworks, and then trying out a couple. I looked at Corona, Marmalade, Unity, Unreal Engine, Cocos2D, Gideros, and a few others.

  1. Try out frameworks

Here I chose Marmalade first. This is the framework that was used to make Plants vs. Zombies, Cut the Rope, Draw Something, and others. So I figured it was a good place to start. Marmalade is a cross platform game engine, and I opted to use Marmalade Quick, which is a 2D-only Lua-based SDK.

Problems with Marmalade: Support wasn’t very good and there were several places where the documentation didn’t match the actual code. Also, quite a bit of the game development process was still left to the developer to handle in Lua.

Second, I chose Unity. I didn’t choose it before, because the 2D support is still new. However, there is one single largest benefit to Unity, and that’s the Editor. The Unity Editor is so amazing it becomes the central point of driving the development process of the game, which puts your code in specific buckets called scripts. You also have your choice of C# or JavaScript for your code integration. I’m familiar with both, but enjoy the structure of C#, so I started using that.

  1. Select the idea for the Game to do first.

Although I had several ideas for games that I’ve collected for future use, I’ve settled on one that will be fairly easy to implement.  It’s an addition to the “lander” genre, if you know what that is, but my goal is to make it a game that anyone aged 8+ can play (because that’s the age of my youngest daughter.)

  1. Start development on the game.

This started out with working out the game mechanics and going from there.

So, where am I now?  Well, this video was from last October and shows some of the functionality I’ve implemented so far.

  1. What’s next?

Well, I wish I could say I’m finishing this game very soon, but I’ve got some higher priorities coming up for the next few months as I’m now the coach for the local High School’s FIRST Robotics Team.  But more on that in the next post.  I promise it won’t be so long until the next one!




A Trip Down a Programmer’s Memory Lane.

[This is a post I wrote on my old blog July 31st, but I felt it was relevant here as I’m still working on this project–stay tuned for updates!]

The other day, I was listening to the Ruby Rogues Podcast: Episode 154, and they start talking about something that has absolutely nothing to do with the normal Ruby topics. They were talking about game development. Within the first few minutes, James Edward Gray says:

It seems to me that when I talk to lots of programmers, and they give me their origin story, it somehow includes “Oh yeah, I got into programming because I wanted to make games.” I swear a strangely high percentage of people say this. And then I talk to them and say “Awesome! What have you made?” And they’re like “Oh, nothing. A little something, but yeah, nothing.” And I think this is kind of tragically sad.

Ouch. That hit way too close to home for me. I originally really got into programming when I was middle school aged, playing in qbasic (or Quick Basic 4.5, that I bought from Babbage’s). Then later in high school I taught myself C++. The whole time, I was making games–or trying to. In reality, I would do clever things with graphics libraries, try to tie them together into a game, then either hit the ceiling of my technical ability or just lose interest and move on to something else. In almost every case, I had a vision that was much larger than I was willing or able to follow through upon. In college, I modified a CircleMUD codebase in an effort to make my own MUD, but again, it eventually fell by the wayside even though I had several really cool things that I did with that code. At some point after, I converted to programming for a living and never really attempted to write another game from that point on.

Upon this reflection, I think I’ve learned two lessons:

  1. I shouldn’t berate myself for these unfinished projects. Although I never completed them, I learned so much. And what I learned eventually translated into a fairly good living with a job I enjoy.

  2. I should choose less ambitious side-projects, something more achievable, where I can build something that I can actually show to people in its completed form.

  3. I should write and complete a game. It was always one of my dreams to complete a game. It’s definitely within my abilities. And I still kind of feel guilty that I never achieved this milestone in my life.

So, here it is. I will set forth an immediate side-project goal of creating and completing a game. Right now, it seems like the best place to start is with a mobile game. These games can be simpler and there are several frameworks available to speed development of such games. In fact, I’ve already begun reviewing several of these frameworks. I’ll post a summary of my findings on each of these frameworks on the next post. In the meantime, send me a tweet with your thoughts on this subject! Did James Edward Gray’s statement resonate with you as well? Have you done this before, or want to? Would you like to point and laugh at my first attempt? Talk to you soon.


Hello again!

So here we are, a new home on the web for me.  I’ve tried this blog thing once before, but I was determined to use developer-ish tools to do it.  The only problem with that approach was that it made adding new posts more difficult.  Write it out in markdown, check it in to that repository, then do the static site build, check that into another repo, then update and the post appears.  I know, it’s not a lot of work, but it was enough of a barrier to keep me from contributing creatively.

So, here I start again, this time running WordPress.  Something I’ve never actually done before.  So we’ll see how it goes.  So far, the site is very default, but I’ll do my best to change that over time.