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 / Dark Basic Elite - A Question

Author
Message
PeteyM5
16
Years of Service
User Offline
Joined: 26th Feb 2009
Location: Buffalo NY USA
Posted: 17th Aug 2012 09:31
OK, I was directed here after posting a question about if there are any future planned extensions to Dark Basic (Professional)

Adding more commands is one thing people want to see. I want to see some standard things that are present in every other Basic be part of the core like ELSEIF, SGN, MID$(Start, Len), etc.

How about consolidating commands and functions that do a similar job. Like PRINT and PRINTC, can be just PRINT. If text is continued on the same line, end the Print statement with a SemiColon (. { Print "Hello World."; } That was something common in old BASICS on Commodore, Atari, and Apple 8-bit computers. I am pretty sure there are a bunch of commands can be combined down to do the same job.

If more commands are added, the help file will get longer also and trying to research something will become more tedious.

Is it possible to make ENDCASE optional? The next statement is always the next CASE statement.

I say have Dark Basic Elite and AppGameKit have common core compatibility. Maybe have the extra DirectX 3D intense stuff only be in Dark Basic. Some of those mobile platforms have issues trying to do the same functions that DirectX and 3D cards on the PC do.
Mac
20
Years of Service
User Offline
Joined: 18th Jan 2005
Location: London
Posted: 17th Aug 2012 17:06
I just have one question, what would the lead time to market be on something like this?

I certainly think it is a fantastic idea, and quite frankly it should encourage some fresh interest in DBP as well, which in my opinion is sorely needed to keep it alive as a viable game development language with regular updates and support.

/\/\@<
Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 17th Aug 2012 18:27
Quote: "... with regular updates and support"


That's going to be a huge hurdle for TGC. That's asking waaaaay to much of them.

ExoDev.Com - A Game Development Tools Website! Featuring: XBOX360 CONTROLLER LIBRARY
Juggernaut
13
Years of Service
User Offline
Joined: 12th Mar 2012
Location:
Posted: 17th Aug 2012 18:42
Quote: "Quote: "... with regular updates and support"

That's going to be a huge hurdle for TGC. That's asking waaaaay to much of them."


ummmm.....
Todd Riggins
20
Years of Service
User Offline
Joined: 29th Oct 2004
Location: Texas, USA
Posted: 17th Aug 2012 19:04 Edited at: 17th Aug 2012 19:06
Hi Juggernaut,

Well with my rant here:
http://forum.thegamecreators.com/?m=forum_view&t=199018&b=1&msg=2379190#m2379190

and here:
http://forum.thegamecreators.com/?m=forum_view&t=180294&b=1&msg=2357995#m2357995

And wtih the "Your 3 Most Annoying Bugs" Thread:
http://forum.thegamecreators.com/?m=forum_view&t=193289&b=1

Where they can't even complete those bugs(ie: Last bug fix'd in the Dbpro's google's code log was back on May 26th by IanM ).

Do I not have the right to state a fact? I'm not trying to stir up the kettle here, just voicing a concern.

I just don't understand why people would want DBPro Elite when it's just going to follow the same path DBPro has all these years.

I simply would like to see all the bugs in the "Your 3 Most Annoying Bugs" Thread squashed, sound volume working for all sound cards and proper handling of a lost device. Then go for DBPro Elite if so desired. I would like to see some dedication into a bug free product first. That's all I ask.

ExoDev.Com - A Game Development Tools Website! Featuring: XBOX360 CONTROLLER LIBRARY
Juggernaut
13
Years of Service
User Offline
Joined: 12th Mar 2012
Location:
Posted: 17th Aug 2012 19:36
Yeah Todd, I guess you are right, unfortunately

Hope the emperor (Mr. Lee) listens to his followers .....
Weave
AGK Bronze Backer
18
Years of Service
User Offline
Joined: 26th Sep 2006
Location:
Posted: 20th Aug 2012 01:19
Yes, please, this is what the community has been anticipating for years.

Keep the help files local, with examples, this is how people learn easily in dbpro, AppGameKit manual is more fiddly as it is online which equates to slow or incomplete learning.

