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.

DarkBASIC Professional Discussion / is dbp being updated anymore??

Author
Message
David iz cool
20
Years of Service
User Offline
Joined: 21st Sep 2005
Location: somewhere lol :P
Posted: 5th Jan 2011 20:41
i dont come here often but i havent seen a dbp update in a longggg time. is it still being worked on at all????????? :/
AutoBot
16
Years of Service
User Offline
Joined: 25th Sep 2009
Location: Everywhere
Posted: 5th Jan 2011 20:51
This thread usually contains info about the latest DBPro release:

http://forum.thegamecreators.com/?m=forum_view&t=29734&b=15


Westmere
16
Years of Service
User Offline
Joined: 12th Mar 2010
Location: Germany
Posted: 5th Jan 2011 21:29
I'd say you are right. Last update 7.5 seems to have been in June 2010, the one before that almost a year before, July 2009.

Doesn't seem like there's a lot of improvement going into DBP atm.

Which is sad. I'd like to see some work going into a DX10/11 update with the according features (maybe as a paid package if they'd like) and some more speed optimizations (set object smoothing seems to be very slow for instance).
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 5th Jan 2011 21:53
Quote: "Doesn't seem like there's a lot of improvement going into DBP atm."

... and you'd be wrong. The last modification I made was applied to the source code at the back end of November when I pretty much rewrote the music plug-in, and Lee made some chances during the second half of December.

I have another set of modifications for string performance plus a few other bits and pieces that I'll check-in once I find out why it crashes FPSC.

After that, I'll just move back to the odd fix or speedup here and there as it interests me, and at some point Lee will take everything and build a new release.

As you can see, there's a big difference between 'no release' and 'no improvements' - you just need to be patient (or have a copy of VC++2008 to compile the code yourself).

NOTE: The following is my opinion only, not gained from any discussion with TGC
As for DX10 or DX11, I don't think that the code as it is will ever be changed to support that.

From what I can see, DBPro is turning in a more general direction (see the newsletter regarding AGK), and not down the one-way street of DirectX-only support.

Mobiius
Valued Member
23
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 5th Jan 2011 23:27 Edited at: 5th Jan 2011 23:29
Quote: "From what I can see, DBPro is turning in a more general direction (see the newsletter regarding AGK), and not down the one-way street of DirectX-only support."

I for one personally think that sucks. (Unless the programs for windows it produces are the same as, or better than DBP in terms of graphics capabilities and speed and so on.)

My signature is NOT a moderator plaything! Stop changing it!
Madscientist
16
Years of Service
User Offline
Joined: 23rd Aug 2009
Location: Between a rock and a hard place
Posted: 6th Jan 2011 03:45
Quote: "not down the one-way street of DirectX-only support."

Well it pretty much is already like that, I can't run any dbpro games without full direct x 9.

My computer surpasses all the technologies of the day. What computer do I have?

Phaelax
DBPro Master
23
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 6th Jan 2011 05:57
Quote: "I pretty much rewrote the music plug-in"

What was the changes from doing that? Or was it just internal stuff users won't notice?

"Only the educated are free" ~Epictetus
"Imagination is more important than knowledge..." ~Einstein
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 6th Jan 2011 14:24
Let me clarify what I wrote earlier so that no-one gets the wrong idea, and again state that this is my opinion only.

DBPro will stay in general as it is. It won't suddenly disappear. It is unlikely (approaching 0 probability) that it will be upgraded to DX10 or above.

AGK is a new product, and as it supports phones & netbooks too, won't be be based on DirectX (or at the very most, Lee will support DirectX as well, but that's just extra coding for little payback IMO).

Quote: "What was the changes from doing that?"

I was trying to fix the volume control for midi files, but the code to handle midi, CD and 'other' music was all interwoven. I unwove it and made it class based. Future music players should be very simple to add with little to no chance of breaking the other players. Usage wasn't affected, so most people won't notice.

