|
Back to Vacuumwoman |
|
Phaestos Game Engine 0.1 Beta
The Phaestos game engine is currently under heavy construction. The development team is focusing on the graphics engine and rendering pipeline of the Phaestos engine.
Version 0.1 Beta is now available for download via nightly builds and a Subversion version control repository.
SUBSYSTEMS
[Resource Management]
- An extendable system to manage textures, materials, 3D models, environments, and plausibly other resources, including sounds, music, and animation key-frames.
- Flexible subsystem allowing developers to create their own task-oriented resource managers.
[Scene Management]
- Scene management controls scene traversal and renders objects to the screen based on camera settings for optimized performance.
- Occlusion culling is possible to reduce polygon over-draw.
- Flexible system allowing for alternate scene traversal heuristics such as Binary Space Partitions for specialised application solutions and optimizations.
[Graphics]
- Flexible graphics system independent of graphics API.
- Currently uses OpenGL, however DirectX will be supported.
- Automatic window management.
- Currently supports Win32 Platform SDK, however other GUI SDKs can easily be implemented.
- Supports most primitive polygon types with an Object-Oriented design.
- Light weight and modular design.
- Built-in camera object which can be manipulated like an ordinary object.
- Scalable pixel and vertex shaders planned for integration with the Sh shader language being developed by Michael McCool’s and Waterloo University.
FUTURE DEVELOPMENT
Physics, AI, Audio
CODEBASE FEATURES
[Documentation]
- Doxygen comments automate documentation generation.
- API employs namespaces to group related libraries and follow Object-Oriented guidelines.
[Platform]
- Currently the only supported platform is Microsoft Windows with OpenGL, however the code infrastructure has been designed to allow portability to other platforms such as Linux and DirectX, or plausibly video game consoles, like that of Nintendo.
- OpenGL 1.3+ and Win32 Platform SDK supported.
[Build System]
- Compiles with GNU Autotools to configure the build environment for use with a wide range of systems, including GCC 3.4 and Microsoft Visual Studio.NET 2003.
- Builds on Windows with a native compiler or on Linux with the MinGW cross compiler.
- Source code is managed with a Subversion source code repository.
- Custom nightly build system automatically compiles and uploads the latest revision every morning at 03:30, reporting any errors and automatically emailing the team.
THE DEVELOPMENT TEAM WILL BE HAPPILY ACCEPTING PATCHES AND SUGGESTIONS.
How to Obtain the Phaestos Engine
There are presently two ways to obtain the Phaestos engine; you may either download a nightly build or use the Subversion repository where the source code is stored.
1) Downloading a Nightly Build:
Every night at 3:30am, EST, our server automatically downloads all the current sources and attempts to build them. This route involves the least hassle and you won't have to compile anything to run the app. The nightly builds are NOT guaranteed to work properly, or even at all.
All the nightly builds for the last month are stored at http://multi.firefang.com/nightlies compressed in zip format. To decompress zip files we suggest 7-Zip
2) Using Subversion:
Our Subversion repository is stored at https://multi.firefang.com/svn/multi.
Subversion, or SVN, is a version control system that we use to maintain our source code; it's similar to CVS and geared mainly towards developers. Code from the SVN repository is even less likely to build than the nightly build, and you have to compile it yourself, however if you're planning on contributing to the project we highly suggest using the latest SVN revision.
There are many ways to access a SVN repository. If you simply want to browse the source code just type the above address in a web browser like Firefox or Internet Explorer.
To download the entire code base, you'll need something more sophisticated. We use the svn command line client, but there's also a graphical tool for Windows called TortiseSVN for the command-line-impaired. See the documentation for each product for further instructions.
Building Phaestos from Source
Phaestos uses GNU Autotools to build Phaestos. We use the Autotools packages available for Cygwin. Make sure your compiler (we use MinGW) and any required libraries are in your PATH, change to the root directory of multi and run: autoreconf -i ./configure make Assuming everything goes well you will find a new file called "demo.exe" which contains our current demo.
Required Libraries
It's likely that there's a couple libraries you'll need to install which likely aren't already on your system. You'll have to install them before the configure step above will succeed. These libraries are:
- Zlib
- LibPNG
Bug reports, suggestions, and patches
The development team would love to hear from you, they can be reached at devteam@multi.firefang.com.
Online Flash Simulation
In order to visualize MULTI, this online
Flash simulation was created to demonstrate the project's concepts and design.
While the actual project will be installed at Toronto's Seneca@York campus,
this simulation can give you an idea of the final production.
This simulation presents one of the two viewpoints in the project, where users can arrange and play musical cubes on a circular music score.
The associations between each symbol, sound and pitch are controlled by dragging the cubes and symbols around the screen; and dropping them in various spots.
The resulting music piece comes about through your own interpretation of how sounds, color and symbols are linked in your mind.
Launch Simulation (Opens new window; 440 kb)
|