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.

Newcomers DBPro Corner / The Limitations Of DBPro

Author
Message
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 10th Oct 2011 15:15
The limitations of DBpro.

This is a long one so please bare with me. Basically I am still very much in the early stages of trying to learn programming in general as I am new not only to DBpro but programming as a whole. I have no methods that I can import from my knowledge base to fit DBpros language and more than half of the things I read I struggle to understand. With this in mind I am still slowly but surely learning even though I take a few gaps of a month or 3 here and there. I think how much I know is reflected in how much time I have spent on it so far so im happy with my progress and with the help of the excellent members on this board im sure that someday ill be able to make something decent that I can enjoy. This is after all my end goal, something for me. Games at the moment fufill me very little so I picked this up in the vain hope of being able to make something with my own twists. I am not out to make anything revolutionary and absolutely every concept in any of my games will have been done before, perhaps not on the same scale or with the same elements but pretty much nothing I come up with is original. What I want to achieve I already know even with my limited knowledge that it is going to be difficult. Very difficult. I am going to have to learn and understand concepts that make my brain melt at this current time but with help and patience and persistence I may be able to learn in time. Also the amount of objects and detail that go into even the simplest of some games means that even if I spend 24 hours a day 7 days a week for a year I’ll not likely be able to create every asset im going to want in my game. Im going to have to buy my way through a lot of it or make do without.

Now with that in mind this is what I want to know.
What limitations if any does DBpro have. I think I have seen small versions of pretty much everything I would want in my game such as pretty forests, nice detailed models, lovely terrain, simple physics (jump, gravity, ragdoll and so on), shaders, effects etc Its all been done before and that’s nice. I haven’t seen anything on a huge scale yet, like enormous maps populated by hundreds of mobs/npcs but im sure code wise it is possible. Being that I doubt very much I will ever be a very clever coder I don’t think I will be able to tweek every last little bit of performance out of any game that I make. I will try of course but I would rather be a little lazier and not worry about tweeking as long as the job gets done.

Will DBpro allow me to pick up the slack with a more powerful machine? So if I made something with say lots of detailed models on the screen all making decisions and actions and it ran slowly, would an upgraded machine do it better or does DBpro have its limits on how much RAM, processor speed, amount of cores of graphics card that it can take advantage of. If I made something and it wasn’t quite up to speed and I didn’t know how to tweek more performance out of it due to poor coding skills, could I not just beat it into submission by buying a faster machine, bigger faster RAM, more cores, latest graphics card. Does DBpro draw a line somewhere? Would it take advantage of even more faster ram, a faster processor with more cores etc? Or will I have to drop features, cheat whenever possible (like building lower poly models for far away and other things like that), and tweek the hell out of whatever is left. I am not all that fussed at this moment in time in making something for a commercial market, I don’t believe I am capable and know I cant make something look as beautiful as BF3 or Crysis 2 (there is just too many assets for one person to make for games like that) so in all fairness it probably wont appeal to a whole lot of people so I am not bothered about alienating those with a slower machine (please don’t take offence by this if you have a slower machine.) I simply want to get the job done if it is possible.

I know this is a long post but it was essential in order to get the point across as its not a post bashing DBpro in anyway which it might have come across as if I had just said “is DBpro future proof” or something similar.

TLDR: Will DBpro take advantage of a much faster machine or does it have limits on CPU usage, amount of RAM and the speed of the RAM and will graphics cards have an effect or does it draw the line somewhere.

Many thanks for reading (if you read the whole thing )
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 10th Oct 2011 17:06
The only limits I've found with DBPro are system resources and my own imagination. I know that sounds a little cliche but it really seems to be true.

for example, I have a pretty good machine, but an old video card and so the main limiting factor for my games is video memory.

even with my old gts250 I can still get enough models loaded into memory to make a nice environment. All i have to do to is find a way of creating what I want with minimal video ram usage. and so i made a routine that loads and deletes models based upon distance vs detail vs FPS that i want.

