EthanJucovy < People < TWiki

TWiki . People . EthanJucovy

Ethan Jucovy

Google Summer of Code 2006 Proposal: #102 - 3D Desktop Games

Magnimarbles

I propose to design and develop Magnimarbles, an original 3D game, for Project Looking Glass. I am truly excited about LG3D? and I think that the new desktop metaphor that it proposes offers enormous potential for new methods of user-computer interaction that are more intuitive, more enjoyable, and more productive. I would like to develop a new 3D puzzle game that takes advantage of and, crucially, highlights LG3D?'s features to encourage users to explore the possibilities for interaction with their 3D desktop.

Overview

The concept of Magnimarbles is simple: direct a magnetic marble from its starting point to a prespecified destination by placing magnetic blocks around the playing arena to direct the marble's motion. The marble must not only reach its goal, but it must do so while avoiding obstacles and traps. The game includes an appropriate physics engine with simulation of magnetic and gravitational forces and object collisions. All magnetized objects are monopoles; although this is unrealistic, it keeps the game mechanics more predictable, more controllable, and more fun.

Game Mode

The primary game mode consists of a standalone windowed application. The game is played in two phases, design and test. In the design phase the player reviews the predefined obstacle course and places magnetic objects around the course to influence the trajectory of the marble. In the test phase the marble travels through the course under the influence of the placed magnets and other obstacles. If the marble fails to reach its goal, the player returns to the design phase and attempts to correct the course so that the marble can reach the goal.

Several factors affect the difficulty of the game: number of attempts, time, and resources. The player loses the game if she fails to complete a particular level within a certain number of attempts. Besides this, the player's score for a level is based on the number of attempts used; the time taken by the marble to reach the goal in the final, successful test phase; and the number of magnets placed. A number of predesigned levels (that is, obstacle course layouts) and challenges (such as "complete the level within 30 seconds" or "complete the level using exactly three magnets") are provided, but players are also free and encouraged to design and share their own levels and challenges for extended replayability.

Desktop Toy Mode

A second mode allows users to play the game on the Looking Glass 3D desktop rather than in an isolated windowed application. This mode allows the user to use the desktop as an interactive toy: desktop objects take the place of obstacles and the only game-specific items in the desktop are the marble, goal object, and user-placed magnets. In this desktop mode, the design phase consists, as before, of placing magnets to direct the marble's motion; however, the desktop functionality is at no point impaired, so the user can move around desktop objects during both the design and test phases to clear obstacles from the marble's path; dynamically create an obstacle course; or even use desktop objects as paddles to hit the marble. In this mode, therefore, Magnimarbles is more appropriately considered a desktop toy than a full-fledged goal-oriented game, as in the standalone mode.

Approximate Schedule

* Research: 3 weeks. (1-3) Thoroughly read through LG3D? documentation. Explore the LG3D? code and application development process. Create small trial programs to experiment with LG3D?, culminating in a framework for Magnimarbles.

* Initial Game Development: 2 weeks. (4-5) Develop functioning objects and physics engine for Magnimarbles. Complete an initial working release of the "game mode" for gameplay testing.

* Level Editor Development: 1 week. (6) Design a file convention for saved levels, and develop a graphical level editor for level designers to position obstacles and initial and goal points.

* Desktop Toy Mode Development: 2 weeks. (7-8) Code an initial working release of the "desktop toy mode."

* Playtesting: 1 week. (9) Play the game, and encourage others to play the game, to determine what physical constants to use for best gameplay.

* Expansions: 1 week. (10) Design sample levels and challenges.

* Documentation: 0.5 weeks. (10.5) Write complete offline help files for the game.

* Unscheduled: 1.5 weeks. (11-12) Track bugs. Tweak gameplay constants. Design additional levels and challenges.

About Me

I am a computer science major at Swarthmore College in Pennsylvania, USA and an amateur game designer and developer. Last summer I participated in the first Google Summer of Code, designing and developing an original multiplatform game, Bingleball, for the WinLibre software package.

-- Main.ejucovy - 06 May 2006

----- Revision r3 - 06 May 2006 - 19:43:28 - Main.ejucovy