User:DavidL

From OLPC

My name is David Ludwig and I am a software engineer for Funkitron, Inc., a Massachusetts-based casual games developer. I participated in the June 2007 Game Jam at Olin College, where I started work on an implementation of Reversi.

I can be reached via e-mail at dludwig at pobox dot com.

OLPC Game Jam Updates

Saturday, June 9, 2007, 12:15 AM: Started work on a Reversi game. It's not working on an OLPC laptop yet. I tried that earlier; no dice. It was running an older version of the OS though, perhaps that had something to do with it?

Anyhoo, I'm off to post my code to subversion now. The code itself is fairly basic; it calculates and displays a grid, shows a sprite, and maps mouse clicks to game cells. No game logic though, that comes tomorrow. I ought to get some sleep. :-)

Saturday, June 9, 2007, 11:56 AM: I got in a few hours ago, and have started to refactor my code into an MVC pattern. Some basic views and a single controller have been set up. Up next, in no particular order:

get views working that indicate who the current player is, and what their score is

setup the cell views to display where a player can place pieces. My hope is that this will allow the game to be self-taught (hopefully, the player will see the highlighted cells and try to click on them!)

get a data model working

The game seems like it'll end up being two player, although I'm hoping to get things working well enough soon such that I can do work on networking. I was hoping to have a local machine list on the side of the screen, although the API to retrieve this info requires GTK with DBus, and I'm using Pygame. From what I've heard, the two have different event loops, each of which really wants to be the main loop. Last night, I heard that someone may have gotten the two integrated using multiple threads; I may ask around about that. At the moment, getting the game feature complete on a single system seems more important though.

The possibility of getting an AI working seems more reachable. I was sent a C++ based reversi AI yesterday, courtesy of Wade Brainerd. The problem is, it's C++, and I'd either have to bridge the two languages in some way, or port the code to Python. I may end up writing a very basic AI in Python.

Monday, June 11, 2007, 8:42 PM: The jam was over as of yesterday evening. I was able to get a playable copy of Reversi working, along with sounds from Brian Jordan (thanks again!), but networked gameplay and AI were nixed due to time constraints. In addition, the code's likely in need of optimization if it's to run off batteries; there's way more drawing going on than there needs to be. It ended up being judged by a group of children; some seemed a bit perplexed by it, others seemed to really enjoy it. The coolest part of the jam was having one of the kids walk up to me to hand me his vote (a slip of paper with a number on it.) While I don't think that was official, it was still pretty cool.

I am thinking of doing further work for the laptop, possibly improving on my implementation of Reversi. I'm not sure when I'll be able to get to it, possibly not until August, when I'll likely be taking two weeks off. We'll see.