Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

PureGDK / Now is the time to experiment with porting PureGDK to other languages

Author
Message
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 11th Dec 2011 16:04 Edited at: 11th Dec 2011 16:06
PureGDK 2.0 promised to be extremely portable and able to work with any language capable of making 'C' function calls to DLL libraries. The only problem thus far has been the API being in a state of flux and a lack of adequate documentation.

With the release of beta 14 you will see that the documentation has now been written detailing the SDK libbuilder.h and all of the available command line tools:



If you are experienced with C++ and have a burning desire to support a new language, please feel free to read the new documentation and provide any feedback you might have.

After PureGDK 2.0 has been released I know I'll be looking forward to getting the Java port completed.



MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 11th Dec 2011 18:20
I never understood the point of pgdk... i have to own some other piece of expensive software right¿ something. called pure ... dunno...

Can you enlighten me a little... pretty please¿

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 12th Dec 2011 00:27 Edited at: 12th Dec 2011 00:28
Quote: "I never understood the point of pgdk... i have to own some other piece of expensive software right¿ something. called pure ... dunno..."


PureGDK 1.0 required PureBasic as that was the only supported language. This is not a requirement for PureGDK 2.0 unless you actually want to program in PureBasic.

For example, if you want to program in C++ all you need is PureGDK + DBP (even the free version!) and a C++ compiler.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 12th Dec 2011 01:11 Edited at: 12th Dec 2011 01:13
So kinda like dgdk right?... Have you got a feature comparison chart?... Want to know more and the benefits for when I make the jump from dbpro into c++ along with dbpro... ie... can you convince me to use pgdk over dgdk...

Just want to know if I should make the move using one or the other... glad I do not need to use purbasic...


EDIT

just to help the comparison easier...

Say I was making a huge scale environment rpg... how would pgdk compare to dbp and dgdk

WLGfx
16
Years of Service
User Offline
Joined: 1st Nov 2007
Location: NW United Kingdom
Posted: 12th Dec 2011 06:53 Edited at: 12th Dec 2011 06:57
@MrValentine

I started using DarkGDK a long time ago and got quite comfortable with it and it took me some time before I made the leap over to PureGDK.

The speed comparisons to me are very obvious, PureGDK wins over DarkGDK by far. I found that out when I first started out with about beta (9 I think). Even Dark Basic is faster than DarkGDK.

Depending on which you choose:

DarkGDK: Comes with easy setup templates for MSVC++ 2008 to get you started. Err, that's about it really.

PureGDK: A tad fiddly to setup, you have to set your include paths. I compile all the cpp files into a library and just include the headers.
You get the flexibility of whichever compiler you want to use. Good choices are Code::Blocks or Visual Studio Express (both free).
Unlike DarkGDK, you can compile the plugins that come with Dark Basic Pro into the dll so that you can use Matrix1 Utils, Sparkys, D3DFunc, etc, etc and now from what I hear, you can add on to these your own.

With both you can add external libraries available on the net, but I've found that the restrictions are lifted more when using PureGDK as you're right in the Windows environment. With DarkGDK you start in the middle of it's engine.

Since when I started with PureGDK the documentation that comes with it has improved dramatically and it shows how to setup a simple project to get you started easily. However, the documentation might include how to build and use libraries in a future release to make compilation much quicker.

Go on, make the leap feet first and try PureGDK. You won't be disappointed. If you tried DarkGDK first you will notice the engine is much slower than Dark Basics as I've already mentioned.

EDIT: You can use something like this too:

int my_new_obj = dbCreateObjectSphere( my_size );

And it returns the object ID for you without assigning one... Ain't that cool?

