Hello everyone,I have decided to develop a "product" for you all,called Dark PDK. Have you ever wanted to use dbp with oop,but then realize that the dbp IDE cannot support it? Have you wanted to create plug-ins that use DBPs own native commands,but lacked the knowledge of how to use them? Have you ever wanted to create your game in c++ using dbp commands? Well you can now,with my "prodcut" Dark P[lugin]D[evelopment]K[it]. With my new "product",and reason for quotations is becuase this is more than likely going to be free,you'll be able to do all of those. Now,the third item listed would be done by making all your code,then putting the init and update functions from your code into two premade functions that will be exported and have a stringtable made,therefore enabling you do design your game in c++,and then call it by only using something like "App Init" and "App Update". My new "product" is designed in oop,meaning there is a class for nearly everything. All the classes revolve around my costum made class,CManager. CManager creates all the objects,images,lights,meshes,and other entity types. Now,with the classes like CObject,stuff like position object is renamed as CObject:: Position. So you would call it like myObject->Position(30.0f,30.0f,30.0f); . Also,this will allow you to create plug-ins easily. Now,you will still be able to use the basic syntax without oop,for example dbPositionObject(objID,30.0f,30.0f,30.0f); .The good thing is that this would be easily "extendable" if you will,in the sense that you can create children of the CObject class and so on. For example,something like this:
class __declspec(dllexport) CAdvancedTerrainObject : public CObject
{
public:
CAdvancedTerrainObject(void);
~CAdvancedTerrainObject(void);
void createTerrain(int objID,CImage* pHeightmap,CImage* pDetail);
};
Now that class right there would automaticly inherit the functions from the CObject class,that way you could use like:
CAdvancedTerrainObject* myObj = new CAdvancedTerrainObject();
myObj->createTerrain(1,myHeightmap,myDetail);
myObj->Position(30.0f,30.0f,30.0f);
myObj->Rotate(30.0f,30.0f,30.0f);
myObj->Delete();
So thats the plus of this. So you could technically make plug-ins for a plug-in development kit. Also,you could develop games in c++ using dbp commands as stated above(somewhere...). All you would do is put all your code in the two functions that are to be exported. No,this doesn't mean cram all your code in two functions,you can have other functions in that. So basicly you could have something like this:
CManager* myManager;
void InitDBP()
{
myManager = new CManager();
myManager->SyncOn();
myManager->SyncRate(30.0f);
myManager->SetAmbientLight(50.0f);
}
void UpdateDBP()
{
myManager->Sync();
}
__declspec(dllexport) void AppInit()
{
InitDBP();
}
__declspec(dllexport) void AppUpdate()
{
UpdateDBP();
}
So basicly thats what creating the game in c++ would be like.
Now I believe I covered everything,so comments are welcome. This is planned to be released as freeware. Comments are welcomed. I do not have an estimate on when this will be released,but I am working as fast as I can. Right now I am accepting requests of plugins to add support for. They would not be in the CoreLibrary,they'd be in extension libraries,which are just normal libraries.
On a final note,to have everything run,you will need the Dark PDK.dll in your executable directory. That shouldn't bother to much. Now,as I said before,any requests on plugins to add support for would be appreciated. And then when I get a list of plugins,I'll ask their creators if I can. Thats all for now,please reply to this
Now,please inform me if I seemed to leave out anything
Sorry if this isn't ready yet,but I feel it is since its in somewhat of a usuable stage right now,meaning you coudl create something with it.
Btw,I'd like to thank Tk fish for his help(I think thats his name...),without him,this wouldn't be possible.
Edit - I have just decided to make a static library as well. So you can have the choice between a static library and a dynamic library. Although,a static library will increase your final project size dramaticly,but it will also remove the need for the Dark PDK.dll in your project directory. So the choice will be the creators,whether or not to have the extra dll and smaller size.
Hello