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 / [LOCKED] Criticisms of DarkBASIC Professional

Author
Message
Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 15th Oct 2009 08:50
well, people have made games, even won computers and such.
I understand DC's comments. I just think he has been "enlightened" by other languages, and, is being unfairly harsh on a pretty simple language. Why the bad press from a very respected member of these forums? I just do not get it.
Kira Vakaan
15
Years of Service
User Offline
Joined: 1st Dec 2008
Location: MI, United States
Posted: 15th Oct 2009 08:55
The point of DC's comments was that this pretty simple language could be made simpler and more powerful by the easy removal of these limitations that exist for no real reason.
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 15th Oct 2009 09:00 Edited at: 15th Oct 2009 09:05
Clearly no one can discern feature from limitation, so I leave it to dictionary.com: FEATURE, LIMITATION. And for the lazy:

Limitation: "a limiting condition; restrictive weakness; lack of capacity; inability or handicap: He knows his limitations as a writer."

Feature: "a prominent or conspicuous part or characteristic: Tall buildings were a new feature on the skyline. "

I wouldn't call anything in section 1 "a prominent or conspicuous part or characteristic", considering they're obvious missing aspects of a language with these paradigms.


Quote: "1. Arrays in UDT's
yes, this would be quite handy, and I agree. However, it is up to the creators to implement. A feature, not a limitation, I would say."


See above.


Quote: "2. Return a UDT from a function
Since a UDT is global, I see no need for this. For this to work, you would also have to pass in a UDT. Which is complaint number 4. I was taught early on to not have many, if at all, globals. So, I can understand this. However, it doesn't stop the program from running. A feature, in my opinion."


What does the scope of a UDT have to do with this? Unless you mean the ability to declare a global variable using a UDT. And what does passing a UDT have to do with this? Returning a UDT isn't contingent on you passing anything specific to said function. As for the last sentences, see above.


Quote: "3. Global vars not initialized until run :
So what? its a rule of the language. Not a big deal, in my opinion."


It's arbitrary and imposes limitations on what you can do for no reason. You can use global variables without executing them, but not arrays. You can assign literals or variables upon initialization but you can't do more complex stuff like 10 + 5, my OP outlines these with examples.


Quote: "4. This is the opposite of number 2. If you can't return it, surely you can't pass it. It is solved in the language by making UDTs global. Some comments in the function can instruct the user to make the type global. This is the current method to overcome this."


This is nothing like the opposite of number 2, an array isn't a function, and you can pass UDTs to functions, just not return them. My OP and other posts also explain why this workaround is error-prone and why this limitation should be removed.


Quote: "5. Lack of else/ifelse"


Try compiling those before posting them?


Quote: "6. Inability to do complex statements on 'exitFunction'/'endFunction'

I happen to agree on this, but, this is a VERY simple workaround. Do the calc before you exit, and assign the result to the output of the function."


My OP states that I don't doubt you can't work around many of these issues, the point is that there should be no need for these arbitrary limitations.


Quote: "7. No function overloading
Far as I can tell, this is not even a feature of Visual Basic. Correct me if I am wrong."


5 seconds on google.


Quote: "8. Lack of option explicit
I thought this was IDE specific, not compiler specific."


Some IDEs may well implement this, but it should be a feature of the language. Just look at the amount of issues the 'IDE specific' concatenation symbol feature has caused.


Quote: "10. No references
Again, this can also be worked around, by simply making a copy of the original data in the array or UDT. However, I agree, it is a nice feature to be able to access the core data or the copy. This is one of the nice things about OOP programming."


I'm not doubting that it can be worked around, it just shouldn't be necessary; it adds complexity to code, makes it more error prone, makes it less modular etc etc. References also have absolutely nothing to do with OOP.


Quote: "Seems to me, DC has learned the value of OOP, and, wants to apply it to procedural programming."


As I've cleared up previously in this topic, OOP and procedural programming aren't mutually exclusive concepts, one merely expands on the other. Only one of the points in my OP is related to OOP, and UDTs are a very primitive form of objects as it is, so asking for them to be expanded a bit more isn't breaking any paradigms.


Quote: "Why the bad press from a very respected member of these forums? I just do not get it. "


