Game Development Newbies

From OLPC
Jump to: navigation, search
  english | 日本語 HowTo [ID# 212850]  +/-  


Currently this website and this project is under construction. Questions? Comments? Contact user:xocolatl or use the discussion page.


Introduction

This page is intended as a guide for people who want to program games for One Laptop Per Child's XO computers, but don't know how to get started (ie game development newbies). You may not have vast amounts (if any) experience in programing games and you may have limited programing experience, but that doesn't mean you can't put in some effort and produce an XO game. If you're interested in programing games but don't know how to get started, get help here.

Programming

Make sure to take a look at Getting started programming for general programming and development environment setup advice. There are currently four major approaches being used for Game development on the OLPC Sugar platform:

  • Writing PyGTK code as a regular Python Sugar Activity
    • Requires a fairly firm grasp of event-driven GUI programming, and encompasses a huge number of APIs (GTK, Pango, Cairo, etceteras), suitable for projects that need lots of text, buttons, and the like
  • Writing Pygame code with the OLPCGames wrapper (Game development HOWTO)
    • Comparatively smaller library focused on "bitmap" (raster) graphics and traditional arcade-style games
  • Web Browser (Javascript/Flash/Java/SVG/AJAX and/or HTML)
    • Simple languages, complex and fragile environment, portable, doesn't need to be specific to the XO, tends not to be usable when offline or behind a slow connection. Can be included in library modules fairly readily. If it works in Firefox on Linux, it probably will work on the OLPC platform.
  • Writing/Developing Etoys content/modules
    • Allows you to scale up from point-and-click media-scripting activities right up to very sophisticated demonstrations. Includes a large number of pre-packaged components that you can script together easily.

arranged in order roughly of descending complexity and "programming experience required".

Communication

There will come a time when you need to ask questions. You may need to find out more about recently updated specifications or even someone to look over your code. Here are some ways to contact others in the OLPC game development community.

  • The Game Mailing List
    • If you are interested in talking to other OLPC game developers, communicating game ideas, etc, you should join this list anyway. If you are interested, there are lots of other lists to join, but as a newbie game developer, definitely consider the Games list.
  • IRC channel, #olpc-content at freenode.net
    • IRC stands for Internet Relay Chat. Think instant messaging designed for group chat on "channels".
    • How do you get it? Start by downloading a client. I recommend xChat, although if you do a google search on 'irc client', you should get some good hits.
    • If you are working on an OLPC-XO or another Sugar environment, you can use the XoIRC client
    • Whatever your client, you should be able to access networks and visit channels on those networks. To talk to some OLPC game developers, use the FreeNode network and go to channel #olpc-content.

Find an Idea

Looking for inspiration on what type of game to create? There are pages in the wiki that can give you some starting ideas.

Lend a Hand

If you aren't comfortable starting your own game, or if one of these ideas particularly appeals to you, start off your OLPC involvement by helping one of these projects. If you have a Game that you would like assistance with, consider adding it to this list. Try to keep the summaries short and create a page in the wiki for more details.

PyGTK

  • Connect
    • Core activity included with the default installation, needs someone to step up and maintain it long-term, PyGTK based
  • Memoletters, Memonumbers
    • Memorisation games
  • Wordsearch
    • Find words in a field of characters

PyGame/OLPCGames

  • Poblano, Reversi, Sort (Game Jam Game)
    • Created during a game jam, require some more development work to be completed
  • Spray Play
    • Seems to need a lot of work still
  • Side Scroller
    • Currently, OLPC has a side-scroller engine under development. At some point in the not too distant future, levels will need to be created (and, if you feel such an inclination, you can customize your own side-scroller with the engine). Level development is designed to be extremely simple and involves editing a text file with symbols that look similar to the tiles. Therefore, the transition from making the level to seeing its output is very smooth and satisfying. If you are interested in helping create levels (or, with a bit of programming, creating your own unique side-scroller with unique enemies, bosses, gravity, etc.), please contact me at pepboy013@gmail.com, and I can send you examples and walk you through the process.
  • Incredibly Simple Interactive Storytelling
    • The goal of ISIS is to create a very simple and usable interactive storytelling system aimed at young kids using the XO Laptops. More details about this project are being discussed at Adventure Stories
  • Productive
    • Simplified Real Time Strategy game
  • MaMaMedia Story Builder
    • Help build an editor for telling interactive stories
  • Kuku
    • Numeric education game
  • ThreeDPong
    • Pong played in wireframe 3D
  • ImageQuiz
    • A quiz-game, where questions are answered by clicking on an image

Web

  • Game templates
    • Develop templates for students to produce games in less than 10 hours of work (normally web-based)

Etoys

Others

  • Micropolis
    • Commercial city-simulation game based on SimCity(TM), you'll likely need to be a fairly advanced coder to contribute here. TCL, being ported to Python/C
  • Treenimation
    • Delphi game framework being ported to Python