Bugs in Pop 33.3. 1

Project Suggestions, Round 1. 2

Bugs in Pop 33.3


(a) Crash

FIXED. Switch to Racer, switch to Spacewar, switch back to Racer, program crashes while loading a bitmap.

REMOVED REPLICATION TOOL Use replication tool in Racer, then switch to 2D.  Or go into Racer 2D and try to replicate.


(b) Serious

----Turn Stereo on, then off, and close Pop and the blue line is still at the bottom of the screen.

----Wall textures have a seam between tiles.

----In Ballworld, enemies are sometimes invisible in 3D?FIXED. In AirHockey the goals sometimes bounce off

----In Monster 3D and Defender 3D the 3D sprites flicker and walls change color when rotating.

----In 3D Monster Hallway, if player is moving forward he slides more slowly down a wall.

----In 3D Monster Hallway, camera can still get on wrong side of wall, face away from low wall and press Ctrl+Down.

----2D view of Monster Hallway is no good, wrong point of view.

----2D view of Racer is no good, walls drawn wrong.

----Arrow Key controls seem oriented wrong in Racer.  This is a problem relating to the fact that in many of my 3D worlds, the visual up direction is the Z axis, but in some of my 3D worlds the visual up direction is the Y axis.  I should either uniformize this or let the world tailor the listener keys to match the world’s orientation --- so that, for instance, PgUp arrow always jumps into the air.

---Recurrent problem that player can end up upside down in Racer with some listeners. Note that when we turn on moving trihedrons by commenting in the appropriate #define in critter.cpp, we see that bullets bounced off walls at certain angles get their binormals flipped. see next bug.

---cCritter::lookAt(cVector target) acts buggy sometimes in that it may roll the critter. Should put in by default that a critter always points "up". Maybe allow the cGame to set the cVector _localup direction, and access this with pgame()->localUp() and give cCritter a BOOL _remainVerticalFlag that's TRUE by default and have the cCritter::update code always force that to be the binormal direction of the cCritter, cf. how I did this in

cCritterRacer::update in the racer.cpp file.

---Start in Spacewar, choose Window|Split, then choose View|3D for one of the views, then close the split, and the remaining 2D window runs half as fast as it should.

----Do a code review on the cGraphicsOpenGL::adjustAttribute(cSprite *psprite) method. Still uses GL_REPLACE for the polyhedra, should use GL_MODULATE for them too.

---cCritterViewer with cListenerRidePlayer still seems to get stuck on the wrong sides of walls sometimes, on the opposite side from teh player.

FIXED. Spacewar: Select Critters|Bitmaps, View|3D, Critters|Quake Style Sprites, and the quake sprites will be white.  Somehow showing bitmaps “ruins” the 3D view for Quake sprites.

FIXED. The cSpriteQuake creatures are sometimes showing up blank, like all white.  Seems to happen if we have recently used Mixed Sprites.   This happens for instance in 3D Stub if you view Bitmap sprites and then Quake sprites.  Probably has to do with a transparent bitmap sprite Disabling light and light not getting Enabled back on, see cGraphicsOpenGL::adjustAttributes.  Doesn’t seem to happen on every graphics card.  Possibly on some cards, when you disable and then enable lighting, you actually have to reinstall the whole lighting model when you re-enable lighting.  I should push and pop the lighting attributes instead of flat-out disabling them.

FIXED. In Worms if player is hit a few times he gets subtly tilted (I think) and his bullets shoot right into the floor and disappear.

FIXED. 3D Defender.  If you set Critter|Medium and then choose a new sprite for the critters, the size setting isn’t remembered.  In fact if you choose Spheres, the critter count increases to about 230.

the puck without scoring a point.  Happens somewhat sporadically.  Using File|Motion Smoothness seems to trigger this behavior, for instance.

FIXED. In AirHockey, the player next to a goal shudders and the puck can pass through him.

FIXED. In 3D Defender, the floor color seems to unpredictably change from light to dark yellow, except when you use bitmap sprites.

REMOVED ZAP CONTROL In Worms, using the Zap cursor makes the player get tilted wrong.  I think I’ll phase out the Zap control.

FIXED. The Wall collision algorithm is such that critters, including the player, sometimes get stuck at a wall corner, particularly at spots were two wall corners meet.  A critter stuck at a corner can’t be shot.

FIXED. In 3D Stub, background changes color when running quake characters in wire frame mode.


(c) Cosmetic

----Player bullets are too slow in 2D Stub, if player flies forward, bullets are no faster.

----In 3D Monster Hallway, bullets should die when they hit walls and world borders.

----In Ballworld 3D view, make the cSpriteQuake guys be standing upright.  The problem is because here z axis points out of the screen, and cSpriteQuake guys by default orient their heads towards positive z.

----Resizing the window or adding a view with Keep Player in View on can distort 2D view.

----If you switch from a 3D riding the player view to 2D, you ought to go back to riding the player when you go back to 3D (see Racer).

----In Ballworld it’s too easy to hang in the air for a long time when you jump.

----In Ballworld, stomping an enemy doesn’t work quite right, player doesn’t always bounce, and sometimes it doesn’t work.

