Invader Marvin
CSC 476 Final Project
By Shane Lile and Gerardo Perez


Main Page
Game Description
Users Guide
Features
 -Animated Models
 -Camera Angles
 -Collision Detection
 -Parallax Scrolling
 -Particle System
 -Sound Effects
 -Space Partitioning
 -Time-Based Movement
Sources/Credit
Download Source

  • VS .NET 2003
    Download Exec
  • Windows Exec

  • Our game implemented many features mentioned in lectures, in the student presentations, as well as other features we felt would help make the game a better experience. Below are many of the bigger features.

    Animated Models
    Marvin and an Ogre
    Our game made use of two animated md2 models, Marvin the Martian for the Player and an Ogre for the enemies. Both models were animated depending on their type of movement, with animations for






    Camera Angles
    Back Camera View
    Our game made use of two camera views. The first was a side view, similar to that in classic side scrollers such as Super Mario Brothers. The second was a rear view, similar to that of the second stage of Contra.






    Collision Detection
    Axis Aligned Bounding Boxes
    Collision Detection was handled by using Axis Aligned Bounding Boxes. Characters such as the Player checked their collision with all scenes they were in, the scene prior, and the scene after. More information on how scenes work can be found in Spatial Partitioning.






    Parallax Scrolling
    End of Stage 1
    Stage 1 featured what is known as Parallax Scrolling, which is when a background is moved slowly as the player moves quickly across the stage to simulate objects in the distance moving. The background in Stage 1 was an image about four scenes (in comparison, Stage 1 was 20 scenes in total) in width that slowly scrolled with the player to reveal the whole picture. This saves computation time that may need to be spent rendering a background behind the player.




    Particle Systems
    Fire
    Both stages included two types fire hazards that harmed the player. Both of these were simulated with a particle system based off of the one found in the tutorial at NeHe's site. The particle system was set up such that particles close to the center of the flame were white, and the particles slowly turned red as they got further from the flame.




    Sound Effects
    Both stages included both music and sound effects. Sound effects were played using Windows calls, while music was played using the fmod libraries. Sound effects were various .wav files from Super Mario Bros. games, while the music was .xm files from Super Mario Bros. and Contra.

    Space Partitioning
    Scenes
    Though we didn't use a specific form mentioned in lecture, we used spacial partitioning to speed up collision detection and time-based movement, as well as use a somewhat loose form of view frustum culling. Each stage was broken up into a list of scenes, whi ch each contained information regarding the objects, hazards, and enemies contained at that portion of the stage. At any time, only the previous, current, and next scene relative to the Player's position was updated, minimizing collision calculations and time-based movement on far-away objects.


    Time-Based Movement
    Swinging Platform
    All movement in the game was time-based, meaning that objects always move the same amount independant of frame-rate. Only objects in the current, previous, and next scene were updated at each idle cycle, minimizing the number of updates necessary. However, this caused a limitation with synchronizing moving platforms or enemies. Luckily, neither stage design called for such synchronization.