Game Development Newbies: Difference between revisions
m (clean up the introduction section.) |
|||
(9 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Translations}} |
{{Translations}} |
||
Currently this website and this project is under construction. Questions? Comments? Contact [[user:xocolatl]] or use the discussion page. |
Currently this website and this project is under construction. Questions? Comments? Contact [[user:xocolatl]] or use the discussion page. |
||
⚫ | |||
⚫ | 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 ( |
||
⚫ | |||
⚫ | 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== |
==Programming== |
||
Line 12: | Line 15: | ||
* Writing PyGTK code as a regular Python Sugar Activity |
* 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 |
** 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 [[Pygame wrapper|OLPCGames wrapper]] |
* Writing Pygame code with the [[Pygame wrapper|OLPCGames wrapper]] ([[Game development HOWTO]]) |
||
** Comparatively smaller library focused on "bitmap" (raster) graphics and traditional arcade-style games |
** Comparatively smaller library focused on "bitmap" (raster) graphics and traditional arcade-style games |
||
* Web Browser (Javascript/Flash/Java/SVG/AJAX and/or HTML) |
* 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. |
** 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 [[ |
* 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. |
** 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. |
||
Line 23: | Line 26: | ||
==Communication== |
==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 |
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 [http://lists.laptop.org/listinfo/games Game Mailing List] |
*The [http://lists.laptop.org/listinfo/games 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. |
**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]] channel, #olpc-content at freenode.net |
||
**IRC stands for Internet Relay Chat. Think instant messaging designed for group chat on "channels". |
** 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 [http://www.xchat.org/ xChat], although if you do a google search on 'irc client', you should get some good hits. |
** How do you get it? Start by downloading a client. I recommend [http://www.xchat.org/ 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. |
** 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 [[Software_Ideas#Games (see also Games)|pages]] in the [[Games|wiki]] that can give you some starting ideas. |
|||
==Lend a Hand== |
==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 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]] |
|||
⚫ | |||
* [[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 |
* 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. |
** 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 |
* [[ISIS|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]] |
** 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]] |
||
*[[Games/Productive|Productive]] |
*[[Games/Productive|Productive]] |
||
** Simplified Real Time Strategy game |
** Simplified Real Time Strategy game |
||
* [[MaMaMedia]] [[Story Builder]] |
* [[MaMaMedia]] [[Story Builder]] |
||
** Help build an editor for telling interactive stories |
** Help build an editor for telling interactive stories |
||
* [[ |
* [[Kuku]] |
||
** Numeric education game |
|||
⚫ | |||
* [[ThreeDPong]] |
|||
** Pong played in wireframe 3D |
|||
* [[XO ImageQuiz|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 |
|||
* [http://www.swa.hpi.uni-potsdam.de/projects/olpc/ Student Projects] |
|||
** University student projects to create games using Squeak/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 |
|||
[[Category:Games]] |
[[Category:Games]] |
Latest revision as of 22:42, 21 July 2009
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
- Student Projects
- University student projects to create games using Squeak/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