----In 3D Space the player is sometimes invisible behind the side walls, especially if you use View|Keep Player In View.

----Critters sometimes leak through the walls in DamBuilder, if there’s a crowd of them.

----Motion Smoothness dialog a little flaky, changing from 5 to 1 and back to 5 makes speed too fast, maybe it’s one digit off and really 6 is the natural speed.

----SpriteQuake critters shold be adjusted to "stand on the floor" in Racer and Monster Hallway.

FIXED Disable mouse listener option when riding the player, like in 3D Monster Hallway.  It can even flip the view upside down.  Or, better, make a mouse listener that works well when riding the player.

FIXED Need Tool Tips and Status Bar messages for Spheres and Quake sprites.

FIXED. In 3D Defender if the player bumps the wall repeatedly the world seems to tremble.  Seems mainly to happen when bumping ceiling.  I thought I fixed by having player use a CLAMP wrap flag, but check ceiling.


Project Suggestions, Round 1



Small Project

Big Project

Term Paper

1:30 Section




Rakesh Sharma

Add an information window to the framework.  Implement a Hall of Fame file with high scores.

Work on automated testing.

Automated testing of large projects.

Mark Nguyen

Improved Listener for use in 3D space.  Try constant forward speed, with up/down, right/left changing direction.

Make 3D Space into a playable game.  Power-ups, different weapons.  Minimap.

Game AI.

Robert Chou

Make a combined key and mouse listener that works well in 3D Monster Hallway.

Make a Quake clone with levels and AI for the bots, also include good lighting.

Game AI, robot rival pathing.

Lan Dung

Give 3D Defender player a tractor beam to pick up coins by clicking on them.  Add shadows on the floor.

Chasm Racer, a game where you rush down a long 3D corridor.  Terrain generator for floor.  AI opponent.

Shadow rending in 3D games.

Steve Licking

Make a combined key and mouse listener that works well in 3D.  Use quaternions?

Support the Truform graphics standard as an OpenGL extension.  Or write a cGraphicsDirectX to support Truform.

Survey the new graphics effects that can be done with the latest hardware, whether as OpenGL extensions or as new DirectX calls.

Samuel Mauntz

Combined key / mouse listener that works well in 3D.  OR change the Ride the Player view so you can snap to different positions relative to the player, like looking sideways. OR put a Boss at end of Ballworld.

A digging underground game, Doom style.  Insect enemies.  Give game AI in level design

Networking of games.

Nithin Reddy

Finish Dambuilder, make it a puzzle game about making water flow at a certain rate.

An interactive game instruction tutorial that pops up bubble information as you play.

Survey of game user interface design.

Francis Wan

Upgrade Ballworld, adding obstacles and power ups.

The Arkanoid game, similar to Breakout.  Possibly network a game.

Networking games.

Julie Nabong

Change PickNPop so the peanuts are balloons floating up from the bottom.

A realistic golf game.

Principles of game design.

Quan Jiang

Extend Racer or Monster Hallway.  Have several rooms.  Tools, power ups

Continue the small project, making the world bigger.  Consider having creatures evolve by genetic algorithms.

Artificial life.  Evolving creatures in a game.

Michael Bieser

Make a cKeyMap class and give the cListener a cKeyMap member.  That way a listener for a Z-up world can be used for a Y-up world just by changing the keymap.  Have a dialog to let user change keymap.

Network support for the Pop framework.

Networked multiplayer games.  Concurrency issues.

Rishi Verma

Make Ballworld a nice Mario clone.

Have a cAI class to provide intelligence for critters.

AI in games.

3:00 Section




Guillermo Ruiz-Andrade

Herd planets into orbiting the sun i n a particular direction.

Place walls so that a flock of boids circulates in a nice fashion

Collective behavior

Thai Binh

Make Racer game a medieval battle game.

Add a maze to the Racer game.  Add listeners for sword fighting.  Create Milk Shape cSpriteQuake.

How do MMORPG work?

Hamed Ghorbani-Moghaddam

A Visual Basic script for testing and timing Pop.

Build up Worms game.  Improve collisions.  Path finding.

A* search and BSP tree.

Leo Lee

Defend and Deflect, a 2D game kind of like being the defender of Star Castle

Add deformable surfaces (water, mud, cloth) to a game, maybe Racer.

Deformable surfaces.

Wallun Chan

Tron game, letting critters lay down trails of walls.  AI for opponent?

3rd Person shooter based in Racer.  Random maze, minimap screen.

Multi-agents (flocks, ant swarms) intelligence.  Emergent behavior.

Alvin Cho

Horse racing game OR Ballworld improvement

Boxing game OR an expanded Ballworld with speech-balloon facility so players can talk.

Flocking algorithms.  Other ways of animating NPCs.

Lam Nguyen

Tweak racing game, using waypoints and improved physics for motion.  Flames on back of cars.

Add improved lighting tools to the framework: cMaterial, cLight, cLightingModel.  Make a spooky zombie house.

Lighting and ray-tracing in 3D games.

Long Vuong

Simple tank fighting game.

Tank war with AI for the enemy tanks.

AI for games.

Chao Liang

Upgrade Spacewar, using different types of enemies.

2D game of walking paths and avoiding enemies

Path planning