Mental arithmetic? Me? (That's for computers) I can't subtract a fart from a plate of beans!
Warning! May contain Nuts!
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 12th Dec 2011 06:59
Quote: "Want to know more and the benefits for when I make the jump from dbpro into c++ along with dbpro... ie... can you convince me to use pgdk over dgdk..."


There is a sticky at the top of this forum which outlines a summary of features:

http://forum.thegamecreators.com/?m=forum_view&t=187939&b=38

Everything listed in that thread can be considered a feature which PureGDK has and DarkGDK does not.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 12th Dec 2011 10:01
What about dlls like dark physics? For pgdk...

Will have a look at that sticky now...

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 12th Dec 2011 10:18
Quote: "What about dlls like dark physics? For pgdk..."


Yes, it does. PureGDK is compatible with all DBP plugins with a large number of them supported out of the box. This is a significant difference compared to DarkGDK which only supports a handful of plugins.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 12th Dec 2011 13:57
I have another question... placing objects in a virtual space and also... how does pgdk fair for things like scripted events?... Also is it limited to dx9c? also about memory limits... whats the cap... 32bit standard?...

I like the multi core support

Sold me on that alone lol...

So to use pgdk... what would be required aside from a dbpro licence and the addons... as in the editor does it come with one?... Also how do you use the add-ons like dark physics and ai?

Umm i think I will be able to couple silent installs of dx and nv physx installers right? Using pgdk...

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 12th Dec 2011 14:14
Quote: "how does pgdk fair for things like scripted events?"


Feel free to use the DBP Unity (LUA) plugin (not compatible with DarkGDK).

Quote: "Also is it limited to dx9c?"


It's a dx9c engine, yes. DirectX 10/11 may become available in the future. This is yet to be determined but PureGDK is designed such that the engine can be swapped out.

Quote: "also about memory limits... whats the cap... 32bit standard?..."


32-bit only.

Quote: "as in the editor does it come with one?..."


You use the editor that comes with your compiler. For PureBasic you use the PureBasic IDE. For C++ you can use Visual Studio Express, Code::Blocks, DevC++, etc.

Quote: "Also how do you use the add-ons like dark physics and ai?"


Follow the instructions in the installer. There are also detailed instructions in the help file.

MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 12th Dec 2011 14:25
Oh so I would use vs2010 for c++ and dbpro and also pgdk?

Hmm... is devC++ free? And is it any good compared to vs?...

Sorry for all the questions... just like to make informed decisions... just need to also know the price for pgdk 2.0 ... I will hopefully buy it in Feb after I pay my huge phone bill lol... thats bt includes the internet... fibre @40MBit/10MBit...D/U

Olby
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location:
Posted: 12th Dec 2011 16:56 Edited at: 12th Dec 2011 16:59
Quote: "thats bt includes the internet... fibre @40MBit/10MBit...D/U"


That's sweet! I'm still on my dog slow Sky DSL line (6Mbit)

As for PureGDK go for it mate. It has so much to offer. I've been using it since version 1 and Mistrel is there whenever you need the assistance.

ACER Aspire 5920G: Core2Duo 2.2GHZ, 2GB, GeForce 8600M GT 1280MB, Windows Vista Ultimate SP1, DBPro 7.5 + PureGDK 2.0b
MrValentine
AGK Backer
13
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 12th Dec 2011 19:29
I agree but just need to know how to set it up best for a beginner... and also the launch price of V2

oh and the cash lol...

Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Jan 2012 09:38
Mistrel, this is at least a limitation, if not a bug: PlayBasic doesn't support all C integral types so as a result some function calls fail where these types are used. I noticed this with 64 bit integers - smaller types seem to work fine e.g. 16 bit integers are okay.

PlayBasic should at least convert 64 bit integers into its 32 bit integer native type.

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 9th Jan 2012 20:03 Edited at: 9th Jan 2012 20:04
You can pass multiple smaller types which add up to the desired type and piece them together after the function call. For example, you can pass two 32-bit integers in place of a single 64-bit integer.

The only problem you would encounter is if you cannot pass a single byte char.

But there are ways to work around this too. Unsupported types can be passed as pointers of allocated memory, for example. The actual implementation of the language wrapper is completely open by design. I don't see this being a problem.

Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Jan 2012 20:11
Ah okay that's good then - out of interest what do you do with returning 64 bit integers?

I recently removed all 64 bit integers from DarkNet for a customer so that he could get it to work with PlayBasic but it seems that wasn't necessary .

Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 9th Jan 2012 20:17 Edited at: 9th Jan 2012 20:19
Well, the actual wrapper library is programmed in C++ so when an unsupported type is to be returned (64-bit integer, for example), you can build the function such that it has an extra parameter which accepts a pointer and has the data written there.

Or you can have it return a pointer. As the memory will be allocated using PlayBasic's own functions, you can use the functions provided natively to free it as well.

Because C++ supports all of these types, all you have to do is decide how to want to format them such that the data you are accepting into a function returning out of it is acceptable for the given language.

FlexiCat
13
Years of Service
User Offline
Joined: 15th Jun 2010
Location:
Posted: 10th Jan 2012 22:03
I too have used dGDK for a long time but now am seriously considering pureGDK just based on the response from people switching like me is amazing and it seems great so good work with that.

On the note of other languages i would LOVE to be able to use python for this as it has become my second language really and although it has its speed issues it would have some cool possibilities if ported.

If no one else does this i may give it a crack in the future but just putting the idea out there.

I swear to the programmers bible that I shall not harm the FPS.

Login to post a reply

Server time is: 2024-03-29 09:20:08
Your offset time is: 2024-03-29 09:20:08