Why not become 2D second to none ?

Miscellaneous Forums/General Discussion/Why not become 2D second to none ?

If the point for BlitzMax is already not to become one under many similar 3D APIs, then why not go a step further and become the most powerful 2D game making system on market ?

What resources here lies undeveloped indicates progers "textured poly" in the code archives. Sadly his functions are a little unhandy to use. Some convenient functions to convert a loaded Image into triangles and setting and changing the x,y - and u,v -coordinates during games runtime would have enhanced the 2D graphics possibilities of BlitzMax already incredible. I also can imagine of functions for effects on Images during game, like you can set with picture editing programs like Paint Shop or Photo Shop, for example setting fake lights or colour changings (not such like with SetColor(), but lighting or shading for example certain color ranges). Also drawing Images using other Images as a Mask or Canvas or setting others then rectangular viewports would open new possibilities for 2D game graphics.

Through this I wanted to point out, that on my point of view "2D" is an interesting alternative to "3D", on what everybody seem to be focussed totally this days.

The issue is that a lot of these functions require heavy processing. They aren't accelerated like many 3D things are, and they would grind the game to a standstill at any rez that would really find these things useful.. Sure, you might be able to get something nice at 800 by 600 with a minimal of these graphics-package techniques. Want a multitude of them? I'm sure that you can get something fast as you need at 320 by 240... But who in the world would NEED that kind of fancy grahpical potential at that rez?

The fact is, these things would make VERY nice looking 1024+ rez games... But would be too slow to be useable in any quantity at that level.

Load up photoshop and make a new 800 by 600 image. draw something that takes up most of that space with a single color. Then alter the blending options on the layer. Turn off preview and set bevel and embose, and then Texture.. Just to the defaults. Then hit the preview checkbox again. Watch hot long it takes...

Sure... you might not think something that looks like a flicker is too bad... but this is ONE processing. And it is a VISIBLE load time.

I'm sure some of these things can be adapted.. But the really powerful photoshop tools would require these functions to be built into a graphics card...

Not only that... But MOST things can be pre-done and swapped in.. You can produce the same results as these things by alternative methods.. On the graphics end rather than the programming end for sure.

I would love to see BRL focus more on the 2D side. Realtime fullscreen blurs/blooms, textured polys, real single-surface support, Render-to-texture etc etc.
The DX7/OGL 1.2 (or is it 1.1?) x-platform nature makes it a bit tricky though.
Playbasic FX looks as if it will venture into the uber-2D market but might be some way off and will be Windows only and DX9 driven.
<edit> and cameras and physics.

What about physics for 2d! That would draw the crowds! There are so many half promised / finished 2d physics projects mentioned for blitzmax. Where is one i can either buy or download ?????

Not sure why PPISaac went off the radar.

I've only used the blitzmax demo but found that individual pixel writes are a good amount slower than in blitzplus so that would be a nice feature that I'd certainly like if it were at least as quick.


I would love to see BRL focus more on the 2D side. Realtime fullscreen blurs/blooms, textured polys, real single-surface support, Render-to-texture etc etc.



This is something I'm interested in, and have very much started in B+ using DX9 (via userlibs)... Dont want to say much more on the subject TBH, its still pretty basic!

Dabz

@Dabz, sounds *very* interesting.
@Matty, I found the Bmax WritePixel to be quicker than B3D/B2D but never used B+. The problem with Bmax is you have to add the time to convert image <-> pixmap if required.

@DampeS8N: What tonyg above said was also my thought: image-editing and image-changing operations based on a tricky usage of DX/OpenGL-3D -capabilties - like the textured poly-code in the codearchive uses 3D-vertices and 3D-functionalities for 2D-purposes.

I'm a 3D addict, but even I agree!

Advanced 2D graphics is a rather untouched market, compared to 3D. (Not saying that 2D is somehow uncommon, but there seems a much bigger focus on 3D engines right now)
2D can be a lot prettier, when done right (especially with SVGs!), since it's one less dimension to think about.

There are many extremely cool 2D effects modules for BlitzMax, such as that lighting / shadows one (by Indiepath?). If there was a central, well-supported official solution, I agree it could draw some attention!

I'll agree here again too. tonyg is still on the money. =]

tonyg PlayBasic 1.70 is just about to be released. The BETA is already at 1.69c and once that is found stable, it will become 1.70. I will be buying the program since it does stuff that Max either doesn't or can but only with extreme tinkering. And it's regularly updated.
I have been thinking about BlitzMax and it's direction. I am interested in 3D but I would like to see BlitzMax become hands down the best language for programming 2D games. Basic, OOP, cross-platform, great start. But PlayBasic and the HAAF engine have some awesome features. I say forget dwelling on the 3D module seeing as though it's years off, and get cracking on improving the language. We're just about to get functions to add arrays and hopefully generics soon. Once the "as it stands" software is improved, then worry about whateva the future 3D stuff holds.

I repeat, BLITZMAX3D IS MOST LIKELY YEARS OFF. No more on that subject. Let's improve the language. Peace.

DampeS8N:

The issue is that a lot of these functions require heavy processing. They aren't accelerated like many 3D things are, and they would grind the game to a standstill at any rez that would really find these things useful..



