minor programming games
DESCRIPTION
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 PresentationTRANSCRIPT
Minor Programming GamesIntroduction
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 StructuresOO design and programmingUMLSoftware engineeringSome basic mathSoft skills: presentation and
communication and cooperation
Today’s menu (by Jan)Contents of Minor
GamingSome theory about
Tile Based Games Explanation KBS-1 in
detailGame Architecture
And: some videos
Tomorrow’s menu (by Leo)Some mathSome physics
Programming in WIN32 and C++
Exercises (laptop (!) and paperwork)
Our first videoAn example of an 2D scrolling
game:
http://nl.youtube.com/watch?v=8fTEqlzcuMs
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
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
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/
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
AI Demo’s
Chase and Evade:• Just one mouse• Some more mice
Simple Soccer:•In Win32 C++• With XNA C#
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
14
Course plan5 weeks 2x1 hour new theory5 weeks 3x1 hour classroom
training (practice)
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
Algorithms and Data Structures
http://users.cs.fiu.edu/~weiss/dsaa_c++3/code/
Some videosBarack Obama - Computer Science
Question:http://www.youtube.com/watch?v=k4RRi_ntQc8
The sorter:http://www.youtube.com/watch?v=2HjspVV0jK4
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
19
Course plan5 weeks 2x1 hour
new theory5 weeks 3x1 hour
classroom training (practice)
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
Blackboard
Please enroll as soon as possible:
KBS van de Minor gamingAlgoritmen en Datastructuren voor gamesKunstmatige Intelligentie voor games
Minor Games, 2nd period
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
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
KBS – 1An 2D Scrolling Game
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
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
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
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)
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
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)
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.
Demo parallax scrollingSee XNA demo:http://www.youtube.com/watch?v=l3wq67W3fFg
See Wikipedia:http://en.wikipedia.org/wiki/Parallax_scrolling
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 …
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
Yet Another 2D Scrolling Game
Tile game in Java: tilegame.jnlp
Game Architecture Tutorial
One more amazing demo
Tile Based Games in C++ Win32
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)
What to do this week?!Study this
presentationsFollow
tomorrow’s workshop
Program a “clever” Pacman
Think about your KBS gameplay
Final
Have fun with the Minor Game Programming