CS 1666 www.cs.pitt.edu/~nlf4/cs1666/ Introduction Meta-notes - - PowerPoint PPT Presentation

cs 1666
SMART_READER_LITE
LIVE PREVIEW

CS 1666 www.cs.pitt.edu/~nlf4/cs1666/ Introduction Meta-notes - - PowerPoint PPT Presentation

CS 1666 www.cs.pitt.edu/~nlf4/cs1666/ Introduction Meta-notes These notes are intended for use by students in CS1666 at the University of Pittsburgh. They are provided free of charge and may not be sold in any shape or form. These


slide-1
SLIDE 1

CS 1666

www.cs.pitt.edu/~nlf4/cs1666/

Introduction

slide-2
SLIDE 2
  • These notes are intended for use by students in CS1666 at

the University of Pittsburgh. They are provided free of charge and may not be sold in any shape or form.

  • These notes are NOT a substitute for material covered

during course lectures. If you miss a lecture, you should definitely obtain both these notes and notes written by a student who attended the lecture.

Meta-notes

2

slide-3
SLIDE 3
  • Nicholas Farnan (nlf4@pitt.edu)

Office: 6313 Sennott Square

Instructor Info

3

slide-4
SLIDE 4
  • Prefix all email subjects with [CS1666]
  • Be sure to mention the section of the class you are in:

○ Day/time

A note about email

4

slide-5
SLIDE 5
  • Website:

○ www.cs.pitt.edu/~nlf4/cs1666/

  • Review the Course Information and Policies
  • Assignments will not be accepted after the deadline

○ No late assignment submissions ○ If you do not submit an assignment by the deadline, you will receive a 0 for that assignment

Course Info

5

slide-6
SLIDE 6

History of this course

6

slide-7
SLIDE 7
  • One of the most important

forest trees throughout its range

  • Was considered the finest

chestnut tree in the world

  • It is estimated that

between 3 and 4 billion American chestnut trees were destroyed in the first half of the 20th century by the Chestnut Blight

The American Chestnut

7

slide-8
SLIDE 8
  • AKA Tree of heaven
  • AKA Stink tree
  • AKA Tree of hell
  • Initially introduced to the

US in Philadelphia

  • Spreads/grows quickly
  • Produces a chemical that

inhibits the growth of other plants to suppress competition

  • Considered a noxious weed

in the US

  • Importation, distribution,

trade, and sale banned in Massachusetts

Ailanthus altissima

8

slide-9
SLIDE 9
  • Goal:

○ Exploration and development of technologies that will enable the deployment of robots in forests for the purpose of forest health

  • Robot tasks:

○ Conducting field surveys ○ Detecting and controlling invasive species

The ForesBott Project

9

slide-10
SLIDE 10
  • Development using only a physical robot too time

consuming/expensive

  • So Prof. Bob Daley developed CS1666
  • The plan:

○ Use 1666 to train students in 3D simulation ○ Recruit 1666 students into graduate program ○ Have them work on ForesBott project ○ Save America's forests

History of this course

10

slide-11
SLIDE 11

1. Using videogame design as an example use case of advanced computer science concepts 2. Gaining experience in large group development 3. Producing videogames

Goals of this course

11

slide-12
SLIDE 12
  • Building a videogame

○ From scratch! ■ Every team will build a custom engine and game on that engine using only C++ and SDL ○ 2D ○ Must implement 3 "advanced features" ■ E.g.:

  • Networked multiplayer
  • Physics simulation
  • Advanced AI
  • etc.

○ Will be built each week live by the instructor at the end of lecture ■ Hence, must build/run Linux native

Term projects

12

slide-13
SLIDE 13
  • Class will split into large teams of 10-12 students

○ Each team will further be divided into 3 subteams of 3-4 students focused on studying and implementing an advanced topic ○ Everyone on a team will share responsibility for the overall game and is expected to contribute equally to the code not required by a specific advanced topic ○ Everyone on a team is expected to contribute equally to any art and story development required by the game

Team structures

13

slide-14
SLIDE 14
  • I'm fine with games presenting "programmer art"
  • From Jerry Holkins of Penny Arcade:

○ Our own Jeff Sellak used to work at Nintendo, and he says that at the time he was active there what we’d call "programmer art" was all they wanted. It was the opinion that if a game was not fun as black squares on a white background, it wasn’t actually fun. I think might be true. I often think about DK: King of Swing in this context, it’s one

  • f my favorite games, and I can see it getting pitched this way. He

also said that you couldn’t pitch them for specific IPs, really - you pitched fun mechanics, and fun mechanics got blessed with a nod from the catalog. I always found that interesting and, frankly, informative.

Artwork

14

slide-15
SLIDE 15
  • Each student will be assigned 1 week to be a "manager" for

the entire team (all advanced topic subteams)

  • Will be required to submit a specification of goals by

11:59PM on the starting day of their week

○ Goals should be broad enough to represent significant effort by the entire team for the week ○ Should be small enough to be reasonably accomplished

  • Will be required to submit a report by 11:59PM on the last

day of their week

○ Report should be emailed to the instructor only

  • All code must be pushed to GitHub by 11:59PM on the last

day of a manager's week

  • Manager is responsible for ensuring the default branch of

the team's repository builds/runs