What? So because I'm 'respected', I'm not expected to voice valid concerns about a language I've used for many years with limitations that have existed since its inception and never rectified? I've already stated this in this topic: but as this language is aimed at beginners, many users may not be aware that these limitations don't exist in other languages because they make no sense, thus raising awareness of this is surely a good thing? It's not like I'm mindlessly ranting about every little niggle with the language that doesn't conform to the C++ standard. I believe every one of my points: makes sense, doesn't break any of the existing language paradigms, aren't too hard to implement, come with good rationales and examples etc, there's not much more I can do.

Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 15th Oct 2009 09:04 Edited at: 15th Oct 2009 10:16
ok. Well, I don't have a problem with the limitations, and, that is all I said, point, counterpoint. I may be wrong, and, I probably am. I just think the whole thread, especially at the top of the list, does not do good for DBPro. I like DBpro, have no problem with it, and it does all I expected for the money. They even have a free trial for finicky folks who want to evaluate all the nuances. It seems silly that someone would offer these criticisms, on TGC's board, after they had a free trial opportunity.

edit:
boy, do I feel like a dumbass
add this to the list
can't use a variable in select statements, which, I just assumed you could.

edit:
however, this works, and it is the same amount of lines of code as the if/elseif, and, it is now a function.



OR, just use THEN:


edit:
and one last thing, boy, DC can smack someone good. Note to self: never ever question this guy!
Lesson learned, going back into the corner....
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 15th Oct 2009 10:58 Edited at: 15th Oct 2009 11:00
Kira, these statement tend to closely follow some diatribe reaction like 'DBPro can't make a game', or 'I can't make a game without them'.
It's an opinion, bet about it, critisize it, do what you like with your own opinion - just don't expect to control other peoples. You might as well leave out a piece of cheese overnight then complain about the mouse nibbles on it.

The way I see it, people are discussing how important these changes are to them, it's a case of some people really wanting them and some people not needing them - the point that it would be nice if they got added was agreed upon before the end of page 1. DC got his point across, we agreed, there was much rejoicing - since then the thread has diffused into other discussions, it's hardly the end of the world, just the end of sensible posters bothering with it.


Health, Ammo, and bacon and eggs!
Pincho Paxton
21
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 15th Oct 2009 15:38 Edited at: 15th Oct 2009 15:40
Until you need something you don't know that it's a bit screwed up. We all tend to work as individuals, and programming different types of games, so it takes a long time to find out that you need something that doesn't work. To speed up the DBPro diagnosis it would help if we had more Pro teams, and not all working on FPS all of the time. Also more DBPro games through the production door.

tiresius
21
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 15th Oct 2009 16:14
Quote: "2. Return a UDT from a function
Since a UDT is global, I see no need for this. "

Wha what ? You are missing the point of #2 and #4. I thought dc's post was pretty clear so not sure how to explain it better.

Quote: "10. No references
....
well, actually, it can't be worked around. You can't change the source and have it update the copies in DBPro, not anyway I can think of. So, this would be nice, but, like I said, its more an OOP kind of thing, I think."

DC is talking about passing values by reference. It has nothing to do with OOP since this is a feature of C and some other non-OOP languages. You're sending an address of a variable or structure to a function. Referenced access is a lot faster than making new copies of values on the stack, especially if you send large UDTs in function arguments.

I'm not a real programmer but I play one with DBPro!
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 15th Oct 2009 16:25
Exactly, users here tend not to pick the right project, even the experienced ones. I guess we all want to be making games we'd want to play, but maybe we just don't want to play the sorts of games that sell these days, or even get a lot of attention.

I think it would be nice to see DBPro take a bite out of the casual gamers market, there is no reason at all why DBPro can't compete at that level - it's a media concern more than a code one in that case, get a good artist on board and your set.


Health, Ammo, and bacon and eggs!
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 15th Oct 2009 16:51
I think a good example of a handy UDT would be collision response...

If you have a collision function that checks an intersect line for example, then it can get messy and difficult to read your code with all that chaff. Say you have an array to store bullet trajectories, these things are flying all over the place, and have stored positions because an intersect line check relies on it.

Maybe the coordinates could be stored in a big array...
Dim bullet(256,10)
...So 256 bullets with 10 pieces of unchained information stored there.
A collision function might look like this:
Col=get_collision(bullet(b,0),bullet(b,1),bullet(b,2),bullet(b,3),bullet(b,4),bullet(b,5))

That's very untidy - you could just pass the bullet number and get that data inside the function, but that's not an ideal scenario for this.

What I would do if we had UDT's in function parameters is this:

Type axis
X as float Y as float Z as float
Endtype
Dim bullet(256) as axis
global st as axis
global en as axis

For full trajectory checking, it's also an idea to consider what other factors are needed, like angles, angular velocity, gravity etc etc.

So maybe the bullet handling would look like this with a UDT:

for b=0 to 256
st=bullet(b)
move_bullet(b)
en=bullet(b)
col=get_collision(st,en)
next b

See the types allow the 3 different axis values to be utilized at once - st is stored as the current bullet position, then you'd move it, and work out the en, so that a collision check can be done between the 2 points - but the point is that the whole type set is being passed as that variable, whereas we'd usually have to pass any parameters ourselves, which get's messy.

These things can really help with organization - it's probably not a good example because really I've never used them in that regard, but that's just one instance where I would like to work more efficiently and produce more readable code.


Health, Ammo, and bacon and eggs!
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 15th Oct 2009 17:07
Quote: "It seems silly that someone would offer these criticisms, on TGC's board, after they had a free trial opportunity."


I'm not sure I understand what you're saying. What's wrong with a user posting some criticism which if addressed will help other users of this product?
KISTech
16
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 15th Oct 2009 18:15
Quote: "can't use a variable in select statements, which, I just assumed you could."


Yes you can.

BowserYo
16
Years of Service
User Offline
Joined: 4th Jan 2008
Location:
Posted: 15th Oct 2009 18:51
it would be nice to have code completion, just to make things even faster, variable name linking, or in other words, when you select a variable it shows where it's used, and if you decide to change the name it will change all the variable names. Elseif would be really nice. Would also be nice if they would add some more commands for objects to have the ability to use opacity maps.

a few idea's...

ßõw§€r¥¤
Stefano
User Banned
Posted: 15th Oct 2009 18:56
Quote: "it would be nice to have code completion, just to make things even faster, variable name linking, or in other words, when you select a variable it shows where it's used, and if you decide to change the name it will change all the variable names"


This kind of stuff is more editor related rather then compiler/language
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 15th Oct 2009 19:13
Quote: "Would also be nice if they would add some more commands for objects to have the ability to use opacity maps."

Use a shader?

Your signature has been erased by a mod because we're sadistic losers with nothing better to do. (joke)
aerostudios
14
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 15th Oct 2009 19:34
Well...so far, I'm happy with DBPro. I have absolutely no interest in anything remotely similar to OOP. I abhore the whole notion of method overloading. I have a hard enough time keeping one function straight in my mind.

Russell B. Davis/aerostudios
Zotoaster
19
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 15th Oct 2009 20:48
Quote: "Well...so far, I'm happy with DBPro. I have absolutely no interest in anything remotely similar to OOP. I abhore the whole notion of method overloading. I have a hard enough time keeping one function straight in my mind. "


That's awesome. That is, what I expect, TGC were expecting.

Here's the thing though. Imagine people could feel this way constantly, even as they get more and more talented? You can't see the other side of the hill yet because you haven't reached the top yet, so everything is green to you. To people who have been programming for a very long time, these limitations become very problematic, and TGC lose customers.

"everyone forgets a semi-colon sometimes." - Phaelax
Alfa x
17
Years of Service
User Offline
Joined: 1st Jul 2006
Location: Colombia
Posted: 15th Oct 2009 21:37
Quote: "Well...so far, I'm happy with DBPro. I have absolutely no interest in anything remotely similar to OOP. I abhore the whole notion of method overloading. I have a hard enough time keeping one function straight in my mind. "


what is your Join Date?
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 15th Oct 2009 22:15 Edited at: 15th Oct 2009 22:16
I do agree that people who havent programmed for a long time dont run into these problems as they done know how to use loads of these coding shortcuts. For those that have coded for years these are REALLY BAD limitations that need to be addressed.

For those that remember this I joined the original forum in 2000 this is the second forum that has been here.

-EdzUp
MayoZebraHat 1979
16
Years of Service
User Offline
Joined: 21st Dec 2007
Location:
Posted: 15th Oct 2009 22:58 Edited at: 15th Oct 2009 23:07
Quote: "I do agree that people who haven't programmed for a long time don't run into these problems as they done know how to use loads of these coding shortcuts. For those that have coded for years these are REALLY BAD limitations that need to be addressed."


I would have to add that if you are "learning" to program with basic that is so fantastic. I learned from BASIC as well. If you never want to have anything more than a hobbyist relationship with programming then you'll probably be fine with DBPro. However, BASIC in general teaches some bad habits.

Quote: "Well...so far, I'm happy with DBPro. I have absolutely no interest in anything remotely similar to OOP. I "abhor" the whole notion of method overloading. I have a hard enough time keeping one function straight in my mind. "


You'll come around. I used to have a few problems with OOP. Are you letting the concepts of OOP discourage you though? Method or Function Overloading isn't a direct feature of OOP but of functions (given the target language features function overloading) it exists as methods/functions exist inline with objects. If you think it's to hard don't let that keep you from learning it. Your code readability and production speed will increase. And as far as you saying you have no interest in anything remotely similar to OOP, are you telling me you never use UDTs? Most OOP syntax will be just like UDTs with access structure, inline functions and more. Not that procedural programming isn't good but I would think OOP in game development would be a no-brainer.

