Parallax
From EQUIS Lab Wiki
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:
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:
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