Management

15

slide-16
SLIDE 16

Management week example

16

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

  • Class meets on M/W, so managment weeks will run

Wednesday-Tuesday

  • Let's say Dave's week is from the 11th-17th:

Game demoed in class on the 18th Report due by 11:59PM

  • n the 17th

All code pushed to GitHub by 11:59PM on the 17th Goal spec due by 11:59PM on the 11th

slide-17
SLIDE 17
  • Added via pull request to the course organization repository

○ Hence, the instructor will have to approve them

  • Bulleted list of goals for the week
  • Again, be careful that goals are significant, but also doable

○ E.g.: ■ "Write the enemy AI" is too broad to be doable in a single week ■ "Change player's max velocity from 300px/sec to 250px/sec" is not significant enough to ensure the game will be completed by the end of the term

Management Goal Specifications

17

slide-18
SLIDE 18
  • First, for each stated goal, give a brief summary of the

progress made toward that goal

○ Was it accomplished? ■ If not, what were the stumbling blocks? ■ If so, are there any remaining issues? What are the next steps with this work done?

  • Next, for each team member:

○ List the pull requests that they made over the week and the goal that that pull request helped achieve ■ This means that you should make a note for each pull request that you, as the manager, approve! ■ A brief summary of that team member's performance for the week

  • This will not be shared with the team member, will only be

viewed by the instructor, hence why progress reports are emailed to the instructor and not added to the organization repo.

Management Progress Reports

18

slide-19
SLIDE 19
  • Will be used to set up most of the organizational aspects of

the course, e.g.:

○ Establish teams and advanced topic sub-teams ○ Schedule management weeks ○ Report management week goal specifications ○ Schedule advanced topic presentations

  • Each student will need to fork this repository and send pull

requests to the instructor to contribute

  • Once the repository is created, that will be announced and

linked in lecture

Organization Repository

19

slide-20
SLIDE 20
  • Each team will have a single canonical repository

○ The master branch of that repository will be pulled/tested each week in lecture

  • First student manager will create the canonical repository

and add all team members to that repository

○ All will need to be able to pull code in during their management week

  • Each student should fork the canonical repository to do

their own work

○ Issue a pull requests to the canonical repository ○ Managers responsible for integrating pull requests

  • Each student needs to email me their GitHub username and

a link to their fork of the canonical repository

DevOps

20

slide-21
SLIDE 21
  • Each advanced topic subteam will be required to give a

presentation about their advanced topic

  • 45 minute talk produced and given by all subteam members
  • 15 minutes for dedicated questions
  • Ensures that everyone has the freedom to explore an

advanced topic of their choice, but will also learn about all

  • f the advanced topics covered in the course
  • Outline of each talk must be proposed and approved well in

advance of the talk

○ Specific due dates will appear on the class website

  • Should describe not only the topic in general, but also the

application to your game in particular

Advanced topic presentations

21

slide-22
SLIDE 22
  • First week:

○ Standard lecture

  • 2nd week:

○ Game proposals

  • Next ~4 weeks:

○ Standard lectures

  • Midterm
  • Next ~1 week:

○ Standard lectures

  • Remainder of the term:

○ Advanced topic presentations

Course schedule

22

slide-23
SLIDE 23
  • 5% Participation
  • 5% Game pitch
  • 25% Midterm exam
  • 15% Management week
  • 20% Advanced topic presentation
  • 30% Final game

Grading

23

slide-24
SLIDE 24

Video game design: World 1-1

24

slide-25
SLIDE 25

Video game design: World 1-1

25

slide-26
SLIDE 26

Video game design: World 1-1

26

slide-27
SLIDE 27

Video game design: World 1-1

27

slide-28
SLIDE 28

Video game design: World 1-1

28

slide-29
SLIDE 29

Video game design: World 1-1

29

slide-30
SLIDE 30

Video game design: World 1-1

30

slide-31
SLIDE 31

Metroid

31

slide-32
SLIDE 32

Metroid

32

slide-33
SLIDE 33

Metroid

33

slide-34
SLIDE 34

Consider the following two screenshots

34

slide-35
SLIDE 35

Consider the following two enemies

35

slide-36
SLIDE 36
  • Ricoh 2A03 8-bit CPU @1.79MHz
  • 2 KB of onboard RAM

○ Could be increased by up to 1MB by a cartridge

  • Output at 256x240 pixels
  • Supported 48 colors and 6 shades of gray

○ Could only render 25 different colors at a time, though

  • Could display up to 64 sprites at a time

The NES

36

slide-37
SLIDE 37
  • Minimum requirements:

○ Pentium 4 2.8GHz / Athlon XP 2800+ ○ 1GB RAM ○ GeForce 7600 GT 256MB / Radeon 9800 Pro

  • Recommended:

○ Core 2 Duo E4500 2.2GHz / Athlon 64 X2 Dual Core 5000+ ○ 2GB RAM ○ GeForce 8800 GS / Radeon HD 3850

  • Made huge advances in graphics and physics
  • Was only playable on top of the line hardware

Can it run Crysis?

37

slide-38
SLIDE 38

Who is this

38

slide-39
SLIDE 39
  • Consider all of these points when coming up with a pitch for

a game to build as a team over the course of the term.

39