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.

Dark GDK / How would you classify DarkGDK?

Author
Message
SPI
14
Years of Service
User Offline
Joined: 3rd Jun 2010
Location:
Posted: 23rd Feb 2011 09:50
Hi guys,

This is probably a ridiculous question. But how would you classify DarkGDK? Is it merely a library? Or would you call it a complete game engine? Or perhaps an API?

I love how DarkGDK helps me focus on developing in game mechanics without having to worry about DirectX or OpenGL development. I had a professor in my former college who introduced us to it a year ago but I had to switch schools and the professors in my current college look down upon projects involving the Dark GDK library.

I call it ignorance on their part, but they believe darkgdk is doing all the work for me. It frustrates me to no end that they can't even differentiate between the process of developing game mechanics and development related to openGl/DirectX. They all seem bent on pointing out that the functions (e.g. loadsprite, loadimage etc) are part of the DarkGDK library and therefore I don't deserve credit for creating any of the games despite the fact that I use semi sophisticated development techniques such as state design patterns.

Its like saying, if you use the iostream library you don't deserve any credit for developing your application. How a trained professional fails to understand that interaction with openGL/DirectX is a completely different ball game from say Gameplay/A.I development completely baffles me.

Haha I am sorry about the rant, I hope this isn't too off topic or anything.
Hassan
15
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 23rd Feb 2011 13:04 Edited at: 23rd Feb 2011 13:06
GDK is just a library that uses DirectX to make it easier, so instead of 100 lines to do some typical thing, GDK compresses it into one function, it also keeps you away from maths (well, kind of), a couple months ago, i thought the exact same thing, when i created games with GDK i didn't really feel like i own them, it was easy and i was like "hmm..that's it? i believe GDK did everything for me...", because i thought that DirectX is way way more complex than this, so i started building my own library for wrapping DirectX, especially for DirectX9 (which GDK uses), it is pretty much simple, a little bit more complex than GDK, but you can easily create same functions as the ones you find in GDK, so i figured out that creating games with GDK doesn't totally mean that it did everything for me, not to mention that you can use native DirectX9 with GDK if you wanted

Quote: "They all seem bent on pointing out that the functions (e.g. loadsprite, loadimage etc) are part of the DarkGDK library and therefore I don't deserve credit for creating any of the games"


oh well, in DirectX, to load the image, you wouldn't really need much more work than this:

http://msdn.microsoft.com/en-us/library/bb172801%28v=vs.85%29.aspx

pass the device (something you will know in your first lesson in DirectX if you study it), file name and you will have your texture ready, you don't handle any file format parsing and whatever, unless you make you own file format.
so all what GDK does in dbLoadImage is to call this function and save the texture somewhere and give it and ID etc, so that you can use it in other things like texturing objects

most of what GDK does is built in DirectX9, GDK just wraps it to make it easier and more readable.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 23rd Feb 2011 23:18 Edited at: 23rd Feb 2011 23:46
Quote: "This is probably a ridiculous question. But how would you classify DarkGDK? Is it merely a library? Or would you call it a complete game engine? Or perhaps an API? "

DarkGDK is not a complete Game Engine API (without Plugins), however, it doesn't need to be. Its a awesome DirectX Wrapper Library for Programmers new to C++/DirectX Game Programming.

Quote: "I love how DarkGDK helps me focus on developing in game mechanics without having to worry about DirectX or OpenGL development. I had a professor in my former college who introduced us to it a year ago but I had to switch schools and the professors in my current college look down upon projects involving the Dark GDK library. "

If you enjoy using it, who cares what others think. Your skills will improve and evolve with C++/DGDK use. You have to at least enjoy using it, to stick with it for long enough for that to occur.

I was once afraid of DX and C++. Not anymore! In using DGDK, I have evolved as a software developer. My programming skills have significantly increased. My understanding of 3D Math has increased.
I owe it all to DGDK and I will not abandon its use because I now understand how to use TorqueEngine, ORGE, and other C++ engines.

I used to be a fanboy of certain Programming Languages. One day that mindset was shattered after I attempted to code a Virtual Machine/Compiler. In the process I had an epiphany and realized each language has it perks and quirks, but, eventually is all reduced machine code. I've written my own languages and can program in any language: C++, C, C#, Java, VisualBasic, DarkBasic/DBPro, PHP, Javascript, QBASIC, LOGO, MySQL, ColdFusion, blah, blah, blah.

Quote: "
I call it ignorance on their part, but they believe darkgdk is doing all the work for me. It frustrates me to no end that they can't even differentiate between the process of developing game mechanics and development related to openGl/DirectX. They all seem bent on pointing out that the functions (e.g. loadsprite, loadimage etc) are part of the DarkGDK library and therefore I don't deserve credit for creating any of the games despite the fact that I use semi sophisticated development techniques such as state design patterns."