And why would they be that different from 3D 'things'? 3D engines have been using pixel and vertex shaders for years. 2D games seem to have barely scraped that surface because a lot of them are made with the lowest common denominator in mind (lack of decent pixel shader model x.x video card, etc). And rightfully so in the business sense. But there seems to be this assumption by the average user that if it is 2D that it should always be able to run on a 10 year old computer. If people want 'pretty' modern 2D games they have to realize that prettiness comes with a cost; yet, most accept the fact that if it's a brand new and a 3D FPS that you'll need a bigger/faster machine to run it.

I will probably be buying Playbasic at 1.70 as well. It seems to be the first major step to mutating into PBFX which is rumoured to have Shaders plus all the fancy effects. Bmax, the language, is sublime but the *odd* omissions in the core product make it seem a bit hollow. I realise it can be augmented with 3rd party modules but too many of these are left half-baked or not updated when changes are made in Bmax.
Still well worth the money though.

I'm interested in this direction also. There is a big movement toward using the GPU for processing that you wouldn't normally be able to do on a gfx card. ie lots of those image processing functions can be done in realtime. Look at the Core Image/Core Animation features in OsX - you can do multiple simultaneous full-screen image processing functions on full-speed movies. They're probably using shaders. But besides shaders, which not everyone has support for, there are other techniques to at least accelerate some portions of rendering. There are still a lot of graphics applications that don't really use the graphics hardware *at all*, relying on a CPU-driven interface with slow updates. It's nowhere near as realtime as it could be.

Yeah I'd like to see some fancy stuff in Max. Specifically these things would make my casual games stand out from the rest:

- Ability to move a texture in the Z plane, just tilts and stuff or full 3D rotation. But to be able to do this with a few textures and show over a normal 2D screen.
- Blurs and other fancy effects like that.


Ability to move a texture in the Z plane, just tilts and stuff or full 3D rotation. But to be able to do this with a few textures and show over a normal 2D screen.



hehehe :| <--- Zipped, for a bit!

Dabz

gimme gimme!

Being able to run very fast 2d without hardware acceleration and fast 2d with hardware acceleration is currently available - for BlitzMax as a module - not just yet.

www.squeakyduck.co.uk

Java is pretty much what everyone wants. All these things are available, minus BlitzMax's syntax and speed. I think the Java model is what any 2D game engine should shoot for. I'm not Mark Sibly, but I reckon major 2D improvements can be accomplished much quicker than any full scale 3d environment. Especially the NECESSARY direction Mark is going in. Point and Click 3D is the future.
Cobra sounds great but PlayBasic is moving fast!! And they give you a massive amount of examples to work with.

He was talking about 2D graphics package functions. If it were as simple to speed these things up as shunting them through the graphics cards, don't you think Photoshop would do that?

You can already do any 3D funtion you want to and 2D item by treating it as a polygon, so where's the beef? I assumed he meant things not traditionally supported..

Such as. Taking a sprite of a 32 by 32 brown square, and running a texture and beveling shot over it to make it look like a wood block, or a stone one, or whatever. Perhaps the texture is accelerated, (seems like it) but the bevel is NOT. Same is true of applying a semi-transparent overlay image, stroke, probably gradients at semi-trans, and perhaps 90-99% of the basic filters would be out of the question.

Not to mention some of the tools like 'replace color'.

Basically, anything that ISN'T accelerated on a graphics card.

BlitzMax language improvements.
BlitzMax on cell phones.
BlitzMax on consoles.
Then the 3D "thing" that's coming.
Then the GDC.
Then publishing deals.
Then books about characters I created.
Then Hollywood.
Then syndication.
Then retirement.
Back to BlitzMax.

Blitz3D + Sprite Candy or nSprite2 is pretty quick and very good 2D programming environment. Games are also slick and fast. Perhaps people should try to create something with what's already available and not just resort to wishful thinking, awaiting things that may and may not come.

Barney

I think there is (will be) a lot you can do in 2D using the hardware, it's just a matter of finding a way to make it work, including filters and image processing in realtime. You can already do gradients pretty easily with vertex colors and flat shaded polygons. There are lots of image warping effects you can do with texture mapped polygons. You can apply math to images using blending such as adding and multiplying. There are ways. It's when you want to do difficult per-pixel stuff like making bevels and unusual shapes/outlines, combining textures with some unusual math, etc, that it gets difficult.


Taking a sprite of a 32 by 32 brown square, and running a texture and beveling shot over it to make it look like a wood block, or a stone one, or whatever. Perhaps the texture is accelerated, (seems like it) but the bevel is NOT. Same is true of applying a semi-transparent overlay image, stroke, probably gradients at semi-trans, and perhaps 90-99% of the basic filters would be out of the question.



Still not sure why it can't be so. The new Final Cut Pro on the Mac for professional video editing has filters and such and it now uses the GPU for very intensive post-processing effects on video for real-time editing. It's possible, but certainly not easy. Looking at most of the photoshop filters I don't see why you can't convert those algorithms to shaders by doing multiple passes (and in fact several have become shaders such as toon shadings and other artistic filters). Bevel? That's seems like it boils down to a procedural lighting algorithm by insetting the edges.

It's not the individual 'filters' or effects that are being listed that are the difficult part in implementing for a game (2D or 3D). It's trying to design and develop a framework and engine where any crazy combination of these effects can be used as simply as turning them off and on...and to make them still look convincing, AND at the same time easy to tweak and manage.