1 SuperCY Group Dec 14-04 Dec14-04 -or-

Preview:

Citation preview

1

SuperCYGroup Dec 14-04

Dec14-04

http://dec1404.ece.iastate.edu-or-

http://seniordesigndec1404.weebly.com

2

Team Members

• Paul Danner – Leader • Taylor Gehling – Communications • Austen Gregor – Key Idea Holder• Trevor McCormack – Webmaster

• Manimaran Govindarasu – Advisor/Client

Dec14-04

3

Scope of Project

Initial• Create testbed to implement network optimizations

over Android based system• Optional Goal: Integrate with Union Pacific Multimedia

Wall

Modified• Made integration with media wall mandatory• Removed network optimization goal

Iowa State University

4

Reasons for Project Re-specification

• To attract potential students and show them what current students are capable of creating

• Lay a foundation for future apps looking to utilize the multimedia wall

• Give department something fun and exciting to show on multimedia wall

Iowa State University

5

Demo

Iowa State University

SuperCy.mp4

6

App Overview - SuperCY

• Side-scrolling shooter game

• Shoot at hordes of enemies, resulting in boss battle

• Multiplayer – Potential for up to 20 players

• Powerups add competitive element to game

• Interacts with media wall for unique experience

Iowa State University

7

Screenshot of App

Iowa State University

8

Unity

• Game Engine for variety of platforms– Android, iOS, PS3, Xbox, Windows/Mac

• Handles much of back end programming

• Focused around GameObjects– Players, background objects, scenery,

etc.– Write scripts (C#, JS) to control the

various GameObjects

Iowa State University

9

Application Design – Stage I – Singleplayer

• Created GameObjects to represent player/enemies

• Write C# scripts to control behavior of various GameObjects – Health– Movement– Shooting/collisions

• Unity provides means for modularization of GameObjects– i.e. Health script attached to each enemy/player

Iowa State University

10

Modularization

CY

Player Script

Move Script

Weapon Script

Shot Script

Move Script

Health Script

Photon View Script

Cy Network

Script

Iowa State University

11

Powerups – Challenges

• Singleplayer– How to get a powerup to spawn on an enemy death– Doesn’t need to spawn on each enemy death – random

• Multiplayer– Disallowing multiple players to obtain single powerup– Disallow multiple spawning of same powerup– Caused by technical network latency of GameObject Destroy

Iowa State University

12

Powerups – Solution

• Singleplayer– Add XYZ_powerup_module for each powerup

• Sprite renderer – Graphic for powerup to spawn• Powerup_Script – Controls collision and corresponding actions

– On each enemy death, generate random number to determine if powerup needs to spawn

• Multiplayer– Assign boolean within powerup scripts, keep track of collisions– On first collision with player

• Set boolean to false to disallow other players to interact with it

Iowa State University

13

Application Design – Stage II – Multiplayer

Iowa State University

• Integrated Photon Unity Networking into singleplayer project

• Modify how game runs across multiple devices– Player/Enemy Spawning– Player/Enemy Shots– Player/Enemy Movement

• Modified game settings to accommodate media wall

14

Character Spawning

• Treat media wall as host of game– Spawn enemies/boss– Synchronize background

• Treat each Android device as client of game– Spawn character– Update movement/shots across network

• Host and client interact across Photon Cloud and RPC messages

Iowa State University

15

Networking Breakdown

Photon Instantiated Objects• Player movement/shots• Boss movement/shots• Level Synchronization• Player Score/Ammo/Health

RPC• Enemy damage/destruction• Player joining/leaving game• Call a function on networked

object

Iowa State University

16

Synchronization – Challenge

• Player movements getting relayed to other devices– Very jittery & delayed

• Player/enemy shot collisions & destruction – Because enemies were spawned locally on each device via RPC

call, object collision was not uniform across network

• Boss health/spawning across devices– Delay caused by network transmissions cause player shots to

last longer

Iowa State University

17

Player Synchronization – Solution

• Linear Interpolation– Method of “curve fitting” using linear polynomials

• Used to smooth out player movement across devices– Player sends updated position periodically– Other devices receive, and take average over a time frame to

smooth out other player movements

Iowa State University

18

Collision/Destruction – Solution

• Updated enemy spawning to only spawn one character across the network– Pro: Much easier to synchronize states– Con: Enemy position messages increases network traffic

• When one device damages enemy, send RPC to all users – If enemy health is low enough, make host “Network Destroy”

object

• Keeps all device’s levels synchronized within technical delay time

Iowa State University

19

Boss Synchronization – Solution

• Player bullets would hit multiple vertices before being “network destroyed”– Cause each bullet to cause additional damage to boss

• Caused by technical network delay in message transmissions

• Updated shot mechanics to cause it not to make more than one damage to enemy/boss

Iowa State University

20

Garbage Collection – Challenge

• GameObjects that were not in use anymore would build up and drastically reduce game performance– Issue with both Single and Multiplayer development

• Examples– Enemies that weren’t destroyed would continue forever– Bullets that missed would continue forever

Iowa State University

21

Garbage Collection – Solution

• Attach a frame counter to each GameObject – Count the number of frames since instantiation

• After ‘X’ amount of frames, destroy the GameObject

• Example– @ 60 fps– Enemy will cross screen from right left in 4 secondsif (enemy crosses screen without being destroyed)Destroy ( GameObject ) at frame_count = (60 * 4 + buf)

Iowa State University

22

Testing

• Test early, Test often– After each small addition to game logic, test using controlled

level variables– Able to isolate problems easily by manipulating level– Make use of Debug Logs

• Beta-test – FAN Club– Let 40-50 students test our game on media wall– Received feedback from testers– Observed game from developmental perspective

Iowa State University

23

Questions?Thank you for your time

Iowa State University

24

BACKUP SLIDES

Iowa State University

25

Menu Diagram - Note

• Like functional decomp in 491 project

Iowa State University

26

HW/SW Technology

Software• Unity Game Engine

– Used to create Android application

– Utilizes C# scripts written by user to complement traditional game mechanic backing

• Photon Unity Networking– Unity backed network support

for multi-player apps– Cross-compatibility between

different devices • i.e. Windows, Android, iOS, etc.

Hardware• Android Devices

– Up to 20 devices concurrently

• Union Pacific Multimedia Wall– Runs Windows 7– 12 touch screen monitors – Located in Coover East Entrance

Iowa State University

(X1, Y1, t1)

(X2, Y2, t2)