I used to worry myself about the details of complex systems too, but, I've become an extremely lazy programmer over the years. Today, I seek out Libraries that make my low-level programming life easier so I can focus on high level concepts. Epiphany #2: Complex Systems are built layer atop of layer, from simple constructs. A lib is a lib, and Programming is a Blackbox art. All you need to know is what a function does, its inputs and outputs. You don't necessarily know how it does it. If they concern themselves with the internals of DGDK they can go here for those details.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 24th Feb 2011 00:03
Coming at it from a different point of view, I don't know what you are studying but perhaps your tutors want you to learn C++ techniques, memory management and so on.

If you are supposed to be learning the more advanced aspects of C++ then DarkGDK can be soft on you, you can pretty much write a game with just the GDK basic command set. Obviously as already mentioned, you can do so much more, but you don't have to, but DirectX demands more from you straight away.

I only say this because I'm pretty sure your tutors understand that software systems are built in layers and DarkGDK has its place and should be considered should it suit the project at hand.
Perhaps they don't see it as a good tool for you to learn from at this point in time?

Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 24th Feb 2011 01:39
DarkGDK it isn't really designed for C++, its more of a wrapper than a fully functioning library since it doesn't make use of any C++ features. If it were designed with the language in mind everything would be object orientated. This is why it is frowned upon, because the design of the API makes no logical sense in the context it is being used.

SPI
14
Years of Service
User Offline
Joined: 3rd Jun 2010
Location:
Posted: 25th Feb 2011 10:12 Edited at: 25th Feb 2011 10:15
Quote: "
a couple months ago, i thought the exact same thing, when i created games with GDK i didn't really feel like i own them, it was easy and i was like "hmm..that's it? i believe GDK did everything for me..."
"


Haha yes I can relate to that. Its nice to see other people have gone through the same motions :p!

Quote: "
If you are supposed to be learning the more advanced aspects of C++ then DarkGDK can be soft on you, you can pretty much write a game with just the GDK basic command set. Obviously as already mentioned, you can do so much more, but you don't have to, but DirectX demands more from you straight away.
"


I completely agree with you Matty. However, as you pointed out, there are other ways to write games with Dark GDK that involve application of advanced programming techniques. To make a hasty conclusion about the significance of a programmers role would be a fallacy.

Quote: "
If you enjoy using it, who cares what others think. Your skills will improve and evolve with C++/DGDK use. You have to at least enjoy using it, to stick with it for long enough for that to occur.
"


Very true. Dark GDK gives you an ample platform where you can try out new development techniques that govern gameplay and A.I mechanics. A while back I got this really nice book, Programming Game A.I. by example, it has received critical acclaim by developers from studios such as Monolith.

Quote: "
I used to worry myself about the details of complex systems too, but, I've become an extremely lazy programmer over the years. Today, I seek out Libraries that make my low-level programming life easier so I can focus on high level concepts
"

Coming back to your point- I noticed that the techniques highlighted in the book, albeit advanced in nature, can be seamlessly integrated with the Dark GDK library. So you are basically learning advanced programming techniques without having to worry about the low level side of things. A perfect environment for a beginner?


It is refreshing to see various perspectives on this topic, I had been wrestling with it in my head for too long
Mireben
16
Years of Service
User Offline
Joined: 5th Aug 2008
Location:
Posted: 25th Feb 2011 21:53 Edited at: 26th Feb 2011 07:28
Dark GDK is a library set designed to make your life easier when dealing with DirectX functionality, but it definitely doesn't do everything instead of you. The game framework, the logic, the whole application, must still be designed and built, based on solid program design principles, and that's hard work, even for a game with only moderate complexity. Creating a program that fires a bullet to the other end of the screen is easy enough, but as soon as you have ten bullets, then already object and memory management kicks in (should I use arrays, vectors, lists? static or dynamic? how long do they live and are they properly destroyed? etc.)

Moreover, even if you have a tool which makes programming easier, you have to learn to use that tool, to master it to greatest effect. That is also work and a learning process. (--Edited out an off-topic sentence here.--) If you can really use a tool in an expert way, that is a valuable knowledge.

Whatever we do in computing, we stand on the shoulders of giants. So many things have already been invented and coded by much better coders than we are. Why not use what is already there, instead of re-inventing the wheel? Even if you use a complete game engine, it does not build the game itself. Would you say that a big company does not deserve credit for developing a successful game (say, an FPS, RPG or MMORPG) because they licensed the graphic engine from another company?

If you were using a tool which really makes almost the complete game for you, with no programming, just mouse clicks to place some objects and then press "start", then I'd understand the professors' complaint, but Dark GDK is still pretty close to "system level". It should be easy to assess by looking at the code, how much work you had to do yourself, on top of what is provided by Dark GDK.

I agree with people posting before me, if you enjoy using it, then don't worry about it too much.

Login to post a reply

Server time is: 2024-10-02 15:20:07
Your offset time is: 2024-10-02 15:20:07