Quote: "Quote: "can't use a variable in select statements, which, I just assumed you could."

Yes you can."


I think they mean that you are restricted to literals in the case statment, but that's not a limitation. I'm pretty sure that's how select or switches work across all languages. There isn't a need for it to work otherwise.

Quote: "The point of DC's comments was that this pretty simple language could be made simpler and more powerful by the easy removal of these limitations that exist for no real reason. "


I would rather have the developers input on that. I wouldn't just spout there isn't a real reason. The reason is probably just too technical for anyone to get much value from it. No one complains because DBPro doesn't do multi threading because it has something of a suitable reason, it's dangerous to implement. I would imagine why we have limitations would probably have to do with memory leaks and memory access problems, or something like that.

It would be nice to have some answers as to why it is the way it is (even better would be to give everything that the more advanced users need) but I'm not going to speculate and we probably shouldn't state "no real reason" without giving the fake reason first... as I'm not aware of the fake ones or any at all for that matter. It doesn't mean they don't exist.
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 16th Oct 2009 17:36
Quote: "
I would rather have the developers input on that. I wouldn't just spout there isn't a real reason. The reason is probably just too technical for anyone to get much value from it. No one complains because DBPro doesn't do multi threading because it has something of a suitable reason, it's dangerous to implement. I would imagine why we have limitations would probably have to do with memory leaks and memory access problems, or something like that. "


BlitzMax didnt have threading for ages and has only recently got the Threaded version . PB has had it for ages.

Quote: "
It would be nice to have some answers as to why it is the way it is (even better would be to give everything that the more advanced users need) but I'm not going to speculate and we probably shouldn't state "no real reason" without giving the fake reason first... as I'm not aware of the fake ones or any at all for that matter. It doesn't mean they don't exist. "


I would like Lee's input on these limitations and if they are fixable. Yeah there are other languages out there that we could use (I do atm writing games for iPhone) but you guys chose DBPro so its only fair that you get what you want out of it like all other language users do.

-EdzUp
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 16th Oct 2009 18:05 Edited at: 16th Oct 2009 18:08
Quote: "its only fair that you get what you want out of it like all other language users do."

Not exactly true. Other users get this when they use that language. If you choose to use this language, you\'re choosing to accept it as it is.

If you don't like C++ because it doesn't do [insert function here] you don't complain to the developer saying it doesn't do it, you make do without it, code it yourself, or work around it. The same goes for DBPro.