so far as resources go, I take advantage of the FPSC models available here, they're cheap, animated and look pretty good.
even if i eventually want custom models, i can at least for now use them as place markers.

ive made test islands with hundreds of place marker models utilizing dark ai to make them get hungry thirsty tired and bored and react accordingly, albeit a simple test with a food location, water location, home location and random wandering, it still satisfied my curiosity for dark ai's potential.

i've made test islands that are 25 square Kilometers in my game scale, and using the before mentioned subroutine had dense undergrowth and trees scattered through it.
here's a video of this project


I'm also working my way up to creating my own game.

I think you just gotta take it in little chunks and set achievable goals.

like for me
i started with wanting to know how to print to screen, how to do maths with variables, how to do if statements, case statements. how to display pictures,
how to display pictures in an order determined by user input and if statements.
how to load 3d models, texture them place them
how to keep my cameras feet on the ground of a matrix
how to make the sky blue
etc
I keep setting new goals, my latest is realistic random terrain generation. Its hard and keeping me busy.

just keep chuggin along dude.

so long answer short, I have never found Dark basics limit.

kezzla

Sometimes I like to use words out of contents
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 10th Oct 2011 18:09 Edited at: 10th Oct 2011 18:43
Thanks for the reply. As for my own coding prowess im sure it will grow if i take it one step at a time. Im not too worried about this as i know there is a good community here and as i mentioned before, everything i want i know for a fact someone on here can do so i should be able to help me with whatever learning i may need if i ask nicely enough . I will make nothing that is original so no new concepts will have to be formed to accommodate my needs, in the meantime im just going to do some small demos of everything i need and build up from there, make something when im confident. There are some damn smart people on here who are good at tweeking the most out of the code to make them work on poor machines, in fact it would be fun i imagine to test the speed of something, then through your own tweeking make it even faster, that could get quite addictive. However im not too interested (maybe later i will who knows) in this. I would rather make something work then beat the code into submission by running on a better and better machine till i was satisfied which would at least save me having to code smarter. This post was a kind of "fingers crossed" db will allow me to and im hoping the situation will not be a "it can only handle up to 4gb of ram, after that youll have to code smarter" scenario.
Btw, love that video, its just beautiful. I would hope to do something like that myself somday soon.
Grog Grueslayer
Valued Member
18
Years of Service
User Offline
Joined: 30th May 2005
Playing: Green Hell
Posted: 10th Oct 2011 21:04
To be honest the only limitation you have to worry about right now is you since you're new to programming. The last programming language I worked with was QuickBasic. It took me 10 years of constant programming in it to hit the limits of QuickBasic 4.5 and everything grounded to a halt till I found out about Darkbasic. So program away and put any doubts about Darkbasic Pros limits behind you.

Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 11th Oct 2011 13:13
Thanks Grog. But im not too worried about my learning just yet, ill take it nice and slow and keep getting help where i can. I am just desperate to find out where DBpro draws the line (3gb of ram perhaps? 1 Core processor maybe?) on a technical level.

Perhaps overnight i will become a genius(not likely) and be able to code billions of complex things to the screen and squeeze it all onto a floppy disk and run it from a 30 year old PC but im not bothered about that just yet. My coding will come in time im sure. This isnt about how to code or what i can or maybe capable of. I just want o see whether DPpro will keep with the times or already has some hard wired limits perhaps. I am interested more than anything but on the other hand i would also like to know in case i did consider making something rather large in the future.
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 11th Oct 2011 14:48
actually, just remembered that dark basic pro has an upper model limit of 22,000,000 model numbers. thats a pretty nuts amount of models and utterly unreachable for now, and by the time the home pc can load that much, i'm sure dbpro will be updated for the future world. and we'll probably be coding hologram reality games with our minds while we sleep... awsome.

Sometimes I like to use words out of contents
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 11th Oct 2011 15:13
Ahh now this is interesting Kezzla, very interesting. I agree that 22 mil models would be just insane and its a fair and reasonable limit as i very much doubt you could ever physically see everything all at once. Unless you had a HUGE monitor lol.

