Projects/OLPC KAGE: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (→‎Why This Project?: added KAGEis young / being redesigned)
(→‎KAGE: added distinctive design)
Line 9: Line 9:


== KAGE ==
== KAGE ==
: '''[http://konsolscript.wiki.sourceforge.net KAGE]''' is a Free Software and Open Source Game Development Kit suitable for teaching 2D game programming.
''From [http://konsolscript.wiki.sourceforge.net KAGE Website]:''
: ''' KAGE''' is a Free Software and Open Source Game Development Kit suitable for teaching 2D game programming.


: The end goal of the project KAGE is to have a "Flash"-like educational gaming platform (though need-not to be in vector) for Windows, GNU/Linux, MacOS, and Symbian where any newbie can learn how to make his game/animation etc.
: The end goal of the project KAGE is to have a "Flash"-like educational gaming platform (though need-not to be in vector) for Windows, GNU/Linux, MacOS, and Symbian where any newbie can learn how to make his game/animation etc.


: A lot of work has been made and a lot more is to be done. It might need to hire programmers to make an engine for Symbian and MacOS, then some in-house testers for stability among these platforms.
: A lot of work has been made and a lot more is to be done. It might need to hire programmers to make an engine for Symbian and MacOS, then some in-house testers for stability among these platforms.

=== Distinctive Designs ===

''' Zips source file ''' - cleaning up the source file (KH) and zips it up as KONSL, which will eliminate further pre-processing everytime the the source is run.
* Zipping the source make the (pseudo) compiled code very portable to supported operating system and platform.
* Easy decompiling of (pseudo) compiled codes is not an issue, we have to teach the child the importance of Open Source from the very start.
* Zipping the cleaned up code decreases the file size of the game in case of distribution.

''' Script file over XML file ''' - placing a map definition (so does an entity definition) on a script rather than an XML, which is more understood to a debugging programmer.
* XML is meant for data, not for logic. Many programmers have problems dealing with XML.
* Map/Entity file contains logical data for triggering events.
* Map/Entity file can be generated by tools and can be tweaked manually.

''' Need for just one Runtime engine ''' - associating KS, KH and KONSL file to a single EXE (executable binary) file (like Flash) to avoid multiple copies of the game engine on one computer.
* Most of other game engine uses one EXE per created game.
* Although, Java requires at least one JRE for Java Games to run, setting class paths is an issue.

''' Easy setting of paths ''' - KAGE has pre-defined paths; either (or both) KAGE's path or the executed script's path so users don't have to worry about it.
* In Java, you have to deal with specifying class paths.
* No use of setting (class) paths for plugin; KAGE is a monolithic engine, all basic functionality of a game has been built into the engine.


== Why This Project? ==
== Why This Project? ==

Revision as of 15:32, 5 October 2008

Welcome to the OLPC KAGE: 2D Game Development Kit for XO

This project will be a big attempt to have an alternative 2D Game Development Kit for XO.

This will need a port of the Engine, Source Editor, and the Tools used in KAGE.

Project Members

KAGE

From KAGE Website:

KAGE is a Free Software and Open Source Game Development Kit suitable for teaching 2D game programming.
The end goal of the project KAGE is to have a "Flash"-like educational gaming platform (though need-not to be in vector) for Windows, GNU/Linux, MacOS, and Symbian where any newbie can learn how to make his game/animation etc.
A lot of work has been made and a lot more is to be done. It might need to hire programmers to make an engine for Symbian and MacOS, then some in-house testers for stability among these platforms.

Distinctive Designs

Zips source file - cleaning up the source file (KH) and zips it up as KONSL, which will eliminate further pre-processing everytime the the source is run.

  • Zipping the source make the (pseudo) compiled code very portable to supported operating system and platform.
  • Easy decompiling of (pseudo) compiled codes is not an issue, we have to teach the child the importance of Open Source from the very start.
  • Zipping the cleaned up code decreases the file size of the game in case of distribution.

Script file over XML file - placing a map definition (so does an entity definition) on a script rather than an XML, which is more understood to a debugging programmer.

  • XML is meant for data, not for logic. Many programmers have problems dealing with XML.
  • Map/Entity file contains logical data for triggering events.
  • Map/Entity file can be generated by tools and can be tweaked manually.

Need for just one Runtime engine - associating KS, KH and KONSL file to a single EXE (executable binary) file (like Flash) to avoid multiple copies of the game engine on one computer.

  • Most of other game engine uses one EXE per created game.
  • Although, Java requires at least one JRE for Java Games to run, setting class paths is an issue.

Easy setting of paths - KAGE has pre-defined paths; either (or both) KAGE's path or the executed script's path so users don't have to worry about it.

  • In Java, you have to deal with specifying class paths.
  • No use of setting (class) paths for plugin; KAGE is a monolithic engine, all basic functionality of a game has been built into the engine.

Why This Project?

  • XO needs alternative - there will probably be no Flash IDE that would run in XO, so a smaller Game Development Kit is needed.
    The Python Language is mostly the primary option. But this project will provide an alternative to PyGame, where a programming language will be more of C/C++.
  • Challenge to developers - KAGE has been proven to be as easy-to-learn basing from users of ages 16 to 18. A challenge to the developers is to make it more easy for ages lower than 16 to learn game development.
  • KAGE is young - yes, KAGE is 3 years old (as of Nov 2008) but it is this being young that made to integrate some innovative designs, listed under KAGE.
  • KAGE is being re-designed - KAGE developers has seen some design flaw. Re-designing is the only way to fix the flaw. And having XO as a new platform to be considered, this design should make the engine more user-friendly and machine-friendly.

Engine (Quixie)

Krixware KonsolScript Engine, aka Project:Quixie,is the cross-platform enabling engine of KAGE. This Work-In-Progress engine runs on GNU/Linux and Windows.

It is currently written in FreeBASIC. A language which was not yet tested to run compiled binaries under XO.

This could mean that a new engine might be needed and probably be implemented in C++. There are lots of other beginners gaming toolkit waiting to be used in SourceForge.

Editor (KSE)

KonsolScript Editor, is a simple editor. It only needed a syntax highlighting component (Scintilla).

The current editor is written in Visual BASIC 6. Although it runs on other GNU/Linux distro using WINE, it would probably not run under XO.

This means than a new editor will be needed for use in XO. But the engine is designed to be simple that a single call on the engine (passing the current file as argument) will be enough to run the script.

Tools

As of now, the mostly used tool in making games in KAGE is the editor and the engine, which seems to be enough for beginners to make their games.

But most of KAGE users' age ranges from 16 to 25. XO users ranges from 6 to 16. This would require some utilities to be developed.

Documentation

Tutorials - a tutorial is available from KAGE website, and a mirror from Game Programming Wiki and GameDev.net.

User Manual - a user manual is also available from KAGE website, which can also be downloaded as CHM file for off-line reading. Although, there seem to have no CHM reader in XO.


Games should be fun! Almost all of them require learning and honing some set of skills; logical, coordination, mathematical, etc. They are an important pedagogical tool that engage the child in a more informal setting. This category includes activities and ideas for games.