?

Log in

No account? Create an account
Behold: the official Spectre TODO before we get to 1.0. Jesse claims… - Spectre Gruedorf Challenge Blog [entries|archive|friends|userinfo]
Spectre Gruedorf Challenge Blog

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

[Aug. 18th, 2008|04:22 am]
Spectre Gruedorf Challenge Blog

spectreblog

[mad_and_crazy]
Behold: the official Spectre TODO before we get to 1.0. Jesse claims we're at about 0.5 right now, so that's not bad. But he may just be talking about SLED.

This list, emphatically, does NOT include anything specific to Perseus/CF.



CORE:

- Math class cleanup.
- Console rendering is slow as molasses. This should be fixed.
- Memory mgmt. class.
- BitDelta class
- More geometry classes and functions. (Sphere, Box, Plane?)





- Interface for exporting game object state and global object state to/from HD.
- Finish GameObj serialization across the network.

I think taking some ideas from Squeak here may be helpful. How atomic can we make the game state, and how atomic will Ruby let us make it?





EXPORTERS/IMPORTERS:

The following need to be ported to the new importer interface:

- Maya .mb importer for models
- Maya .mb importer for animations

The following need to be written still:

- COLLADA plugin





RENDERER:

- Move image loading to STB from SDL_Image. Possibly support both and then have an #ifdef.
- Revamp rendCamera class to suck less.
- rendCamera: scene render target?
- rendCamera: postprocess filter(s) need to be finished.
- Build renderer profiling system for tracking useful information (# of shaders/frame; presence of allocation of GL objects, # of triangles, amount of texture memory, etc.)
- Finish shadow map implementation.
- Finish VSM implementation.
- Finish various things related to dot product bump mapping.
- Lighting cleanup.
- GPU skinning for models.
- Skeletal animation: why are we still using matrices for deformation? Time to get quaternions in there.
- Fonts: need a pretty printer for hyperformatted text, paragraphs, centered rendering, etc. All of this exists in Dredmor and just needs to be moved to OpenGL.
- Occluders.
- Port portal code to the new scene layer.
- Tri-stripping and local vertex cache optimization of everything that goes through the renderer. Seriously.
- Transparent materials. Ugh, barf.
- Decals should be first-class citizens.





SVT:

- Do it.





PARTICLES:

- Finish editor.
- Add support for more forces
- Add support for sorting (optional)





PHYSICS:

- Merge John Ratcliff's convex hull generation stuff into the SLED model editor.
- Better triangle meshes for world physics.



The majority of work really, REALLY needs to be done on tools.



- Write better version of rubyObject wrapper class that handles inheritance properly.
- Export rendObject hierarchy to Ruby.
- GC mark/tag for renderable objects.
- Export some control over physics layer.
- Export UI hooks.
- Network events? (Questionable.)
- Better debugging facilities: SOME sort of debugging facilities, at least.
- Reload of broken Ruby code from the hard disk.
- Cleanup of interpreter. Figure out how this works, make it happen.



The bulk of the work is, STILL, SLED. I swear, it feels like all I do is work on the fucking level editor.


- SLED default plugins should be called first, before other game-specific plugins. Use a singleton-esque device here so that if you call a plugin init before the default plugin inits, the default plugin inits get called first.
- Texture cache. Either we manually import textures into the editor and maintain the cache that way, or we set up a thread to do monitoring of file changes, cacheing of thumbnail images, etc.
- GC for SLED textures.
- Move the good bits of the CF/Perseus terrain code into SLED terrain. Port tools. Remove any references to our weird oblique height system, allow for splits, get rid of the welder, and add SVT support as the second terrain painting option.
- Make decal system general purpose on SLED geometry.
- Display modes for viewport geometry.
- Undo stack and Jesse's 'fader' tool.
- Implement groups.
- Implement locking.
- Implement Select All/Select None/Invert Selection. (Q.: are these ever useful for things other than objects?)
- Brick hotloading. (Not implemented.)
- Texture hotloading. (Should work. Doesn't.)
- All JIT editing stuff.
- All those stupid little windows should be consistent, and should be converted to be floating/dockables.
- Grid views: should be able to toggle between "grid size is fixed" and "grid size is tied to zoom size"
- Brushes: fix CSG operations, write decent T-junction detection and merge algo.
- Brushes: knife, bandsaw
- Brushes: operations on vertices, edges (rotation, translation, scale, etc.)
- Brushes: lasso tool
- Brushes: texturing ops.?
- Brushes: spline extrusion





UI:

- Radio buttons
- Simple list
- Skinning
- Pop-up helper thingies. They have a name, I can't remember what they are.
- Fix tab selection order.
- Complete input box reworking: selection of text, cursors, and support for the various key-movement-shift-thing combinations.





NETWORKING:

- make it as good as I can with whatever time and energy I have left. (I don't have a good specific idea of what needs to be done here.)

LinkReply

Comments:
[User Picture]From: mskala
2008-08-18 12:40 pm (UTC)
I swear, it feels like all I do is work on the fucking level editor.

The same thing is true even outside game development. I've been working for this AI project that processes text files to determine interesting things about them. It requires the text files to be specially marked up by a human, for things like where positive and negative comments are. Guess where all the development work goes? That's right - onto the text file marker up thing, not the actual system that uses that data. Whatever the field, tools for getting data from humans into the machine always end up consuming huge amounts of work.
(Reply) (Thread)
[User Picture]From: nothings
2008-08-18 08:37 pm (UTC)
I just posted my character animation "system" in case it is useful to you. Unfortunately, most of the code hasn't been cleanly broken out into a library.

http://nothings.org/stb/stb_3dmodel.h
http://nothings.org/stb/stb_3dmodel.c
http://nothings.org/stb/stb_3dchar_notlib.c (this is just a big block of code from my test app)
http://nothings.org/stb/stb_vec.h (vector, matrix, quaternion lib)

And no documentation.

Edited at 2008-08-18 08:37 pm (UTC)
(Reply) (Thread)
[User Picture]From: mad_and_crazy
2008-08-18 10:34 pm (UTC)
Cool. Not sure what % of this I'll end up using but I'll probably mangle some of it into Spectre in some form or another.

"Yup_to_Zup" is the best function name ever, mainly because it sounds like a French rap group.
(Reply) (Parent) (Thread)