PureGDK 2.0 - DarkBasic Professional for any language

Developed or developing a new product in PureBasic? Tell the world about it.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

How can i resolve the error "can not find gdkengine.dll"?
i search for it in the puregdk directory but i didnt find it.
The engine library is built for you at installation. It can be rebuilt by running the .bat files in the PureGDK installation directory: "compile engine.bat" or "compile engine with plugins.bat".

The default location where this file is created by the installation is "D:\Program Files (x86)\PureGDK\examples". If it is not there please let me know. This could indicate a problem with the installer.
alan_solis
User
User
Posts: 12
Joined: Thu Oct 23, 2008 5:19 pm
Location: Mexico

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by alan_solis »

The compile engine command works fine, it produce the gdkengine.dll missing.
The compile with plugins command gives this message "gdkc.exe: darkphysics.dll is configured with an invalid command"

after moving the dll to the puregdk\examples the demos works fine.
thanks
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

PureGDK 2.0 beta 7 is out! Major features of this release include the addition of Direct3D callbacks to recover from an invalid state, specifying an ID is now optional for all creation and load commands, and the first iteration of the brand new documentation. It's really great!

http://forum.thegamecreators.com/?m=for ... 77817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.


Brand new language-specific documentation!

Image

Here is a screenshot of the DarkGDK documentation for a comparison:

Image

The documentation is in the excellent .chm format with an index and full text search.

All source code and templates for the documentation builder will be available in the SDK for you to help extend the existing docs and also for you to apply to your own projects if you like.

Many of the commands have been renamed for clarity and others have had their parameters reordered to support default parameters and function polymorphism.

Here is an example of a function which will have its parameters reordered for automatic ID allocation:

Code: Select all

dbLoadSound(string fileName[, int soundID])
The "soundID" parameter is optional and therefore appears at the end of the function. If no ID is specified, one will be returned as the result.

For functions which take advantage of default parameters, the header might look like this:

Code: Select all

dbLoadSound(string fileName, int soundID = -1)
And for others which use function polymorphism, for example:

Code: Select all

dbLoadSound(string fileName)
dbLoadSound(string fileName, int soundID)
Another example where a command might be different is "dbSetDisplayMode".

In DarkGDK you can use these commands to change the resolution:

Code: Select all

void dbSetDisplayMode (int iWidth, int iHeight, int iDepth)
bool dbSetDisplayModeEx(int iWidth, int iHeight)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode, int iVertexProcessing)
bool dbSetDisplayModeEx(int iWidth, int iHeight, int iDepth, int iMode, int iVertexProcessing, int iLockable)
bool dbSetDisplayModeVSync(int iWidth, int iHeight, int iDepth, int iVSyncOn)
bool dbSetDisplayModeAntialias (int iWidth, int iHeight, int iDepth, int iVSyncOn, int iMultisamplingFactor, int iMultimonitorMode)
In PureGDK the same command with optional parameters is:

Code: Select all

dbSetDisplayMode(int width, int height[, int depth[, int vSync[, int multiSampling[, int multiMonitor[, int backBufferWidth[, int backBufferHeight[, int vrMode]]]]]]])
In this function each parameter after width and height can be optionally specified.

PureGDK has built-in support for multithreading by providing function-level critical sections for your convenience behind the scenes as well as thread-aware error handling. Each function can have several possible error codes which can be detected are caught at runtime for you to examine and respond to.

For example, dbMakeMatrix() can throw any of the following errors for you to catch with dbGetLastError():

Code: Select all

kGDK_Error_3D_Matrix_ID_Invalid
kGDK_Error_3D_Matrix_Exists
kGDK_Error_3D_Matrix_Segment_Invalid
kGDK_Error_3D_Matrix_Dimension_Invalid
kGDK_Error_3D_Matrix_Too_Large
dbGetLastError() will return the last error to occur in the current thread. It can safely and accurately be used across multiple threads.

Never have to use a vector or matrix "ID" again! PureGDK supports vector and matrix datatypes as structures. This means that you can access any part of this data and they can be written to and read from memory:

Code: Select all

PureGDK 2.0 beta 7
------------------
Bug fixes:
- dbCameraExist no longer has a default parameter.
- Fixed a few erroneous command names:
* dbLockpixels -> dbLockPixels
* dbStopRecodingSound -> dbStopRecordingSound
* dbGetBackbufferWidthWidth -> dbGetBackbufferWidth

Updates:
- Document commands are also now verified against existing commands in the template libraries to eliminate the documenting of erroneous parameters and non-existent commands. The documentation itself has gotten a major visual overhaul as well.
- The documentation builder now has the ability to create .chm documentation for multiple languages using shared templates. Any change to the documentation will propegate to every targeted language.
- Added runtime error constants to PureGDK.gdt as well as the documentation. Every command which returns an error is now documented.
- Added the dbSetD3DDeviceCallback command for recovering from an invalid render device.
- dbSyncRate now uses DBP's more accurate frame rate limiter.
- Added '-v' parameter to buildlibs.exe to provide additional verbose output for aggregating command documentation. Several parameters for this tool have also been adjusted for consistency.
- Updated the SDK specification and plugins to support verbose output and new arc/argv parameters. Changes are incompatible with previous beta SDK releases.
- Specifying an ID explicitly for creation and load commands which would normally accept an ID is now optional. Many commands have had their parameters reordered for support this behavior.

- New commands:
* dbIsAdvancedTerrain
* dbIsCloth
* dbIsCollider
* dbIsEffector
* dbIsEmitter
* dbSetD3DDeviceCallback
* dbSetNVPerfHUD

- Renamed commands to be more specific and/or consistent with other commands:
* dbAddMeshToBuffer -> dbAddMeshToVertexBuffer
* dbAnimationExist -> dbIsAnimation
* dbBitmapExist -> dbIsBitmap
* dbCameraExist -> dbIsCamera
* dbChangeMesh -> dbReplaceMesh
* dbCreateObjectTerrain -> dbCreateAdvancedTerrain
* dbCSGDifferenceOnVertexData -> dbCSGDifferenceOnVertexBuffer
* dbCSGIntersectionOnVertexData -> dbCSGIntersectionOnVertexBuffer
* dbCSGUnionOnVertexData -> dbCSGUnionOnVertexBuffer
* dbDeleteMeshFromBuffer -> dbDeleteMeshFromVertexBuffer
* dbDestroyTerrain -> dbDeleteAdvancedTerain
* dbEffectExist -> dbIsEffect
* dbFreeAllClothPoints -> dbDeleteAllClothPoints
* dbFreeAllClothPointsOnAllObjects -> dbDeleteAllClothPointsOnAllObjects
* dbFreeAllClothPointsOnObject -> dbDeleteAllClothPointsOnObject
* dbFreeAllRagdollPoints -> dbDeleteAllRagdollPoints
* dbFreeClothNearestPoint -> dbDeleteClothNearestPoint
* dbFreeClothPoint -> dbDeleteClothPoint
* dbFreeClothPoints -> dbDeleteClothPoints
* dbFreeClothPointsRadius -> dbDeleteClothPointsRadius
* dbFreeNetGame -> dbDeleteNetGame
* dbFreeNetPlayer -> dbDeleteNetPlayer
* dbGetBufferIndexCount -> dbGetVertexBufferIndexCount
* dbGetBufferIndexData -> dbGetVertexBufferIndexData
* dbGetBufferVertexCount -> dbGetVertexBufferVertexCount
* dbImageExist -> dbIsImage
* dbLimbExist -> dbIsLimb
* dbMakeBasicEmitter -> dbCreateBasicEmitter
* dbMakeBitmapFromMemblock -> dbCreateBitmapFromMemblock
* dbMakeBoxEmitter -> dbCreateBoxEmitter
* dbMakeCamera -> dbCreateCamera
* dbMakeChaosEffector -> dbCreateChaosEffector
* dbMakeCloth -> dbCreateCloth
* dbMakeCollisionBox -> dbCreateCollisionBox
* dbMakeCollisionDisc -> dbCreateCollisionDisc
* dbMakeCollisionPlane -> dbCreateCollisionPlane
* dbMakeCollisionSphere ->dbCreateCollisionSphere
* dbMakeCollisionSquare -> dbCreateCollisionSquare
* dbMakeColorEffector -> dbCreateColorEffector
* dbMakeDampingEffector -> dbCreateDampingEffector
* dbMakeDragEffector ->dbCreateDragEffector
* dbMakeFireParticles -> dbCreateFireParticles
* dbMakeFlockEffector -> dbCreateFlockEffector
* dbMakeForceEffector -> dbCreateForceEffector
* dbMakeGravityEffector -> dbCreateGravityEffector
* dbMakeImageFromMemblock -> dbCreateImageFromMemblock
* dbMakeLight -> dbCreateLight
* dbMakeMatrix -> dbCreateMatrix
* dbMakeMemblock -> dbCreateMemblock
* dbMakeMemblockFromBitmap -> dbCreateMemblockFromBitmap
* dbMakeMemblockFromImage -> dbCreateMemblockFromImage
* dbMakeMemblockFromMesh -> dbCreateMemblockFromMesh
* dbMakeMemblockFromSound -> dbCreateMemblockFromSound
* dbMakeMeshFromMemblock -> dbCreateMeshFromMemblock
* dbMakeMeshFromObject -> dbCreateMeshFromObject
* dbMakeObject -> dbCreateObject
* dbMakeObjectBox -> dbCreateObjectBox
* dbMakeObjectCollisionBox -> dbCreateObjectCollisionBox
* dbMakeObjectCone -> dbCreateObjectCone
* dbMakeObjectCube -> dbCreateObjectCube
* dbMakeObjectCylinder -> dbCreateObjectCylinder
* dbMakeObjectFromLimb -> dbCreateObjectFromLimb
* dbMakeObjectPlane -> dbCreateObjectPlane
* dbMakeObjectSphere -> dbCreateObjectSphere
* dbMakeObjectTerrain -> dbCreateObjectTerrain
* dbMakeObjectTriangle -> dbCreateObjectTriangle
* dbMakeParticles -> dbCreateParticles
* dbMakePointEffector -> dbCreatePointEffector
* dbMakeSizeEffector -> dbCreateSizeEffector
* dbMakeSnowParticles -> dbCreateSnowParticles
* dbMakeSoundFromMemblock -> dbCreateSoundFromMemblock
* dbMakeSphericalEmitter -> dbCreateSphericalEmitter
* dbMakeStaticCollisionBox -> dbCreateStaticCollisionBox
* dbMakeStaticLimb -> dbCreateStaticLimb
* dbMakeStaticObject -> dbCreateStaticObject
* dbMakeTerrain -> dbCreateTerrain
* dbMakeVortexEffector -> dbCreateVortexEffector
* dbMakeWindEffector -> dbCreateWindEffector
* dbMakeWrapAroundEffector -> dbCreateWrapAroundEffector
* dbMatrixExist -> dbIsMatrix
* dbMatrixTilesExist -> dbIsMatrixTextured
* dbMemblockExist -> dbIsMemblock
* dbMeshExist -> dbIsMesh
* dbMusicExist -> dbIsMusic
* dbNetGameExist -> dbIsNetGame
* dbNetMessageExist -> dbIsNetMessage
* dbObjectExist -> dbIsObject
* dbParticlesExist -> dbIsParticles
* dbPixelShaderExist -> dbIsPixelShader
* dbSetImageColorkey -> dbSetImageChromaKey
* dbSetStaticPortalsOff -> dbHideStaticPortals
* dbSetStaticPortalsOn -> dbShowStaticPortals
* dbSoundExist -> dbIsSound
* dbSpriteExist -> dbIsSprite
* dbTerrainExist -> dbIsTerrain
* dbUnlockBuffer -> dbUnlockVertexBuffer
* dbVertexShaderExist -> dbIsVertexShader
* dbChangeMeshFromMemblock -> dbReplaceMeshWithMemblock

- Reordered parameters to support automatic ID allocation
* dbCloneObject(ObjectCloneID, SourceID, SharedDataFlag) -> (SourceID, ObjectCloneID, SharedDataFlag)
* dbCopyMemblock(SourceID, MemblockID, SourceStartPos, DestinationStartPos, Length) -> (SourceStartPos, DestinationStartPos, Length, SourceID, MemblockID)
* dbCreateAnimatedSprite(SpriteID, Filename.s, Across, Down, ImageID) -> (Filename.s, Across, Down, ImageID, SpriteID)
* dbCreateBasicEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateBitmap(BitmapID, Width, Height) -> (Width, Height, BitmapID)
* dbCreateBitmapFromMemblock(BitmapID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, BitmapID)
* dbCreateBoxEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateFireParticles(ParticleID, ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f) -> (ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f, ParticleID)
* dbCreateImageFromMemblock(ImageID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, ImageID)
* dbCreateMatrix(MatrixID, Width.f, Depth.f, xSegments, zSegments) -> (Width.f, Depth.f, xSegments, zSegments, MatrixID)
* dbCreateMemblock(MemblockID, Size) -> (Size, MemblockID)
* dbCreateMemblockFromBitmap(MemblockID, BitmapID) -> (BitmapID, MemblockID)
* dbCreateMemblockFromImage(MemblockID, ImageID) -> (ImageID, MemblockID)
* dbCreateMemblockFromMesh(MemblockID, MeshID) -> (MeshID, MemblockID)
* dbCreateMemblockFromSound(MemblockID, SoundID) -> (SoundID, MemblockID)
* dbCreateMeshFromMemblock(MeshID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, MeshID)
* dbCreateMeshFromObject(MeshID, ObjectID) -> (ObjectID, MeshID)
* dbCreateObject(ObjectID, MeshIndex, ImageID) -> (MeshIndex, ImageID, ObjectID)
* dbCreateObjectBox(ObjectID, Width.f, Height.f, Depth.f) -> (Width.f, Height.f, Depth.f, ObjectID)
* dbCreateObjectCone(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectCube(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectCylinder(ObjectID, Size.f) -> (Size.f, ObjectID)
* dbCreateObjectFromLimb(ObjectID, NewObjectID, LimbID, CopyAllFlag) -> (ObjectID, LimbID, CopyAllFlag, NewObjectID)
* dbCreateObjectPlane(ObjectID, Width.f, Height.f, Orientation) -> (Width.f, Height.f, Orientation, ObjectID)
* dbCreateObjectSphere(ObjectID, Size.f, Rows, Columns) -> (Size.f, Rows, Columns, ObjectID)
* dbCreateObjectTriangle(ObjectID, x1, y1, z1, x2, y2, z2, x3, y3, z3) -> (x1, y1, z1, x2, y2, z2, x3, y3, z3, ObjectID)
* dbCreateParticles(ParticleID, ImageID, Frequency, Radius.f) -> (ImageID, Frequency, Radius.f, ParticleID)
* dbCreateSnowParticles(ParticleID, ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f) -> (ImageID, Frequency, x.f, y.f, z.f, Width.f, Height.f, Depth.f, ParticleID)
* dbCreateSoundFromMemblock(SoundID, MemblockID) -> dbCreateBitmapFromMemblock(MemblockID, SoundID)
* dbCreateSphericalEmitter(EmitterID, ParticleCount) -> (ParticleCount, EmitterID)
* dbCreateTerrain(TerrainID, HeightmapFilename.s) -> (HeightmapFilename.s, TerrainID)
* dbGetImage(ImageID, Left, Top, Right, Bottom, TextureFlag) -> (Left, Top, Right, Bottom, TextureFlag, ImageID)
* dbInstanceObject(ObjectID, SourceID) -> (SourceID, ObjectID)
* dbLoadEffect(FileName.s, EffectID, TextureFlag, DoNotGenerateExtraData) -> (FileName.s, TextureFlag, DoNotGenerateExtraData, EffectID)
* dbLoadEffect(FileName.s, EffectID, TextureFlag, DoNotGenerateExtraData) -> (FileName.s, TextureFlag, EffectID, DoNotGenerateExtraData)
* dbLoadImage(Filename.s, ImageID, TextureFlag) -> (Filename.s, TextureFlag, ImageID)
* dbLoadMesh(FileName.s, MeshID)
* dbLoadObject(FileName.s, ObjectID, TextureMode, TextureReduce) -> (FileName.s, TextureReduce, TextureMode, ObjectID)
* dbLoadPixelShader(FileName.s, PixelShaderID)
* dbLoadVertexShader(FileName.s, VertexShaderID)
* dbRecordSound(SoundID, Duration) -> (Duration, SoundID)
* dbReplaceMeshWithMemblock(MeshID, MemblockID) -> dbReplaceMeshWithMemblock(MemblockID, MeshID)
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

PureGDK 2.0 beta 8 is out. This release fixes a small bug which broke dbCreateMatrix. It also adds a lot of changes to the installer which improves the user experience and adds important validation to ensure that all of the necessary prerequisites are in order.

http://forum.thegamecreators.com/?m=for ... 77817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Code: Select all

PureGDK 2.0 beta 8
------------------
Bug fixes:
* Fixed a bug in Matrix.gdt which was preventing dbCreateMatrix from evaluating correctly.

Updates:
* The installer now creates start menu entries with links to the documentation, projects, and useful batch files.
* The installer now checks for licensing errors when it builds the engine dll during installation and will report the offending library if a problem has occurred.
* The installer now checks checks for the existence of a DarkBasic Professional and will provide useful information about where to download it if it cannot be found. This is in contrast to previous versions which simply asked for a directory path.
* The installer now verifies whether a compatible version of DarkBasic Professional has been selected. It will not continue unless the correct version (at least 7.7) has been detected. It will also provide useful information about where to download it if it was not detected.
* The installer now verifies that the engine dll has been created successfully after calling gdkc.exe.
* Various other small bits of polish, fixing typos, and textual changes to the installer.
Last edited by Mistrel on Sun Jul 31, 2011 7:40 am, edited 1 time in total.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

alan_solis wrote:The compile with plugins command gives this message "gdkc.exe: darkphysics.dll is configured with an invalid command"
This error has been addressed in Beta 8 by providing a dialog during the installation process which identifies the offending plugin; though you already know which it is.

This error indicates a licensing issue. If you installed Dark Physics, make sure you license it before installing PureGDK to avoid this error.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

PureGDK 2.0 beta 9 is out. This release focuses primarily on improving the documentation and the documentation builder source code (which will eventually make it into the SDK). There was also a minor bug fixes.

The default structure for the application data folder (%appdata%\PureGDK) has changed. The old folder should be deleted so that old files don't clutter it up and add to confusion when referencing the new documentation.

Instructions for how to setup projects in Visual Studio 2008, Visual Studio 2010, and PureBasic are also included in this release's revised documentation. No more guesswork on how to setup a project.

PureGDK is now extremely stable and is rapidly approaching release-candidate status! :)

http://forum.thegamecreators.com/?m=for ... 77817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

ChangeLog:

Code: Select all

PureGDK 2.0 beta 9
------------------
Bug fixes:
   * Fixed a bug where plugin headers were not evaluating their include path correctly.
   * Fixed creation and load functions which were failing to return the IDs passed to them.
   * Fixed creation and load functions which were failing to return a unique ID when passed -1 as expected.

Updates:
   * The documentation has received a lot of polish for this release including font style, text placement, new topics, index revisions, as well as a few minor bug fixes.
   * puregdk_cpp.chm and puregdk_purebasic.chm have been merged into puregdk.chm. All documentation for language targets have been split into aliased folders within the Library/ path of the documentation. Searching the index will now provide links to all supported languages to eliminate ambiguity.
   * Added new entries for PureBasic and C++ fundamentals, source examples in the documentation, and full walkthroughs on how to setup a project in PureBasic, Visual Studio 2008 and Visual Studio 2010.
   * Vector and matrix structures now use their fully-qualified name by default (Vector2 vs. v2) for clarity.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

PureGDK 2.0 beta 11 is out. This release adds a number of commands provided by the DarkShader runtime (which comes free with DBP), documentation improvements, and support for several new plugins.

Thank you for helping test, DarkGDK testers! :)

http://forum.thegamecreators.com/?m=for ... 77817&b=38

Please delete any files installed by a previous release of PureGDK 2.0 beta before installing a new one! The default user path is "%appdata%\PureGDK", the default install path is "..Program Files (x86)\PureGDK"

PureBasic users: You "must" uninstall any previous release of PureGDK 1.0 before installing PureGDK 2.0. Older releases are not compatible and you will not be able to compile.

Changelog:

Code: Select all

PureGDK 2.0 beta 11
------------------
Bug fixes:
- Fixed a bug where dbLimbName, dbLimbTextureName, and dbEntry were not returning a string as expected.
- Fixed a bug where functions which set shader constants were not evaluating structures correctly.

Updates:
- Added support for full-text search to the documentation.
- All documentation generated for a target language will now be compiled to its own .chm file.
- Various textual improvements to the library documentation.
- Added support for IanM's Matrix1Util library plugins 9, 12, 18, and 26 (for real this time).
- Support for DKShop and DKAVM has been removed, as these plugins no longer work.
- dbSetDisplayMode now calls dbReloadDisplayPointer internally (part of the DarkShader runtime).
- Added a new command dbSetRuntimeErrorCallback to allow logging of runtime errors.
- Added several commands introduced by the DarkShader runtime.

- Added the following plugins to PureGDK for out-of-the-box support:
* A* Pathfinding : http://forum.thegamecreators.com/?m=forum_view&t=114240&b=5
* Advanced Audio : http://forum.thegamecreators.com/?m=forum_view&t=111325&b=8
* Advanced Sprites : http://forum.thegamecreators.com/?m=forum_view&t=113378&b=5
* DarkData : http://www.thegamecreators.com/?m=view_product&id=2067
* DarkInk : http://www.thegamecreators.com/?m=view_product&id=2075
* DarkNet : http://www.thegamecreators.com/?m=view_product&id=2070
* DarkVideo : http://www.thegamecreators.com/?m=view_product&id=2227
* GreenEar : http://www.thegamecreators.com/?m=view_product&id=2227
* Image Kit V2 : http://forum.thegamecreators.com/?m=forum_view&t=177340&b=5
* Matrix1Util : http://forum.thegamecreators.com/?m=forum_view&t=85209&b=18
* Object LOD : http://forum.thegamecreators.com/?m=forum_view&t=159658&b=5
* Quadtree : http://forum.thegamecreators.com/?m=forum_view&t=108837&b=18

