Tasks

From NetRace

Table of contents

Thursday 9/1 - car running around a level

Initial framework for engine. Low level libraries. Basic framework built up. Get a scene with 2 controllable race cars driving around a simple world.

More detailed description of tasks to be completed:

  • (done) (Paul) Game Object System infrastructure working
  • (done) (Ed) Encapsulate physics code into separate module
  • (done) (Paul) Encapsulate existing code into their appropriate GOC
  • (done) Add 2nd car, hook up 'wasd' controls to it
  • (done) Add simple terrain mesh to level
  • (done) (Patrick) Add some simple sounds to game, bg music
  • (done) (Paul) Attach camera to cop car (using GOC if possible), camera-on-stick is ok for now
  • (done) (Ed) Figure out why Havok/D3D coordinate spaces are different
  • (done) (Ed) Create real simple GUI to test menu functionality



Thursday 9/8 - racing game

Finish components for a simple racing game. This should feel like a game so that we can start working on the networking components

More detailed description of tasks to be completed:

  • (done) (Ed) Initial single-player menu screens
  • (done) (Patrick) Joystick controls
  • (done) (Paul) Art - Create/export a terrain (geometry, not height field) for a test race level, give it bumps, jumps, and anything else fun. (using Bryce)



Tuesday 9/13 - First Demo Day

Let's really push to get a racing game and make it polished to show off to everyone.

More detailed description of tasks to be completed, relative priority:

  • (done) (Ed) Figure out why Havok vehicles aren't colliding
  • (done) (Paul) Initial Race countdown, gui and sound (Ready! 3..2..1..Go!)
  • (done) (Paul) Race timers
  • (done) (Ed) Split-screen viewports. 2 cameras attached to both cars



Thursday 9/22 - Initial Network Effort

Implement first stages of networking: making connections, chat, sending out car positions. Also, continue to add to the game... polish.

More detailed description of tasks to be completed, priority within each category:

  • Net:
    • (done) (Paul) Initial Winsock code for connecting to clients
    • (done) (Ed) Simple send/receive code, implement chat
    • (done) (Paul) Send/receive car positions
  • Core Engine:
    • (done) (Ed) clean up Main.cpp. Find GOCs for all that messy code.
    • (done) (Ed) Add Profiler
    • (done) (Ed) Add Memory debug info
    • (done) (Ed) Add lighting to level
    • (done) (Patrick) Add skybox mesh to level
  • Menus:
    • (done) (Ed) Multiplayer menu screens
  • Engine optimizations:
    • (done) (Ed) Reduce compile times: Reduce header dependencies, turn on precompiled headers. [This article (http://www.gamesfromwithin.com/articles/0504/000086.html)] mentions a script to try out sometime.



Thursday 9/29 - Networking Infrastructure

Last time, we hacked in simple chat and position updates. Now we will build a correct networking infrastructure using our packet structures.

  • Net:
    • (done) (Patrick) Create Net Packets Structures



Tuesday 10/11 - Networking Infrastructure

  • Net:
    • (done) (Patrick) Finalize network flow
  • Core Engine:
    • (done) (Paul) Transfer Go system to hash_multimaps instead of vectors.



Tuesday 10/18 - Working towards Multiple Clients

  • Art
    • (done) (Patrick) New Car Textures
    • (done) (Patrick) Convert sounds to all 1 format
    • (done) (Patrick) New Level
  • Menu
    • (done) (Ed) Make console menu
    • (done) (Ed) Render stages
  • Core Engine
    • (done) (Ed) CPU detection code now detects multi-cpu, multi-core, and HyperThreading
    • (done) (Ed) standalone Output log window
    • (done) (Ed) output log to file



Thursday 11/10 - Multiple Clients (finally!)

  • Menu:
    • (done) (Ed) Make menu component list for each menu, containing relative coords. Do component and font scaling based on window size.
    • (done) (Ed) Subclass menu and put common functionality in there
    • (done) (Ed) Choose race car menus
  • Game Code
    • (done) (Paul) Re-write World.AddPlayerN() and World.AddNetPlayers() to accomodate data from server
    • (done) (Paul) Server needs to create all entities, clients need to create ghosts
    • (done) (Paul) INPUT_UP messages need to be sent from each client
    • (done) (Patrick) Add some misc mesh objects, attach physics geometry to them so we can crash into them
  • Core Engine
    • (done) (Paul) Additional simple find functions (assume that only one of the given type exists)
    • (done) (Ed) Move all strings to wstring, chars to wchar. Finish helper functions for unicode strings.
    • (done) (Ed) Added vertex and pixel shaders through .fx files. (Wood shader!)
  • Network
    • (done) (Paul) Split server/client code. Server has a local client.
  • Engine optimizations
    • (done) (Ed) Play around with LODs on terrain
    • (done) (Ed) Use a real Heightfield for havok
    • (done) (Ed) Fix perf issues with havok objects when given mass/gravity



Not Scheduled Tasks / Low Priority

(When complete, move them into the appropriate build list)

  • Menu:
    • (?) display end screen(s) (order of who won, lap times, etc)
    • (Ed) Game broadcast to send more game info than just ip
    • (Ed) Break up menu rendering into 2 parts, background and foreground menu elements. So we can render objects inside the menus. (choose cars!)
    • (Ed) Create simple square menu element, with or without texture
  • Core Engine:
    • (Paul) Templatize find returns so no casts are needed.
    • (?) Simple Particle System
    • (Ed) Single Player Level Cleanup (cleanly exit to main menu, and able to start new level)
    • (Ed) Net Multiplayer Level Cleanup (cleanly exit all clients to main menu)
    • (Ed) Physics collision callbacks
    • (Ed) Group up phantom object code (triggers) into a Goc
  • Gameplay:
    • (?) Vehicle collision callbacks
    • (?) Compute who wins
    • (?) Turbo boost
    • (?) Skybox need to be drawn and rotated properly
    • (?) Weapons, real simple to start.
    • (?) Powerups
    • (Paul) Boost strips
  • Engine optimizations
    • (Ed) Investigate havok hard and soft keyframes for ghosting
    • (Ed) Investigate pnrp
    • (?) Investigate .x post-process to adjust texture coordinates for using multiple textures per terrain