SkiFreeOverview/InspirationBasic Game PlayAdditional Features (if time allows)LandscapeSpritesHigh Level Block DiagramGame Logic Block DiagramVideo Logic Block DiagramProject TimelineSkiFreeErik Stafl and Eric Grebing6.111 Final Project PresentationNovember 14, 2006Overview/Inspiration● Inspired by the classic Windows 3.1 skiing game● Small skier tries to navigate a downhill path to victory while avoiding trees, hills, and the Abominable Snowman● Skier will be controlled by a camera tracking the movements of an orange block in user's hand● Gameplay will be similar to that of the original Windows gameBasic Game Play● Skier travels downhill and tries to avoid obstacles such as trees and ramps● Timer module displays time and velocity in the top right corner of the screen● Skier's velocity increases the longer he goes downhill without crashing● When skier reaches the bottom and passes through the “Finish” gates, game pauses and is restarted with a button pressAdditional Features (if time allows)● Navigation of a slalom course (skier goes around markers or faces time penalties)● Jumping with use of ramps and modification of control● Audio (sound effects and game music)● Attack of the Abominable Snowman given certain eventsLandscape● Includes sprites such as different types of trees, hills, and signs for direction● The landscape module tracks the x and y coordinates of each object● The objects in the landscape move up while the skier is relatively static - simulates downhill motion● Passes object coordinates to the collision module to compare position of landscape objects to that position of skierSprites● Generated by screen shots from the original Windows game● .coe file generated through a Matlab script to convert from bitmap● Each image is stored in an individual ROMHigh Level Block DiagramFrame BufferVideo Input Analyzer Game LogicSprite ROMsCompositorFinal XVGA OutputPixel Data (YCrCb)Pixel Data (YCrCb)Pixel Data (YCrCb)Control SignalsAddressPixel Data (RGB)YUV to RGB ConverterPixel Data (RGB)Pixel Data (RGB)Pixel Data (RGB)Sprite ROMsGame Logic Block DiagramSkier Video Moduleskier_orientation [2:0]skier_jumpSprite ROMsSkier ROMsskier_address[10:0]crash_modeCollision Detectionskier_x [9:0] skier_y[9:0]skier_params[7:0]rom_data [23:0]Landscape Video ModuleSprite ROMsLandscape ROMsimage_address[10:0]rom_data [23:0]landscape_image_x_1[9:0] landscape_image_y_1[9:0]landscape_params[7:0]Game Video Compositorskier_pixel [23:0]landscape_pixel[23:0]game_pixel [23:0]Timer Time Display1_hz10_hz100_hzSprite ROMsCharacter ROMsrom_dataaddress [7:0]time_pixel[23:0]Video Logic Block DiagramNTSC Decodetv_in_ycrcb[19:10]fvh30bit to 18bit Compressycrcb[29:0]ycrcb_small[17:0]NTSC to ZBTntsc_addr[18:0]ntsc_data[35:0]ZBT Driver(RAM0)weVram ReadXVGA Signal Generator Modulehcount[10:0]vcount[9:0]game_pixel[23:0]vram_addr[18:0]Desired Color Selectorycrcb_small[17:0]Center of Mass Detectordesired_colorControl Signal Generatorcenter_x_1 [10:0]center_y_1 [9:0]center_x_2 [10:0]center_y_2 [9:0]skier_orientation[2:0]Game Logicskier_jumpRGB Converterycrcb_small[17:0]Compressorrgb[23:0]rgb[23:0]Final Compositorread_data[35:0]xvga_out, hs, vs, blankhcount[10:0]vcount[9:0]Project Timeline● 11/22 Basic Functionality– All Sprites loaded into ROMs and drawing correctly– Collision Detection Working– Timer and Timer Display Functional– Video Color Detection, Center of Mass Detection● 12/1 Additional Features in Place– Video Controller Functioning– Integration with Signals from the controller– Jumping and Slalom Working● 12/6 Final Touches– Finish Adding More Features to Game (monsters, audio)– Make sure all aspects of the Game are fully functional– Final Video Compositor to Allow for video input overlay● 12/10 System Bug Free– Rigorous Debugging and Testing– Play
View Full Document