So I'm sure a lot of you have been wondering what the hell this project is and what the deal is with the forum group here on the ZDF. Basically Blackfire is a two part project: One part being the SDK, and the other being a total gameplay mod that is a lot of fun and can act as a working example of sorts for people to learn from.
The goals of Project: Blackfire are simple:
- To provide a means of automation that enables the community to have the ease of use, and flexibility, that they need in order to accomplish more scripting heavy effects and features.
- To make ACS easier to use on more complex concepts
- To provide a set of actively collected data that will open the doors to greater flexibility in the language.
You do not even need to compile these libraries into your map, they will run regardless of the fact it is in LOADACS or in the map's behavior file. Some modules for the SDK may require you to load some forms of data into a map inside an open script, however.
Current feature set for the library includes:
- Memory allocation routines to enable OOP design and sharing of multiple forms of data across scripts. This basically means that scripts now have the ability to pass pointers as well as standard variables. (Pass an array as a function/script parameter anyone?)
- Plugin manager that enables the direct control of the distribution and execution of code across multiple instances of the game.
- Global player stats class that enables saved player stats across maps and can be read to save and dump data to a log file in a format of which that can be fed back into the game without modification.
- Globalized universal XP plugin that is formula based so you can set your level cap to whatever you want and have it still work in MP. Uses the Plugin Manager to operate.
- A new menu architecture that allows for full interaction in a variety of environments, off-line and online. Also comes with a WYSIWYG editor that allows you to build your own menus with custom collision data, and generates all the code to use the menu. Requires only minimal modifications to use the code to apply to what you need.
- A new dialog and shop system architecture that allows for simple design of dialog trees and creation of simple shops. Also allows for custom window definitions made with the Menu Utility that can replace the default and can be set on a per-dialog/shop basis. Also allows for the modular creation of dialog and shop listings that can be attached to any thing that can set its activator to the player that interacted with it through a simple script call with 1 argument.
- A status manager for the plugins that enables real-time control of available code running through the engine. This is also where you would allow for the control of server features and plugins while in-game. There isnt a GUI for this yet, as I made this before the menu system, but there will be one for it soon.... When I have enough button graphics
As always, I appreciate any and all input that can be given for this. Let me know if you have any questions or ideas you'd like to see!
It's kinda hard for me to provide screenshots of stuff like this in action, but I figure I can just keep posting teasers here until this gets done. For now, instead of screen shots, I shall give you all some sample code to ponder from the new shop menu architecture. This is example code showing a basic fundamental usage of the new architecture to define and create your own shop menu.
UPDATE 2/29/12 - Here is the first demo video showing a basic walkthrough of using the Menu builder utility:
EDIT: Oh yeah, turns out WildWeasel shall be one of the first to be using this framework in his mod "WWHC Cold Hard Cash" for ZDoom. I believe he is just using the dialog/shop system, but still awesome none the less