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 / OOP w/ DarkGDK is back to life!!!

Author
Message
AndrewT
17
Years of Service
User Offline
Joined: 11th Feb 2007
Location: MI, USA
Posted: 19th Sep 2008 22:57 Edited at: 19th Sep 2008 22:58
Ok, so some of you might remember the DarkGDK OOP thread that I started awhile back. Anyways, I've decided to start working on it again, but I've already made every DarkGDK command functional in the library, so I need you guys to tell me some things.

I wanna know any features that would like added to my library. By features, I mean anything that would make it easier for you to develop games. For instance, I made a WaterSurface class to make it easier to create Shader-Free water, and an LODObject class to implement LOD on objects easily. So what kind of things could I add to my system to make you wanna use it??

Any comments are really appreciated. I wanna get back to work on this but don't know where to start.

90% of statistics are completely inaccurate.
Mista Wilson
16
Years of Service
User Offline
Joined: 27th Aug 2008
Location: Brisbane, Australia
Posted: 21st Sep 2008 09:37
Heya AndrewT... I also am working on an "OOPING" of the DarkGDK library....(although primarily for my own use, I might release it when its finished if I feel there is any need)

Dont think im quite so far along as you though, but my idea is basicaly the same, encapsulate the entire thing into objects, then add some support classes.

So far Ive got 3/4 of the complete GDK functions encapsulated(even the ones that "seem" to either not work or be the same as others etc, basically, if its a GDK command, it will be in my lib) and the framework classes almost complete(array lists, file parser for configfile/debug logging etc).. gotta finish off some 3D stuff, and do some work to the Core classes..(will be working DarkPhysics, EzAnimate, DarkAI etc classes into it aswell eventually)

My ideas for extra bits and pieces though, support classes, I think I will probably include some various "file loader" plugins for some different 3D file formats, to expand the ones that are usable within GDK... so far, im looking at dotXSI files(as I use XSI for 3D modelling so an importer for that is first )..the tutorial by Mike Johnson for loading custom media in GDK is forming the basis for this...