Lee coded it like this (I'm assuming) for a reason. This is the language, use it. You don't complain to the creator of brainf*ck (Wikipedia it) and say it's too hard because it only has 8 commands and 8 allowed characters. No, you use it as it is.

Your signature has been erased by a mod because we're sadistic losers with nothing better to do. (joke)
Alfa x
17
Years of Service
User Offline
Joined: 1st Jul 2006
Location: Colombia
Posted: 16th Oct 2009 18:16
Quote: "Not exactly true. Other users get this when they use that language. If you choose to use this language, you\'re choosing to accept it as it is.

If you don't like C++ because it doesn't do [insert function here] you don't complain to the developer saying it doesn't do it, you make do without it, code it yourself, or work around it. The same goes for DBPro.

Lee coded it like this (I'm assuming) for a reason. This is the language, use it. You don't complain to the creator of brainf*ck (Wikipedia it) and say it's too hard because it only has 8 commands and 8 allowed characters. No, you use it as it is."


I dont know if is good to TGC if the community doesnt makes suggestions to continue using or buying their products.

I think the Poll that they recently did, shows that they want the opposite to what you are saying.
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 16th Oct 2009 18:19 Edited at: 16th Oct 2009 18:20
Quote: "I think the Poll that they recently did, shows that they want the opposite to what you are saying."

Maybe so, but what I said is still true. If TGC want to change the language that's their choice. But if the language isn't to it's users liking, they're not automatically entitled to request it be changed to make it more like another language. You'd probably be better off using that language.

I use DBP, and I'm happy with it. Yes there are some things which would be nice to have, but I'm prepared to move to GDK in order to get them. I don't expect DBP to change it's syntax to suit me, rather I change to suit it.

Your signature has been erased by a mod because we're sadistic losers with nothing better to do. (joke)
Alfa x
17
Years of Service
User Offline
Joined: 1st Jul 2006
Location: Colombia
Posted: 16th Oct 2009 18:27
Quote: "I use DBP, and I'm happy with it. Yes there are some things which would be nice to have, but I'm prepared to move to GDK in order to get them. I don't expect DBP to change it's syntax to suit me, rather I change to suit it."


I respect your opinion is very valid. Additionally you prove my point true, in your case you are going to move to DarkGDK (I think I will do the same), but in other cases, people move to other tools, and hence TGC loses customers.
Mobiius
Valued Member
21
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 16th Oct 2009 18:28 Edited at: 16th Oct 2009 18:29
Quote: "in your case you are going to move to DarkGDK"

But I'm only moving as a stepping stone towards XNA, and only when I have finished my project in DBPro. (That way I'll have 3 versions of my game so I can see side by side comparisons.)

Your signature has been erased by a mod because we're sadistic losers with nothing better to do. (joke)
KISTech
16
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 16th Oct 2009 18:33
Software companies take user opinion into consideration all the time. That's how they stay competitive. All of these and more suggestions will make their way to Lee, and I'm sure some of them will be implemented, and some of them wont. (to do it all would likely require a complete rewrite)

We've made our suggestions. Now let the dust settle and let's see what they do with them.

dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 16th Oct 2009 20:03
Quote: "If you don't like C++ because it doesn't do [insert function here] you don't complain to the developer saying it doesn't do it, you make do without it, code it yourself, or work around it. The same goes for DBPro."


No. If there are issues with C++ then the standards committee decides what to change about the language(as they have done in the past, and continue to). I imagine a lot of these changes stem from actual use of the language, i.e. they are ultimately user driven changes. If no one voiced concerns with the language then the standard would have remained the same since its inception, which largely seems to be the case here.

If you'd read this thread then you would see that I've already countered this point, as I'm not talking about ground-breaking paradigm changes here, but mainly removing limitations or things that make no sense for such a language.


Quote: "they're not automatically entitled to request it be changed to make it more like another language. "


Read the thread?


Quote: "I don't expect DBP to change it's syntax to suit me"


Same as above, and the majority of my points have little or nothing to do with changing syntax.

MayoZebraHat 1979
16
Years of Service
User Offline
Joined: 21st Dec 2007
Location:
Posted: 16th Oct 2009 23:15
Quote: "BlitzMax didnt have threading for ages and has only recently got the Threaded version . PB has had it for ages."


Meh, I was just making a point on how we kinda know why we don't have threading in DBPro. Lack of using more than one thread is not a limitation by any means, but we have a pretty clear explanation of why DBPro doesn't have that. I'm not interested in what other languages have it, as I've probably already investigated that. I'm just trying to focus on DBPro for now. Comparing DBPro to other languages at this point isn't really discussion material but advertising or "mines better than yours" talk.

Have we made our point yet? The more I read and re-read the thread I'm starting to wonder how much longer this can be relevant and not just deteriorate into another pointless I'm right your wrong fest. It's supposed to be bringing to light limitations and not advertising, arguing, or counter points. Are we debating, petitioning or just stating the obvious at this point? I don't see how there is any argument against the limitations outlined in the OP of the thread. If you find a work around that's good for you. However, I know for a fact that you should always have the most optimal means necessary. You should never have to reinvent the wheel, patch the wheel, or have to file down the edges of a square wheel to make it roll. More so when you pay good money for that wheel.
Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 17th Oct 2009 06:22 Edited at: 17th Oct 2009 06:38
edit:
@KISTech
can you show me how to use a variable in a select statement? I thought I tried everything. The original code I posted was psuedo, DC was correct, it wouldn't compile, and, I couldn't figure a way to make it compile. And maybe I need to be more specific, CASE doesn't accept a variable; sorry.


I just want to thank you guys for not flaming me too badly. Sometimes I speak, or write, without thinking things thru all the way, and, at times, submit an opinion when I don't posess enough knowledge about the subject to submit an opinion. I admit this is a fault I've had all my life, and, am trying to improve upon. With that said, I wouldn't mind at all these things added to the language. But I don't feel that they are show stoppers, there are other methods, and in no way cause a good game from being completed. So, rock on guys, go make some games, thats what I've been busy on.
Herakles
15
Years of Service
User Offline
Joined: 6th Mar 2009
Location: Lost in my own head
Posted: 17th Oct 2009 08:23
Well, I didn't understand a great deal of what Dark Coder said in the OP, because I'm not experienced enough a coder. But here's what I have to say:

DBPro is great for what it is: a simple and easy to use programming language to create games in. I'm sure it has it's limitations, even though I'm not experienced enough to understand them, but it is still possible to create very advanced and very fun games with it. When I eventually discover the limits of what DBPro can do and I need more control, I'll learn C++ and use DGDK. When I discover the limits in DGDK, I'll start dealing with DirectX... well... directly.

I realize that DBPro isn't an absolutely perfect language to write games in, even for a hobbyist, but it's definately good enough. I think that instead of adding to it's functionality (and invariably creating more bugs), the future development of DBPro should go down a purely "bug-fixing" path.

But hey, what do I know. I've only been programming for about 2 and a half years, and I've been using DBPro for even less time.

I'm working on Swordfight again! Come tell me what you think!
http://forum.thegamecreators.com/?m=forum_view&t=158681&b=19
chwilly
15
Years of Service
User Offline
Joined: 23rd Feb 2009
Location:
Posted: 17th Oct 2009 08:36
@Visigoth

I don't think the problem is the variables, it's the use of conditions and ranges which don't seem to be allowed with select-case in DBP. Hey, this wood be a great 'feature' to add.

Variables, constants, and just plain numbers work fine with select-case (I've been able to use them anyway).
Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 17th Oct 2009 08:44 Edited at: 17th Oct 2009 09:00
@chwilly
can you show me an example? I did a search on the forums, and, it seems it has been universally accepted you can't have a variable as a case. I'm not having any luck using a variable in a case.

consider this:



edit:
however, this works


this won't compile for me. I'd like to have a var as the case data input, but, it doesn't work.
Thanks.
Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 17th Oct 2009 09:13 Edited at: 17th Oct 2009 09:34
Quote: "Limitation: "a limiting condition; restrictive weakness; lack of capacity; inability or handicap: He knows his limitations as a writer."

Feature: "a prominent or conspicuous part or characteristic: Tall buildings were a new feature on the skyline. ""


I should quit while I am behind, but, I have to debate this statement. For limitation, your example states there is a handicap, weakness, inability, lack of capacity, or a limiting condition. And the statement says, "he knows his limitations as a writer." Well, I would assume his limitations as a writer were do to his inability, or weakness, or handicap to string together words in a manner that would make him a better writer. I wouldn't blame his inabilities, or handicap, or limitations on the pen or the paper. His language is words. He can craft those words into a written message. If he cannot craft those words into a coherent message, should he invent new words? Or, should he just blame the pen or the paper, the tools he uses, for his inability to craft the message? Or, because there is no word that rhymes with purple or orange?
I still think, and I know I'm gonna get flamed, and probably lose this debate, and should just keep my mouth shut, that what DC is asking for is features.
edit:
now I know you can argue that some other person or entity limited the writer from what he wanted to write, like censorship or something, but, I don't think that applies. Now, I know then that you can argue that the ability WAS there, and was restricted by someone or some entity. However, maybe, it is beyond the ability of the other writers. But then, that defines alot of things now, not just DBPro. Take math, for example. Someone decides to write a book about math, and, fails to include calculus. Even though calculus is math, and, is available, doesn't mean the person writing the book on math wants to, or is qualified to, write about calculus. If he wanted to add calculus, it would be a feature to his book. The limitation was the fact he couldn't, or didn't, write about calculus in the first place. That is my thinking...
So, someone writes the author a letter, and says, hey, you didn't put calculus in your book. I could have done so much more with my math, but, you didn't have calculus. Should the author bend to his will and add instructions on calculus? If he does, it would be a new feature in his book. His book might have been limited in how much math it could do, originally, but, it wasn't an overall limitation of his book.
It was just a lack of features, in my opinion.
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 17th Oct 2009 09:48
The only reason 'select/case' was brought up was because it was offered as an alternative to the 'else if' conditional. Being able to specify ranges within a case may have some use, but it's rather limited I assume; for more complex constructs you should use if/else if/else, and being able to specify variables for each case doesn't even make sense given what it's supposed to be for.

Quote: "DBPro is great for what it is: a simple and easy to use programming language to create games in. I'm sure it has it's limitations, even though I'm not experienced enough to understand them, but it is still possible to create very advanced and very fun games with it."


If you take careful note of my points you'll see I'm using a different definition of limitation to what you're thinking of. I'm not talking about the kind of limitations such as execution speed or limited low-level access, but the limitations in how I can structure my code that result in impeded development time, or more complex code structure. Neither of these things are limiting to what can be produced with the language, but they are limitations on how you can construct the code.


Quote: "I wouldn't blame his inabilities, or handicap, or limitations on the pen or the paper."


Indeed, because the context of that example is very different to this. That example talks about the limitations of the writer, whereas I'm talking about the language having limitations which impose restrictions on the programmer. If the example had said: "The writer knew his limitations given the pen he was using.", then it would be closer to this situation.

Visigoth
19
Years of Service
User Offline
Joined: 8th Jan 2005
Location: Bakersfield, California
Posted: 17th Oct 2009 10:05 Edited at: 17th Oct 2009 10:24
say you lived on an island, and, your tribe only spoke 20 words. Soon, you met another tribe that spoke 40 words. In your excitement, you went to your elders and described, in the 20 words you only knew, about the other 40 words. Did your 20 word vocabulary limit you from communicating what it was you needed to communicate? If you wanted to adopt those other 20 words into your vocabulary, you'd need a way to describe, in your native language, what they meant. Basically, those extra 20 words would be shortcuts, extensions, or, new features of your base language. Not knowing those extra 20 words did not limit your original capacity to communicate.
I know this is a crude, simple, example, but, I think it applies.
I stand by my original statement. What DC is asking for is features, and, is not a limitation in any way, shape or form.

edited to add:
Quote: "Indeed, because the context of that example is very different to this. That example talks about the limitations of the writer, whereas I'm talking about the language having limitations which impose restrictions on the programmer. If the example had said: "The writer knew his limitations given the pen he was using.", then it would be closer to this situation."


it WAS your example, the basis for the difference between features and limitations. The limitation for the writer was not the language. He knew he only had so many words to work with. The limitation wasn't the pen or paper, either. The limitation was the writer's ability to take the words he had to work with, and, craft them into a message.

edit one last time:
say you are writing a poem. And you just HAVE to have a word that rhymes with Orange, or Purple. Currently, there is no word in the English language that does. Now, there might just be a word in some other language. Does that limit you from writing the poem? Yes, it does. But, is that a limitation of the English Language, because there are no words that rhyme with Orange or Purple? No. So, what does a poem writer do in such a case? Rewrites the poem, so it rhymes with words that are available in the language. Now, he could use a Vulcan word, if he wanted, but, that would take a bit to get it accepted as an English word. Now this does happen, alot, but, its not blamed on the limitation of the English language.
Last post on all this, I promise.
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 17th Oct 2009 10:36 Edited at: 17th Oct 2009 10:38
Quote: "it WAS your example"


It was dictionary.com's example for the first definition of 'limitation' used in different context to what I'm using it for here. I'm sure they could have listed 50 different examples but one sufficed as it gets the point across; their example states the writer is limited because of himself, here, the programmer is limited because of the language.

I can return basic types from a function, however I cannot return UDT types as the language limits me, thus this is a limitation: "a limiting condition". I can declare arrays in the global scope, I can declare variables anywhere, however due to a limiting condition I cannot declare an array in a UDT, thus this is a limitation, etc etc.

[edit] what's with all the crazy analogies that have nothing to do with this situation?

Ron Erickson
Moderator
21
Years of Service
User Offline
Joined: 6th Dec 2002
Location: Pittsburgh, PA, USA
Posted: 17th Oct 2009 18:13 Edited at: 17th Oct 2009 19:07
Does it really matter what you call it?

There is no doubt that it would be NICE if DBpro:
Had these "features"
-or-
Didn't have these "limitations"

However you want to say it.

Having these things would NOT change anything for people that choose NOT to use them. I don't know why anyone would argue against having these things - IF TGC decided to add them.
However, I think it is also important to say that NOT having these things does NOT prevent you from achieving a final result.

Would it be NICE if these things were added?
ABSOLUTELY.
Is it completley necessary?
NO.
Should it be considered and done by TGC?
PROBABLY.
Would I stop using DBpro because it doesn't have these things?
NOT LIKELY.


a.k.a WOLF!
Alfa x
17
Years of Service
User Offline
Joined: 1st Jul 2006
Location: Colombia
Posted: 17th Oct 2009 22:31
Quote: "Would I stop using DBpro because it doesn't have these things?
NOT LIKELY."

Not likely if i don't so much.
More likely as experience grows.
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 17th Oct 2009 23:53
Quote: "More likely as experience grows."


So what? That's what the GDK products are for.

EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 18th Oct 2009 00:15 Edited at: 18th Oct 2009 00:16
I would normally agree with the idea of GDK products as an extension of other things but the phrase that goes here is 'once bitten twice shy' you will be surprised how many people wont buy a second product off of a company where the first product fails to deliver. If people reach the limit of their experience with a particular language or it doesnt have the functionality for something rather like DBClassic to Pro, Pro adds shaders etc so its a progression but to go from DBPro to GDK isnt a progression its just a sideways move and some people wont see it as an upgrade more like 'paying for something they should have got in the first place' sort of thing.

The whole limitation problem will rear its head again and again until these issues are addressed, people will not care if it takes years to add the code to the language or if it will take months they will always require the changes to be added. If they arent added this will keep cropping up and tbh the number of posts about it will tarnish TCG's reputation in the end.

I for one would like to see a post from Lee on the subject with a yay or nay on the problems highlighted by this post.I for one bought DBPro with the understanding that you could 'use DBClassic code in it' this didnt happen and with a program thats 16000+ lines of code I have never got around to 'converting' it from DBClassic to DBPro.

Lee if your reading this, and as someone who has been here from the beginning (albeit lurking sometimes) these issues have to be addressed or commented upon if you dont know how to go about it or if it will take too long tell people it will take too long and explain why we are not all newbies but telling one experienced programmer why you cant do something is better than telling nobody because its that one experienced programmer who can 'translate' for the masses. It will also put all these issues to rest with a definative yes or no on the whole thing.

-EdzUp
Herakles
15
Years of Service
User Offline
Joined: 6th Mar 2009
Location: Lost in my own head
Posted: 18th Oct 2009 04:19
Quote: "I'm not talking about the kind of limitations such as execution speed or limited low-level access, but the limitations in how I can structure my code that result in impeded development time, or more complex code structure. Neither of these things are limiting to what can be produced with the language, but they are limitations on how you can construct the code."


What does it matter if the way you can construct the code is limited? If you can make a program or game via one particular method, why do you need other redundant methods?

I'm working on Swordfight again! Come tell me what you think!
http://forum.thegamecreators.com/?m=forum_view&t=158681&b=19
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 18th Oct 2009 04:43
Quote: "I would normally agree with the idea of GDK products as an extension of other things but the phrase that goes here is 'once bitten twice shy' you will be surprised how many people wont buy a second product off of a company where the first product fails to deliver."


DarkBasic Professional was never designed to be an end-all be-all language. If it was meant to be a serious language we wouldn't have ridiculous commands like "Control Camera Using Arrowkeys".

The target user for DBP is the beginner and hobbyist programmer.

Zotoaster
19
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 18th Oct 2009 04:45
Quote: "DarkBasic Professional was never designed to be..."


Here we go again...

"everyone forgets a semi-colon sometimes." - Phaelax
byo
14
Years of Service
User Offline
Joined: 11th Aug 2009
Location:
Posted: 18th Oct 2009 05:29
Quote: "Here we go again..."


But you know he's right, don't you?
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 18th Oct 2009 06:03
Quote: "Here we go again..."


Here we go again-- what? Provide a counter example. Prove your case by comparing DarkBasic Professional or other languages. Demonstrate that it's not meant for beginners.

Nathaniel
20
Years of Service
User Offline
Joined: 28th Sep 2003
Location: Dallas, Texas
Posted: 18th Oct 2009 07:21 Edited at: 18th Oct 2009 17:30
-fini-

-N.

Not all who wander are lost. - J.R.R. Tolkien
dark coder
21
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 18th Oct 2009 07:28
Quote: "What does it matter if the way you can construct the code is limited? If you can make a program or game via one particular method, why do you need other redundant methods?"


Why do cars come with engines? Provided you're strong enough you can push them along just fine, why do you need other redundant methods to propel it?

Ans: Because doing that is a pointless waste of time and you could have gotten to your destination much faster if the manufacturers had built an engine into the car.

This is little different, sure, to return a UDT variable I can work-around it by declaring a global variable and documenting my functions very well and be very careful about how I call my functions and use this variable, but it's a pointless waste of time as I should be able to return these natively from functions. I've already addressed this point about 50 times on this thread.

Herakles
15
Years of Service
User Offline
Joined: 6th Mar 2009
Location: Lost in my own head
Posted: 18th Oct 2009 09:27
Quote: "Why do cars come with engines? Provided you're strong enough you can push them along just fine, why do you need other redundant methods to propel it?"


Car engines are not redundant with getting out and pushing, they are simply more efficient. If you're saying that these other methods of coding that you've suggested are more efficient, then yeah I agree with you that they should be implemented. But I can't tell if they're more efficient or just redundant, because I'm not an experienced enough programmer.

So what I'm really trying to add to this discussion is that: "If it does the same thing as something that's already in the language, just in through a different method, it's not necessary. But if it does the same thing as something that's already in the language, but better, it probably should be implemented."

I'm working on Swordfight again! Come tell me what you think!
http://forum.thegamecreators.com/?m=forum_view&t=158681&b=19
Mistrel
Retired Moderator
18
Years of Service
User Offline
Joined: 9th Nov 2005
Location:
Posted: 18th Oct 2009 11:07 Edited at: 18th Oct 2009 21:08
Edit: Discussion moved off the forum.

Nathaniel
20
Years of Service
User Offline
Joined: 28th Sep 2003
Location: Dallas, Texas
Posted: 18th Oct 2009 12:27 Edited at: 18th Oct 2009 17:28
-removed-

-N.

Not all who wander are lost. - J.R.R. Tolkien

Login to post a reply

Server time is: 2024-05-03 12:49:30
Your offset time is: 2024-05-03 12:49:30