JavaScript Tree Menu

 

Class is in game AI lab

Class Lectures

  1. Introduction --- Ass 1
  2. Games / Major Game Systems
  3. Lagoon / CVS / Make / Directories / Creating a C class --- Ass 2
  4. Programming Languages in Games, Nebula C++ / Script Integration, Python intro --- Ass 3
  5. EVA --- Ass 4
  6. Graphics - Scenegraph, Meshes, Textures, Shaders, Particles, Visnode tree, Loading Meshes / Textures, shader options, particles,Animation / Interpolation
  7. Modeling, use sketchup to create an obj --- Ass 5
  8. 3D Sound, abstract, openal --- Ass 6
  9. Networking, abstract, tnl, RPC's, ghosting
  10. Physics, Rigid Body Model, Collision, ODE, Spring Stuff
  11. FSM / Macros / Unit AI --- Ass 7
  12. Discuss Projects
  13. Putting Smarts into the environment, Pathfinding ,Higher level AI in games
  14. Software Engineering, Extreme Programming
  15. Assign Projects / Deliverables
  16. Discuss project interrelations, group interactions
  17. Monday - Discussion on difficulies
  18. Wednesday - Deliverable, Explain / Demo Progress
  19. Monday - Discussion on difficulies
  20. Wednesday - Deliverable, Explain / Demo Progress
  21. Monday - Discussion on difficulies
  22. Wednesday - Deliverable, Explain / Demo Progress
  23. Monday - Discussion on difficulies
  24. Wednesday - Deliverable, Explain / Demo Progress
  25. Monday - Discussion on difficulies
  26. Wednesday - Deliverable, Explain / Demo Progress
  27. Monday - Discussion on difficulies
  28. Wednesday - Deliverable, Explain / Demo Progress
  29. Monday - Discussion on difficulies
  30. Wednesday - Deliverable, Explain / Demo Progress
  31. Monday - Discussion on difficulies
  32. Wednesday - Deliverable, Explain / Demo Progress
  33. Final -> Demo / Test

First Third - August / September

  1. Examine a game
  2. Create a simple c server
  3. Continous resource gathering aspect
  1. Setup scripting calls to interact with the server
  2. Create a new visual something to live in the world
  3. Make your aspect play sounds now and then
  4. Make your aspect drive the boat around for a bit

Second Third - October

Things for them to program

  1. Unit AI - Move, Attack, Attack Move
    1. A* / Pathfinder (Navigation Graph)
  2. Weapons / Damage / Sound
    1. If can see it and in range. (see it to be implemented later)
  3. Physics / Engine / Helmsman / Sound
  4. Construction / Training
  5. Two Day for testing

First day - define project
second day - design the coding - ideas on how it can be done
third day - techniques for doing these things
fourth day - LAB - testing / answer questions / going down the right path
fifth day - testing
sixth day - DUE / through testing
seventh day - integration / bugs
eigth day - final testing

Third Third - November / December

  1. ART stuff -
    1. model new things
    2. icons
  2. Construction / Training - Limited Construction
    1. Art / Sound / Interface
    2. Progress Bars
    3. Integrate with sub-selection Info
  3. Research / Upgrades
  4. Fog of War
    1. Displaying it
    2. Determining it
    3. Correlate with minimap
    4. Integrated with weapons systems
  5. Interface
    1. General Beautification
    2. Panel for building
    3. Iconed RMenu
  6. Bottom Panel
    1. Minimap
    2. Selected Unit Info Panel
    3. Context Buttons
  7. Tuning
  8. Testing
  9. Final - Playing

Days

  1. sketchup - create a cube / boat thing
  2. do something with sketchup / put it into lagoon
  3. assign final projects
  4. design final projects
  5. test

Introduction

Syllabus

  • Discussion - What are games?
  • Discussion - Why study Games?
    • Gaming covers all aspects of computer programming
    • Complex, challenging, and interesting examples
  • Reading the game programming gems, I couldn't help but notice how it covered all aspects of computer science
  • In this class we will explore many aspects of computer science as they relate to computer games
    • Algorithms
    • AI
    • Graphics
    • Operating Systems
  • Lectures will cover many aspects of computer games, both in the abstract and particular to our engnie
    • Programming Languages
    • Graphics
    • Physics
    • Networking
    • Sound
    • AI
    • EVA
  • First assignment
  • Grading
    • 20% - Common Assignments
    • 80% - Project Deliverables
      • Peer Review

Games

Discuss Ass 1 --- Overview of games

Run python script to determine order to discuss games

Call people up and ask questions about the game

  1. how did you like the game?
  2. Is this game important? why?
  3. Decisions / skills
  4. flowchart describing the game-play
  5. difficult / unique programming parts

Start with a simple game, now what components make up that game? What did programmer spend their late nights programming.
What are the major game components that make up those games.

  1. Graphics
  2. Sound
  3. Physics
  4. Networking
  5. Interface
  6. AI

How do they interact, what are the connections between them
When did you see significant progress in each. Graphics are always under development, sound has improved drastically recently, networking peaked a few years ago, interfaces have gotten more elegant, AI is always the thing they are supposed to improve next -- Only a few games actually make significant progress here.


Lagoon

Lagoon is a naval simulator / rts developed in our lab for the navy.
In this class we will be modifying it to make an RTS game

Step 1 --- Replace whatever art we feel has to go,
Step 2 --- Implement some new aspects / behaviors,
Step 3 --- Tweak the gameplay until its fun.
Step 5 --- Profit

Lagoon contains all the major game systems with varying degrees of sophistication


Programming Languages

  • What languages do games use?
    • More then 1
      • Why???
        • Its insanely useful to have more then 1
        • Programming languages are good for different things, specific programs do well with a single language, complicated programs that do a variety of tasks can benefit from muliple languages
  • Hard-core language
    • Computer / console -> c / c++ (almost exclusively)
      • Great for super effecient code, interacting with hardware --- well defined tasks
      • ROL -> visual c++ --- crashes
    • Mobile -> java (almost exclusively -- helps with bazillion types of phones)
  • Scripting language
    • Custom --- unreal script, torque
    • Python --- Civ 4, Nebula
    • --- Dawn of War, lots of others
    • What is a sripting language?
      • Generally written in c, can read / run stuff on the fly
    • Much more effecient at more general computing, especially when stuff need not be super effecient
    • How do we integrate it with c code?
      • SWIG
      • BOOST
      • Other -- Nebula
      • Key
        • Linking to the function (static functions)
        • Passing data types (scripting generally supports more flexible data types

ASS 1