Top Banner
Minor Programming Games Introduction
42

Minor Programming Games

Feb 09, 2016

Download

Documents

Devon

Minor Programming Games. Introduction. Intro: who is who. Lectures: Jan Verhoeven & Leo van der Ploeg. Students: who are you?. Some from abroad? Please introduce yourself shortly. Previous knowledge (needed!). Programming in C++, C# (dot.net) and Java Algorithms and Data Structures - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Minor Programming Games

Minor Programming GamesIntroduction

Page 2: Minor Programming Games

Intro: who is who

Lectures: Jan Verhoeven & Leo van der Ploeg

Page 3: Minor Programming Games

Students: who are you?

Some from abroad?

Please introduce yourself shortly

Page 4: Minor Programming Games

Previous knowledge (needed!)

Programming in C++, C# (dot.net) and Java

Algorithms and Data StructuresOO design and programmingUMLSoftware engineeringSome basic mathSoft skills: presentation and

communication and cooperation

Page 5: Minor Programming Games

Today’s menu (by Jan)Contents of Minor

GamingSome theory about

Tile Based Games Explanation KBS-1 in

detailGame Architecture

And: some videos

Page 6: Minor Programming Games

Tomorrow’s menu (by Leo)Some mathSome physics

Programming in WIN32 and C++

Exercises (laptop (!) and paperwork)

Page 7: Minor Programming Games

Our first videoAn example of an 2D scrolling

game:

http://nl.youtube.com/watch?v=8fTEqlzcuMs

Page 8: Minor Programming Games

Contents Games SemesterFirst Period:

◦ ISGPKBS1: KBS, part 1: an 2D scrolling game

◦ ISGPAI: Artificial Intelligence for games◦ ISGPAD: Algorithms and data structures

Second Period:◦KBS, part 2: a “thinking” game◦2D3D graphics with XNA◦KBS, part 3: graphical 3D interface

Page 9: Minor Programming Games

ISGPKBS 1: an 2D scrolling gameDesign and program the game in groups of

5 students

Program language: C++ using “native” GDI in a WIN32 environment

Weekly 2 hours classical reviews

More details and specifications later on

Page 10: Minor Programming Games

Artificial Intelligence (for games)

State and goal based behavior, inter-agent communication, individual and group steering behaviors, team AI, graph theory, search,  path planning and optimization, triggers, scripting, scripted finite state machines, perceptual modeling, modeling memory, command queuing, goal evaluation and arbitration and fuzzy logichttp://www.ai-junkie.com/

Page 11: Minor Programming Games

Some videosSimple soccer:http://nl.youtube.com/watch?v=2UpOtlS_t7w

Swarms of robots:http://nl.youtube.com/watch?v=xLdc703WSMI

Boids in action:http://nl.youtube.com/watch?v=GUkjC-69vaw

Page 12: Minor Programming Games

AI Demo’s

Chase and Evade:• Just one mouse• Some more mice

Simple Soccer:•In Win32 C++• With XNA C#

Page 13: Minor Programming Games

13

Contents of ISGPAIMoving Game Agents lecture 1Simple Soccer and Raven

lecture 2Graphs and Path Planning

lecture 3Scripting and Goal-Driven

Behaviorlecture 4

Fuzzy Logic lecture 5

Page 14: Minor Programming Games

14

Course plan5 weeks 2x1 hour new theory5 weeks 3x1 hour classroom

training (practice)

Page 15: Minor Programming Games

15

Course planModule is 112 hours, which is

equivalent to 4 ECExam (study books not allowed,

open questions in English, English dictionary allowed): 50%

Homework and practices: 50%The programming languages are

C++ (Win32) and C# and JavaBlackboard

Page 16: Minor Programming Games

Algorithms and Data Structures

http://users.cs.fiu.edu/~weiss/dsaa_c++3/code/

Page 17: Minor Programming Games

Some videosBarack Obama - Computer Science

Question:http://www.youtube.com/watch?v=k4RRi_ntQc8

The sorter:http://www.youtube.com/watch?v=2HjspVV0jK4

Page 18: Minor Programming Games

18

Contents of ISGPADThe Disjoint Set Class lecture 1

Algorithm Design Techniques◦Greedy Algorithms lecture

2◦Divide and Conquer lecture

2◦Dynamic Programming lecture

3◦Randomized Algorithms lecture

3◦Backtracking Algorithms lecture

4 ◦Advanced Game Algorithms lecture

5

Page 19: Minor Programming Games

19

Course plan5 weeks 2x1 hour

new theory5 weeks 3x1 hour

classroom training (practice)

Page 20: Minor Programming Games

20

Course planModule is 112 hours, which is

equivalent to 4 ECExam (study books allowed, open

questions in English, English dictionary allowed) 50%

