Parallax

From EQUIS Lab Wiki

Jump to: navigation, search

Project Proposal for Parallax

Contents

Group Info

Group Name: Flying Toaster Cat

Group Members: Zi Ye and Jesse Burstyn

Project Name: Parallax

Project Goals

  • Create a code module which allows 3D games to have parallel dimensions which the player can look and travel between seamlessly.
  • Design and implement a 3D platforming puzzle game which uses the aforementioned technology to create a unique game mechanic.

Game Info

The World

Dimensions

Parallax is a first-person, 3D platforming / puzzle game. In the Parallax world, there are two parallel dimensions. There is a great deal in common between these two dimensions, such as the general layout of the environment, the nature of certain entities, and the laws of physics. Aside from these, you can expect a lot to be different, such as the location of switches, doors, boosters, powerups, etc.

Portals

Portals exist throughout the world which allow the player to look across and/or travel between the dimensions seemlessly. When the player looks through a portal, he sees exactly what he would see if standing at the same location in the other dimension.

Gameplay

Certain objects are able to remotely interact with each other across dimensions. For example, a switch in one dimension may be used to activate a door in the other, or a booster pad might only exist in one dimension, forcing the player to travel back and forth between the dimensions in order to reach his goal. The player will have no weapons or tools of any kind, and will only be able to run, jump, and press buttons. There will be 5 to 10 levels, in which the goal is to activate and reach a door to advance to the next level. Here are some preliminary (already outdated) puzzle concepts:

puzzleideas.gif

Graphics

The game will feature a very simplistic, flat-shaded, monochromatic visual style. This has a few benefits:

  • Contrast can be used to clearly communicate the separation between dimensions.
  • Makes gameplay elements easy to identify.
  • Visually pleasing and easy on the eyes.
  • Makes art asset creation less of a headache.

Here are the graphics as of the first proof of concept:

prototype1.gif

Sound

The game will feature either a very techy soundtrack or a piano soundtrack. We are currently leaning toward the piano soundtrack, since it relaxes the player (hopefully not too much), and the black-and-white visual theme is reminiscent of a piano's color palette.

Input

The game will be played via keyboard + mouse.

The Technology

Motivation

We are fascinated with the mind's ability to problem-solve in contexts for which it was not specifically evolved. We would like to shatter the conventional spatial model of 3D games by introducing parallel dimensions. Other games such as Portal and Miegakure do something very similar.

Implementation

The following is a very brief summary of how we implemented interdimensional rendering. Each dimension is has its own scene and camera. All cameras that are not of the current dimension are forced to exactly mirror the camera in the active dimension. Each portal exists in both dimensions. Each entrance of a portal displays the contents rendered by the other scene's camera, while ignoring all the objects between it and the camera. When the player crosses the portal, the active dimension is switched.

The Tools

Coding Environment

We will be using Boo, a .NET language with Python-inspired syntax. Boo writes fast, compiles fast, and runs fast. It allows us to quickly and painlessly write and test features, and doubles as a scripting language. The IDE we will be using is SharpDevelop, an open-source environment compatible with Visual Studio.

Engine

The engine is a compilation of different open-source packages and personal code.

Graphics

For graphics, we are using MOGRE, the managed wrapper for OGRE (Object-oriented Graphics Rendering Engine). OGRE is a great compromise between the power of low-level graphical APIs and the convenience of game engines.

Audio

For audio, we are using MFreeSL, a custom-made managed wrapper for FreeSL, an open-source sound library.

Input

We are using MOIS, the managed version of OIS (Object-oriented Input System) for input.

Physics

For physics, we are using MogreNewt, the managed version of OgreNewt, which is the OGRE binding for Newton.

Content Creation

2D Art: Adobe Photoshop

3D Art: Blender

Sound: Audacity