The Wizards Wiki

Explore your world

User Tools

Site Tools


documentation:planning

This is an old revision of the document!


Planning

  • Deferred rendering in XNA using MRT (diffuse, normal, depth, specular power, specular intensity)
    • Implement Spotlight
    • Implement Spotlight Shadow Mapping (applies to pointlights to)
    • Re-implement Cascaded Shadow Mapping, now for the deferred directional light
  • Do some research for HDR
  • Ensure operation of the editor, with the new database system.
      • Fix the worldeditor to run again
      • Adjust the WorldEditor/sceneeditor to allow Entity Placement with new Database System
        • This should be independent from the database system
      • Add serialization mechanism to save and load scene's, from database and from file.
    • Implement the EditorMeshRenderData
      • Write test
      • Support materials
    • Work on ColladaMeshImporter. Test!
      • Test rendering the loaded data
    • Support saving meshes to XML!
    • Make support for Entities again.
      • Save and load the Objects to and from the database
      • Save them to the database.
        • Find some way to solve the whole textures/shaders issue
      • Write the tests
    • Enable saving anything to a file. This requires some kind of functionality to link these files in case references are needed (like with a terrain that has textures)
    • Enable saving to the WorldDatabase working copy
  • Think about a system that automatically creates a form from attributes in a class. This could make testing a lot easier.
    Support rendering entities in the client (clean up/remake old version)
    EDIT: all these things are postphoned for the moment, since all below depend on render batching algorithms, 
    and shader usage structure, not yet defined
    • Make a class that renders an entity from preprocessed data, make that preprocesser
    • Make a class that renders an entity from editor/full entity data. (slower)
    • Tests!
    • Load entities from the db at startup, and render them using one of the renderers (preprocessed preferably
  • Create an Wavefront OBJ and mtl importer. Consider FBX importer?
  • Networking:
    • Created the auto NetworkPacketFactory code generater
      • Implement the tests
        • Support properties!
      • TODO: make sure no invalid factories are loaded from the cache!
      • TODO: not using the attribute on the class itself atm
      • Implement custom serialization support
    • Write a performance test: send loads of packets after each other, see if they all arrive and at what speed (packets/sec)
    • Cleanup unused/ commented code
    • Add security checks:
      • If not all transporters in the manager have a remote counterpart (partial synchronization), then notify.
      • If a packettype has been added multiple times, and there are conflicts in resolving the transporters synchronization: notify
      • Make sure the networksystem cannot deadlock
    • Support UDP
    • Support Compact packets
    • Create the ServerTransporters: sending to multiple remotes?
  • Implement the ConnectClientNonNetworked functionality.
  • Complete the ColladaSchema project
    • Add documentation about it in this document
    • Complete it so it fully complies with the collada specification. Elements not implemented must be captured by the XMLAnyElement/Attribute attribute so when saving a loaded document no information is lost.
    • Write tests that verify its operation
  • Synchronize the database with a server (two-way).
  • Lighting engine
  • Think out gameplay!
  • Particle engine
  • Create dynamic synchronization (in game sync, not startup sync, of dynamic objects).
  • Make the Terrain Client application logic.
    Enable the Terrain module to work in TheWizardsclient.
    Extra but tedious: (a lot of work, not really necessary atm)
    Make Unit tests for the client Terrain
    Cleanup the client Terrain
documentation/planning.1307364725.txt.gz · Last modified: 2024/08/26 13:57 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki