Contraptions Design Specification
Section 9.1.x : Development Schedule
By Kenneth Manta
Give me an eternity and I will create anything!
Give me a year and ill complete contraptions! 1-17-05
Rough dates
- Decently working collision response by Feb 5th
- Completed song by Feb 8th
Major Milestones
- Physics engine!!!: This one is really annoying: Requirements: have at least 20 object sim collisions decently fast
- Network redesign: This might be worse
- This document :)
- Graphics upgrade
- Finish standalone server
- Code Audit: Review every line of code in the game and make sure it conforms to this doc
Game is lacking
- Finished musical content
- Finished graphical content
- Maps
- Challenges
- Learning curve
Physics fixes
- Single ship ship collision response
- Multiship collision response
- Wraparound
- Thrust particles
What did I break and how do I fix it
Fun things to fix
- Coconuts dont explode. Fix deathscript.
- Lights no longer work
- Solid color dohickies turn strange colors at times.
Neutral things to fix
- TODO:Integrate new video class
- Your not supposed to move on materialise!
- Materialize should destroy any pieces of your ship materializing over an object
- Most game options no longer work: it might be best to hardcode the video mode selection screen.
- Level select screen does not erase contents correctly.
- BOOL CSync::Host(){//WOW this actually gets called for single player!!!!
Gross things to fix
- Network widget destruction
- flame particles never get sent to the physics engine
- Network Down
- Wraparound-Plan for it to be down for a while? Move respawn locations?
- Terrain graphic glitches on wraparound
- Find respawn location
- I Broke ships serializing widget pointers
- I Broke widgets serializing widget pointers
- Uses some SSE, Only runs on intel :(
- Most widgets,Stabilizers
- Widget deathscript
- Touch terrain script
- Script.Clear() can crash on the stl map?!
- The game only appears to be using CVideo!!! the old callbacks are still in effect!
- Map editor cant be enabled
What would I like to add
Fun things to add
- CG shaders
- Monitor class to monitor cpu cycle distribution. It would automaticly create a hierarchy of objects and display nicely on the screen.
Neutral things to add
- I should research how other games give options at the end of the level. "Retry" "Next Level"
- Physics engine should generate a display list of all the objects that should be drawn and their velocities. This way you will always get a nice framerate no matter how slowed the physics engine is. This can be done in vertex programs!
Gross things to add
Topics id like to write about
- Discussion on limits in the game. Coconuts, ships, widgets, etc.
- New threading model
- New graphics model
Todo(Never Worked)
- stop ships from shifting when being split: possibly put a warning when this happens
- integrate exo stllist
- Redo widget pointers to make them work better
- Look into transformations on the gpu
Gross Code
- Ship split: should make a move widget command. If a ship is split into 255 pieces in one split, it fails to split correctly in a way that I dont know what will happen! On the up side, this case might be impossible to achieve.
- Texture.cpp: old sg class a huge mess
- Nearly every cpp file under /display
- Control.cpp
Notes from new physics.txt
Removed Surface
hardcoding friction
mesh had a call to get surface
contact->stabilize removed playhit sound
Disabled wraparound in dohickey.cpp X= WrapAround(X,Body2->X);
Commented out some collision code labeled //Is this important?!
Hard coded position serialization in dohicky and ship
Globals to fix:
int Opponents;
COpponentInfo Opponent[MAX_EDIT_SHIPS];
CSelectOpponentMode SelectOpponentMode;
Ideas
- Widgets like the camera and radar add information to the display screen. Possibly have this info rearrangable.
- Have a networkable variable that anything that touches another object on the network has set. Scriptsets like local display information will ensure that this information is never possible to set via network calls.
- Create a screen that can modify widget limits(Network options?)
Copyright 2004-2005 © Polyart. All rights reserved.