Skip to content

ahmadexp/Virtual-House

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

102 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Virtual House

A 3D simulation environment built with C++ and OpenGL to study the cognitive spatial navigation ability of the player. This was part of my Ph.D. thesis. This project has been modernized to support cross-platform builds on macOS, Linux, and Windows using the Meson build system.

Screenshot 2025-12-25 at 7 41 56 PM

Getting Started

Prerequisites

Platform Dependencies Install Command
macOS brew, meson, ninja, glfw, pkg-config brew install meson ninja glfw Pkg-config
Linux meson, ninja, glfw, pkg-config, libxrandr-dev, libxinerama-dev, libxcursor-dev, libxi-dev sudo apt-get install meson ninja-build libx11-dev libgl1-mesa-dev pkg-config libglu1-mesa-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev
Windows choco, meson, ninja, Visual Studio, pkgconfiglite choco install meson ninja pkgconfiglite

Building the Project

  1. Configure the build:

    meson setup build
  2. Compile:

    meson compile -C build

Running the Application

To run the application, executing the binary from the project root:

./build/virtualhouse

Common Flags:

  • /NOINFO: Hide the information overlay.
  • /TESTMODE: Enable automated test mode.
  • /AUTOEXIT: Automatically exit after reaching the goal.
  • /USEMOUSE: Enable free-look camera with the mouse.
  • /SHOWPLAYER: Show the player model (3rd person view).
  • /USEJOYSTICK: Enable joystick input.
  • /TRIAL: Allows to enter trial number.
  • /LATENCY: Adds input latency.
  • /ALLOCENTRIC: Enables 3rd person view where you can see the player.
  • /JOYANGVEL: Sets Joystick rotation velocity.
  • /JOYTRANSVEL: Sets joysticks traversion velocity.
  • /LANGUAGE n: Sets language (1=English, 2=French, 3=Spanish, 4=German).
  • /INOUTRATIO: In vs Out ratio.
  • /KIDMODE: Kid-friendly mode (required for animal sounds).
  • /ANIMSOUND: Play animal sound hints (requires /KIDMODE).
  • /PERPSTAIR n: Set stair/ramp type (1-6: 1=stairs 180°, 2=stairs 90°, 3=ramp 180°, 4=ramp 90°, 5=double stairs, 6=double ramps).
  • /LOGTOTAL: Logging everything.
  • /NOTEXTURE: Avoid using texture.
  • /TURNDURATION: Set turning about the house velocity.

Example:

./build/virtualhouse /USEMOUSE /NOINFO

📖 For detailed usage guide with examples, see USAGE.md

Running Batch file for experiments

for MacOS

./runmeEGO.command

for Linux

sh runmeEGO.sh

and for Windows

runmeEGO.bat

Project Structure

  • src/: Main application source code (start.cpp).
  • include/: Header files for game logic and rendering.
  • fw/: Cross-platform framework library (Input, Windowing, Math).
  • meson.build: Build configuration.
  • Media/: Game assets (textures, models).

Known Issues

  • Legacy audio: Audio playback uses system commands (afplay on macOS) rather than a dedicated audio library.

License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).

You are free to:

Share — copy and redistribute the material in any medium or format Adapt — remix, transform, and build upon the material Under the following terms:

Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. NonCommercial — You may not use the material for commercial purposes. For full details, see: https://creativecommons.org/licenses/by-nc/4.0/

As the project creator, I reserve the right to use this material commercially or under any other terms.

About

Virtual House is a 3D simulation of a two-story home where you must navigate to the room containing the target window. The goal is to reach it using the shortest possible path.

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages