Category Archives: Software

Software-related information

Back to the game!

Now that robotics season is completely over, and life has returned somewhat to normal. Back in December, I was working on my very first video game to release, and I said I would return to it when the robotics season was over. And here I am, after our last competition for the year.

Since I’ve turned my thoughts back to the game, I’ve decided to also do the artwork for it. This isn’t too brash of a decision for me for a few reasons:

  1. I’ve got passable experience working in Photoship/GIMP.
  2. I’ve got some recent experience in Illustrator/InkScape.
  3. The graphics for this game should be clean, simple, and uncomplicated.

So, I feel I’ve got a fighting chance here. If there were any more complications in the artwork, I would definitely be seeking help in this area. As it is, I’ll be having a couple of artists review and critique my work before I get too far anyway.

Behold!  My mediocre artistic drawing skills!

flying saucer - concept art for lander game
flying saucer – concept art for lander game
alien family - concept art for lander game
alien family – concept art for lander game

 

Well, I guess that’s all for now.  I’ll post more updates as we go!

–Kevin

 

 

FIRST Robotics Season 2015

Lots has happened since the last post at the beginning of the build season. The team has completed a robot, completed a practice robot, went to regional competition and learned quite a lot. I’ve learned quite a lot, too.

[Want to see the team’s progress? We have video updates here on YouTube.]

Our team, System Meltdown (FRC 2357), did great at competition this year.  They really came together as a team at the end.  We ended up moving on to the playoffs and making it to the quarterfinals.  We almost made it to the semifinals as we tied for points.  The best part was that our team and our robot performed very well in the playoffs especially.  It was the other teams who had trouble this time.

Aside from the expected learned bits of taking more time and commitment than expected, navigating the politics of the local school system, and keeping teenagers on task, there have been some unexpected lessons:

  1. Parental support makes a huge difference.

This one is a little obvious if you think about it, but other than bringing kids and picking them up, our team parents not only bring food to each of our shop sessions, but one of them organizes the whole effort of doing so.  They show up in large numbers to any outing we have, help mentor the team, and donate everything from cleaning supplies to workbenches.  Amazing.

  1. There’s a wide spread of commitment between students.

Some students are very committed and productive, but others are only casually there.  I figured this would be the case, but there really is a very stark difference.  However, there were a few cases of students who just needed some direction and latched on as soon as we found it for them.  In many cases, the age of the student matters little.  We have some very committed freshman, and some marginally committed seniors.

  1. This would use almost every facet of my engineering knowledge.

I naively thought that the technical leads from previous years would have this down by now.  But they all still need help somewhat to fairly frequently.  Within a single shop day, I would find myself helping with software, explaining the actions of mechanisms, demonstrating how to solder wires, how to work a spreadsheet, and checking for essay grammar.

  1. There are teams out there who work with much less than we have.

I knew we had it pretty good with the financial support we get from our school district.  However, we really don’t have enough space for all 35+ students trying to make a shop, computer lab, etc. out of a standard classroom.  But at a scrimmage this year, I spoke to a mentor who said their team stores their robot and equipment in the science classroom closet, and getting zero support from the school district.  Talk about making the best of your situation!

  1. Goals are important!

Last but certainly not least.  It may seem obvious, but I believe this point cannot be overstated.  Our team had 3 goals this year.  We achieved two, and almost the third.  However, the overall success we realized was definitely a result of working toward those goals.

And that’s it for this competition season.  But it doesn’t stop here.  I will continue to keep meetings going in the off-season and we will continue to work on projects for fundraising, community outreach, team training, and other technical activities.

Catch ya later!

–Kevin

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!

–Kevin

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!

Cheers,

–Kevin

 

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.

–Kevin