I hope there are no hardware limits though as i said earlier because at the moment for example it doesnt look like we are making faster processors any more (not seen much above 3ghz unless overclocked for a few years now as standard), we are just making more cores in one processor, which is great, but would be a shame if DBpro doesnt take advantage of that as you would reach the upper limit of processing power pretty quick, not that i know nearly anything about hardware but i am fascinated nonetheless.
Same with graphics cards. I hope that if you made something and the fps was a bit on the slow side (even after tweeking the code as efficiently as you could) that you could just buy a better graphics card and blow it away

This is a good conversation (for me anyway, im enjoying it ) lets see if we can keep it going, im interested to learn about all this.

@Kezzla: Hologram reality games? Sounds good but it would probably just used to fulfil everyones darkest naughtiest fantasies and i think the human race would end. Who can be bothered meeting a nice lass and settling down and the hassle and compromises of relationships and procreation when you can load up "The adventures of big boobed Angela and her vixen friends (you play the plumber)".
Jimpo
19
Years of Service
User Offline
Joined: 9th Apr 2005
Location:
Posted: 11th Oct 2011 17:48
DBPro can only take advantage of one core, so there is a limit on how much a new processor will help.

Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 11th Oct 2011 20:27
Quote: "DBPro can only take advantage of one core, so there is a limit on how much a new processor will help."


Thats interesting. I was wondering just what cores it could take advantage of (not that i really understand why we have more - except it being faster to divide the work up between processors perhaps etc).

So how would this affect DBpro? Would it mean it only reads so many lines per second or can only do so many calculations per second or is it more complex than this (i.e how does your processing power affect DBpro)? Is DBpro being upgraded in the future to suit more cores - is it even necessary?

Keep it coming folks because im very interested by all this.
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 12th Oct 2011 00:29
Quote: ""The adventures of big boobed Angela and her vixen friends (you play the plumber)". "


lol It would be pretty funny if the crowning scientific achievement of the human race was ultra realistic porn. I wouldn't put it past us...

Sometimes I like to use words out of contents
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 12th Oct 2011 01:15
Quote: "lol It would be pretty funny if the crowning scientific achievement of the human race was ultra realistic porn. I wouldn't put it past us..."


Simultaneously our greatest achievement and downfall.
Lucas Tiridath
AGK Developer
15
Years of Service
User Offline
Joined: 28th Sep 2008
Location: Kings Langley, UK
Posted: 13th Oct 2011 01:37
Quote: "So how would this affect DBpro? Would it mean it only reads so many lines per second or can only do so many calculations per second or is it more complex than this (i.e how does your processing power affect DBpro)? Is DBpro being upgraded in the future to suit more cores - is it even necessary?"

Well the code you directly write in DBP has to run on a single core but that's not quite the same. Some DBP commands actually run in threads and so can be executed on other cores. So really, as with everything in DBP, a proportion of the performance you get is reliant on how the DBP and plugin functions that you're using were coded rather than how you coded with them. Both play a part.

One issue I'd be interesting in would be the issue you raised about graphics cards. DBP is currently tied to DirectX 9c which is getting kind of old now with DirectX 11 out. I'm not even sure how much longer it will be supported. So I guess that whilst DBP is tied to DirectX 9c, it would only be capable of exploiting graphics cards to the level that DirectX 9c can. In theory, I guess it would be possible to update the DBP functions to DirectX 11 but it would be one hell of a job and I'm not sure that TGC would be that keen to do it given that it's probably not such a big earner for them any more. However now that it's open source, there is always the possibility of making such changes yourself. That said, that would probably be just the kind of optimising thing that you said you didn't want to spend your time on . So DirectX 9c is very good performance wise but whether it's future proof is another question. What do people think about this?

Lifebandit
14
Years of Service
User Offline
Joined: 27th Mar 2010
Location: Texas USA
Posted: 14th Oct 2011 02:19 Edited at: 14th Oct 2011 02:27
Whoah,, Dbpro is open source now? I didn't know that? What does that mean for licenses? Does that mean I can give a copy of my "purchased" Dbpro to a person who decides to help me on a big project without penalty from TGC?
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 14th Oct 2011 02:42
You can use dark basic for free anyway, I think even if you install the paid version and put in the free serial number the adds will still appear.

