SO yesterday I was spending all day making new textures, revamping existing textures and applying a new material library for StarFire (you can follow it here Indiedb.com ) which without doubt was a shitton of work. This is also the 5th time or so I've completely rewritten material handling (I do hope I will stick to this one for a bit longer). I'm sure I did path the way for quite large arsenal of materials to chose from since I only need to import a diffuse and bump map texture for each material type (instead of creating a material definition file for each block material using the old material library, as it will generate these automatically now).
Using the new Material Library I can create proper markers for selection mode and numerous other features that weren't possible before. However, by implementing the new Material Library I broke a few things as well, such as image flipping and transparency of cockpit elements.
I also created a BlockFilter for elements. Each Material and MaterialVariation has one filter property. RawMaterial for example can have the filters "ship", "building" and "all" , while MaterialVariation is structured in "decorational" and "functional". BlockFilter will also include the shape of elements available (i.e. rectangular, triangular, spherical). This way I can categorize and filter out certain blocks in the user interface, providing the necessary clarity and structure the user needs to use the interface effectively.
All these changes are part of the aim to give elements a function. It will go so far that every Item in the game will have corresponding 3D object in form of an Element which you can interact with according to the effect it holds.
My ToDo List includes:
- Finish missing textures for block type 4x4x1
- Introduce block type 1x5x1 and a 2x2x3 seat (+ textures)
- Fix ShipLight class
- Fix existing Bugs with Repaint, History and Block Removal
- Merge _fd and _cont material variations to _itcont
- Merge _fuel and _oxy material variations to _tank
- implement advanced MaterialPicker
- BugFixing (focussing on MaterialPicker)
- implement functional Elements, make Element a parameter of Item, change accessibility using the Item class.
- Adapt ShipEditor and ShipModel to these changes.
After this I can finally head to the actual simulation part of the game. I will probably won't finish all of these points in my list but it's always good to have for motivation purposes.