Operation Eigenfaust 3D (Tech Demo)

A playable first-person shooter demo featuring interative objects and real-time ray casting.
Updated 19 Jul 2013

View License

Operation Eigenfaust 3D Tech Demo for MATLAB v0.80
Mingjing Zhang, Stellari Studio, 2013
Simon Fraser University

This is the first 3D game (demo) ever made with 'pure' MATLAB available on MATLAB Central.
In this demo, you can freely roam in a quasi-3D environment. The game runs at 40~60 FPS on my three year old Lenovo G460.

The sole purpose of this demo is to show off the discrete ray-casting engine I have written, which is an implementation of the ray casting algorithm on this page:

Right now the engine is almost fully functional. It even renders half-opened doors and objects behind them properly. You can interact with the doors by pressing space while standing in front of them. There is also perfect collision detection.

There is a switch hidden somewhere in this level, but you won't be able to interact with it...

How to play:
WASD - move //
Left/Right arrow - rotate //
Enter - mouse on/off //
ESC - quit demo//
Move mouse - mouselook (when mouse is on) //
mouse wheel - zoom in/out


Cite As

Mingjing Zhang (2024). Operation Eigenfaust 3D (Tech Demo) (https://www.mathworks.com/matlabcentral/fileexchange/42251-operation-eigenfaust-3d-tech-demo), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Video games in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

* Upgraded to ver0.85
* Renamed to 'Operation Eigenfaust 3D'
and several file/variable names were changed accordingly
* Used a customized icon for the app
* Removed textures with controversial content

* Upgraded to ver 0.80
* Now doors are fully interactive

Upgraded to Ver 0.75:
* Added collision detection
* Added rendering for doors

*Updated to v0.50
Now supports arbitrary resolution;
Added mouse wheel support