With the features mentioned, I don`t think there would be any issue with people paying the price as the quality and speed would justify the investment.

Please include a `web player` for this, like in Blender and Unity as today games I feel have to be playable online to ever coordinate their distribution, playability and database. If you have to download them, it limits the number that will try to and makes them less secure.
Booma
16
Years of Service
User Offline
Joined: 29th Mar 2009
Location:
Posted: 20th Aug 2012 11:28
Count me in.
BLINX123
19
Years of Service
User Offline
Joined: 23rd May 2005
Location:
Posted: 20th Aug 2012 12:19
I could totally see myself paying 100 quid for it.

But please stay away from OOP.
There are more than enough mind-crippling OOP languages out there already.

If you want to make something futureproof, stay procedural but encourage/award people to try writing their programs in a functional manner.

Anti-modular/anti-parallel programming paradigms should be a massive no-no in today's gaming environment.
MrValentine
AGK Backer
14
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 20th Aug 2012 14:25
As I am just teatering into OOP... Is it not modular?

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 20th Aug 2012 14:40
For OOP, if TGC were to implement it into DBP, I think it would be optional (like it is in C++) rather than forced (like C#), I imagine it working in a similar manner to User Defined Types, except you can use functions and declare other classes. I would not be for DBP changing to OOP over its procedural approach, but instead have it as an option for those who choose to use it. In other words, add more options, attempt to be more inclusive.

Kind of like using Dark GDK in a way, as you're using C++, you're able to take the standard DBP approach of being procudural and DGDK commands are designed in such a way to accommodate for that and Dark GDK's examples are all procedural. However, it is possible to stick everything into classes and take the OOP approach should you choose to do so. With the ability to use a FreeObject() command it deals with ID numbers for those who prefer OOP. Personally, I would like to see that flexibility in DBP, of course, not complete C++ functionality, because that's not plausible, but having the option to use classes would be a plus in my opinion. And if you don't like classes, you don't have to use them.

Juggernaut
13
Years of Service
User Offline
Joined: 12th Mar 2012
Location:
Posted: 20th Aug 2012 17:02
@Seppuku Arts: +1
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 20th Aug 2012 17:41
I don't want OOP, I like DBPro the way it is. Gene Hunt disagrees...

http://www.youtube.com/watch?v=8Lt2U7_NImQ

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 20th Aug 2012 18:32
That's the point about it being optional and not being forced, Gene Hunt can have his 'oops and and you can say "sod 'em".

Personally speaking, I loved DBP for a long time, then later had a run in with OOP, loved it and see that there's folk out there who prefer it to procedural programming, I don't see what the harm would be in having both. It just means DBP is more accessible. Simply adding the ability to use classes wouldn't affect your coding in the slightest.

PeteyM5
16
Years of Service
User Offline
Joined: 26th Feb 2009
Location: Buffalo NY USA
Posted: 20th Aug 2012 18:52
I say make AppGameKit and this new Dark Basic Elite have common Logic, Arithmetic, File IO, Program Flow, 2D Graphics, and User Input Command Structure. That way if someone ways to port a game from Dark Basic Elite to use on mobile devices, they can transfer the code into AppGameKit and only make minor adjustments. There are probably some of 3D stuff that is problematic for mobile devices and leave it in Dark Basic that runs with PCs that have the fast video cards.

I did suggest consolidating some of the redundant commmand structure and that right there make it easier on the programmer and improve performance. There are a few things in the plugins that should be in the Dark Basic Core. I know some of those plugins are made by independent programmers, maybe have the ones done by "The Game Creators" consolidated either into Dark Basic Elite or just one or two plugins.

I agree supporting multiple APIs like DirectX and OpenGL would be difficult. You will be adding many more commands into Dark Basic with that, compiler would be huge. Would need something like Websters Dictionary for the help. Like I say having too many commands and functions is becoming a problem with these modern programming languages. Can we do the same job with less commands with optional parameters?
WLGfx
17
Years of Service
User Offline
Joined: 1st Nov 2007
Location: NW United Kingdom
Posted: 20th Aug 2012 19:21
OOP takes a little more to understand but imagine having classes not far from those of C/C++ ie:



And supporting multiple API's wouldn't be adding lots more commands per API, it would only need those API's implemented such as the Irrlicht and Ogre3D engines do. The initial setup will only activate openGL or DX, the rest of the DBP commands will still draw 2D and 3D on the screen.

Mental arithmetic? Me? (That's for computers) I can't subtract a fart from a plate of beans!
Warning! May contain Nuts!
DarthBasicVader
19
Years of Service
User Offline
Joined: 28th Nov 2005
Location: Cyberspace
Posted: 20th Aug 2012 20:18
Hi Lee, just one additional question before answering to your poll:
how long will it take to develop a stable version of DB Elite ?

Riccardo
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 20th Aug 2012 20:39 Edited at: 20th Aug 2012 20:45
Quote: "OOP takes a little more to understand but imagine having classes not far from those of C/C++ ie:"


Looks like a nightmare. If some of you want OOP fine, but if DB Elite looked like that I would avoid it. Just make sure that I don't see any of it, and it doesn't mess up the help files. And don't replace Dim with Type. I like Dim.

Brendy boy
19
Years of Service
User Offline
Joined: 17th Jul 2005
Location: Croatia
Posted: 20th Aug 2012 23:12
Quote: "And don't replace Dim with Type. I like Dim."

why would they replace dim with type? Dim is one thing and type is something completely different

Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 21st Aug 2012 01:25 Edited at: 21st Aug 2012 01:38
Quote: "why would they replace dim with type? Dim is one thing and type is something completely different"


Oh, well in VB they are the same. I used a Type once, and could never read my code, so I don't use them anymore. I use Dim instead.

The one time I ever used it...

Type ResultInfo
No1 As Integer
No2 As Integer
No3 As Integer
No4 As Integer
No5 As Integer
No6 As Integer
No7 As Integer
End Type
Type XFilesInfo
YHeight As Integer
RandStore As Integer
Event As Integer
TimesUsed As Integer
End Type

...Horrible!

Replaced...

Dim Results(7)
Dim Info(4) `Yheight Randstore Event TimeUsed