- New Commands:
* dbApplyDynamicCubeMapToObject
* dbCreateDynamicCubeMap
* dbDeleteCameraEffect
* dbDeleteDynamicCubeMap
* dbGetCameraEffect
* dbIsCameraEffect
* dbIsDynamicCubeMap
* dbLoadCameraEffect
* dbRemoveCameraEffect
* dbRenderDynamicCubeMap
* dbSetCameraEffect
* dbSetCameraEffectConstantFloat
* dbSetCameraEffectConstantInteger
* dbSetCameraEffectConstantVector
* dbSetRuntimeErrorCallback
* dbSyncCamera
User avatar
takis76
Enthusiast
Enthusiast
Posts: 143
Joined: Tue Aug 30, 2011 1:31 pm
Location: Athens - Greece

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by takis76 »

Hello Mistrel , today I purchased the PureGDK and I am in members area , but I see something about PureGDK ver 1.1.1-4.31 for PureBasic 4.31 , I don't see PureGDK ver 2.0 for PureBasic 4.60. I made my purchase from http://www.puregdk.com not from www.thegamecreators.com , what is the difference?
I would like to experiment with this a little.

Thank you.
User avatar
Blue Steel
Enthusiast
Enthusiast
Posts: 132
Joined: Wed Aug 31, 2005 4:49 pm
Contact:

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Blue Steel »

