[WIP] Project: Blackfire SDK (UPDATED 2/29/12)

For Total Conversions and projects that don't otherwise fall under the other categories.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Apothem
Posts: 2070
Joined: Sat Nov 29, 2003 7:13 pm
Location: Performing open heart surgery on an ACS compiler.

[WIP] Project: Blackfire SDK (UPDATED 2/29/12)

Post by Apothem »

Welcome to the Project: Blackfire announcement thread where you can get your daily dose of teasers and status updates on the project that will change the way you will mod doom.

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.
One of the big things that Blackfire is meant to promote is flexibility and the ability to provide this flexibility in ways of which that would enable an individual to pass new forms of data over new mediums without the necessity of any overhaul to any part of the compiler for ACC or to ZDoom itself. What this means is that the Blackfire SDK is nothing more than a collection of ACS libraries, written in a manner of which to be extremely adaptable to any project you have. This is done all while not having to do any heavy amount of scripting.

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 :P
Remember to stay tuned to this thread for your latest updates and event announcements relating to the project!

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 :D
Spoiler:
Last edited by Apothem on Wed Feb 29, 2012 4:16 pm, edited 6 times in total.
User avatar
Mikk-
Posts: 2274
Joined: Tue Jun 30, 2009 1:31 pm
Location: Somewhere off Kanagawa

Re: [WIP] Project: Blackfire SDK

Post by Mikk- »

I see no black fire. I was mislead! I CALL SHENANIGANS! :P

Actually, this seems very interesting.
User avatar
Xaser
 
 
Posts: 10772
Joined: Sun Jul 20, 2003 12:15 pm

Re: [WIP] Project: Blackfire SDK

Post by Xaser »

I'm still scratching my head over how you've managed to implement half the stuff listed here. :P

Great stuff though. Hopefully it's as awesome as it's chalked up to be. :)
User avatar
printz
Posts: 2648
Joined: Thu Oct 26, 2006 12:08 pm
Location: Bucharest, Romania

Re: [WIP] Project: Blackfire SDK

Post by printz »

Apothem wrote: 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 :P
Holy shit. Didn't see this coming. Imagine the capabilities gained. :shock:

I hope it turns out to be robust but I have no doubts.
User avatar
Apothem
Posts: 2070
Joined: Sat Nov 29, 2003 7:13 pm
Location: Performing open heart surgery on an ACS compiler.

Re: [WIP] Project: Blackfire SDK

Post by Apothem »

Xaser wrote:I'm still scratching my head over how you've managed to implement half the stuff listed here. :P

Great stuff though. Hopefully it's as awesome as it's chalked up to be. :)
Well, one of the things that will help make it awesome is lots of documentation and examples. Sadly there is a lot more to it than just simply 'making a text file'. I need to do documentation for each individual piece. Later documentation will include walk through videos and extra tools to help you get your job done faster.

This is the big thing that is holding me back on some of this getting done faster, is that I basically have to do double work. One time through for writing and coming up with the framework for a module, and then another time through to document and give examples.

Thank god I comment my code and make it legible enough to do all of it without getting lost. Speaking of which, if anyone is willing to sit down with me and help me do the documentation on this it would be greatly appreciated.
User avatar
TheDarkArchon
Posts: 7656
Joined: Sat Aug 07, 2004 5:14 am
Location: Some cold place

Re: [WIP] Project: Blackfire SDK

Post by TheDarkArchon »

Ah, so THIS is what the ACS malloc babble on IRC was for.

Also, I think your title is a bit out of date there. :P
User avatar
Apothem
Posts: 2070
Joined: Sat Nov 29, 2003 7:13 pm
Location: Performing open heart surgery on an ACS compiler.

Re: [WIP] Project: Blackfire SDK

Post by Apothem »

TheDarkArchon wrote:Ah, so THIS is what the ACS malloc babble on IRC was for.

Also, I think your title is a bit out of date there. :P
Indeed :D

Malloc is a cornerstone to this project and enables the OOP-style that this library has. Pretty crazy how it works. I'll be doing a video on its usage and features sometime soon....

Also what do you mean by my title being out of date? This is the same one I've always had. Or is it because Zdoom cant make my head go boom because I lost it ages ago? :P
User avatar
TheDarkArchon
Posts: 7656
Joined: Sat Aug 07, 2004 5:14 am
Location: Some cold place

Re: [WIP] Project: Blackfire SDK

Post by TheDarkArchon »

Apothem wrote: Also what do you mean by my title being out of date? This is the same one I've always had. Or is it because Zdoom cant make my head go boom because I lost it ages ago? :P
I'm thinking more "ACS can't make your head explode since you've officially made it your bitch"
User avatar
Grymmoire
Posts: 589
Joined: Wed Jun 24, 2009 12:30 pm
Graphics Processor: nVidia (Modern GZDoom)
Location: Nowhere, KS

Re: [WIP] Project: Blackfire SDK

Post by Grymmoire »

So much for my top secret name color. I like the dark name color though, I hope I never have to lose it :cry:
User avatar
Apothem
Posts: 2070
Joined: Sat Nov 29, 2003 7:13 pm
Location: Performing open heart surgery on an ACS compiler.

Re: [WIP] Project: Blackfire SDK

Post by Apothem »

:lol: Grymmoire, you know it had to stop being a secret some day :P
User avatar
printz
Posts: 2648
Joined: Thu Oct 26, 2006 12:08 pm
Location: Bucharest, Romania

Re: [WIP] Project: Blackfire SDK

Post by printz »

Malloc??!! Dynamic allocation, in ACS? Now that's something to see, when it comes.
User avatar
Tapwave
Posts: 2094
Joined: Sat Aug 20, 2011 8:54 am
Preferred Pronouns: No Preference
Graphics Processor: nVidia with Vulkan support

Re: [WIP] Project: Blackfire SDK

Post by Tapwave »

I was starting to wonder when the darkteals would finally release that SEECRET thingythey were named after :wink:
User avatar
Kinsie
Posts: 7392
Joined: Fri Oct 22, 2004 9:22 am
Graphics Processor: nVidia with Vulkan support
Location: MAP33

Re: [WIP] Project: Blackfire SDK

Post by Kinsie »

So let me get this straight. You can now save and load arbitrary data between game sessions?

Countdown until this gets removed and fixed because of the phantom fear of potentially abusive wads...
User avatar
printz
Posts: 2648
Joined: Thu Oct 26, 2006 12:08 pm
Location: Bucharest, Romania

Re: [WIP] Project: Blackfire SDK

Post by printz »

can you? if the zdoom framework can't allow that, then how can a mod do so? Unless said mod changes the port, but unlikely.
User avatar
Ghastly
... in rememberance ...
Posts: 6109
Joined: Fri Jul 06, 2007 2:34 pm

Re: [WIP] Project: Blackfire SDK

Post by Ghastly »

printz wrote:can you? if the zdoom framework can't allow that, then how can a mod do so? Unless said mod changes the port, but unlikely.
I assume it has something to do with the UNLOADING script type.

Return to “TCs, Full Games, and Other Projects”