... Nice!

JackDawson
13
Years of Service
User Offline
Joined: 12th Jul 2011
Location:
Posted: 21st Aug 2012 02:07 Edited at: 21st Aug 2012 02:17
Hey Lee,

I am looking forward to the Elite edition. I can then update my software. Here is just one program of mine that I'm speaking about...

http://forum.thegamecreators.com/?m=forum_view&t=199621&b=8&p=0

Improvements in Graphics and speed, oh yea, I'm really looking forward to this.

TorakTu - The Object Designer and SpaceGame
http://toraktu.com
BLINX123
19
Years of Service
User Offline
Joined: 23rd May 2005
Location:
Posted: 21st Aug 2012 02:16
Quote: "OOP takes a little more to understand but imagine having classes not far from those of C/C++ ie:
"


You make it sound like OOP is complicated, when it's really a dumbed down approach. There's nothing complicated about it and the sole reason for it's existance is the very fact that mediocre programmers outnumber great programmers by a margin of 1/10.

Classes (and the inheritance that comes along with it) are kind of pointless as well. No one ever needed them before OOP came along. They aren't a solution but part of the problem.

I also can't see how it would be possible to make OOP optional. It didn't work out for C++ (it didn't take very long before everyone started spamming his object oriented garbage all over the place), why would it work out for any other language?

OOP deserves to be purged not only from every curriculum worldwide but game development and the industry as a whole. It isn't efficient and it pretty much ruins every language I ever loved (including the original C).

If you want something to be flexible, efficient and futureproof, you better go with procedural/functional and proper support for inline ASM (which I sorely miss. IMHO, they should add it to Dark Basic Elite)

PS: What's up with the "C/C++" thing? I've seen this a couple of times all over the internet now. Proper C isn't even synthatically close to C++. For one, there are no classes in pure C code.
Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 21st Aug 2012 03:01 Edited at: 21st Aug 2012 16:01
Quote: "PS: What's up with the "C/C++" thing? I've seen this a couple of times all over the internet now. Proper C isn't even synthatically close to C++. For one, there are no classes in pure C code."

C++ is a superset(though not a strict one) of C. Most C code can compile in C++ without major modification.

And as to your argument that it isn't efficient, it's not like OOP is forced on anyone. If the programmer doesn't want to use trade some (very small) performance losses for a more object-oriented programming approach, they don't have.

The object-oriented approach is actually ideal for game development, because the functional paradigm doesn't preserve program state very well while OOP is all about preserving state.

Quote: "It didn't work out for C++ (it didn't take very long before everyone started spamming his object oriented garbage all over the place), why would it work out for any other language?"

That's the programmer's choice isn't it? C++ is a general-purpose language, not a purposefully functional language like Haskell or Lisp(without CLOS of course). The programmers obviously thought that OOP was worth using, so they used it.

I can't imagine the mess needed to replicate this class(just the header file):

and have all the variations and specializations that I require for my game(NPCs, enemies, etc) without an huge explosion in the number of lines of source code and the repetition of particular parts of the code.

Andrew_Neale
15
Years of Service
User Offline
Joined: 3rd Nov 2009
Location: The Normandy SR-2
Posted: 21st Aug 2012 10:16 Edited at: 21st Aug 2012 10:17
In response to Pincho Paxton:

Why would you do that? The 'dim' command simply dimensions an array or, in VB, any variable. Almost all programming languages will have a collection object (such as array) as a base data type rather than having to create one for yourself, which, even if you were going to build one yourself, you would not do as you described above. In VB for example, you would use 'Dim arrayName() As Integer' to create an array where each had an integer value. The 'Integer' part of that line is the 'type'. The 'dim' command is NOT the same as the 'type'

I can't honestly say I see anything about OOP that is a nightmare but I do see a lot of ways it makes things easier and more efficient.

In your example, you would not need your ResultInfo class/type, but would still use the XFilesInfo class/type so that you can access the properties by name rather than having to remember indexes in an array. The other really nice thing you can do is have that array inside a class/type so that you can have arrays that belong to other objects. For instant 'player.inventory[0]' which would access the first item in the player's inventory. In non-OOP you would have to have these as unrelated values which you have to link yourself which gets more complicated once there are multiple objects, each with their own inventory. In OOP, not a problem.

The point you were complaining about however is more to do with you not understanding the available data types or syntax. This has nothing to do with it being OOP.


Previously TEH_CODERER.
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 21st Aug 2012 12:19 Edited at: 21st Aug 2012 13:23
Quote: "I also can't see how it would be possible to make OOP optional. It didn't work out for C++ (it didn't take very long before everyone started spamming his object oriented garbage all over the place), why would it work out for any other language? "


It didn't work out because many have chosen to use OOP or because they're forced to use OOP? Check out Dark GDK, check out its samples, not a single class, no OOP, all procedural. Dark GDK is designed to favour procedural, but doesn't make OOP impossible for those who wish to use it.

For example here is (from the samples folder):


Quote: "OOP deserves to be purged not only from every curriculum worldwide but game development and the industry as a whole. It isn't efficient and it pretty much ruins every language I ever loved (including the original C). "


That's up to the programmers. If you're able to use procedural and you prefer the method, I am not exactly sure how it ruins your favourite languages, because last time I check C++ doesn't force you into OOP. There are libraries that do (like Irrlicht), but you can't exactly dictate how other programmers choose to program.

Talking of inefficiency, Dark Basic Pro is in itself inefficient, it is designed for ease of use. But people use it and even create professional products from it. Interestingly, using an Irrlicht wrapper inside of DBP is more efficient than using DBP SDK as we've found by testing it, that it's faster (I've not found by much, maybe, 10,15fps in the example, but WLGfx has found he's got a 25% increase). Irrlicht is OOP, Dark Basic Pro SDK is procedural. All those OOP commands are wrapped up inside of the DLL. It's possible that Irrlicht would be more efficient if procedural, I do not know, but what I do know is that DBP isn't as efficient as it should be, but it provides plenty of use to the user, which at the end of the day is what it's designed for. IMO, OOP would add to that.


Quote: "If you want something to be flexible, efficient and futureproof, you better go with procedural/functional and proper support for inline ASM (which I sorely miss. IMHO, they should add it to Dark Basic Elite)"


If there's a demand for it, why not? At the end of the day, TGC will probably implement features that are in demand and that are worth their time adding. If enough people want OOP, I'm sure they'll consider OOP. Same for Inline ASM. Perhaps you could cook up to made up code to show us how it might work inside of DBP. Who knows, somebody else might think it's a good idea?

Quote: "
I can't imagine the mess needed to replicate this class(just the header file):+ Code Snippet
and have all the variations and specializations that I require for my game(NPCs, enemies, etc) without an huge explosion in the number of lines of source code and the repetition of particular parts of the code."


Agreed. The main use I personally find for OOP is the fact classes are replicatable and are able to contain plenty of data. I used UDTs in Dark Basic Pro to help manage my code in a similar way, but I would see it working better if there were classes too. In essence a UDT is a class without the ability to use functions inside, so a part of the functionality of a class already exists in DBP.


Quote: " For instant 'player.inventory[0]' which would access the first item in the player's inventory. In non-OOP you would have to have these as unrelated values which you have to link yourself which gets more complicated once there are multiple objects, each with their own inventory. In OOP, not a problem."


I found my inventory system has been vastly improved using OOP, or heck, UDTs in DBP. If you wanted each item to have an attribute, in procedural you'd be doing:
dim ItemID()
dim ItemName()
dim ItemCount()
dim ItemDescription()
...

Whilst it'd work. I find it's tidier to stick them into a class. I can then declare it for an Enemy class, or a player class or even a room class. Using an array in the above method, sure I could have it 2 dimensional, so the first number denotes say, a player or an enemy and the second number is the slot, but I think in terms of coding that'd be inefficient because you'd have to go back and adjust the size of the array everytime you add something new and when you consider you might have 5 different characters and a 100 different enemies and 40 different rooms, it could start getting messy. Whilst it's not impossible to manage in procedural, OOP deals with this in a much better way IMO. I see nothing wrong with making life easier for the programmer or offering them quicker methods, because it means for one thing, they're being more efficient, whilst the code might not be as efficient, but then, we sacrifice efficiency for ease & speed of use anyway. It's the whole reason higher level languages exist. However, to the end user, this isn't exactly noticeable.

A coder at the end of the day will use their preferred method.

Quote: " And don't replace Dim with Type. I like Dim."


It won't. DBP already has types and it hasn't replaced dim, it just can be declared using dim. What's being asked is for TGC to add to Dark Basic, not to take away. Heck, adding functions to types would be all that's needed to satisfy anybody who wants to use OOP. The functionality is almost there.

Andrew_Neale
15
Years of Service
User Offline
Joined: 3rd Nov 2009
Location: The Normandy SR-2
Posted: 21st Aug 2012 12:57
@Seppuku Arts - Full agreement here. I'm currently working by prototyping in DBPro and then, each time I have a new "module" I need, building it in C++ to take advantage of OOP and turning it into a plugin and then using that plugin in DBPro whilst prototyping the next bit. At the end of it I have a fully functional and potentially more efficient DBPro game/application with a bunch of reusable functionality as plugins, but also one that takes very little effort to port to fully C++.

I would've thought that just adding a more full class functionality to DBPro would make very little difference to anyone not using 'types' already and anyone already using 'types' should find it a very small change. I'm certainly not saying to make DBPro fully like C++/C# as it just isn't what DBPro is about.


Previously TEH_CODERER.
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 21st Aug 2012 13:13 Edited at: 21st Aug 2012 13:15
If people are worried about TGC themselves coming to favour OOP and it invading their products, I think it's safe to suggest that TGC favour procedural, DBC, DBP and AppGameKit Basic are all procedural, Dark GDK examples are all coded as procedural and the library is procedural too and I wouldn't be surprised if AppGameKit Native was the same. Dark GDK.NET is the exception it seems, but it's a wrapper written by a third party. Dark GDK 2.0 will have C# & VB.NET, also a 3rd party project. But in C++, it pretty much remains true to 1.0.

It just means people like me are doing OOP and yes, my tutorials would be OOP. I already favour 'types' and have a coding style that tries to make full use of them. The change? Adding functions to types. I see very little DBP code out there that makes full use of types. I suspect many out there will stick with what they know from DBP, whilst others would explore any new methods they can use.


Also, I have been using DBP to prototype stuff for my current project, as it is not a DBP project, but the wonderful thing about DBP is you can jump in, code something and get results quickly. For example, I wrote my character class system in DBP first before jumping into C# with it.

Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 21st Aug 2012 16:20
Quote: "
In your example, you would not need your ResultInfo class/type, but would still use the XFilesInfo class/type so that you can access the properties by name rather than having to remember indexes in an array."


Remembering Indexes is why I like Dim. Because once I remember the indexes I can run the program in my head. That's the advantage.

Andrew_Neale
15
Years of Service
User Offline
Joined: 3rd Nov 2009
Location: The Normandy SR-2
Posted: 21st Aug 2012 16:59
Quote: "The change? Adding functions to types."

Yes, this and collections/arrays within types and I'd be very satisfied.

Quote: " the wonderful thing about DBP is you can jump in, code something and get results quickly"

Exactly, I have never found another way of so quickly, but still with so much versatility and freedom, getting something up and running. This is again why, whilst the features above would be good, and I'm happy to state a defence of OOP, I wouldn't want DBPro to change to much in its structure/syntax.

Quote: "Remembering Indexes is why I like Dim. Because once I remember the indexes I can run the program in my head. That's the advantage."

Again, they're called 'arrays' not 'dims'. I'm not sure I follow though. With indexes you'd be mentally mapping a number back to what it represents. If you have the properties, then there is nothing to map. E.g. The first index of an array such as 'Info(0)' might represent a filename. With properties this could be 'Info.Filename'. You could still run this through in your head as eaily if not more easily.


Previously TEH_CODERER.
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 21st Aug 2012 17:12 Edited at: 21st Aug 2012 17:15
Info.Filename is not a number it's a set of words. Dim Info(1) is a number.

Like...

X(1)

...is a position. I can store that in my head, and loop it to make a grid. I can then mess with the loop in my head to make it do different things. All I have to remember is the loop, and the inc, and the X(n), Y(n), Z(n), which at the moment I use to create an hexagon shaped grid.

I can't run this in my head...

Info.Position
Position.X

I don't even know what it means? I can't remember if I have written it properly either.

Andrew_Neale
15
Years of Service
User Offline
Joined: 3rd Nov 2009
Location: The Normandy SR-2
Posted: 21st Aug 2012 17:26
Quote: "Info.Filename is not a number"

Correct thus far.

Instead of having 3 separate arrays for the X, Y and Z components, you could have an array of the points, each with an X, Y and Z component.

For instance, a triangle could be created as:
Points(0).x = 0
Points(0).y = 0
Points(0).z = 0
Points(1).x = 0.5
Points(1).y = 1
Points(1).z = 0
Points(2).x = 1
Points(2).y = 0
Points(2).z = 0

That way each point is managed as its own item rather than having 3 un-linked arrays where if the indexes were messed up, the 3 components could end up out of sync with each other.

Anyway, this has probably gone on too long as it is in a thread not titled 'Benefits of OOP', so sorry for the slight diversion!


Previously TEH_CODERER.
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 21st Aug 2012 17:35 Edited at: 21st Aug 2012 17:37
I can't read it now because it is backwards...



X(0) is now Points(0).x or (0).x which is Japanese, and I don't store information backwards like that. It seems to send the energy in my brain in the wrong direction, and I get a headache.

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 21st Aug 2012 18:44
The way my brain reads it is not like a sentence, but a directory or a database. I suspect if you're using 'X' for more than one thing, you might have some confusion. In DBP before using UDTs I'd have pX, pY, pZ (p = player), cX, cY, cZ (c = camera). With OOP you might have X, Y & Z as a class or UDT called 'transform'. Which I might have inside of my 'Player' object. So in my head: player(1).position.x I would be looking up 'Player(1)' in my directory, then look for its position, but I only want it to look at its X axis. This means all of my player variables are grouped together, rather than set loose.

However, both work and both are acceptable. But that's how I tend to think in OOP.

PeteyM5
16
Years of Service
User Offline
Joined: 26th Feb 2009
Location: Buffalo NY USA
Posted: 23rd Aug 2012 02:09 Edited at: 23rd Aug 2012 02:12
I still say the first move is to consolidate and simplify the Dark Basic Professional Core and make it can do the same stuff with less commands and functions. Dark Basic does not need to be object oriented since it is geared to work with Graphics and Games. Put something together to better handle Logic, Arithmetic, and Program Flow. I stated many times not having an ELSEIF command makes it harder to write something after your program logic starts getting many layers thick. Starts getting harder to debug and messy when you have 10+ nested ELSE:IF...ENDIFs, bounded together. SELECT...CASE...ENDSELECT works but don't think ENDCASE is not necessary. Maybe add simple compare to case, [ CASE >5 , CASE <=8 ], or ranges [ CASE 5 TO 8 ].

If Lee Bamber is talking about consolidating some of the add on packs, I say do the ones that boost performance. If we end up with several commands just about doing the same thing, maybe combining them down.
Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 23rd Aug 2012 02:47
Cloth physics would be good, and they need improving.

Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 23rd Aug 2012 04:14
Quote: "I still say the first move is to consolidate and simplify the Dark Basic Professional Core and make it can do the same stuff with less commands and functions. Dark Basic does not need to be object oriented since it is geared to work with Graphics and Games. Put something together to better handle Logic, Arithmetic, and Program Flow. I stated many times not having an ELSEIF command makes it harder to write something after your program logic starts getting many layers thick. Starts getting harder to debug and messy when you have 10+ nested ELSE:IF...ENDIFs, bounded together. SELECT...CASE...ENDSELECT works but don't think ENDCASE is not necessary. Maybe add simple compare to case, [ CASE >5 , CASE <=8 ], or ranges [ CASE 5 TO 8 ]. "

If you need that many if/endif pairs, you need to rethink your design. I know that sounds like a cop-out to not add elseif, but it smells of bad design(or bad implementation) on the programmer's part rather than a language flaw.

Select is how it is because it corresponds with the C-style switch statement and is readily known in the programming world. I've never seen a select or switch statement where a range was allowed, though you could simulate such a range in C/C++ with something like this:


I say leave the base constructs alone(SELECT,DIM,TYPE[though methods in TYPEs would be nice], and the loops) while consolidating functionality(perhaps integrate Matrix1Utils in the core engine?).

Quote: "Dark Basic does not need to be object oriented since it is geared to work with Graphics and Games."

OOP actually makes it a lot easier to maintain information easily, because it automatically maintains state and you don't have to keep a global state variable or passing the current state into every function that might need it. And in any case, OOP allows for complex hierarchies that can eliminate some truly wasteful code redundancy(see my Character class example above, the cpp file is well over 200 lines long and I wouldn't want to repeat the majority of those lines for every specialization of that class(and that's excluding the all important update() function, which is about 100 lines long in the NPC class that inherits the Character class).

Ortu
DBPro Master
17
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 23rd Aug 2012 06:51 Edited at: 23rd Aug 2012 07:03
I'd like to see associative arrays. That is, arrays whose data can be accessed by either index or by key.



Sasuke
19
Years of Service
User Offline
Joined: 2nd Dec 2005
Location: Milton Keynes UK
Posted: 24th Aug 2012 20:24
I'm totally for DBPE, your money is mine

But one thing I would like to see is more information on what things are. And from a selling point when I brought DBP all those years ago the list of features that I had no clue what they mean't really didn't sell it for me. It's only lucky that was using DB at the time and could see that this was the next step. Potential Visibility Set pretty much tells me nothing. And had to search the internet for every definition but that didn't help cause the wording.

Now comes the help files. The problem with the help files is you have no clue what things are. For instance you look at a command like:

LOCK VERTEXDATA FOR MESH
This command will lock the vertexdata of a mesh, allowing it to be modified by the vertexdata commands.


This tells me everything I want to know, great... so what's vertexdata?

Memblocks
This command set creates, deletes and modifies memblocks, which are used to modify the most often used assets such as images, sounds, meshes and bitmaps. Memblock is short for memory block.


Awesome. Let's make a memblock. ID = 1, SizeInBytes...? I have no freaking idea how many bytes I need? Look for the explanation... can't find explanation. Never use memblocks.

Now what DPB/E needs rather than help files is a sort of Wiki that tells us what everything is. If we don't know what a word is we look up the description and what it's used for in the wiki. Since most of the community can answer this that wiki will be filled in days. This way we can save people time on the forums answering the same questions over and over.
Almus
13
Years of Service
User Offline
Joined: 27th Aug 2011
Location: Brasil
Posted: 24th Aug 2012 22:03
dont waste time with dbpro, i like it, but the future is multiplatform and the agk is very good. make agk better with 3d commands, plugin support, etc. With 3d commands agk will be the best.
mnemonic
18
Years of Service
User Offline
Joined: 14th Jan 2007
Location: Sweden
Posted: 25th Aug 2012 00:36
Quote: "Now what DPB/E needs rather than help files is a sort of Wiki that tells us what everything is. If we don't know what a word is we look up the description and what it's used for in the wiki. Since most of the community can answer this that wiki will be filled in days. This way we can save people time on the forums answering the same questions over and over."


Sounds like you've got an idea,,,

As I see it,,, DBPro assumes that you have atleast basic knowledge in game development so does engines like FPSC, unity, Cryengine and such, they are just 'already made engines by others that you can use to build your game on' or RAD (Rapid Application Development) tools. Many people wants to make games, but not all of them can do this and gets disappointed when they cannot make the game of thier dreams. There's no easy way to learn,,,, study, study, study. Start at the fundamentals. Grab a book about the DirectX API for example, it will provide you with good fundamental knowledge!

www.memblockgames.com
Soviet176
15
Years of Service
User Offline
Joined: 19th Sep 2009
Location: Volgograd
Posted: 25th Aug 2012 06:18
Yes, yes, yes and ummm yes. I would love to see GDK 2.0 added. I would pay even more. I would really like to see multi-core support. Count me in.

Sasuke
19
Years of Service
User Offline
Joined: 2nd Dec 2005
Location: Milton Keynes UK
Posted: 25th Aug 2012 16:09
Quote: "Grab a book about the DirectX API for example, it will provide you with good fundamental knowledge!"


I've got that book plus another hundred or so sitting around and totally agree. Even if it's not DBP specific, these books can be a life saver
KISTech
17
Years of Service
User Offline
Joined: 8th Feb 2008
Location: Aloha, Oregon
Posted: 26th Aug 2012 21:28
It's been a while since I've looked at anything related to DBP so I don't really know what the current state of the various plugins etc. are, but I had to pop in and comment on this.

Performance - If DBElite gains a significant performance boost over DBPro, then count me in. I'm one of those that has pushed DBPro to it's limits and found it didn't have the speed I needed for some of what I was after.

Multiplayer - Lean, mean, no frills base level networking like DarkNet. Add HTTP or FTP commands if you like, but the bread and butter should be simple raw packet exchange. The programmer can then optimize multiplayer communications in whatever way suits the needs of the project.

Graphics Pipeline - I'm good with DirectX. Not much need to do anything else unless you're going to support something other than PC and XBox.

OOP - Sure, why not.

I can't say I would come back to full time game development, but I would probably pick it up again as a spare time thing if DBElite could deliver better performance and fewer of those little bugs that chip away at your time while you're developing.

Chand1012
12
Years of Service
User Offline
Joined: 4th Jun 2012
Location:
Posted: 26th Aug 2012 21:58
will the add-ons for DBpro work with it?

chand
PeteyM5
16
Years of Service
User Offline
Joined: 26th Feb 2009
Location: Buffalo NY USA
Posted: 27th Aug 2012 04:41
From the sound of the initial post about being in modules as core commands, The game creators may be looking to consolidate some of the plug-ins in with the main core. I don't think they will do all of them because they still want to be able to sell the add-ons. So the Add-Ons should still work unless its something that conflicts with DirectX 11.

If several modules are consolidated in with the core, it is likely that there are going to be commands and functions becoming obsolete or will have a whole new structure.

One of my more recent thoughts is a Global / Public variable section (page, file). Maybe do something like "BeginGlobals" .. "EndGlobals" where you don't have to repeat "Global xxx as something" hundreds of times. Seen it done in other programming languages, but no version of Basic does anything like it.
pdq
18
Years of Service
User Offline
Joined: 20th Jul 2006
Location:
Posted: 28th Aug 2012 05:18
I'm in to support the Elite edition. I have not spent as much time on DBPro as I used to. DB is getting old. I've been tinkering with Unity, CryEngine and a couple others, mainly because I am interested in the latest technologies, such as DirectX 11. It would be awesome to use a new DB engine! Count me in for the $99.
mnemonic
18
Years of Service
User Offline
Joined: 14th Jan 2007
Location: Sweden
Posted: 28th Aug 2012 17:33
Mayby this topic has already been discussed, if so I do apologize
(then I totally missed it)

Since the DX11 and DX9 API is different porting apps can be somewhat difficult. But since DBpro is a 'wrapper' around the API I guess that a command such as 'make object cube' can easily be ported since Lee will update the API behind this.

I'm working on an Engine in DBpro that's why I ask.

www.memblockgames.com
Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 28th Aug 2012 18:47
Quote: "Since the DX11 and DX9 API is different porting apps can be somewhat difficult. But since DBpro is a 'wrapper' around the API I guess that a command such as 'make object cube' can easily be ported since Lee will update the API behind this."

I'm sure that the majority of the commands won't change too drastically, though the shader commands will probably be updated and enhanced(since DX11 uses shaders for everything).

sovr
15
Years of Service
User Offline
Joined: 2nd Jan 2010
Location: USA
Posted: 30th Aug 2012 22:52
I think that the new darkbasic elite should have openal, opengl, and opencl functions in it too, so it can at least support mac also. I know agk is used for mac, but I think it would be a great feature and it would attract more people.

oohh yea and I want dbelite really really bad! anyways I have been wanting these features for a very long time!

sov the game creator!
Jeff Miller
20
Years of Service
User Offline
Joined: 22nd Mar 2005
Location: New Jersey, USA
Posted: 31st Aug 2012 00:24
So where does this stand? There are now a month of responses to Lee's question. Make a decision one way or the other, and then announce it so that we can plan our lives.

I would add the following encouragement, which I think is a fair assessment of community cooperation I have seen for the seven years I've been a part of it. Lee can rightfully anticipate considerable community help in development. Small mini-modules of a select group of commands could be posted and the community could test them and report results over a remarkably large collection of different operating systems, processors, and video cards. Draft help files for the modules could be posted and constructive comments for improvement submitted by forum members. Bugs could be identified before release rather than after. I know of many people in this community that would likely contribute, and still purchase the product, rather than expecting it for free, notwithstanding the fact that they helped it along.

Login to post a reply

Server time is: 2025-05-16 18:32:55
Your offset time is: 2025-05-16 18:32:55