I've been away for quite a while , (a few system rebuilds and maybe even an isp change) I've tried logging on to your site with ALL of my remembered emails. with no luck.

I know i purchased puregdk and I've even had it running at one stage. but now i can't remember how i got it / how to get it again and how to update
Currently using PureBasic 4.51(x86)

Image http://www.codingmonkeys.com
Covers many languages including PureBasic
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

I know i purchased puregdk and I've even had it running at one stage. but now i can't remember how i got it / how to get it again and how to update
When transitioning from the old database to the new one, instead of moving everyone's account, I sent e-mails to everyone with a coupon code to redeem a free copy of PureGDK (now DarkGDK).

Send me a PM with the e-mail addresses you may have used and I'll check to see where I sent it. I'll also PM you the code if you can't find the e-mail; however, I'll still need to confirm your order, of course.

A PayPal transaction ID would also suffice.
User avatar
Tenaja
Addict
Addict
Posts: 1959
Joined: Tue Nov 09, 2010 10:15 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Tenaja »

How long does it take to set up mountainous terrain like that? What are the steps to do it? (Briefly--I am not looking for a tutorial, just a short description.) Thanks.
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

Tenaja wrote:How long does it take to set up mountainous terrain like that? What are the steps to do it? (Briefly--I am not looking for a tutorial, just a short description.) Thanks.
It's super easy. The source, media, and an example binary are included in the release candidate under the examples directory. Here is what the code looks like:

http://darkgdk.com/files/upload/media_t ... vanced.zip

Code: Select all

XIncludeFile "..\..\include\h.InitDarkGDK.pb"
XIncludeFile "..\..\include\darkgdk\core\h.DarkGDK.pb"