Homework and practices 50%The programming language is C+

+ and C# and JavaBlackboard

Page 21: Minor Programming Games

Blackboard

Please enroll as soon as possible:

KBS van de Minor gamingAlgoritmen en Datastructuren voor gamesKunstmatige Intelligentie voor games

Page 22: Minor Programming Games

Minor Games, 2nd period

Page 23: Minor Programming Games

Minor Games, 2nd periodKBS, part 2: Design and Program a

thinking game AI engine (KARO) in C#

2D3D with XNA

KBS, part 3: Design and Program an 3D graphical interface for the KARO game in C# and XNA

Ends with a match and presentations

Page 24: Minor Programming Games
Page 25: Minor Programming Games

XNA, some videosXNA Collision Test:http://www.youtube.com/watch?v=Zbk8R25xbB4

Goku XNA Game:http://www.youtube.com/watch?v=mN8CgJtzhto

XNA Stress Test:http://www.youtube.com/watch?v=rII5iRLN_lw

Page 26: Minor Programming Games

KBS – 1An 2D Scrolling Game

Page 27: Minor Programming Games

Requirements -1-The game consists of at least 3 levels

that make up the game world Each level is at least 3 screen-widths

long and the height is minimal one screen-height

Each level has a specific themeThe game world is based on small

bitmaps (tiles) that are put together through a so called: “level-map”

Bitmaps of the game world can be animated

Page 28: Minor Programming Games

Requirements -2-The main character in the game should

have the following degrees of freedom: walking left, walking right and jumping

The character should always face the direction it is walking or jumping

The movement of the main character is handled by the arrow keys of the keyboard.

Falling of the main character/enemy should be natural i.e. the character/enemy falls when there is no supporting structure of any kind at his position

Page 29: Minor Programming Games

Requirements -3-There will be minimal two background

layers to demonstrate parallax scrollingIn each level there will be several

gadgets that make up the game playGadgets can be a variety of elements

in the game: energy points, enemies, trap-doors, water, puzzles etc. Creative use of these gadgets should make the game appealing to play!!

Gadgets can (must?) be animated

Page 30: Minor Programming Games

Requirements -4-All the graphics for the bitmaps may

be obtained from the internet or other sources.

When a player collides with a gadget, action should be taken (getting points, die, getting extra lives or changing the world map)

When a player collides with a gadget (collision detection), that gadget should disappear (except enemies)

Page 31: Minor Programming Games

Requirements -5-Enemies can move around in the playfield and

the range should be adjustableThe main character and the enemies must

have environment awareness i.e. they can bump on to walls or other constructions of the game world (boundary detection)

The main character should always be in the centre of the screen during game play except when entering a level or leaving a level (player always enters a level from the left side)

When the main character runs out of lives the game should end

Page 32: Minor Programming Games

Requirements -6-When the game starts/ends there must be a

splash screenAt each stage of the game the player should be

able to jump to a menu screen where he can save that game and see the high-scores or resume playing

The game should start with this menu after the splash screen

Each layer is separated by a splash screen reflecting the upcoming theme

The game should have sound effects for several features in the game (third party product)

Page 33: Minor Programming Games

Requirements -7-The game should be programmed in

C++ in WIN32The game program should make

intensive use of a state machine pattern.

Most constants in het game program are parameters in a configuration file (something like params.ini).

The characters in the game should have AI behaviors.

Page 34: Minor Programming Games

Demo parallax scrollingSee XNA demo:http://www.youtube.com/watch?v=l3wq67W3fFg

See Wikipedia:http://en.wikipedia.org/wiki/Parallax_scrolling

Page 35: Minor Programming Games

PreparationPlease construct groups of 5

students each for KBS-1 NOW

Start this week by choosing the subject of the game, making a plan of approach, and so on …

Page 36: Minor Programming Games

Tile Based GamesTheory (in Flash): http://www.tonypa.pri.ee/tbw/start.html

Tile Engine (you don’t have to make it):

http://www.youtube.com/watch?v=jnHo1bC_suU

Page 37: Minor Programming Games

Yet Another 2D Scrolling Game

Tile game in Java: tilegame.jnlp

Page 38: Minor Programming Games

Game Architecture Tutorial

Page 39: Minor Programming Games

One more amazing demo

Tile Based Games in C++ Win32

Page 40: Minor Programming Games

Last demo and …. HOMEWORK

Pac Man Game with a little AI

You are asked to implement a stronger mister Pac Man (in your KBS-group)

Page 41: Minor Programming Games

What to do this week?!Study this

presentationsFollow

tomorrow’s workshop

Program a “clever” Pacman

Think about your KBS gameplay

Page 42: Minor Programming Games

Final

Have fun with the Minor Game Programming