|
NOTE - This page is still very much subject to change!
Markus Larsson will not be able to answer mail until week 46.
Send questions to Tommaso Piazza or Staffan Björk (mail below)
News
2008-12-16: Added PDF of Lecture 12 and SGA Lecture.
2008-12-14: Don't forget to BOOK your supervision before Monday.
2008-12-5: Don't forget to BOOK your supervision before Monday.
2008-12-1: Added PDF of Lecture 11.
2008-11-27: Added PDF of Lecture 10. Don't forget to BOOK your supervision before Monday. Supervision on MONDAY will be via Skype, skype name: simengines, webcam required!
2008-11-24: Added PDF of Lecture 9
2008-11-19: Added PDF of Lecture 8. Don't forget to BOOK your supervision before Monday. Supervision will be via Skype, skype name: simengines, webcam required!
2008-11-17: Added PDF of Lecture 7
2008-11-14: Added PDF of Lecture 6 and a checklist for your presentation. Don't forget to BOOK your supervision before Monday.
2008-11-11: Added PDF of Lecture 5
2008-11-5: Re-arranged Group 3, Group 1 [Moved 1 student from G3 to G1] and Group 6, Group 7 [Moved 1 student from G6 to G7]. Added PDF of Lecture 4. BOOK supervision 2 before Monday.
2008-10-31: There are some issues with missing students and groups. If you don't appear in the group list don't worry. We'll take this on Monday - Tommaso.
2008-10-30: Added PDF of Lecture 2. Don't forget to BOOK your supervision before Monday. Read the description first.
2008-10-28: Project groups on-line
2008-10-27: Added PDF of Lecture 1
2008-10-16: Some changes to the schedule.
2008-10-06: Website published.
Course description
From the course catalogue:
The modeling and implementation of
the fundamental components of interactive simulations is the core of
the Simulation Engine course. As given by the main use areas of these
systems, simulations within the automobile and aviation industry and 3D
games, the course focuses mainly upon 3 dimensional interactive
simulations although other types of simulation are also included. The
visual components of interactive simulations are given most focus
within the course but connections to related areas such as networking,
artificial intelligence and physics simulations are covered.
The course consists of two lectures per week as well as a group project. Main teacher: Markus Larsson, markus.larsson[+]slxgames.com
Examiner: Staffan Björk, staffanb[+]chalmers.se
Connection 1039 (031-772 1039 outside
Chalmers).
Teachers
Markus Larsson (main teacher) [ML], markus.larsson[+]slxgames.com
Project supervisors
Tommaso Piazza, piazza[+]chalmers.se
Guest lecturers
TBA
Course literature
Object-Oriented Game Development
Addison-Wesley (Harlow, 2004), ISBN 0-321-17660-X, Pearson Education
The book is available at Cremona and should be possible to order from a number of online stores.
The following books are also recommended in addition to the official course literature.
- Foley, van Dam, Feiner, Hughes. Computer Graphics: Principles and Practice, second edition. Addison-Wesley (Reading, 1997).
- Watt, Policarpo. 3D Games: Real-Time Rendering and Software Technology. Volume One. Addison-Wesley (Harlow, 2001).
(Angavs tidigare som kurslitteratur och är ett acceptabelt substitut.)
- Watt, Policarpo. 3D Games: Animation and Advanced Real-Time Rendering. Volume Two. Addison-Wesley (Harlow, 2003).
- Bourg. Physics for Game Developers. O'Reilly (Sebastopol, 2002).
- Eberly. 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics. Morgan Kaufman (San Fransisco, 1999).
- Stroustrup. The C++ Programming Language, third edition. Addison-Wesley (Reading, 1997).
- Gamma, Helm, Johnson, Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (Reading, 1995).
- Akenine-Möller, Haines. Real-Time Rendering, second edition. A.K. Peters (2002).
Note that these books are not mandatory for the course, but are worthy additions to the bookcase of any serious game developer.
Schedule
The course consists of 14 lectures (2 x 45 minutes)
and 7 supervisor meetings (45-60 minutes). Lectures are held at the
following times and locations:
- Monday: 10-12 in room Steve Jobs.
- Wednesday: 10-12 in room Steve Jobs.
| Week |
Lectures etc. |
Theme | Literature |
| 1 |
Mon, 27 oct |
SB |
Course introduction: introduction, administrative information, project description.
[Project description]
[PDF]
|
- |
Chapter 1-2, 3.4-3.5 |
| Wed, 29 oct |
JP |
Practical system development: the C++ language, tools, optimization, documentation.
[PDF]
|
- |
NA |
| 2 |
Mon, 3 nov |
- |
Guest lecture: Nils Andersson from EON Reality |
- |
|
| Wed, 5 nov |
TP | System development for simulation engines: UML, the development process, frameworks.
[PDF] |
Software Engineering |
Chapter 3 (except 3.4-3.5), 4.1-4.2 |
| 3 |
Mon, 10 nov
|
ML | Architectures and design: architecture, design patterns, game developer patterns, component based development, Ogre3D information.
[PDF] |
Software Engineering |
Chapter 4.3-4.4, 5
|
Wed, 12 nov
|
ML |
Scenegraphs: introduction, node representation, traversing, implementation.
Sound and multimedia: introduction, libraries and API's,
3D-sound, music, full-motion video, cutscenes.
[PDF] |
Multimedia |
Chapter 5.4.6
NA |
| 4 |
Mon, 17 nov | ML | 3D-graphics 1: realtme 3D-graphics, part 1.
[PDF]
| 3D Graphics | NA |
| Wed, 19 nov | ML | 3D-graphics 2: realtme 3D-graphics, part 2. [PDF] |
NA |
| 5 |
Mon, 24 nov |
ML |
Artificial intelligence: introduction, behaviours, perception, decisions, actions, pathfinding.
[PDF]
|
Network & AI |
NA |
| Wed, 26 nov |
ML |
Network programming: architecture, latency, security, online games.
[PDF]
|
Chapter 5.4.11 |
| 6 |
Mon, 1 dec |
ML |
Physical simulations: basic mechanics, Newton's laws, forces, kinetics, modelling, real-time simulation.
[PDF]
|
Physics |
Chapter 5.4.10 |
| Wed, 3 dec |
- |
Guest lecture: TBA
|
- |
- |
| 7 |
Mon, 8 dec |
- |
Guest lecture: Swedish Game Awards
Begins at 13.00!
[PDF] Movies: Blueberry Garden, Best Innovation 2008, Magicka, Game of the Year 2008, Swarm, Best Mobile Game with JavaME 2008, Megachile Pluto, Nominee Best Execution 2008
|
|
|
| Wed, 10 dec |
ML |
Input and colission detection: Input devices, force feedback, collission detection, representation, culling, bounding volumes.
Misc: 2D graphics, front-ends and GUIs, resource management, scripting.
[PDF]
|
Misc
|
Chapter 5.4.8 - 5.4.9, 8, Case Study 4.4 (GUI)
|
| T |
Mon, 15 dec |
- |
- |
- |
- |
| Wed, 17 dec |
- |
Project presentations: Begins at 13.00! |
- |
- |
Examination
Examination in this course consists of a group project. The course has no written exam.
A passing grade requires the following:
- An approved written suggestion for an individual extension of the simulation engine.
- A passing grade on your group's project report.
- A passing grade on your group's project presentation.
- A passing grade on your personal project report.
- A verbal presentation of a course subject.
The course is divided in two parts. One part is 2
points and represents each student's individual effort and the other is
3 points and represents the project group's collaborative effort.
Possible grades are failure, 3, 4 and 5 at Chalmers or U, G and VG at
Göteborgs Universitet. Grading is individual and is based on the above
mentioned subjects as well as the project supervisor's judgement. Project
The practical work in this course is done on a
group project which is done during the whole course. The work is done
in groups of six students, where each student is assigned one of six
themes that the course is divided into. As a foundation Ogre3D, a
massive Open Source-project for development of 3D-games, is used. Each
group member is responsible for studies in their assigned theme, find a
suitable and non-trivial extension of Ogre3D (or other relevant API
relevant to the group project) and to design and implement their
extension. The student shall then verbally present their work to their
project supervisor and the rest of their group. The group will also
present a "tech demo" of their extended 3D-engine where they use the
new functions that they have implemented.
Read the project description for more detailed instructions.
Important dates
- Wed, 14 nov kl 24.00 - extension suggestions should be handed in to project supervisors.
- Mon, 19 nov - approval of extension suggestions.
- Week 2-7 - individual presentations of themes from project members.
- Wed, 7 jan kl 24.00 - group reports and individual reports should be handed in.
- Exam week - project presentations.
Dokument
Links (descriptions in Swedish atm)
Here follows a list of links to interesting
websites concerning 3D-engines, 3D-programming, games development etc.
If you are aware of any interesting sites, feel free to send an e-mail! General
- Game Engine
Technology - kurs motsvarande denna på Lunds Tekniska
Högskola. Se exempelvis deras seminarier om CrystalSpace.
Computer game development
- GameDev.net - en lysande
webbplats med informationsresurser om allt möjligt som rör
datorspel. Diskussionsforumen är speciellt intressanta och är mycket
aktiva och aktuella.
- DevMaster - ännu en
informationsresurs för datorspelsutveckling. Presenterar nyheter inom
området, driver en Wiki för
utveckling, och har en bra databas över 3D-motorer
samt aktiva diskussionsforum.
- Generation5 - en lysande
en mängd spelrelaterade artiklar.
Simulation engines
- 3D Game
Engine List (3DEL) - en något inaktuell samling av olika
3D-motorer, kommersiella som fria. Fortfarande intressant som
bakgrundsmaterial.
- 3D Engine
Database - en databas med 3D-motorer som drivs och underhålls av
DevMaster.
- Emergent Game Technologies -
spelmotorutvecklare som ligger bakom Gamebryo
(f.d. NDL (f.d. NetImmerse)).
- Game
Engine Anatomy 101 - en bra genomgång vad en spelmotor
egentligen är och vad skillnaden mellan ett spel och en spelmotor
går. Skriven av Jake Simpsons, f d utvecklare på Raven Software. Går in i detalj
på flera områden, endast de två första sidorna är relevanta för
detta moment.
- What's
a Game Engine? - en bra (icke-teknisk) introduktion till vad en
spelmotor är.
- Fly3D -
3D-spelmotorn i Watts och Policarpos bok (den gamla länken fungerar inte).
- CrystalSpace - en
relativt komplett Open Source 3D-spelmotorn som användes som
fallstudie i kursen förra året. Anledningen till att vi inte längre
använder CS är att motorn är relativt odokumenterad, krånglig och
svår att sätta sig in i.
- Unreal Developer Network
- information om The Unreal Engine, simuleringsmotorn back Unreal
Tournament, America's Army, etc.
- Gamebryo - Gamebryo (f d
NetImmerse) är NDL's kommersiella simuleringsmotor.
- Genesis3D - en Open
Source simuleringsmotor.
- RenderWare - en
kommersiell "komplett portfölj" av verktyg för spelutveckling,
inklusive en simuleringsmotor (används t ex av Grand Theft
Auto).
- Jupiter -
Jupiter (f d Lithium?) utvecklas av Touchdown Entertainment (f d
LithTech) och är en samling verktyg (inklusive en simuleringsmotor)
för spelutveckling. Jupiter används t ex av TRON och No One Lives
Forever 2.
- FlightGear - en Open
Source flygsimulatormotor för olika plattformar.
- Id
Software technology licensing -- Quake-motorn var en av de
första spelmotorer som licensierades ut.
Ogre3D
- Ogre3D - projekthemsidan för
Ogre3D och den definitiva källan för information, features,
nedladdning, dokumentation, osv för grafikmotorn.
- Ogre3D-installation (lokal) -
Martas installationsanvisningar för Ogre3D på skolan.
Simulations and computer games
- Americas Army -
Amerikanska arméns stridssimulator som är fritt tillgänglig och
spelas på internet som ett datorspel, men också används i träning av
riktiga soldater.
- Flight
Simulation at Saab Aerosystems - en engelsk artikel om
användandet av flygsimulatorer på Saab (PDF).
Genres
Software Engineering for computer games
3D-graphics
- GeometricTools
(tidigare känt som Magic
Software) - en värdefull samling algoritmer och källkodssnuttar
för olika typer av matematiska operationer, som t ex intersections,
tesselation, interpolation, etc. Härstammar bla från boken 3D Game
Engine Design av David H. Eberly.
- Virtual Terrain Project
(VTP) - ett internetprojekt med syfte att sprida olika tekniker
för utomhusrendering, allt ifrån terräng, kultur (vegetation, hus,
vägar, etc), databaser, etc.
- Cal3D - ett
skelettbaserat animeringsbibliotek för 3D-program som utvecklas som
Open Source.
- Rotating
Objects Using Quaternions - artikel på Gamasutra som diskuterar
hur man kan använda sig av quaternions för mjuka kamerarörelser
(kräver gratis registrering på Gamasutra).
- TerraGen -
världsgenerator för Windows och MacOS (fritt tillgänglig).
- FreeWorld3D - helt
interaktivt 3D-terrängeditor.
Scenegraphs
- OpenSG - website för det nya
OpenSG-biblioteket (Open Scene Graph), en satsning för att skapa ett
standardiserat scengrafsbibliotek.
- Java3D
- Java3D är Javas 3D-bibliotek som också är centrerat kring en
scengraf. Se API
referensen för mer information. http://www.j3d.org/ kan också vara
intressant.
- OpenGL
Performer - Performer är SGI's
scengrafsbibliotek för visualiseringsapplikationer. Dess dokumentation
kan vara väldigt upplysande för de som vill bygga sina egna
scengrafs-API:er.
Sound and music
- Creative Developer
Central - Creative Labs är skaparna av det ursprungliga
Soundblaster-kortet och stöder just nu deras EAX-bibliotek för
environmental audio. Denna site är deras supportcentral för
utvecklare. (Kräver dock medlemskap.)
- OpenAL - OpenAL (Audio
Library) är ett försök att standardisera ljudhantering på samma sätt
som OpenGL standardiserade 3D-grafik. Har vunnit erkännande och
används t ex av Jedi Knight 2, America's Army, Unreal Tournament
2003, osv.
- fmod - kraftfullt
cross-platform ljud-API som är fritt tillgängligt för
icke-kommersiell användning.
Artificial intelligence
Network games
- WorldForge - ett Open
Source-projekt som ämnar att bygga ett kraftfull ramverk för
onlinespel.
- OpenTNL - en öppen version
av Torque Network Library, som är nätverksmotorn i Torque Game Engine
och som härstammar från spelet Starsiege: Tribes (1 och
2). Väldigt kraftfull och välbeprövad.
Physics
- Havok - kommersiell
fysikmotor för PlayStation, Nintendo GameCube, Xbox och PC.
- JSBSim - C++-implementation
av en Open Source generisk flygplansmodell (FDM - flight dynamics
model). (Associerat med FlightGear-projektet.)
- Open Dynamics Engine (ODE) - en
Open Source fysikmotor.
- SOLID (Software
Library for Interference Detection) - ett Open Source-bibliotek som
tillhandahåller avancerad kollisionsdetektering för interaktive
3D-applikationer (som t ex spel) -- Open Source.
- I-COLLIDE -
kollisionshantering för konvexa polyhedra (verkar dock inte ha
uppdaterats på ett tag).
- RAPID
(Robust and Accurate Polygon Interference Detection) - avancerad
kollisionshanteringsbibliotek för miljöer av "ostrukturerade"
modeller ("polygonsoppor"). Fritt tillgängligt för icke-kommersiell
användning. Baserat på ett SIGGRAPH'96 paper om OBB-trees.
- V-COLLIDE -
en blandning av I-COLLIDE och RAPID.
- Newton Game Dynamics
- fritt tillgängligt fysikbibliotek (dock utan källkod?). Har
Ogr3D-bindningar (OgreNewton).
Misc
- Dependency Walker -
gratis utility som scannar Windows-moduler för att härleda deras
beroenden.
- NSIS - Nullsoft
Scriptable Install System, an Open Source installer creation
application developed by the creators of WinAMP.
- InnoSetup - Populär
skriptbaserad installationsverktyg
som klarar det mesta.
- GameMonkey
Script - ett inbäddat skriptspråk för användning i datorspel och
simuleringar.
- Crazy Eddie's GUI - gratis bibliotek
för alla typer av grafiska användar gränssnitt. Allt frå fönster till sliders och knappar. Fungerar
mycket bra tillsammans med OGRE.
This page is updated by Markus Larsson. (markus.larsson [+] slxgames.com)
|