If Not InitDarkGDK("gdkengine.dll","..\..\..\..\")
  End
EndIf

;/ Show the DarkGDK render window
OpenWindow(0,0,0,640,480,"DarkGDK - Game Developer's Toolkit",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
dbOpenScreen(WindowID(0),0,0,640,480)

;/ Advanced Terrain System

;/ Sky textures from "SkyMatter"
;/ Heightmap created by David Smith (infiniteloop@optushome.com.au)
;/ Terrain base texture generated from Advanced Terrain System Plus

;/ Set up display and camera
dbBackdropOn()
dbAutoCamOff()
dbSetCameraRange(0.5, 30000)

;/ Movement
g_fSpeed.f=0.05
g_fTurn.f=0.3

;/ Set the current directory
SetCurrentDirectory("..\..\..\..\shared\terrain-advanced\media1")

;/ Load base And detail texture
dbLoadImage("texture.jpg",0,1)
dbLoadImage("detail.jpg",0,2)

dbCreateAdvancedTerrain(1) ;/ Create the terrain object
dbSetTerrainHeightMap(1,"map.jpg") ;/ Set the heightmap
dbSetTerrainScale(1,3,0.6,3) ;/ Set the scale
dbSetTerrainSplit(1,16) ;/ Split value by 16 * 16
dbSetTerrainTiling(1,4) ;/ Detail map tiling
dbSetTerrainLight(1,1,-0.25,0,1,1,0.78,0.5) ;/ Light - xdir, ydir, zdir, red, green, blue, intensity
dbSetTerrainTexture(1,1,2) ;/ Base And detail texture
dbBuildTerrain(1) ;/ Finally build the terrain

;/ Load our skybox
dbLoadObject("skybox2.x",0,#kGDK_3D_DBPro,200)
dbSetObjectLight(200,0)
dbSetObjectTexture(200,3,1)

dbPositionObject(200,1000,2000,4000)
dbScaleObject(200,30000,30000,30000)

;/ Reset the directory
SetCurrentDirectory("..")

;/ Position the camera
dbPositionCamera(385,23,100)

Repeat
  ;/ Handle user input And show some stats
  Gosub userInput
  Gosub information
  
  ;/ Get the height of the terrain at the current camera position
  a.f=dbGetTerrainGroundHeight(1,dbCameraPositionX(),dbCameraPositionZ())
  
  ;/ Position the camera slightly above the terrain
  dbPositionCamera(dbCameraPositionX(),a.f+3,dbCameraPositionZ())
  
  ;/ Let the terrain perform some internal work
  dbUpdateTerrain()
  
  ;/ Final screen update
  dbSync()
Until WindowEvent()=#PB_Event_CloseWindow Or dbKeyState(1)

dbCloseScreen()

End

;/ Simple mouse and keyboard movement
userInput:
  ;/ Move around with arrow keys
  dbControlCameraUsingArrowKeys(0,g_fSpeed.f,g_fTurn.f)
  
  ;/ Store old camera angle
  OldCamAngleY.f=CameraAngleY.f
  OldCamAngleX.f=CameraAngleX.f
  
  ;/ Store new camera angle
  CameraAngleY.f=dbWrapValue(CameraAngleY.f+dbMouseMoveX()*0.4)
  CameraAngleX.f=dbWrapValue(CameraAngleX.f+dbMouseMoveY()*0.4)
  
  ;/ Rotate camera
  dbYRotateCamera(dbCurveAngle(CameraAngleY.f,OldCamAngleY.f,24))
  dbXRotateCamera(dbCurveAngle(CameraAngleX.f,OldCamAngleX.f,24))
  
  ;/ Speed up movement
  If dbInKey()="+"
    If g_fSpeed.f<1000
      g_fSpeed.f=g_fSpeed.f+0.01
    EndIf
  EndIf
  
  ;/ Slow down movement
  If dbInKey()="-"
    If g_fSpeed.f>0.002
      g_fSpeed.f=g_fSpeed.f-0.001
    EndIf
  EndIf
Return

information:
  ;/ Show some information
  
  ;/ Start printing at top of screen
  dbSetCursor(0,0)
  
  ;/ Show frame rate
  dbPrint("fps = "+Str(dbScreenFPS()))
  dbPrint("")
  
  ;/ Current camera position
  dbPrint("")
  dbPrint("x = "+StrF(dbCameraPositionX()))
  dbPrint("y = "+StrF(dbCameraPositionY()))
  dbPrint("z = "+StrF(dbCameraPositionZ()))
  dbPrint("")
  
  ;/ Finally the polygon count
  dbPrint("polygon count = "+Str(dbStatistic(1)))
  dbPrint("")
Return
Mistrel
Addict
Addict
Posts: 3415
Joined: Sat Jun 30, 2007 8:04 pm

Re: PureGDK 2.0 - DarkBasic Professional for any language

Post by Mistrel »

Just do you guys know, PureGDK has been re-branded as DarkGDK. I made a new thread here:

http://www.purebasic.fr/english/viewtop ... 14&t=49977
Post Reply