There are also a couple of "world/object loader" type plugins i have seen around, there is one for 3D World Studio files, and another for TeD terrain creation within GDK..(3DWSLoader by Pixel Perfect, TeDTerrain class(by Jason P Sage avail on TeD forums).. I am looking at intergrating a few of these kinds of plugins into my library to allow for some ease of use with them(making sure that Object ID's and created objects etc are matched up properly with how my lib does works etc)..

Lastly I think your WaterSurface class is a great idea, aswell as the LOD for objects. Perhaps you could work some kind of frustrum culling into the lib(if it isnt already), perhaps some support for things like bitmap fonts, or some gui like elements(clickable buttons, tickboxes, radio boxes.. that kind of thing... gotta be easy to use though... )

Ill keep my eye on the forums and grab a copy of this when you finish it, sounds like it will be well worth a look, Good Luck with finishing it off.

If it ain't broke.... DONT FIX IT !!!
AndrewT
17
Years of Service
User Offline
Joined: 11th Feb 2007
Location: MI, USA
Posted: 21st Sep 2008 20:34
Quote: "Perhaps you could work some kind of frustrum culling into the lib(if it isnt already)"


Ya, I've been looking into that lately, it looks like it'd be really useful.

Quote: "perhaps some support for things like bitmap fonts"


I've also been looking into those, but I don't have a ton of motivation 'cause I don't think I'd use them that much.

Quote: "or some gui like elements(clickable buttons, tickboxes, radio boxes.. that kind of thing... gotta be easy to use though... )"


I've got a really basic GUI system down, basically I've got a GUIElement class with functions like 'MouseOver( )' and 'MouseClicked( )' and then a couple child classes such as my GUIButton class, and my GUIToggle class. 'Toggles' are basically buttons that have a flag that changes when you click it, such as a checkbox or radio button.

Quote: "Ill keep my eye on the forums and grab a copy of this when you finish it, sounds like it will be well worth a look, Good Luck with finishing it off."


Thanks, I'm gonna need the good luck as this is my first major C++ project, I'm using it as a base to learn classes, inheritance, and stuff like that so I'm sure there are several flaws with my methods, but I'm not terribly concerned with that right now.

90% of statistics are completely inaccurate.
Mista Wilson
16
Years of Service
User Offline
Joined: 27th Aug 2008
Location: Brisbane, Australia
Posted: 22nd Sep 2008 06:44
I like the sound of you GUI classes.. it does sound nice and easy.. i've been thinking of various ways of doing something similar for my own project.. (was looking at the basics of making some custom event/message handlers inside my library, and having my gui classes work with sending and recieving these events/messages, similar to the windows gui.. havent looked far into it yet though, but its logic is alot more complex than I anticipated it would be)

You are right about the bitmap fonts aswell being something that is kind of more "specialized" in its use, not something that you would use for every project you are working on... maybe you could implement some kind of template classes or base class that can layout the basics of a bitmap font implementation, so that your library's users can inherit and set it up the way they like.. just an idea, probably be more work than its worth though lol..

Frustrum culling is an interesting topic aswell, just an idea, but I think that to do it, it could be better maybe to implement it in the actual "game we are making"'s code, rather than the code of the GDK lib .. cause it would need to be calculated differently depending on what kind of objects you are using, whether its through individual vetices or whole object culling or whatever technique and how the render view is worked out( i dont know alot about the topic as u can tell lol ... alot of learning to do there ) .. perhaps again having some templates or base classes setup in your library for different kinds of frustrum culling routines, that can be implemented by the end user in their code but also interface with your library's way of creating/working with its objects, might work(might not too, template classes themselves are a complicated topic lol)... I look forward to seeing how you figure it out, its always good to see how other programmers solve their problems, and take what knowledge ya can from it

If it ain't broke.... DONT FIX IT !!!
AndrewT
17
Years of Service
User Offline
Joined: 11th Feb 2007
Location: MI, USA
Posted: 22nd Sep 2008 13:24 Edited at: 22nd Sep 2008 13:25
Quote: "I like the sound of you GUI classes.. it does sound nice and easy.. i've been thinking of various ways of doing something similar for my own project.. (was looking at the basics of making some custom event/message handlers inside my library, and having my gui classes work with sending and recieving these events/messages, similar to the windows gui.. havent looked far into it yet though, but its logic is alot more complex than I anticipated it would be)"


Ya, I'm trying to make it just as simple as everything else in DarkGDK, if not simpler so that even beginners can setup a GUI.

As for frustum culling and bitmap fonts, I think you're right, it'd probably be better to setup a basic class with a few necessary functions and then have the user be able to expand upon it if need be.

90% of statistics are completely inaccurate.
jezza
16
Years of Service
User Offline
Joined: 8th Mar 2008
Location: Bham, UK
Posted: 22nd Sep 2008 20:07
Guys, no offence and I'm sure yours'll be great, by why can't you jsut use Jason's OOP library? It's perfectly good, with several added features, including sparky's
AndrewT
17
Years of Service
User Offline
Joined: 11th Feb 2007
Location: MI, USA
Posted: 22nd Sep 2008 22:53 Edited at: 22nd Sep 2008 22:55
Quote: "Guys, no offence and I'm sure yours'll be great, by why can't you jsut use Jason's OOP library? It's perfectly good, with several added features, including sparky's"


I think you missed the part where I said, "I'm using it as a base to learn classes, inheritance, and stuff like that". This is a learning experience for me. People don't create programs for the sole purpose of giving them away; they learn from them as well. Plus, mine also has Sparky's, as well as DarkPhysics and I'm working on DarkAI right now. And I know that Jason is a far better coder than me, but I find it easier to use a library if it has been customized for me. All the syntax is the way I like it, so it's much more fitted for me.

90% of statistics are completely inaccurate.
Mista Wilson
16
Years of Service
User Offline
Joined: 27th Aug 2008
Location: Brisbane, Australia
Posted: 25th Sep 2008 10:51
I do actually use(albiet greatly modified for my own purposes) a fair bit of the code and "method logic" from Jason's Libraries... which have been a huge inspiration in my own..

The reason that i felt that i needed to create one for my own use is that Jason coded DarkGDKOOP first and foremost for his own projects and in his own style, and there are parts of it that dont do things quite the way i prefer them to(purely a personal preference realted thing, and nothing to do with his lib's functionality).. Sooo... i made some changes to use the bits i need in the way i need to, I think there is something in the docs about doing that(I stuck/am sticking a heap of comments in the various class files of my lib anyway indicating which code is from where etc, just on the off chance that it's ever released alongside some project or other of mine.. I really dont want people thinking someone else's code is mine when it aint)... .. Jason's OOP lib for GDK is great , there is a heap of underlying functionality in the foundation classes that is just brilliant and really really handy...

A tertiary reason is, for myself, to have a 1:1 wrapper aswell, so all functions, ones that are similar to others, or present similar functionality to each other etc are all included(at the moment i think Jason's OOP lib is not quite complete, just missing some of the lesser used GDK commands and funcs, and with a little work to do here and there, but it is still an excellent piece of software, and fully functional, ive not had it crash on me or screw anything up --- and also, there is ALOT of extra stuff inside jason's oop library that are kind of extensions to the GDK, like various mesh handling classes, bitmap fonts, different terrain classes and more.. all of which make it even handier )

If it ain't broke.... DONT FIX IT !!!
AndrewT
17
Years of Service
User Offline
Joined: 11th Feb 2007
Location: MI, USA
Posted: 26th Sep 2008 04:31
Since I'm working on a platformer I've added some 2D features: a camera, zones, and triggers, and I think I might add support for Box2D -- a 2D physics engine -- as well.

And BTW guys I'm still taking suggestions if you'd like to see any classes in it.

90% of statistics are completely inaccurate.

Login to post a reply

Server time is: 2024-09-30 07:24:09
Your offset time is: 2024-09-30 07:24:09