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 / DarkBasic Developments

Author
Message
Shadow Robert
21
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 12th Dec 2002 12:30
oki... i'll keep this short cause i'm being pestered and i can barely keeps my eyes open.

now i'd like honest thoughts and opinions on this ...
i've seen and heard alot about this OOL programming, now i've talked to several people - some thing ya'll haven't a clue what OOL is the rest didn't want to comment util they've used the programming language.

so ... the big question we put before you isn't do you want OOL - but rather would you like the setup to change from a linear single-thread routine to multi-threaded style of coding?

now if anyone isn't too sure what this means - rather having a single Do...Loop for your main program and everything contained within them.
you can have several working on different tasks at the same time.

now this is basically the point in hand to be made ... do you want this level of interaction added - stepping pro away from being quite as simple.
The main advantage is being able to create your own render piplines - windows - and in all giving everyone what they want ... especially if Object Orientation is extended to building functions within Types allowing for yup those all inevitable Classes.

We already technically have Object Orientated programming with the Structures, especially due to thier DBpro setup.

this is really to follow up the game engine post, below with what the underline scores.
i'm aware of many game engines within the pipeline for quite a few of the older users - with varying degree's of adaptability.

the only real draw back is to achieve something like this the engine and language would have to be altered.
language to have self containing functions and such.. and the engine to actually accept the new pipeline setup
as i said lemme know your thoughts on this
Anata aru kowagaru no watashi! http://members.lycos.co.uk/timesaga/darkbasic/rvtoken2.jpg[/img]
MrTAToad
21
Years of Service
User Offline
Joined: 26th Aug 2002
Location: United Kingdom
Posted: 12th Dec 2002 13:19
I certainly wouldn't mind - I'm netural on this. However, I don't really see DBPro being redesigned and rewritten to take into account OOP facilities - it would take a long time, and the chances of introducing extra bugs would be large.

As long as the address of functions and variables can be fetched and structures can be passed and returned, it should be left at that.

Good news everybody! I really am THAT good...
Digital Awakening
AGK Developer
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 12th Dec 2002 13:35
Well I don't know exactly what OOP is but I want DBP as it is but I wouldn't mind multithreading at all. Nice for AIs and I bet for other things as well.

[b]Digital Awakening
Game in developement: 3D RPG - The Magic Land
Visit DigAw.com for more info and shots
waffle
21
Years of Service
User Offline
Joined: 9th Sep 2002
Location: Western USA
Posted: 12th Dec 2002 13:53
my pref. would be for DBPro to become more simplistic instead of more complex. Simple = smaller .exe, and faster code with fewer bugs. The DB Team is working on the last aspect. Also, they need to work on some compatibility issues as well.

Pointers and stuff is good enough for advanced users, but some high-level functions should be added....

create object from memblock, animate object mesh from list... Save Object.
currently, this is possible (slightly), but this is a directx issue that needs and should have a wrapper function.
At the verry least, how about a pointer to the object so the object can be scanned via a .DLL and it could store the object data? but then comes the next issue, how to load this object back in? And then there's the why... i have beta-tested Impossible Creatures and would like to be able to combine creatures like that in one of my games... how would i go about that and still support mesh deformation animations ?

on the small .exe issue, have you seen there idea of a compact .exe file ? It gives a 72KB .exe with a 3.5MB pak file without any media. What gives? the .exe will not run without the pak file so whats the purpose?

also, the help file does not explain any settings either.
this stuff should be fixed, adding OOP just creates more problems. Multi-Threading operations also should be avoided.
I use them for my servers to support multiple clients, but there is too much of a performance hit once you add a 3D display surface.

rather, i think DBPro needs to add a P-P Gateway protocal to there networking stuff to help users behind a firewall.
currently i write my own server that works as a relay station and then the gamers connect to this server to play.

hope i didn't ramble too much here
waffle
registered PB user
Kale
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: United Kingdom
Posted: 12th Dec 2002 14:30
just simple thread commands would be okay!

What the flame does not consume, consumes the flame.
------------------------------------------------------------------------
AMD XP2100+, Geforce4Ti 4400, 512Mb DDR, Abit KX7, WinXP Home
Kangaroo2
21
Years of Service
User Offline
Joined: 26th Sep 2002
Location: United Kingdom
Posted: 12th Dec 2002 15:18
I agree that thread commands would be useful and OOP would bew a welcome addition IF you could carry on using DBPro as b4, with added functionality. If it would mean having to rewrite all my code AGAIN to have it work I'd... I'd... well I'm not sure what I'd do!

I don't see how people could object to new ways of programming, so long as they aren't forced to use em - I say: great idea for the future, I would certainly welcome and use such functionality, but let them get this version working properly before further complicating things!

