Game Engine EECS150 Spring2006 Lab Lecture #10 Guang Yang 3/24/2006 EECS150 Lab Lecture #10 1 Project Status Check Point 1 Check Point 2 Video RAM NTSC Video N64 Controller Interface Video RAM Check Point 3 Check Point 4 Chipcon RF Game Engine Transceiver Block Diagram of the Design 3/24/2006 EECS150 Lab Lecture #10 2 Checkpoint 4 Basic Requirements Extra Credits 3/24/2006 2-player wireless Tron Being able to find an opponent and start playing Display the game and scores There is a list of features in cp4 doc Feel free to add extra features. Talk to TAs about extra credits BEFORE you do it. EECS150 Lab Lecture #10 3 First thing first 3/24/2006 100% Freedom 0% Freedom EECS150 Lab Lecture #10 4 Game Setup 3/24/2006 Game Board Setup EECS150 Lab Lecture #10 5 Game Board (1) Internal game board representation It is in the engine. You can decide. One possible way Use RAM to store the board data See the reference RAM implementation in cp4 zip file 3/24/2006 EECS150 Lab Lecture #10 6 Game Board (2) For each point on the board, use 2 bits to represent its status Value 3/24/2006 Meaning 00 Not yet visited 01 Visited by myself 10 Visited by opponent(s) 11 Board border EECS150 Lab Lecture #10 7 Wireless Tron Two main phases In channel 0 • Initialize the board • Find an opponent • Select another channel for playing the game • Maintain a GameIndex • Go there • Send your position and GameIndex • Receive those from your opponent • Update the game • Game over. Go back to Initialization phase Initialization Phase Game Playing Phase 3/24/2006 EECS150 Lab Lecture #10 In channel 1~15 8 Initialization Phase Listen to Channel 0 for 1 sec Init Board Timeout Listen to Channel 0 for 1 sec 3/24/2006 Send Acknowledge with (random) ch#1~15 Timeout Timeout Send Invitation Receive an Acknowledge Play Game Receive an Invitation Send Confirmation Save ch# Listen to Channel 0 for 1 sec Player1 Wait 1 sec EECS150 Lab Lecture #10 Receive a Confirmation Player2 Change to new channel 9 Initialization Phase 3/24/2006 Packet formats standardize the 32-bit payload. You need to decide the proper source address and destination address. Invitation Packet 8’h80 8’h00 8’h00 8’h00 Acknowledge Packet 8’h80 8’h00 8’h0F 8’h0N Confirmation Packet 8’h80 8’h00 8’hF0 8’h0N where N is the channel number ranging from 1 to 15. EECS150 Lab Lecture #10 10 Wireless Communication 3/24/2006 !!! UNRELIABLE !!! You must add redundancy to make it reliable Send every packet multiple times. We start with packetRepeatTimes = 3. You can experiment later on to find out the optimal value. EECS150 Lab Lecture #10 11 Administrative Info (1) Checkpoint 3 due in the week after spring break in lab 50% off one week later Plan out a design for checkpoint 4 No design review, but should be useful for project writeup Considering extra credit? Plan for it 3/24/2006 Design consideration Time allocation EECS150 Lab Lecture #10 12 Administrative Info (2) Project grade breakdown 3/24/2006 Checkpoint 1: 10% Checkpoint 2: 15% Checkpoint 3: 30% Checkpoint 4 / Final Checkoff: 30% Report: 15% EECS150 Lab Lecture #10 13 Administrative Info (3) Extra credit 3/24/2006 Up to 20% of total project grade Due at the same time as your CP4 check-off (either early or standard check-off) Not eligible unless you complete all previous required project work. (Single student groups can submit the blackboxes we gave you.) EECS150 Lab Lecture #10 14 Game Playing Phase Parameters Packet repetition times packetRepeatTimes = 3 Car moving speed speed = 10 3/24/2006 pixel/second You could try different values later To synchronize the moves of both players, introduce a GameIndex. It starts from 0, and increment after moving one pixel ahead EECS150 Lab Lecture #10 15 Game Playing Phase Start Game GameIndex does not match Receive Position Update Packets GameIndex=0 Set init position Init Phase 3/24/2006 Both alive You need to arbitrate Send Position Update Packets Check Game Status for the New Positions GameIndex matches Make the move; Increment GameIndex No valid packet received in one second At least one dies End Game. Update Score Start button pressed on N64 EECS150 Lab Lecture #10 16 Game Playing Phase Packet Format Position Update Packet 3/24/2006 1’b0 15’b GameIndex EECS150 Lab Lecture #10 8’h col 8’h row 17 VideoRAM 3/24/2006 You are free to choose any implementation For your reference, in our implementation, we have dedicated groups of signals for Read/Write car positions, and for Write characters on the screen Refer to the Checkpoint assignment for detailed port information EECS150 Lab Lecture #10 18 Extra Credit Some extra credit options 3/24/2006 EARLY CHECKOFF (5%) Week of 4/10 to 4/14 Multiplayer (>=4) game (7%) For this one, you need to modify communication protocols and/or packet formats Audio (5%) Viewpoints (5%) Finite wall (like snake) (3%) … Check webpage for more options Up to 20% EECS150 Lab Lecture #10 19 Project Tips (1) Design Testing 3/24/2006 Get used to debugging An unverified module is useless Refer to lab4 and lab5 Start from SIMULATION Multiple boards, different addresses, different orderings, etc. EECS150 Lab Lecture #10 20 Project Tips (2) Requirements Finish these first Make sure it works well Extra Credit Finish early, it’s worth 5% Keep your required version separate 3/24/2006 Shouldn’t depend on a certain N64 controller Should work on multiple boards Don’t touch it while you work on extra credit! EECS150 Lab Lecture #10 21 Project Writeup Includes Documentation helps you debug 3/24/2006 Block diagrams Bubble-and-arc diagrams Comments NO SCHEMATICS (They’re too detailed) Use your design reviews! Also makes it easier for us to help you More details will be posted later EECS150 Lab Lecture #10 22 Enjoy your spring break and/or Wireless Tron 3/24/2006 EECS150 Lab Lecture #10 23
© Copyright 2026 Paperzz