Thanks to everyone who has been so helpful getting me ramped up on Blitz3D the last few weeks :) I think I'm far enough along to start seriously working on my first game, but I've noted one major thing that could make life a whole lot easier for everyone -- We need a Game Project Manager and I'd like some input for features and abilities.
Basic concept:
GameManager will be an IDE + runtime library for managing artwork, models, and maps, performing automatic conversions and processing when source artwork changes, and through various tool programs, allowing the designer to configure the runtime properties associated with a model instance (more on this later)
As an IDE, GameManager is not intended to replace apps like Protean, though it will provide some basic editing and compile capability for testing. Instead, GameManager assists in the creation of your world, be it terrain or interior based. As you add/edit models, drop props on terrain, and define the behavior of props in your world, GameManager and its tools read the model/map files and, using either automated tools, or gui based editors, allow you to setup the property data that will be used by the runtime library to load and manipulate your level.
To avoid the "I'm locked into this stinking framework" issue (Yes, I can hear people griping already), GameManager will provide a plugin interface for interfacing tools, automatic processors, and custom property editors to the IDE. Plugins can, if appropriate, include runtime extensions which will be built into the runtime library when a model or map uses the specific plugin. By rebuilding the runtime library based on the specific tools that you have chosen to use, GameManager will avoid the "code bloat" that a more generalized, limited runtime would have if it tried to support all the different GUI / model / terrain / lightmap / other tools currently availabe.
Initially, I'm planning plugin support for the following apps/tools:
Advanced Landscape Editor
AlphaGUI
XlntII GUI
Tokamak Physics
and a couple of tools that I plan to create as part of the project:
CS_Exterior (90% complete): auomatic/manual external visibility scanner/editor for large complex models. Intended for terrain based games that have buildings with complicated interior layouts. CS_Exterior computes the surfaces of the model that are visible from outside the model's bounding box, and stores that data in the model properties file. The runtime library extension tests the player position against the bounding box of the model, and appropriatly activates/deactivates the interior geometry of the model. In tests, CS_Exterior has reduced the visible poly count of some models as much as 60% on models that have little interior detail. The more detailed your interior is, the greater the reduction.
CS_Interior (10% complete): fully automatic CSP visibility generator for interior maps. Creates a matrix of visibility data for use while a player is moving through a model. The runtime extension will manage the showing/hiding of geometry in real time. Suitable for use on terrains, models used as building props on terrains, or stand alone interior maps.
The core runtime library will support loading entire levels by reading a single master property file for the level, and will keep track of everything loaded for easy unloading before switching levels. Access functions to fetch the mesh/entity handle of a model will be provided, as well as an UpdateWorld function that will process each loaded entity according to the loaded property set for that entity. Specific plugins may provide additional functions for use by your game logic in addition to any automatic processing features that the plugin adds to UpdateWorld.
Your ideas and suggestions will be very much appreciated :)
Basic concept:
GameManager will be an IDE + runtime library for managing artwork, models, and maps, performing automatic conversions and processing when source artwork changes, and through various tool programs, allowing the designer to configure the runtime properties associated with a model instance (more on this later)
As an IDE, GameManager is not intended to replace apps like Protean, though it will provide some basic editing and compile capability for testing. Instead, GameManager assists in the creation of your world, be it terrain or interior based. As you add/edit models, drop props on terrain, and define the behavior of props in your world, GameManager and its tools read the model/map files and, using either automated tools, or gui based editors, allow you to setup the property data that will be used by the runtime library to load and manipulate your level.
To avoid the "I'm locked into this stinking framework" issue (Yes, I can hear people griping already), GameManager will provide a plugin interface for interfacing tools, automatic processors, and custom property editors to the IDE. Plugins can, if appropriate, include runtime extensions which will be built into the runtime library when a model or map uses the specific plugin. By rebuilding the runtime library based on the specific tools that you have chosen to use, GameManager will avoid the "code bloat" that a more generalized, limited runtime would have if it tried to support all the different GUI / model / terrain / lightmap / other tools currently availabe.
Initially, I'm planning plugin support for the following apps/tools:
Advanced Landscape Editor
AlphaGUI
XlntII GUI
Tokamak Physics
and a couple of tools that I plan to create as part of the project:
CS_Exterior (90% complete): auomatic/manual external visibility scanner/editor for large complex models. Intended for terrain based games that have buildings with complicated interior layouts. CS_Exterior computes the surfaces of the model that are visible from outside the model's bounding box, and stores that data in the model properties file. The runtime library extension tests the player position against the bounding box of the model, and appropriatly activates/deactivates the interior geometry of the model. In tests, CS_Exterior has reduced the visible poly count of some models as much as 60% on models that have little interior detail. The more detailed your interior is, the greater the reduction.
CS_Interior (10% complete): fully automatic CSP visibility generator for interior maps. Creates a matrix of visibility data for use while a player is moving through a model. The runtime extension will manage the showing/hiding of geometry in real time. Suitable for use on terrains, models used as building props on terrains, or stand alone interior maps.
The core runtime library will support loading entire levels by reading a single master property file for the level, and will keep track of everything loaded for easy unloading before switching levels. Access functions to fetch the mesh/entity handle of a model will be provided, as well as an UpdateWorld function that will process each loaded entity according to the loaded property set for that entity. Specific plugins may provide additional functions for use by your game logic in addition to any automatic processing features that the plugin adds to UpdateWorld.
Your ideas and suggestions will be very much appreciated :)