* If the apocalypse comes, email me *
Ratty Rat
21
Years of Service
User Offline
Joined: 24th Sep 2002
Location:
Posted: 12th Dec 2002 15:28
My preferred method of approaching any large project is Object Orientated (lets remember here that the Object Oriented approach is a methodology designed to be applied to any large project, not just computer development). So in planning a (large) DBPro project I start by using OO and work down.

Having said this I think DBPro is fine the way it is (or will be once everythings working, almost there now). Trying to Tag on OO structures at this point would only make a mess of a nicely rounded language.

A games/graphics biased OO language would be cool, and if its base language was Basic that would also be Cool, but if you want the DB team to do it I would suggest waiting until DBPro is stable and complete and then starting on an OO language as a new project ( Dark Basic 3 ? or how about Dark Object Orientated Basic AKA DOOB? )
ChipOne
21
Years of Service
User Offline
Joined: 12th Sep 2002
Location: Canada
Posted: 12th Dec 2002 22:22
hehehe....I like DOOB

-= i only do what my rice krispies tell me to do =-
G Man X
21
Years of Service
User Offline
Joined: 11th Dec 2002
Location:
Posted: 12th Dec 2002 23:46
My concern about the multithread aspect of programming is that it strives towards an idealised mode of operation to which the hardware as it is cannot be coerced.

The potential of multiple processor and SIMD devices, for instance, is far from fully explored at this time. However, until large-scale SIMD or some other means of multiprocessing becomes a reality for most users I am of the opinion that multi-threaded pre-emptive multitasking is a bit of a liability. My experience of Windows is best summed up by the word "instability". Add to that the enormous processor loads of modern gaming and the potential for disaster grows huge. The bottom line for me is that the linear programming paradigm is the one that suits the modern linear processor best. Perhaps the Ix boys might disagree with me on this.

Mac has a cool setup with ProTools Audio, for instance. You slam in a four-processor DSP board and you have eight simultaneous audio tracks or eight simultaneous audio FX or any combination of the two.

In todays world the hardware to run astonishing games exists. I would dearly love to see a return to a dedicated gaming OS which uses the hardware in the way it was designed. Descent I cleanbooted under DOS4GW is almost unplayably fast on my PIII 450! Without all that Windows schmutter in the way you really could make your 3GHz Pentium and GeForce FX lift off.

Good The Boyz Have Done It Is!
G Man X
21
Years of Service
User Offline
Joined: 11th Dec 2002
Location:
Posted: 12th Dec 2002 23:52
...oh and while I'm on the rant, when John von Neumann pointed out that control code could share the same random access memory as data somebody should have jumped on him and stuck a sock in his mouth. (A clean one, of course!)

Good The Boyz Have Done It Is!
Ratty Rat
21
Years of Service
User Offline
Joined: 24th Sep 2002
Location:
Posted: 13th Dec 2002 14:08
Yes, and yes, but I think we may be a little out of the way of the DBPro teams scope for development

Well, maybe the dedicated game OS, but we`re getting close to console territory here, perhaps an upgradeable console instead??
Van B
Moderator
21
Years of Service
User Offline
Joined: 8th Oct 2002
Location: Sunnyvale
Posted: 13th Dec 2002 16:52
Something that I'd like to see is a timer command, a timer command can do OOP style functions without affecting the main loop.

For example, say I had a function that changed the timer display every second. Instead of doing this every loop - I would use a command like ON TIMER 1000 function_second. This would run the 'second' function every second, fairly easy to use and very powerful. This method was used a lot on 68000 processors because they had programmable interupts, these would allow really cool tricks, like playing music independently and copper backgrounds (allowing pallete changes partway down the screen).


Van-B
MrTAToad
21
Years of Service
User Offline
Joined: 26th Aug 2002
Location: United Kingdom
Posted: 13th Dec 2002 18:06
Yes - I certainly would like interrupts too - there's a lot you can do : mouse pointer movements etc

Good news everybody! I really am THAT good...
Kangaroo2
21
Years of Service
User Offline
Joined: 26th Sep 2002
Location: United Kingdom
Posted: 13th Dec 2002 19:38
I agree with VanB on that one. Timers are easier to understand too, so wouldn't cause newcomes as many problems

* If the apocalypse comes, email me *
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 13th Dec 2002 20:10
Sorry guys, but timers are probably not going to happen.

2 Scenarios:
a) Interrupt at any time.
What if you're mid-draw of an object, and your timer
routine moves it.
What if you're midway through accessing a string or
array, and the timer routine moves it in memory -
something as simple at 'a$="xxx"' would move a string.

You would have all of the problems of multithreading,
and only some of the benefits.

b) Only interrupt when 'safe'.
This can only happen between your commands, which would
need extra code inserted automatically between each of
your commands - making the program much slower.

Personally I would love to have some sort of threading in DBPro, but I don't see it happening anytime soon.
xtom
21
Years of Service
User Offline
Joined: 26th Aug 2002
Location: Ireland
Posted: 13th Dec 2002 20:35
I like DB as it is. I don't understand oop but I'd rather see development time being spent on bug fixes, optimizations and new commands rather than big alterations to the language. I'm sure there are cool possibilites with oop or whatever but if it's as big an undertaking as it sounds I wouldn't be too bothered about it.
UberTuba
21
Years of Service
User Offline
Joined: 5th Oct 2002
Location: Brittania
Posted: 13th Dec 2002 21:38
I agree. OOP would mean that you would have to put in huge failsafes to mae sure nothing goes wrong. This would make both developing and running time slower, which goes against the whole point of DB - speed of development.
Also the reason windows crashes so much is cause it is an OOP program.

Life is a terminal disease.
You never survive it.
G Man X
21
Years of Service
User Offline
Joined: 11th Dec 2002
Location:
Posted: 14th Dec 2002 15:10
In 11 Ratty said "Well, maybe the dedicated game OS, but we`re getting close to console territory here, perhaps an upgradeable console instead??"

