Help - need some general help!

BlitzMax Forums/BlitzMax Beginners Area/Help - need some general help!

Rico(Posted 2008) [#1]
I am very new to BlitzMax (still learning the language). I I need help with the following

1. Where can I post requests for new features, or improvement suggestions?
2. How can I find the vertical position of the beam that draws the display. The old blitz I think used to have a Vpos function. I can't find this in BlitzMax (yet!)
3. What is the equivalent of the Vwait command from the old Blitz (waits for the next vertical blank)
4. I have drawn a 16bit 1024x768 background image for my game, is is basically a load of blue platforms (outlined in yellow). I also have a thin yellow line drawn on a black background ( as part of this background). When I set the draw mode to SOLIDBLEND so that it will overdraw any existing image. It draws it fine except the thin yellow line is drawn as a thick yellow line. If I don't specifically set SOLIDBLEND the line is drawn fine. Every other part of the image is drawn as it should be. I think I am misunderstanding something here - please help.
5. Is BlitzMax faster (performance wise) than BlitzPlus or DarkBasic? (especially in terms of drawing images and collision checks). Has anyone done any benchmark testing?

Thanks - Rico :)


Perturbatio(Posted 2008) [#2]
1. You can start a thread in the bmax forums, but be prepared for an argument a heated discussion. I'd suggest thoroughly thinking it through and wording it accurately before requesting something.

2. Not sure how you would do this, why do you need it?

3. look at the flip command

4. posting code would help

5. There have been lots of benchmark tests, it's much faster than BPlus and DarkBasic, not sure about DB Pro.


Rico(Posted 2008) [#3]
Here is the code for my SetBlend problem

Graphics 1024,768,16
back:TImage=LoadImage("RMedia\backdropB.png")
SetBlend SOLIDBLEND
DrawImage back,0,0
Flip
WaitKey()
End

I want to know the Vertical refresh beam position so I can test how much of a frame my code is using. Its also useful for speed tests, to find out the quickest way of doing something.
I knew about Flip, but it also flips the front and back buffers, I just want to wait a Vertical blank, or a number of vertical blanks. Old Blitz used to let you do VWait n, where n was the number you wanted to wait. I thought BlitzMax was meant to be an improved version of BlitzPlus, not a feature-reduced version? I guess there's ways round all these problems, but why not give people the choice? Its like the whole Gosub thing. I thought Gosubs were faster than functions and you don't have to worry about globalling variables and stuff. Good for getting things up and working quickly as well, I always feel happier once I know I can actually do something, then I tend to function things later. What was the reason for taking them out? (BTW this wasn't what I was going to request on the forum, so don't worry!, I don't want to die.)
Thanks :) Rico


Dreamora(Posted 2008) [#4]
BM is performance wise on par with C# which means several worlds faster than DBP. (its hard to get slower actually, not even sure if B3D wouldn't outperform it with Sprite Candy / nsprite2 / fastimages)


MGE(Posted 2008) [#5]
1. Where can I post requests for new features, or improvement suggestions?

I have no idea. This forum, the general forum, email?

2. How can I find the vertical position of the beam that draws the display. The old blitz I think used to have a Vpos function. I can't find this in BlitzMax (yet!)

This is old school thinking and is not something done now days on PCs. Your main loop should be time independent using MilliSecs() as a counter to time your movements, animation. If you just want to see how fast your main loop is going in ms, you can do this:

start = MilliSecs()
logic
render
speed = MilliSecs() - start

3. What is the equivalent of the Vwait command from the old Blitz (waits for the next vertical blank)

Research the Flip() command. You can run your main loop with no vsync waiting (which could cause graphic tearing) or with vsync on which causes the system to wait for the vblank before drawing anything.

4. I have drawn a 16bit 1024x768 background image for my game, is is basically a load of blue platforms (outlined in yellow..........

Your image will be handled as a 1024x1024 image in vram due to the power of 2 requirements. You're using a png graphic using SolidBlend, perhaps you did something weird with an alpha background?

5. Is BlitzMax faster (performance wise) than BlitzPlus or DarkBasic? (especially in terms of drawing images and collision checks). Has anyone done any benchmark testing?

Brute code speed I understand it's faster or equal to most languages. Render speed is something totally different, Bmax used DX7 and there is no way to say "its faster or slower" than any other language. Internally there is no batching going on, so if another engine/language has batching support it will have a slight edge over BMax. But.... it's 2008, modern day cpu/gpu's should be capable of handling anything us Bmax coders throw at it.

Modern day PC game coding is a bit of an adventure, you're at the mercy of hardware, background apps, system hiccups, etc, etc. The best scenario is code for the worst case scenario and hope for the best. ;)