Monthly Archives: May 2013

Keep Moving Forward

I’ve been working diligently on Greebles for most of the weekend, I’m happy with the progress I’ve made. Development seems so easy in Sublime with CMake under Ubuntu.

So, quick overview of the whole Greebles project. There are three separate “Programs” I’m writing: 1) The game itself, 2) A “Setup” program, 3) A “Custom Settings” program. The second two are just GUI forms for configuring the game settings. I’m going to finish two and three before one, and two before three.

So I should have ordered them like this:

  1. Setup Program
  2. Custom Settings Program
  3. Game

I’ve been cruisin’ on Setup this weekend. I decided to store all game data in a sqlite database that all three programs could share, so I finished designing the Setup part of the database, and have been coding up the Setup GUI. Here’s a quick preview:

setup-screenshot

I’m using wxWidgets for the form GUIs, plus wxFormBuilder to help design them and generate some of the code. Right now only the sound/music/difficulty settings actually get saved, I’m hoping to finish up the rest in the next week or two.

One of the challenges I faced this week had to do with the checkboxes next to each players name, signifying whether or not that player is going to play. In wxWidgets, checkboxes have to have a label next to them. If you specify an empty string “” for the label, no text shows up, but clicking the checkbox still highlights this empty area next to it…kind of ugly. Thankfully, someone whipped up a wxWidget Checkbox component that doesn’t use a label, problem solved!

This has been….Sublime

After a chance discussion with a friend of mine, and a positive test-run on my work computer, I decided this week to reformat my hard drive and install Ubuntu 13.04. No dual-booting, no Windows VMs, just Ubuntu. I’ve been super pleased with it so far: it’s much faster and less buggy than the last time I tried it, and I haven’t been able to come up with any need that it can’t meet. Hooray.

Part of the reason I had been hesitant to leave Windows was Visual Studio. I like it. A lot. (Minus its slothfulness on my machine) I had never been able to find a comparable editor, IDE or build system for *nix that I was comfortable with. (I had written makefiles for some school courses, and tried to use them in personal projects before. No thanks!)

A few weeks ago though, I decided to give Sublime Text a serious go. I had used it a bit before, and it had some neat features, but I hadn’t really tried to get into it. After watching some video tutorials though, I was thoroughly convinced.

I abandoned the behemoth that is Visual Studio. For editing at least. I used Sublime’s build system to invoke the Visual Studio compiler, and continued on my merry way, overjoyed by pretty much everything about Sublime. Now…if only there was a way around maintaining makefiles if I switched to *nix…

Enter CMake. It’s a cross-platform meta-build system, and I love it. I give CMake a pretty simple file describing my project, and it generates build files for whatever system I’m on. Solutions for Visual Studio, XCode Projects, and of course, makefiles. Practically zero build system maintenance, more time to code, I’m a happy camper. It even locates third-party libraries you want to use automatically. The only downside is that “Getting Started” guides are a bit sparse, but it’s not too bad.

So here I am on Ubuntu, using Sublime Text and CMake for all my development needs. No more 5 minute waits for Visual Studio to get going, or intermittent 30 second freezes on Windows. Life is good.

Progress!

This week I finally successfully launched the original Greebles running on an old eMac that I found! Now I’ll be able to compare to the original as I develop the modernized version.

    

Turns out that good documentation is kind of hard to find when it comes to getting classic mode running on OS X 10.4, after lots of searching I finally found this page that lays it out extremely well. Hopefully it’s of use to someone else at some point. 🙂

Next it’s back to framework development for the game. Stay tuned. 🙂