Sometimes I like to use words out of contents
Lifebandit
14
Years of Service
User Offline
Joined: 27th Mar 2010
Location: Texas USA
Posted: 14th Oct 2011 03:01 Edited at: 14th Oct 2011 03:38
Would someone mind shedding more light on this?
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 14th Oct 2011 22:58
@Lucas Tiridath
Quote: "Well the code you directly write in DBP has to run on a single core but that's not quite the same. Some DBP commands actually run in threads and so can be executed on other cores. So really, as with everything in DBP, a proportion of the performance you get is reliant on how the DBP and plugin functions that you're using were coded rather than how you coded with them. Both play a part."


Thats interesting, i didnt know that. I wonder if some plug ins that people made work the same way.
You also mentioned the graphics cards. I would very much love to see DB keep stretching and expanding to something beyond DX9 as (although i can not, at least not yet) im sure some of the fine folk on here could do some wonderous things with it. I would be more than happy to buy the whole darkstudio package again if they were to release an updated version that supported much better faster cards even though as i mentioned at this moment in time there is not much i could do. Knowing that i could go further would lead me to at least try. I dont think they ever will because the bloody money seems to be in apps and app creators these days, not many folk want to spend time writing a massive epic program that takes time when they could bob out an app much quicker and everyone loves them (which i cant blame them), so i do understand if they never touched DB pro to update it beyond this Win7 build that we have at the moment.

It being open source is a great idea and a very selfless thing to do to a program but unless someone were to modify it i certain wont be able to. I presume its done in c++ or something and needs knowledge of that to make the changes and i simply hate c++, it is such an ugly difficult language for someone like me which i why i will always be limited to basic.

It would just be nice to know that if i ever made something that ran too slow i could just wait for a new graphics card (or new generation of card) and bang it in and all would be playable and good.
nonZero
12
Years of Service
User Offline
Joined: 10th Jul 2011
Location: Dark Empire HQ, Otherworld, Silent Hill
Posted: 15th Oct 2011 12:15
Don't worry, even if nobody does any recoding, emulation will always be an option! I still play old DOS games and run QBasic in FS through DOSBOX, heh

As for harnessing the powers of DX11, it's technically possible with a certain amount of modification to DBP's source code. Remember that DBP is using the DX API the way you may use the win32 API in an assembler. In fact, it may be possible to code a "go-betweener" pc that "converts" DX9 instructions to DX11. Perhaps it could be a "replacement" for DX9 on the PCs of the future. Certainly would be an interesting project and technically possible(although quite tough) on a low enough level.

"Tinkering" aside, the best option from a performance POV would be the DBPro recode which is bound to happen, if not by TGC then by fans. Aside from anything else, I think it will be a long time before DX9 support is disbanded.

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 15th Oct 2011 13:22
Quote: "Whoah,, Dbpro is open source now?"

The plug-ins are open source, the compiler and/or editor are not.

Everyone has access to the code, can download it, and can edit/compile their local copy. There are a few other lucky people who have the ability to update the source code for others to use.

http://code.google.com/p/darkbasicpro/

Lifebandit
14
Years of Service
User Offline
Joined: 27th Mar 2010
Location: Texas USA
Posted: 15th Oct 2011 23:19
Ah ok. But I am still wondering... if I put together a team, can my team use my Dbpro license or do they each need to purchase it for themselves? I am asking this to prevent unlawful actions on my part.
Grog Grueslayer
Valued Member
18
Years of Service
User Offline
Joined: 30th May 2005
Playing: Green Hell
Posted: 17th Oct 2011 21:34
The way it works is when you buy Darkbasic Pro TGC allow you to put it on any computer you directly own. So if your friends are using any of your computers to program it's ok... but don't let them copy your Darkbasic Pro to their own computer at home. So your friends can either program at your house or buy their own copy of Darkbasic Pro.

