Header image  
Designed by Brig Bagley  
 
 

How to Play

There are 10 different things a player needs to be aware of:

1. Moving and Shooting:
  
   Pressing 'a' or the left arrow key slides the camera to the     
      left, making the world appear to slide to the right.
   Pressing 'd' or the right arrow key slides the camera to the
      right, making the world appear to slide to the left.
   Pressing 'w' or the up arrow key moves the camera forward,
      making the world appear to come towards the camera.
   Pressing 's' or the down arrow key moves the camera backwards,
      making the world appear to move away from the camera.

Clicking the mouse with the left click tells the camera to start rotating in the direction of the movement of the mouse.  This allows the user to turn as he or she is moving in the world.

The vertical angle (yaw) is limited to about 15 degrees above and below horizontal, but the player rotation about the vertical vector (pitch) is unlimited.

You can shoot an arrow by typing SPACEBAR. You will be temporarily unable to move until the game tells you the result of the shot. It's for your own safety :)

2. Life: Life points in the top left corner start at 4000. If you run into a minion before it is shot, life goes down by 1000, giving the player 4 chances before he or she dies (Life=0).

3. Percepts: Right below the life, there are hints as to what the agent notices around itself.

a. You feel safe... 

There are no monsters, pits, or goal North, South, East, or West of you.  There may be obstacles in the diagonal boxes around you, so be careful when moving diagonally.

b. You hear a minion nearby... 

One or more Wumpus Minions are North, South, East, and/or West of you.  If you encounter a minion before shooting it, you lose 1000 life.  Zero life, and you lose.

c. You feel a breeze...

One or more pits are North, South, East, and/or West of you.  If you fall into a pit... guess what, you die. Zero life.

d. You smell something terrible...

The Wumpus is North, South, East, or West of you.  If you encounter a Wumpus before shooting it... guess what, you die. Zero life.

e. You see something shimmering...

The goal is North, South, East, or West of you.  Find it and you win!

4. Movement Cost: Displayed at the bottom left.  The more you move, the more it will cost you.

5. Arrows Shot: Displayed at the bottom left.  The more you shoot, the more it will cost you.

6. Heading: The direction you are facing.  This is primarily to warn the user if they are moving diagonally or not.

7. Distance to Goal: Displayed at the bottom left.  This is to help the player move the right direction (towards) the goal.

8. Shooting the Arrow: SPACEBAR shoots the arrow.  It moves horizontally until it hits either a Wumpus, minion, or wall.  If it hits a minion, "You hear a shriek!", if it hits a Wumpus, "You hear a loud roar!", and if you hit a wall, "You hear nothing...".

9. Help: Type ESC to read the help menu.  I think you got it already though.

10. Final Score: Displayed at the end of the game.

Final Score = 5000 - MovementCost - ArrowsShot*100 - DistanceToGoal*100 + LifePoints.

So max score is 9000.  If you start on the goal.  Not going to happen.  Good Luck ;)

 

Making a Map

A map can only have the following characters: S,G,1,2,5,-,X

S: Starting Location (only 1 allowed or behavior undetermined)
G: Goal Location  (only 1 allowed or behavior undetermined)
1: Minion               (any amount is allowed)
2: Pit                  (any amount is allowed)
5: Wumpus               (any amount is allowed, 1 is preferred)
X: Wall                 (any amount is allowed)

The first line of the map MUST be 2 magic numbers...

MAPWIDTH, MAPHEIGHT

The next MAPHEIGHT lines must be MAPWIDTH long to read map properly.

There must be no more lines in the file than MAPHEIGHT + 1.

Only the above mentioned characters are allowed.

 

 

The 3D Wumpus World : The Graphics

There are 9 different types of objects in this world:
1. The wall, which is composed of 3 scaled rect. prisms with different materials, and a pyramid dome at the top.
2. The Minions, which are hierarchically modeled glut  quadrics, spheres, and toruses. There are different materials and textures for different parts of the minions.
3. The Wumpus, which are hierarchically modeled glut quadrics, spheres, and toruses. There are different materials and textures for different parts of the wumpus.
4. The Gold, or a coin with a texture mapped coin on it. This is comprised of a glut cylinder and 2 disks with a yellow material.
5. The Pit, a texture mapped disk. 
6. The bow and arrow, again hierarchically modeled glut objects with different materials.
7. The bones of dead monsters... just random glut objects.
8. The ceiling and floor, both repeated textured squares.
9. The bitmapped text, or information displayed on the screen.

The ground of the world also uses a tiling texture, and the sky uses a star sky texture.

Moving around: (tranlations of camera location and look-at point)
  
   Pressing 'a' or the left arrow key slides the camera to the     
      left, making the world appear to slide to the right.
   Pressing 'd' or the right arrow key slides the camera to the
      right, making the world appear to slide to the left.
   Pressing 'w' or the up arrow key moves the camera forward,
      making the world appear to come towards the camera.
   Pressing 's' or the down arrow key moves the camera backwards,
      making the world appear to move away from the camera.

Clicking the mouse with the left click tells the camera to start rotating in the direction of the movement of the mouse.  This allows the user to turn as he or she is moving in the world.

The vertical angle (yaw) is limited to about 15 degrees above and below horizontal, but the player rotation about the vertical vector (pitch) is unlimited.

Collison Detection:

Most of the collisions in this program are calculated by a tile grid that is first formed from reading in the map.  When the agent (or shot arrow) is inside the grid in question, it is considered to have collided with the object: fallen into a pit, been attacked by a monster, or reached the goal. For the walls, special collision detection was done to limit the agent movement from going outside the map and into walls inside the map.  This was done by first testing to see if a test value of movement was too far into the wall.  If so, the agent was denied movement in the dimension that violated this limitation. 

Rendering of objects in the world was based on a distance algorithm.  If they were too far to be seen, they were not rendered.  A demo mode overrides this (push 'm') so that lighting is enabled for the whole map and anything in the agents viewbox is rendered, greatly slowing the game play.

The minions and the wumpuses are designed to always face the camera. You will notice that no matter where you are, they are facing you!
     
Resizing of the window is allowed for which drawn objects retain aspect ratio.

 
 
Beware of...