DVader
22
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 6th Jan 2011 19:38
Oh, I have experienced a few problems with music volume myself. Is this to be implemented in a future upgrade, or is it already in?

http://s6.bitefight.org/c.php?uid=103081
Westmere
16
Years of Service
User Offline
Joined: 12th Mar 2010
Location: Germany
Posted: 7th Jan 2011 00:09
Quote: "As you can see, there's a big difference between 'no release' and 'no improvements' - you just need to be patient"


Really good to hear this.

I would very much like to see support for the capabilities of DX11 hardware sometime in the future. I don't really mind if it's implemented in DX or newer OpenGL versions so it's not limited to Windows. But as Madscientist said I do need a full DX9 installation for DBP games to run anyway
I could even think of DX11 support (in the future) as a paid add-on package.

Thanks for the reply in general.
CumQuaT
AGK Master
16
Years of Service
User Offline
Joined: 28th Apr 2010
Location: Tasmania, Australia
Posted: 7th Jan 2011 06:29 Edited at: 7th Jan 2011 06:29
Quote: "DBPro will stay in general as it is. It won't suddenly disappear. It is unlikely (approaching 0 probability) that it will be upgraded to DX10 or above."


I'm not complaining at all, I just wanted a bit of clarification on this... Would I be correct in assuming from this quote that once the AppGameKit hits, The Game Creators won't be creating any more languages or language support for Windows-Based PC game development? Otherwise why have no plans to support DX10 or 11?