Runtest
12
Years of Service
User Offline
Joined: 15th Oct 2011
Location:
Posted: 21st Oct 2011 11:05
@Kezzla - You are 100% right. Everytime I think, 'DBPro is to old, it can not do this.' I find that it is just me not taking the time to think about it. This is the LEAST cpu\memory intensive 3D engine I have used to date.
Kezzla
15
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 21st Oct 2011 18:00
Quote: "@Kezzla - You are 100% right. Everytime I think, 'DBPro is to old, it can not do this.' I find that it is just me not taking the time to think about it. This is the LEAST cpu\memory intensive 3D engine I have used to date. "


I agree with you, the only limitation I have ever found is my own logic and of course my system ram. but used wisely system ram isnt a problem. neither is video ram. I have never had a problem that surpassed the dpbro syntax. that doesnt mean there isn't a problem that does, i've just never found it, and dout i ever will. DBpro forever!! kezzla

Sometimes I like to use words out of contents
Somarl
13
Years of Service
User Offline
Joined: 11th Feb 2011
Location: UK
Posted: 21st Oct 2011 18:25 Edited at: 21st Oct 2011 18:29
Speaking of RAM, i know there are ways of being more cautious with your code to get the most out the the RAM but putting that aside for a moment, out of interest, can you only use up to 3gb of RAM with DBpro as seen as there is no 64bit version of it? Or am i thinking about this wrong and thats not the way it works.

Also same question ish, well along the same lines, as it does not support DX11 which is fine cause you can make some beautiful things with dx9 anyway, but because it does not support that, is there a limit on video memory and video card processing speed and core numbers and such that it wont go beyond. So if i got a 590 with all the trimmings in a 3 way sli or something, that would allow me to do more than with the card i have now which was pretty much top notch but only at the time dx9 was fairy new, now it is showing its age when cards of equal price to it are 4 times as fast with twice the ram and 10 times the cores. So would it use these cards to the max or does it top out at so much.
Agent
19
Years of Service
User Offline
Joined: 7th Sep 2004
Location: Sydney, Australia
Posted: 6th Nov 2011 00:03
DBPro does not have an intrinsic memory access limitation of any kind. Generally, your OS handles memory allocation. DBPro asks it where to store something, and the OS responds. If you are using WinXP, you are stuck with 2GB of memory because that's all Windows can access (with certain exceptions that fall outside the scope of DBPro anyway). There are ways around this with direct access memory writes, but that's not a topic for anyone below master-level as you can cause physical damage to your hardware if you make a mistake.

Quite apart from memory management, DBPro seems to have the same limitations in respect of hardware access as other programming languages. Anything that DBPro is not intrinsically capable of (for example, direct disk access) can be written in through the use of external DLL's. In other words, DBPro can be made capable of anything that, by default, it isn't.

If there are any rubicon limitations in DBPro, you won't run into them for many, many years. I use DBPro for 100% of my game making requirements, and I've never run into something that was outright impossible to do in DBPro. There's a way to get around just about any seeming barrier, so don't worry about DBPro being insufficient for any cause you can imagine!

enderleit
16
Years of Service
User Offline
Joined: 30th May 2007
Location: Denmark
Posted: 12th Nov 2011 18:42 Edited at: 12th Nov 2011 18:44
Quote: "I have never had a problem that surpassed the dpbro syntax."

I actually have problems implementing a MergeSort in DBPro, since it is a recursive algorithm with dynamic arrays created on the fly and returned to the previous instance. There might be a solution through some kind of "magic" tricks, but I have yet to find it.

BTW. There are MergeSort functions in Matrix1utils, I just like to program and solve problems...

EDIT: And btw, I think the only real problems with DBPro is that it isn't ObjectOriented (or multi-paradigm), and passing UDTs/Objects into/out-of functions.

Login to post a reply

Server time is: 2024-05-20 08:53:20
Your offset time is: 2024-05-20 08:53:20