GDC: The OLPC Project And Games
Gamasutra continued their extensive coverage of GDC Tuesday, with information on the second day of serious and indie gaming tracks. For those who have been following the One Laptop Per Child Project, one of that project's developers put out a call for serious games to support the device. With plans already in the works to get Sim City open sourced and on the machine, OLPC content manager SJ Klein hopes that more serious titles will enable children to learn through play. Other sessions on Tuesday included a look at the Gatekeepers of indie content, suggestions on prototyping for indie developers, and what sounds like a humorously interesting presentation from Eric Zimmerman about milking the casual games cash cow.
At kindergarten, everything is play for my four year old son, even if he is learning at the same time. He has access to computers at home, and uses them to play games, mainly flash applications on the web sites of popular characters.
So the younger you go, the more important game play is when you want to use software for education.
http://michaelsmith.id.au
While not a game, the TamTam music composition suite for the OLPC looks like a great app. The SynthLab sound editor is much like a modular synth, teaching audio physics and circuit design at at the same time. Check out this SynthLab video, good stuff.
.: Max Romantschuk
I'd love to develop games for the OLPC, if only there was a way for us (especially the indie developers, which is what GDC is supposed to be about) to get access to the machine. It seems like they're making an effort to keep it _away_ from us tho, so I'm not sure why they'd come out with this announcement.
--
Stay tuned for some shock and awe coming right up after this messages!
A self-powered SimCity machine? I'd almost sell my freaking soul for that.
I wonder how receptive EA would be to letting out SimCity (classic or SC2K please) as OSS.
And no, LinCity doesn't count. It's not quite the same.
"I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
http://nyamenation.org/
How about Civilization?
Libertarian Leaning Political Discussion Forum.
Does anyone here think those things can run Spring?
The fewer games on the OLPC, the faster the third world can catch up to the drooling, screen-confined first ;)
Will this have the ability to run Pygame, the main game toolkit for Python?
On a different note, Vernor Vinge's recent novel Rainbows End says something about a popular online game that's an obvious knockoff of a certain pocket monster game, mentioning that some of the creatures involved were designed by Third World kids. Maybe we'll see the OLPC spawn some kind of loose-protocol indie game vaguely comparable to GURPS.
Revive the Constitution.
In fact, they should get rid of all that fancy-pants wireless stuff and make the kids type in their programs out of magazines. They might actually learn how to code. Magazines have been replaced by the web for many so I think the fancy-pants wireless stuff is necessary to get these kids with OLPCs some source material.
http://nyamenation.org/
I would go so far as to say that most of the games on the system should be implemented in the Squeak environment, which will be provided on the OLPC. For those who don't know and are too lazy to link surf, Squeak is the latest descendant of Smalltalk developed by Alan Kay (and a host of others.) It's designed very much from the standpoint of education. It has a lot in common with logo; every graphical object is a "turtle" and besides being able to set its position you can rotate it, move it forward and back turtle-style, draw lines with it, etc. The typical demo is to draw a car and click the forward box in its properties to make it start moving forwards, then to click left and right to make it turn. Then you draw a steering wheel and when you turn it you can see its rotation number go up and down in the little properties box. You can actually drag that number over to the turn amount for the car and bingo! You can steer it. It's very very friendly, but you can drop into the code interface and you get access to all the power that is smalltalk, not that I know jack diddly about that language yet. But Squeak always runs in a VM so you can count on applications running the same on all supported platforms, at least to a much much higher degree than Java... In fact Java came out of the Smalltalk project in a way. It was an attempt to solve the same problems - an unnecessary and misguided attempt, perhaps :)
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
So if I'm reading this right,
a) There is already a Linux-capable SimCity
b) We are talking about SimCity Classic
c) The end result will be OSS
d) It will be scriptable in Python
SInce you're pretty close to the project:
a) Are you going to keep it in Tcl/Tk, or is it a complete rewrite in Python and (insert toolkit here)?
b) Will this version be usable/portable outside of the OLPC (both leagally and technically)?
c) How faithful is this version to "reference" SimCity (Let's say either the Win31 or Mac versions)?
"I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
"...and understand how this game works a lot more easily than they would be able with a game like Ultima."
You should check how old Richard Garriott was when he wrote Ultima.
Another thing you kind of missed. If no one is interested in the game. No one is going to view the source. That point is pretty much universal with open source anything.
Agreed. A two-player chess game (or draughts, or backgammon; hell, even Snakes and Ladders or Ludo for that matter) over the built-in wireless link-up is almost a no-brainer. You already get a menu of "people nearby", so one of the options should be to play a game with someone! If the person you've chosen to play against hasn't got the game client (actually, it's behaving as a server whenever it's that player's move, but let's not split hairs) installed on their machine, you just upload it to them automatically.
Apart from transferring the client code (which need only be done once, unless it ever has to be deleted to save precious storage space; maybe this will teach kids a few lessons about resource management) the actual protocol can be quite lightweight once a game is in progress. Every client keeps a local copy of the game's state, and only the player who is making their move ever needs to transmit any data. A single player's move in chess could be reduced to 12 bits: three each for the starting rank, starting file, destination rank and destination file. In practice, you would probably need more bits to allow for non-standard moves (like setting up a starting position so as to resume an interrupted game).
There's a lot of reusable material common to all board and card game implementations, which belongs in a library; the actual logic to implement the rules of a game would be tiny. And if all this is being written in Python, then it oughtn't to be too hard to write whole new games. Nothing you couldn't already do with the side of an old grocery carton and some felt-tip pens, but easier to share the results.
Je fume. Tu fumes. Nous fûmes!
The software sees the screen as a 1200x900 16 bit color framebuffer (and draws on it via X11). There is a button that rotates the screen, and the software does notice the aspect ratio changing between 1200x900 and 900x1200, thanks to window resize events propogated through the window manager. The hardware automatically converts it to monochrome and reduces the color resolution (called "swizzling"). So the color/monochrome "mode" is invisible to the software. You just keep drawing in color at the same full resolution, and the user can switch between reflective monochrome, and color with various brightnesses. So a 3D renderer would just draw in full color, and not concern itself with the monochrome mode or down-rezing the color. I don't know what the refresh rate is, but it look solid and animates smoothly.
-Don
Take a look and feel free: http://www.PieMenu.com
Squeak and eToys are currently included with the OLPC. And it is a wonderful way for kids to learn to program games, as well as for programmers to learn about Alan Key's revolutionary ideas! It's purpose is to inspire people, expose them to Smalltalk's unique ideas, the possibilities of visual programming systems, and point the way for future development. But the mainstream of software development on the OLPC will be done in Python.
Guido Van Rossum writes about Alan Kay's talk on his blog:
The idea is to re-implement the ideas of Squeak and other educational constructionist visual programming systems in Python, deeply integrated with the OLPC's Sugar user interface, and based on its libraries like GTK/Cairo/Pango, etc. Alan Kay writes on the Sugar mailing list:
Take a look and feel free: http://www.PieMenu.com
Developing reusable libraries that kids can use to write their own game is just what the OLPC project needs. It's best to write the libraries in pure Python, if performance isn't an issue. High performance libraries should be written in C or C++, and packaged as Python modules. The preferred way of drawing is with the Cairo library, which you can call from Python. You can also write C modules that get passed a Cairo context that they can draw with.
In the case of SimCity, I'm planning on factoring it out into reusable components, like the tile engine (written in C since it must deal with a lot of pixels and run fast), the sprite engine (which would be easiest to write in Python since it will simply call Cairo to do the rendering), map overlay (Python, for the same reason), graph display (ditto Python), etc. Then it will be possible to use those components in other games and toys, like using the tile engine for a cellular automata lab.
The OLPC needs all different kinds of game toolkits to support various games geanras, like a card game toolkit, a board game toolkit, a platform game toolkit, a space invaders game toolkit, a pong game toolkit, a simcity game toolkit, etc.
Pygame will be a useful imaging library, especially for full-screen bitmap-oriented and 3d games. But games that require user interface components and scalable outline graphics will be easy to draw with Cairo. It would be great to be able to draw in a pygame full screen context with Cairo, to have the best of both worlds.
-Don
Take a look and feel free: http://www.PieMenu.com
It may not be the only system of its kind, but it is the one with the most currency (and I don't mean cash.)
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"