LabLecture10 - EECS: www

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