[DWLab] Framework usage (please read)

BlitzMax Forums/BlitzMax Programming/[DWLab] Framework usage (please read)

Matt Merkulov(Posted 2011) [#1]
First of all, let me thank you for your kind words about the framework, but I need more. I need feedback. There's 3.5 months gone since first release and there's almost no feedback. No bug reports, no asking for support, no code or small compiled program based on framework posted. Yes, maybe I wasn't promote it on forum much, I'm not a hard forum poster, but with all this silence I start thinking my efforts of bringing this product to the public are futile. Maybe I doing something wrong.

So please answer the question: Do you use DWLab framework?

Optional answers:

1. No, I never use frameworks except mine. I prefer to use only my code. But thanks, I learned a lot from your.
2. No because framework miss feature X (please specify which)
3. No because framework is too complex for me (please specify what confused you)
4. No, I'm waiting for framework becoming more stable and for more projects released with it.
5. Yes, but I'm now just experimenting (please put some lines of code or link to your uploaded program)
6. Yes, I started a project based on framework (please provide more information and probably some links)
7. No, I think free software sucks by definition. I prefer to use only commercial software with strong tech support and future.

Last edited 2011


Jesse(Posted 2011) [#2]
I would like to thank you for providing such a strong framework for the community and the fact that it's free is even more enticing. I don't know why people don't realize how much potential this frame work has.

I would love to spend time learning it but I can't at the time. I have my projects that are consuming most of my time and can't afford to just abandon them. When I get some time I I will definitely be working on it. I did do some test but it will require me to spend a bit more time, time that I can't afford to spend to get the hang of it. it's on my todo list just not now.

I don't know how many registered users actually frequent these forums at the moment but it seems it has dwindled down a bit lately. I don't see it as a BRL problem but as a general programming forums problem. I have noticed that same pattern applying to several of the other programming forums I visit. maybe too many different languages and the programmers are spreading thin. I don't know but it's happening.

as it stands right now at the moment of writing this, there are 3 users online and 50 guests. I notice that most of the users just visit the general forum's section and you can tell by the number of users posting there. If you pay attention to those users comments quite a few of them are not even using BlitzMax as their programming language of preference.

From The get go, I knew the lack of intent to use was going to happen or at least demonstrated in comments. There are a couple of frameWorks that started as commercial and that are now free. I think programmers don't want to try unproven frameworks. Maybe if you make at least one commercial game with it, programmers will actually start to look at it and give it a try. I take as an example Gray Alien's framework and Planiax framework. But I realize that at the conclusion of all of this, this is just my opinion.


Matty(Posted 2011) [#3]
hi Matt,

I've been following what you have been posting, especially the isometric code. I don't use DWLab framework because I don't use blitzmax, I use mainly Monkey (in the past I've used blitzplus and blitz3d). But it does look good.

Generally I don't use entire frameworks but I do use snippets of code I find useful sometimes from these. I think the reason I haven't used frameworks much in the past is because I generally don't need anything too complicated/in depth and can put together what I need to fairly easily without learning how someone else's code works. This may change for me in the future though.

So I guess if I had to pick an option above I'd pick option 1 - I generally use my own code but learn a bit from others from time to time (especially thanks to therevills for java code for Monkey).

Edit - I wouldn't be too worried about the amount of silence - it seems that there aren't actually that many users who regularly frequent this forum who regularly publish games (there are some of course but they are in the minority I think - most simply use it for a hobby)

Last edited 2011


xcessive(Posted 2011) [#4]
I personally think your framework is extremely well put together and remarkably good for a free project. I have actually read through the code (particularly for isometric projection) and learnt some things -- in fact I have been playing around with the framework too see what can be done with it.

My answer would be a mixture of 1 and 4.

If you release more tutorials for it, I feel people will be more tempted to use the framework; since it will be more obvious HOW to use it. Documentation and tutorials makes a great framework -- more so than the quality (and quantity) of the features.


col(Posted 2011) [#5]
Hi Matt,

As I'm more of a programmer instead of a game maker, I guess I fall into category 1. I did look through your examples to see how someone would piece a game together and I do honestly think its great and intuitive.
As Jesse already mentioned, the forums are a quieter place right now, it has been for a while. People have either moved on to other languages or don't need help anymore :P There doesn't seem to be many newbies coming up the ranks. Other languages and their respective forums are still buzzing so I'm not really sure why it's quieter here. Don't be put off though.

Have you tried hunting around for other Blitz sites and promoting it on those? Maybe promoting some youtube videos?

Keep cracking on with your framework, making new features, making good tutorials on how to use those features and keep pushing it forwards as you already are. Maybe make a commercial game, or at least a couple of games with complete playable levels to show off those features , they don't have to be AAA, just show off the features and assets, and others will definately take more notice of it.

Anyway it's a great product and free too!

Last edited 2011


GNS(Posted 2011) [#6]
I've been following the framework for a while now and think it's terrific work, Matt. I haven't had much of an opportunity to dip into 2D development but that's changing soon-ish and your framework is near the top of my list to evaluate when the time comes.

As for the lack of response, try not to be too discouraged. As others have said, the activity on the forum has definitely dwindled and I suspect a number of folks are off in Monkey land tinkering around.

At any rate, keep supporting it because it's a great service to the community.

Edit: And let me just say the Super Mario Bros example is surprisingly well done. Made me want to hook up the old SNES. :]

Last edited 2011


GW(Posted 2011) [#7]
I think the framework is very nice. But like others, I haven't had the time to dive deeply into it. I tend to spend most of my time prototyping, but I've had plans to port several of my games to the framework when it comes time to give them more polish. Also when it gets to that time, I know that I'm gonna have to dive deep into the guts of the framework and start changing things for the needs of the project. I just haven't reached that point yet.

Lack of feedback sucks for something you've put a lot of effort into. I feel your frustration. I imagine that others feel the way i do. That when it comes time to start move on from the prototyping stage, It's nice to know the framework is there and ready.


Armitage 1982(Posted 2011) [#8]
Hi Matt

I'm having a look from time to time to your framework because I think it's a very interesting game engine.
Unfortunately about feedback, I'm making my own engine and therefore I don't have much time to delve the code.

I would have loved to see this engine a few years before because I think BlitzMax lack of tools and modules organized in a nice game oriented framework. Something we could use (or not) out of the box.

Maybe when my current game is finished I will take another look at the available solution, this including DWLab Framework of course.

Some of the features that would definitely make me jump into DWLab is:
- A fast/powerful particle engine with editor (Radial/Tangential acceleration, relative direction/speed, particles spin/size, color/blending/tweening etc.)
- Integrated Box2D physics engine with object editor.
- A simple GUI editor with skinning support (I love when you can select text too).
- A tweening system for animations
- A finite State machine for advanced IA
- Scene management with transition support.

A Monkey port of this framework could be an awesome feature too!

Of course, all of this can be added to any framework by the end user but sometimes things are complicated by the fact you have to read someone else code and find exactly where to implement the desired feature. Plus I'm not sure everything listed here isn't already supported by your Framework in another way (like FSM or scene management).

I run into a few EXCEPTION_ACCESS_VIOLATION last time I try the super mario clone (I think it was when mario jump into a powerup box, while running or something). I know it has probably nothing to do with the Framework so I didn't post anything about it.

I remember having great FPS while testing the examples.
By the way, DWLab was on my mod folder since a moment now.
I wish I had more time to play with :)

Did you successfully build games on other platform like Mac OS and Linux ? Sometimes you have to change a few things and while doing so you spot new bugs.

Thanks for making DWLab free and open to the community.

Last edited 2011

Last edited 2011

Last edited 2011


GW(Posted 2011) [#9]
That's the strange thing about frameworks. If Matt implemented all the things listed by Armitage, it would make me less likely to want to use the framework because I would not look forward to have to dig into the code and rip all that shit out. When it comes to frameworks, the smaller the api the better. Your better off implementing each of those things individually and putting them in the code archives. A larger api comes with a reduction in the type of games you can make with it.


Armitage 1982(Posted 2011) [#10]
A larger api comes with a reduction in the type of games you can make with it.


It's a risk worth taking.
I think is because everybody has it's own way for doing things.
But as far as the source code is provided and if the engine is well written with flexibility in mind (it's rarely the case), there is always an option to rewrite or not using something.

Often in a framework, everything is linked. That's why it is quite hard to isolate everything individually.

Anyway, I don't see why adding a particle engine or a tweening system would make this framework a less attractive one.
Take a look at http://clanlib.org
The API is monstrous and apart from the step learning curve, I don't see many limitations for a particular type of game.


GfK(Posted 2011) [#11]
8. I'm not interested in game frameworks. I'd rather do it myself.


Matt Merkulov(Posted 2011) [#12]
- A fast/powerful particle engine with editor (Radial/Tangential acceleration, relative direction/speed, particles spin/size, color/blending/tweening etc.)

It's hard to make particle engine flexible enough without coding part . As you can see, particles in examples are made totally in code, but some sprite structures can be set in editor. Of course I can make particle objects with tens of fields but it will be no more lightweightm but still not flexible enough. I think I'd better make some code examples of acting particle objects of classes derived from LTSprite to show the making process of the particle system.


- Integrated Box2D physics engine with object editor.

I don't think editor needs built-in physics, editor is for placing objects only. But I plan to make class specially for Box2D sprites and some demos with adding physics to the worlds made in editor.


- A simple GUI editor with skinning support (I love when you can select text too).

GUI system which is integrated to the world files is already done and debugged. Though, maybe there's not enough documentation or tutorials of how to use it.


- A tweening system for animations

Good idea, I'll look what I can do.


- A finite State machine for advanced IA
- Scene management with transition support.

I don't understand, can you be more specific?


I run into a few EXCEPTION_ACCESS_VIOLATION last time I try the super mario clone (I think it was when mario jump into a powerup box, while running or something). I know it has probably nothing to do with the Framework so I didn't post anything about it.

It's fixed now, try to load new LTSprite.bmx and put it into "dwlab.mod/frmwork.mod/include" folder.

Last edited 2011


Armitage 1982(Posted 2011) [#13]
- A tweening system for animations

Good idea, I'll look what I can do.


Can give you a start, I don't remember if it's the latest version but it can definitely give you an idea :

http://arm42.com/blog/index.php?2009/01/21/25-tweening-interpolations-class

I don't think editor needs built-in physics, editor is for placing objects only. But I plan to make class specially for Box2D sprites and some demos with adding physics to the worlds made in editor.


No you right, it's not absolutely necessary as long as you can easily access every features of Box2D (with debug draw and all). But even a simple line editor may be useful to place box2d map edges.

- Scene management with transition support.

I don't understand, can you be more specific?


I think you are using a kind of Game class in your framework. A scene manager would simply allow to pass from one Game Class to another (with transition effect, like fade-in fade-out). All the loading / unloading process being done internally.

As always, it is something really easy to achieve with any game framework so don't focus too much on this idea as it's not the most important (for me anyway) and like GW is saying could lead to limitations.


Maybe the most important before adding any other features is taking a day or two to enhance the framework documentation.
Because most (if not every) game frameworks have wonderful ideas and solutions for doing things but most of the time you have to guess how to correctly use them. I rather prefer short examples on specific features to understand code separately and modest project like you provide for best practices.

Tonight I will have a look to the latest SVN version and see how it goes :)
Keep going on! It's more helpful than you might think.


Azathoth(Posted 2011) [#14]
Your tutorials involve using the editor to create maps or place objects, can maps be created entirely through code for custom map formats?

Does the framework support fixed rate logic?


Matt Merkulov(Posted 2011) [#15]
Your tutorials involve using the editor to create maps or place objects, can maps be created entirely through code for custom map formats?

You need to write converter for this. Or tell me which formats do you want to import and I'll probably implement them.


Does the framework support fixed rate logic?

Logic always has fixed rate (75 frames per second by default), only rendering rate depends on computer productivity.


Azathoth(Posted 2011) [#16]
You need to write converter for this. Or tell me which formats do you want to import and I'll probably implement them.
I think it would be more flexible if the map handling methods were exposed. That way custom formats could be added without you needing to change the framework everytime.


xlsior(Posted 2011) [#17]
Logic always has fixed rate (75 frames per second by default), only rendering rate depends on computer productivity.


the vast majority of computers these days have an LCD screen that runs at 60Hz -- you may want to adjust the default value to match that?


Rixarn(Posted 2011) [#18]
Hi Matt,

I think my answer will be:

1. No, I never use frameworks except mine. I prefer to use only my code. But thanks, I learned a lot from yours.

But this is just because I have already my own framework for my needs. If I have stepped before with yours, it would be another story...

I do have learned from looking at it, and that's the biggest contribution I have received from your framework to my work.

My only advice would be to reduce coupling of the framework to improve it's usage, perhaps if the framework where less coupled some people could use just what they needed.

Last edited 2011


Matt Merkulov(Posted 2011) [#19]
the vast majority of computers these days have an LCD screen that runs at 60Hz -- you may want to adjust the default value to match that?

You suggest 60? Or maybe 120? Maybe 100 or 200? I haven't decided which to use, but this value can be changed individually for every project at any time.


GNS(Posted 2011) [#20]
60 is probably the best 'default' but as you said, it can (and should) be adjusted for each project. You've got twitch FPS games that are running logic updates at 30Hz (Starsiege: Tribes and Tribes 2 both run at 32Hz IIRC) so there's a large number of 2D games that can easily get away with udpates at 20Hz or lower.


Rixarn(Posted 2011) [#21]
Now that I think, I should had said me, instead of "some people could use" ha ha...

If your collision could be decoupled to work just with primitives and polygons alone, I'll definitely use it. :)