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 / Things that DarkBasic pro needs

Author
Message
zenassem
23
Years of Service
User Offline
Joined: 10th Mar 2003
Location: Long Island, NY
Posted: 16th Dec 2011 14:25 Edited at: 16th Dec 2011 17:51
My bounty post in geek culture hasn't seemed to get much of a response.


That said,, perhaps people are just willing to share things, beit plug-ins, apps, tools etc... that are needed for DBpro. Especially things that would help make the GameDev Process easier. I will start it off with 3 things that I believe are critical, yet (at least I am unaware of any of these having a high-quality/easy-to-use/complete solution for DBpro.


[2D dev (pseudo 3D)]

*
[+][+][+] In Devlopment [+][+][+]
[TileMap + Basic Tile Engine]
[Developers Working on Solution]
~Zenassem : Project restarted 12/03/11

[Description]
A tilemap/tile editor + base engine for tiled games, multiple layers (triggers/animated tiles, handle mulitple sizes, export to multiple formats, can read from images based on user config, possibly include pseudo 3D - utilizing 3D plains...),, for top-down, Isometric (and possibly Iso-Hex).


[Debug/Dev/Tool]

*
[+][+][+] In Development [+][+][+]
[Dev Wiki]
[Developers Working on Solution]
~MrValentine <<<<link to site gets pasted here>>>>

[Description]
A central Repository for both DBPro and any other class of Programming material. be it C++ C C# PureGDK DarkGDK VB...


*
<-><-><-> Request <-><-><->
[Debugger Variable Viewer/Watcher/command prompt]
[Needs Project Owner]

[Description]

Possibly implemented as a base code template. Providing a call-up window(s) with Variable Watchers, and possibly a command-prompt like interface to change program variables on the fly via command prompt input. Tons of other options but I'm too tired to go through them all.

I am unsure if there is a completed version out there. I can remember indi working on one many years ago before he departed. If someone knows of a functional debugger tool out there,, please share.


[Script AI/Logic]

*
<-><-><-> Request <-><-><->
[[A simple Script Interpreter[/b]]
I think many could use a simpler script option to separate some of the logic out of the main loop. And larger projects shouldn't have to be compiled for every change.

[Description]
While there are Plug-ins like Unity and I believe a free alternative plug-in... the learning curve is perhaps a bit steep for members who perhaps are trying to increase their skill-level in DBpro as well. A simpler Script interpreter, with a more intuitive syntax would probably be helpful to a large part of the community. For example I have a book on Developing RPG games with C++ that includes a Madlib Script engine,, that is less intimidating and easy to implement.


Please share wishlist items to this thread


~ZENassem
Grasmann
17
Years of Service
User Offline
Joined: 1st Sep 2008
Location:
Posted: 16th Dec 2011 14:38 Edited at: 16th Dec 2011 14:39
Im currently working on a script system, too.

It´s a lot of work though. I started with basic calculation logics to manipulate "virtual" variables from a script. My goal was to seperate common parts like mouse movement and things like that to be able to patch things without touching the main code.

Another thing I wanted to achieve was the possibility to easily extend the game mechanic with plugins.

But it´s really difficult to manage.

I just restarted my engine and made some kind of "object system" as base were I will include everything used in the game stored in arrays. So sounds, textures, acutal objects, characters, scripts, waypoints ... everything you can imageine will be in the same object system to simplify the handling.

Different constants, basically Globals, will act as enumerations to determine the types of objects, of course it will be necessary to be able to provide "n" count of types to each object in the system.

A real pain in the ass XD.
zenassem
23
Years of Service
User Offline
Joined: 10th Mar 2003
Location: Long Island, NY
Posted: 16th Dec 2011 15:06
Very nice Grasman!!! Do you think you are committed enough to your project for me to list you (in the first post of this thread) as someone Developing Scripting & other Game Mechanic enhancements?


What I plan on doing is editing my first post to reflect both what people post as being needed AND list people who are working on such projects. From time to time I may ask (if contact info is avail) if there are any updates to the status of the project if it's not already being maintained in the WIP board. At least this way people will know someone is working on a solution, and that progress is being made, regardless of the pace of that progress.

~ZENassem
MrValentine
AGK Backer
15
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 16th Dec 2011 16:59
@ zenassem

12/03/11 DD / MM / YY ???

also... I have a DEV wiki which i am going to start using as a code repository for any code I make or come across and find useful and both possiblt to be placed in the public domain... just click my banner to find it... if it will be useful as a repository just sign up... I havent tested the sign up mechanism but it should be working otherwise I am fine with creating user accounts as per request

So you could say I am building a central Repository for both DBPro and any other class of Programming material. be it C++ C C# PureGDK DarkGDK VB... it can go in there.

zenassem
23
Years of Service
User Offline
Joined: 10th Mar 2003
Location: Long Island, NY
Posted: 16th Dec 2011 17:31
Thanks MrValentine, that will be very helpful. I will check it out later today. And the restart of my project is MM/DD/YY, roughly 2 weeks ago. I had begun the project some time in 2007, taken some things that I had worked on since 2003, I worked on it for about 6 months in 2007 when I changed careers which consumed a lot of my time. Recently returning to dbpro, I figure this time I can give a proper go.

~ZENassem
MrValentine
AGK Backer
15
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 16th Dec 2011 17:44
In Japanese there is a saying

Quote: "GAMBATTEKUDESAI!!!"


It means GO FOR IT and DO YOUR BEST!

DarkDISCUSSION
15
Years of Service
User Offline
Joined: 6th Jul 2011
Location: Ft Madison, IA
Posted: 16th Dec 2011 21:35 Edited at: 16th Dec 2011 21:39
Personally, I think it could be faster. custom userlibs etc..
EDIT: From my perspective only!

Kind Regards,
Captain Wicker aka DarkDISCUSSION
http://captainwicker.webs.com/
Grasmann
17
Years of Service
User Offline
Joined: 1st Sep 2008
Location:
Posted: 17th Dec 2011 03:35 Edited at: 17th Dec 2011 04:25
Sorry I didn´t look here again till now XD.

Mh ... you can list me if you want.
As I already said it´s my plan to make a complete engine to handle everything I need, and this is much.

Im also really tired of doing "breakpoints" to check the value of different variabls, therefore I started with a huge debugging possibility in mind. I must admit ... I didn´t really read your first post completely XD. I just read "script" and wrote something. XD omg.

Actaully Im currently working on this object system I already mentioned and Im making some kind of object library for it to check every object and edit it´s attributes. Additionally I want to have a console to run scripts. I called these objects "SObjects" btw, but that doesn´t really matter.

Those objects will be ... "virtual" ... as I said they, and all of their attributes, are stored in arrays. So in the library I want to have full control to all attributes and in case of a picture I want to be able to view the picture or hear the sound or check the object with the possibility to rotate and zoom it. So yeah I got planned A LOT.

Im not really sure if I can make it. But I will try.

The current development status:
Objects system:
- creation of SObjects
- set attributes of SObjects
- read attributes of SObjects
- find SObjects by Name
- delete SObjects
- SObject-Load-Handling ( unfinished )
Debugging Library: ( currently working on this )
- displaying of SObjects
- scroll through SObjects in a list ( currently working on this )
- expand the attributes of each SObject ( unfinished )

What Im currently working on:
- the renderprocess of the library
- the libraries functionality ( to be exact currently the scrollbar )

SObject-Load-Handling:
While every texture, sound, object, and so on will basically be a SObject I have some interesting possibilities here. So Im going to make a system that will load everything on the fly, while the stuff is checked for existence before it is used. With priorities to objects this would greatly reduce loading times of maps etc. Then the textures would be loaded, after that the sounds and so on.
There will be a limited amount of loading processes per "n" loops. Maybe some calculations to determine this limit, or a FPS-Detection to keep the FPS at a "already-playable" level ... but I don´t really know yet how it will evolve.


Doesn´t sound like much but it´s a good base right now.

My goal is to be able to completely abandon globals and different arrays ( ok I still will have globals but those are the enumerations ). And to have one single object system to provide everything.

Another goal is to keep it as simple as possible for the user.
I don´t want to call thousands of functions to get this running, with other words I don´t want to have a overfilled main loop. So I keep everything modular to have the possibility to deactivate things individual. But the base of all is the "SObject" so you unforntunately can´t really cut out the debugging-part.

PS: Im doing this inside of Dark Basic btw, with Dark Basic commands. The rendering is done with the D3DFuncs by Cloggy
Daniel wright 2311
User Banned
Posted: 17th Dec 2011 04:42
A map editor like fpsc would be nice, And this is how it should work. you open the map editor then create a world map just like fpsc,then,when you save it ,it creates a script,this script can be included in your main project code,then when your leval is loaded,the included built map will load in all your objects.

this is something I was thinking about creating my self if I ever found the time to do it.

my signature keeps being erased by a mod So this is my new signature.
Grasmann
17
Years of Service
User Offline
Joined: 1st Sep 2008
Location:
Posted: 17th Dec 2011 18:53 Edited at: 17th Dec 2011 18:55
I just ran into some performance problems, since my eninge is doing a heavy amount of string comparisons in order to find the SObjects.

I just wanted to ask if somebody has an idea regarding this.

It´s not really a surprise to me. I more or less reckoned with that.
Im currently working on a solution to this.
I just need a simple trick to spare some of the comparisons.
Zotoaster
21
Years of Service
User Offline
Joined: 20th Dec 2004
Location: Scotland
Posted: 17th Dec 2011 20:40
Grasman, I'm not sure how you're implementing your system or what it looks like, but it sounds like you might be interested in hash tables* http://en.wikipedia.org/wiki/Hash_table

If you give us a better idea of what your system looks like, I might be able to help out more.


* In more ways than one given your user name and picture

"everyone forgets a semi-colon sometimes." - Phaelax
Latch
19
Years of Service
User Offline
Joined: 23rd Jul 2006
Location:
Posted: 17th Dec 2011 23:15
It sounds like a lot of interesting ideas. One thing I've always had trouble with is the availablitly of lots and lots of different libraries, scripts, languages, etc.

What I mean is this and this was actually also mentioned by Grasmann: it is of course possible to expand the capabilities of a project or a language by introducing libraries of function calls or scripts with a series of commands with the intent of making things easier, but often one ends up with thousands of additional commands to learn and to try and use and remember and a lot of bloat in their program that they may not need.

For example, let's say I knew there was a library that had a function call that made a matrix deform in real time based on some kind of impact. "Alright!" I think. But in order to get this one function up and running, I need to create a series of globals to pass to the function, the function is embedded into some kind of physics system that I have to make sure I initialize which may mean setting up a world for the physics system, passing the vertices and or faces of the matrix to the system, adjusting the gravity, etc. and etc. In the end, I almost have to learn an entirely new language or at least a whole new set of commands just to use that one function I thought I could deform my matrix with in real time easily.

So, this is what I caution against: try to avoid adding additional commands and methods that require a whole other series of commands, methods and or libraries. You may find that in the end, you only need one or two functions that you could have coded yourself without the extra complications and baggage.

You'll also find that the tools you may need are project based. It's very hard to try to make all encompassing tools that account for every scenario or game development type. Something mentioned above was the use of editors. I think this is a great way to go. If you can have editors for specific tasks that write the code you need that can just be plugged into a project, things may be easier. And the closer you can stick to native code with limited reliance on external non native libraries/plugins, the more adaptable your code can be.

And why write a new scripting language? Unless you are designing a specific engine and you want to be able to make simple calls to your engine, why not just stick to native DBPro code or use a seasoned scripting language like LUA or Python? In the end, isn't the goal to make a working game and not spend years trying to figure and test out the possible ways of making a game?

Enjoy your day.
DarkDISCUSSION
15
Years of Service
User Offline
Joined: 6th Jul 2011
Location: Ft Madison, IA
Posted: 18th Dec 2011 03:06
How about DirectX 10 or 11 features
Grasmann
17
Years of Service
User Offline
Joined: 1st Sep 2008
Location:
Posted: 18th Dec 2011 03:53 Edited at: 18th Dec 2011 03:53
Quote: "Grasman, I'm not sure how you're implementing your system or what it looks like, but it sounds like you might be interested in hash tables* http://en.wikipedia.org/wiki/Hash_table"


Yes, it looks like this is what I need. It will be a bit of work to rewrite the current code, but I think it will boost up the system.

So this means I will need a seperate management for strings.
For each string I will generate an ID, with that ID I can read the corresponding string.
And if I have to compare string I will actually compare integer values.

Sounds good to me.

In addition if a new string is created I can check the existing strings if the same is already existing and use the same ID.
Quel
17
Years of Service
User Offline
Joined: 13th Mar 2009
Location:
Posted: 18th Dec 2011 11:40
Don't talk this complicated...

A proper blending mode by any chance?!

I've gone through every supported file type, every transparency solution DBPro offers.

The result: my smoke particles either erase each other on the edges, or everything is fine, but there is no depth (brand new firey particle is visible right through a foggy crowd)

This is not Professional this way.

-In.Dev.X: A unique heavy story based shoot'em ~35%
-CoreFleet: An underground commander unit based RTS ~15%
-TailsVSEggman: An Sonic themed RTS under development for idea presentation to Sega ~15%
baxslash
Valued Member
Bronze Codemaster
19
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 19th Dec 2011 18:02
Quote: "A proper blending mode by any chance?!

I've gone through every supported file type, every transparency solution DBPro offers.

The result: my smoke particles either erase each other on the edges, or everything is fine, but there is no depth (brand new firey particle is visible right through a foggy crowd)

This is not Professional this way."

Have you tried using shaders? DBPro supports shaders and if there isn't one that suits you exactly you could always learn to write one.

I agree it would be nice if this was not necessary but I have found very few occasions when there was not some kind of alternative or workaround to this kind of problem.

zenassem
23
Years of Service
User Offline
Joined: 10th Mar 2003
Location: Long Island, NY
Posted: 20th Dec 2011 03:47
Looking over the recent posts now and will edit them in. What this thread is looking for is things that we as developers can add to dbpro or tools/utils we can develope to create a true dev pipeline from a to z,, not so much what TGC should do to improve dbpro.

Anyways, lots of good ideas up there.

@latch
Quote: "And why write a new scripting language? Unless you are designing a specific engine and you want to be able to make simple calls to your engine, why not just stick to native DBPro code or use a seasoned scripting language like LUA or Python? In the end, isn't the goal to make a working game and not spend years trying to figure and test out the possible ways of making a game?"


I was thinking that while LUA and Python are great,, I think (and perhaps I am wrong here) that people don't tend to use them because they have a steep learning curve, and while comprehensive... it's almost too much for what most people here need. So I thought that perhaps if they had the opportunity to use a simple logic scripting language,, that 1. They would, and 2. Seeing what can be done it's possible that more people (including myself) will take on either Lua or Python or something similar.

~ZENassem
revenant chaos
DBPro Master
19
Years of Service
User Offline
Joined: 21st Mar 2007
Location: Robbinsdale, MN
Posted: 20th Dec 2011 07:05 Edited at: 20th Dec 2011 07:06
Quote: "my smoke particles either erase each other on the edges, or everything is fine, but there is no depth (brand new firey particle is visible right through a foggy crowd)"

It is quite possible to write a functioning particle system with DBPro, I have a few videos on my youtube channel. It takes a bit of fiddling, but you can get it to work. One problem that I ran into is that certain transparency-dependant effects can't be used with instanced objects and still look good (I am guessing that may be the problem with your smoke particles).
Grasmann
17
Years of Service
User Offline
Joined: 1st Sep 2008
Location:
Posted: 21st Dec 2011 04:05 Edited at: 21st Dec 2011 04:06
I just wanted to say that I restarted my Object System as C++ Dll.
I gave up trying to make a solution with pure Dark Basic commands, because the performance is just to bad.

My latest test was the creation of 800 "SObjects". And every loop I read all 800 ID´s ( searching them by Name! ) and read their Name ( this time the ID as parameter ) and my framerate drops to 18.

But I think that´s quit some good performance while reading 800 Strings and doing up to 20400 String compares.

Im still searching for enhancement possibilities though.

Another test: Doing the same thing with just 80 Objects keeps the framerate at a solid amount of ~1250 for me.

Since Im doing this with C++ the possibilities for dynamic amounts of attributes and types will be much better, too.

Login to post a reply

Server time is: 2026-07-10 03:09:54
Your offset time is: 2026-07-10 03:09:54