Malevolence: The Sword of Ahkranox
The infinite RPG
http://swordofahkranox.blogspot.com
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 7th Jan 2011 15:11
Don't read more into what I wrote than I actually wrote, and remember that it's my opinion only (3 posts and the 3rd time I've felt that I needed to write that).

AGK itself does not mean 'not windows', it means 'cross-platform'. Take a look at the logos used on the App Game Kit web page - you'll see that the Windows logo and the Windows phone logo are shown separately. I've assumed that to mean that both will be supported (or that it's the aim). Whether it will support DX10 or DX11, I have no idea - it could, or it could use OpenGL which is available (in slightly different forms) on all of those platforms (and that would be my bet).

However, a rewrite of the existing DBPro libraries to use DX10 or DX11 is not likely at all - there's just too much there that assumes DX9 and pretty much everything changed with DX10 (remember how long it took for FPSCX10 to come along?)

CumQuaT
AGK Master
16
Years of Service
User Offline
Joined: 28th Apr 2010
Location: Tasmania, Australia
Posted: 7th Jan 2011 15:30
Thank you for the clarification. I just wanted to be sure. Nothing more.

Malevolence: The Sword of Ahkranox
The infinite RPG
http://swordofahkranox.blogspot.com
sladeiw
17
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 7th Jan 2011 15:41
Quote: "(3 posts and the 3rd time I've felt that I needed to write that)."


When I saw your initial post I thought `Can of worms open!`

Quick question about the music updates: does that affect the `play sound` commands that have problems adjusting volumes?
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 7th Jan 2011 19:16
Quote: "When I saw your initial post I thought `Can of worms open!`"

Tell me about it

At least on this post, I don't have to repeat the disclaimer

Sound isn't affected by this change at all, and TBH, I wasn't aware that there were any bugs with sound volume.

DVader
22
Years of Service
User Offline
Joined: 28th Jan 2004
Location:
Posted: 7th Jan 2011 20:08
Sound isn't a problem its midi that has the sound bug, or at least did last time I checked which was a couple months back at most.

http://forum.thegamecreators.com/?m=forum_view&t=175929&b=15

You replied to this post yourself saying you had made a fix, but it affected all programs playback volume. As far as I know DB still has the bug, so it must not be implemented in the current (non beta) version. That was what I was referring to rather than wav files etc.

http://s6.bitefight.org/c.php?uid=103081
sladeiw
17
Years of Service
User Offline
Joined: 16th May 2009
Location: UK
Posted: 7th Jan 2011 20:44
The problem I had was to do with setting volumes on multiple sounds. On load, all volumes were set to a saved setting and sometimes it would work and others it would not. I gave up eventually and used another sound plugin which works fine. Searching the forum showed a couple of other people having similar problems but it could be down to compatability or other conflicts. I just thought I may try going back to native commands (and removing the need for a plugin) but if they are not affected by the updates then no need.
Westmere
16
Years of Service
User Offline
Joined: 12th Mar 2010
Location: Germany
Posted: 8th Jan 2011 14:09
While we're kind of on the subject of improvements:

Aside from DX10/11 (which sadly you aren't even considering) I have another thing that might be of interested to many DBP coders who are working on larger programs:

I would like to see some support for real multi-core coding.
This would mean that it would be necessary for a DBP program to run tasks seperately on a different CPU core (if there is one present). Maybe a special sub-routine or function call that would create a seperate task to run on a different core (or the same one if the system is single core).

Even if that second task would be on the same core it would be a good thing as processing time would be split by the OS allowing for more complex background operations that do not slow the main part of the program down.

I would very much like to see some effort put in that - as with a DX10/11 package I would also be willing to pay for that as an add-on.

I believe Multi-core support to be even more important to keep DBP a viable option for future development since most CPUs already are dual or quad core. Would be ashame to not be able to use this

Right now I am trying to put some code in a seperate program to run along side the main program in the hopes of having both comunicate somehow... thinking about files to transfer data or possibly network commands...
bitJericho
23
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 8th Jan 2011 17:09
i think the matrix1utils offers some rudimentary multi-threading.

[center]
Join the TGC Group!
http://tehcodez.groups.live.com
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 8th Jan 2011 19:01 Edited at: 8th Jan 2011 19:03
Quote: "While we're kind of on the subject of improvements"

We weren't, but go on.

Quote: "I would like to see some support for real multi-core coding."

This is something that has been asked for for years. Unfortunately, DBPro was not designed for multi-threading - it's not something that you can just throw into the library code, and it's not something you can add as a wrapper (I'm sure to hear from Matt again if he sees this).

The way that DBPro supports multi-threading is by hiding it with libraries (Dark Physics, Dark AI, Dark Lights do this).

I'm happy to discuss this if you want to though, either here or via email. It is something I've thought about, and each time an apparent solution is presented, the pitfalls appear soon after.

[edit]
Matrix1Utils does not support multi-threading. It supports co-routines, which is cooperative task threading. It's all still within a single thread, but you can switch between tasks within that thread.

=PRoF=
23
Years of Service
User Offline
Joined: 17th Mar 2003
Location: Milton Keynes, UK
Posted: 8th Jan 2011 22:32
I feel I should mention Lee tweeted recently about the upcoming 7.6 beta

bitJericho
23
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 9th Jan 2011 12:01
Quote: "Matrix1Utils does not support multi-threading. It supports co-routines, which is cooperative task threading. It's all still within a single thread, but you can switch between tasks within that thread."


Ah, my bad. Another solution is purebasic with puregdk. Kind of offers the best of all worlds.

[center]
Join the TGC Group!
http://tehcodez.groups.live.com
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 9th Jan 2011 13:43
Not really - it just gives the illusion of safety.

Firstly, there's a lock around all of the DBPro commands, meaning that there is only one running at a time, effectively using multiple threads to give you single-threading.

Secondly, take a look and think of all the points where the current thread can be pre-empted in the following very simple code, assuming the type of locking I believe is provided by PureGDK:


So each individual function/command is safe in the presence of threads. Now imagine another thread jumping in after this thread has tested the object exists, and then deleting it. Or another thread moving the object after this thread captures the x position but before it positions the object (providing inconsistent data).

The above exact situation isn't too likely (dealing with a single object in this way on multiple threads), but think about the situation where you are manipulating an object based on another objects position and dealing with them on separate threads.

Safe threading isn't just about making a single command safe in the presence of shared data, but is about making a whole user procedure safe in the presence of shared data.

You can only do that by passing the burden onto the programmer, making this the sort of thing that is needed:


Where LOCK OBJECT EXISTS returns false if the object exists, and returns true otherwise, and takes a blocking lock on the object, itself blocking if the object is already locked. The programmer then also needs to remember to unlock the object when done. ('exists' and 'lock' need to be combined into an atomic operation, as if they were separate, your code could check for existance, delete the object in another thread, then attempt to lock and object that no longer exists).

However the locking of the object would also need to lock out rendering too, and rendering itself would need to lock all objects, all cameras, all lights, all sound & music, all sprites, all images etc.

There are other issues too:
- recursive locking - allow it, or not?
- fine grained or high level locking - fine grained (eg per object) gives more control but gives the larger speed hit as you are doing more of it, high level locks out all objects.
- deadly embraces - how to deal with them? (for example, rendering starts by attempting to lock all objects and manages to lock up to 9, blocking on 10, but another thread has a lock on object 10 and attempts to lock object 9, blocking - now they are each waiting on the other to unlock).

All this complexity is probably the main reason why DBPro never went multi-threaded (and it also takes it out of the 'beginners' language camp), and why I keep saying that it's something that has to be designed in from day 1, not hacked in later. That's not to say that it's impossible, but I am saying that it's more complex and will take a lot more effort than people suppose, and that it hasn't yet been done properly and as fully as is needed.

bitJericho
23
Years of Service
User Offline
Joined: 9th Oct 2002
Location: United States
Posted: 10th Jan 2011 11:39
afaik, you can't use directx commands in threads.

http://purebasic.com/documentation/thread/index.html

I imagine you would make a thread and only use it for adjusting values and numbers and number crunching and all that fun stuff, and use the main thread for any and all rendering or dbp commands.

[center]
Join the TGC Group!
http://tehcodez.groups.live.com
Michael P
20
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Jan 2011 22:31
I'm not sure there's much value in multi-threading when the language is already very slow, might as well focus on optimizations before moving to that level.

But while we're talking about it its worth nothing that alot of things can be done behind the scenes if they are high level, I would guess sync could be 'easily' multi-threaded (as easily as multi-threading goes).

Quote: "- deadly embraces - how to deal with them? (for example, rendering starts by attempting to lock all objects and manages to lock up to 9, blocking on 10, but another thread has a lock on object 10 and attempts to lock object 9, blocking - now they are each waiting on the other to unlock)."

This can be solved by releasing all previously owned locks (but noting them) while waiting to take control of another lock. Then when control of the lock is taken, take control of all previously owned locks again. There's potential for a thread to wait forever but with added complexity that shouldn't be too hard to fix.

Also is TGC paying you for your work on DBP IanM? If not, they should!

Eminent
16
Years of Service
User Offline
Joined: 15th Jul 2010
Location:
Posted: 10th Jan 2011 23:47
7.6 is coming out soon. Somethign to do with accommodating BlitzTerrain.


LeeBamber
TGC Lead Developer
26
Years of Service
User Offline
Joined: 21st Jan 2000
Location: England
Posted: 11th Jan 2011 01:46
Hi Guys,

Sorry it sounds like I've been away for six months, but I took the precaution of appointing IanM as my 'clone' during that time so bugs and issues could be looked at while I helped develop AGK.

U76 is simply a quick patch to allow a new DBP plug-in to function properly (Blitzwerks Terrain). The actual update we intend to release soon is U77 which contains all the fixes, replacement code and other tweaks. Keep your eye on the DBP forum horizon for news on this (or my tweet if you follow it).

Just to clarify the issue of DirectX 10 and onwards, there are no plans (at this time) to convert the DBP engine to use the new DirectX versions. DBP is quite a large engine in it's own right, and any conversion would be nothing short of a re-write.

We learned a lot from developing DBP for DirectX, and many of those hard lessons are being implemented into AppGameKit such as detailed documentation, unit testing and less reliance on specific system requirements. When the time comes, I will post again in a few months with more details about the OpenGL architecture for AppGameKit and how you might port your projects across. OpenGL is more than capable of supporting Shader Model 5.0 (GLSL 4.10) which means you lose none of the cool shader effects and gain the ability to quickly port your creations to any device that supports the shader model. In summary, even though DirectX 10 is not on the cards, taking full advantage of the latest advances in graphics power certainly is on the cards! We're just going about it a little differently Watch this space, and I hope you enjoy U77!

I drink tea, and in my spare time I write software.
Lost Dragon
15
Years of Service
User Offline
Joined: 22nd Aug 2010
Location:
Posted: 11th Jan 2011 07:56
That kind of makes it sound like the migration path is DBPRo -> AGK.

Basically I'm looking to buy DBPro, but I can't decide whether it's a product that's going to keep going or if it's going to slowly wither in favor of AppGameKit or something else.

New product releases combined with huge discount deals on existing products ("until supplies last") make me suspicious.

Calm my fears please.
Mobiius
Valued Member
23
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 11th Jan 2011 10:38
Quote: "New product releases combined with huge discount deals on existing products ("until supplies last") make me suspicious. "

That deals been going on for a year now, don't get too concerned about it! It's probably a marketing strategy. "Get it now before the price goes up!"

My signature is NOT a moderator plaything! Stop changing it!
Westmere
16
Years of Service
User Offline
Joined: 12th Mar 2010
Location: Germany
Posted: 11th Jan 2011 12:58
Quote: "Just to clarify the issue of DirectX 10 and onwards, there are no plans (at this time) to convert the DBP engine to use the new DirectX versions. DBP is quite a large engine in it's own right, and any conversion would be nothing short of a re-write."


Sounds like we won't see DX10 until a DBP 2 then Or is AppGameKit supposed to be a "DBP 2". I don't really care if the capabilities of current graphics cards are used through DX or OpenGL as long as the performance and compatibility is right.
And there can be lots of compatibility issues on PCs because of the large differences in hardware available. But I will most definitly take a closer look on all that when it comes around.

Too bad you didn't have anything to say about multithreading.

Wouldn't it be possible to just shift functions or time consuming commands to a secondary task 8maybe with a parameter) and have another function in place to retrieve values from it?
Having the possibilitie to put more complex background calculation stuff onto another of your CPU's core by the programmer's choice would be a pretty nice feature to have considering that most if not all people using DBP these days probably have multi-core processors.

There's a lot of potential in that technology and it would be good for DBP's future if it would be able to harness it in some form. After all the performance does not scale as much per core as it used to but instead scales by number of cores. Quad cores are already pretty common, you can get hexa-cores and soon octa-cores.
IanM
Retired Moderator
23
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 11th Jan 2011 14:43
@Michael P,
Quote: "I'm not sure there's much value in multi-threading when the language is already very slow"

Actually, I'm of the opposite opinion - if you can't do it fast enough on one thread, use more.

Quote: "This can be solved by releasing all previously owned locks (but noting them) while waiting to take control of another lock."

But now you're back in the land of inconsistent data.

@Lost Dragon,
Quote: "Calm my fears please."

Whether TGC development halts for DBPro or not (and I have no knowledge either way for that), others will still develop for DBPro (me for example - see my free plug-ins ), and the DBPro part of the community will continue - see how lively the DBC part is, even though it hasn't been actively developed for probably around 8 years now.

@Westmere,
Quote: "Wouldn't it be possible to just shift functions or time consuming commands to a secondary task"

Maybe - why don't you design the command set and I'll take a look at it. Remember that whatever you come up with needs to be pretty foolproof and relatively easy to use.

Login to post a reply

Server time is: 2026-07-21 15:13:49
Your offset time is: 2026-07-21 15:13:49