Yes, that sounds interesting. Anything to get Windows out of the way and let the DB shell get nearer to the hardware.

The logistical problems of threading involve significant overheads of time and resource. Given that the modern processor can still only do one thing at once, OOP appears to transfer the ordering of execution from the program to the Operating System, which may have undesirable effects.

In a linear programming language the programmers specify the order in which the various components of their programs are executed. They think in terms of multiple paths chosen by logical conditions rather than handing over blocks of code to the scheduler for arbitrary execution...

Good The Boyz Have Done It Is!
G Man X
21
Years of Service
User Offline
Joined: 11th Dec 2002
Location:
Posted: 14th Dec 2002 15:25
...Having said that, the render pipeline sounds appealing.

Does anybody make a graphics board that can run the graphics independently of the processor. A dedicated graphics computer on an AGP board. For instance, after the graphics and model info &c. has been fed to the graphics board the processor handles the user input and AI and feeds coordinates and object IDs to the graphics engine, which obligingly constructs and renders them...sounds kinda sexy to me

Good The Boyz Have Done It Is!
Shadow Robert
21
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 14th Dec 2002 16:06
Hmm... i think the timer idea is quite good,
kinda like you have one loop which is run realtime and then you can set loops up to run at a specific interval.

I mean i use the same sort of thing as i do in DB to make sure I have a timer within C++ for Physics basis, but having that taken out of the equasion certainly would speed up development of things.

But not have it so you have to set it in the main loop because then those calculations you want to run as fas as, can still do so

I think some of you have sidestepped the point here and thats actually giving a pipeline to DBpro coding.
If you think about it we're already working to a pipeline and having to program inline and linear.

Now I don't have a problem with that, however I'd like to be able to create several new windows and have different windows be seperate in use to the original ones.
So like you'd setup the program like



this would allow you to have several programs at once, oki this is more of an application thing - however basically as most people want to also develop thier level editors, music developers and such within darkbasic pro as well - the guys have to relise that these functions are needed just as much as the actual game engine
hope this explains what i ment better.

Anata aru kowagaru no watashi!
G Man X
21
Years of Service
User Offline
Joined: 11th Dec 2002
Location:
Posted: 15th Dec 2002 14:06
Hi Raven. See what you're saying. Sounds good.

You did say OOP in your title post and OOP does mean asking your code to jaywalk through the Windows scheduler in little bits. Yes, our prog exists on a thread of it's own but it wouldn't help to complicate that any further. I still maintain that the dedicated gaming OS is a great idea.

[sigh] If only we could put Microsoft on pause for 18 months and give the hardware a chance to catch up.

Hardware companies: Make me that goddam 1024-ply SIMD PCI extension board and a fully autonomous 3D Rendering board

That'll take care of the simultaneous AI and the graphics.

Shitsurei desu ka. Nihongo o hanashimasen. "Anata aru kowagaru no watashi!" wakarimasen

Good The Boyz Have Done It Is!
Shadow Robert
21
Years of Service
User Offline
Joined: 22nd Sep 2002
Location: Hertfordshire, England
Posted: 16th Dec 2002 00:58
no G ... it says exactly what it is suppose to

Anata aru kowagaru no watashi!
Kangaroo2
21
Years of Service
User Offline
Joined: 26th Sep 2002
Location: United Kingdom
Posted: 16th Dec 2002 14:56
Raven I agree with your Idea of windowing, cos at the moment all my level editors etc which I program use either sprites or boxes for windows (I've got a sweet kinda semi windows where you can move them around, set priority, resize them etc, and then DBPro allows you to put game windows in them if you like - multiple resizable camera views etc)

Whilst I've spent ages and got it really cool, an actual rather than simulated way to do this would be cool

* If the apocalypse comes, email me *

Login to post a reply

Server time is: 2024-05-02 09:39:47
Your offset time is: 2024-05-02 09:39:47