The Swift Blitter Object System is now ready for public consumption!
Grab the demo here... and as a bonus, you'll get a sneak peek at some of the graphics for a puzzle game I've been working on...
[update]
I've uploaded a new demo of my BOB system here:
http://sky.prohosting.com/scswift/swiftbobs-demo-021.zip
This version has a few added options to play with as well as triple buffering, which is on by default.
Triple buffering dramatically improves the performance of the system in Blitzplus when using blending operations.
It has no effect on Blitz3D.
I've included one demo for each version of Blitz so you can see the performance in each. The BlitzPlus version is the faster one by far, especially with triple buffering enabled.
[/update]
SwiftBOBS is a system designed for handling 2D sprites, reffered to in the system as BOBS, which is an homage to the term used for sprites on the Amiga.
With SwiftBOBs, creating 2D moving objcts is very easy.
Just load your image, call CreateBOB(), and off you go. A single flag enables masking, if you use the default masking color.
And if you want, you can change the mask color for each BOB individually, or for a whole group of BOBS that use the same image, at once.
And this is just the tip of the iceberg.
Not only does the system make it simple to create sprites, but it supports every blending mode you get with 3D graphics in Blitz3D. Add, Multiply, Multiply x2... You can even do alpha blending if you specify an image to use as an alpha map.
Blending does come at a price however. It incurs a pretty significant performance hit. But it's there if you need it. Just don't expect to draw a hundred antialiased things at once.
You can also change the base color that the BOB's image is multiplied with, just like on an entity in Blitz 3D, and you can change the overall alpha of the BOB.
When not using the special blending modes, or the color shifting, or the alpha transparency, the system is lightning fast, as you can see in the demo. On my system I had 2000 24bit color 30x30 masked sprites moving around at 60fps. So when blitting normally you get no less than you have come to expect from Blitz.
To achieve maximum performance, the system has FOURTEEN seperate blitting functions, each one optimized for a specific task. A normal blit uses the standard image blitting functions which are super fast, while the special blending modes use highly optimized functions specifically designed for each combination of blending operations.
Here is a list of all the functions included in the system: (minus the internal blending functions)
InitializeBOBS()
CreateBOB.BOB(Image, Flags=1)
FreeBOB(ThisBOB.BOB)
BOBBlend(ThisBOB.BOB, BlendingMode)
BOBAlpha(ThisBOB.BOB, Alpha#)
BOBAlphaMap(ThisBOB.BOB, AlphaMap)
BOBColor(ThisBOB.BOB, Color_R, Color_G, Color_B)
BOBMask(ThisBOB.BOB, Mask_R, Mask_G, Mask_B)
MaskBOBS(Image, Mask_R, Mask_G, Mask_B)
BOBOrder(ThisBOB.BOB, Order)
BOBFrame(ThisBOB.BOB, Frame)
BOBFlags(ThisBOB.BOB, Flags)
ShowBOB(ThisBOB.BOB)
HideBOB(ThisBOB.BOB)
PositionBOB(ThisBOB.BOB, Position_X#, Position_Y#)
TranslateBOB(ThisBOB.BOB, Offset_X#, Offset_Y#)
SetViewport(X1, Y1, Width, Height)
UpdateBOBS()
BOBS_Overlap(FirstBOB.BOB, SecondBOB.BOB)
BOBS_Collide(FirstBOB.BOB, SecondBOB.BOB)
BOB_RectOverlap(ThisBOB.BOB, Rect_X, Rext_Y, Rect_Width, Rect_Height)
BOB_RectCollide(ThisBOB.BOB, Rect_X, Rext_Y, Rect_Width, Rect_Height)
BOBX#(ThisBOB.BOB)
BOBY#(ThisBOB.BOB)
Now that you've read about it, try the demo, and see for yourself. Most functionality is represented in the demo,
and there's lots of options to play with.
I have included one demo compiled in Blitz3D, and one compiled in BlitzPlus, so that you can see the perfromance differences between the two.
I highly reccomend you use BlitzPlus if you're going to make a 2D game that uses any special blending modes, but both BlitzPlus and Blitz3D are extremely fast with regular masked blitting.
And finally, if you're interested in purchasing a license for the system, the terms are the same as for all my other systems. $15 for shareware/freeware, $100 for commercial use. Payment is accepted through paypal to scswift@..., Western Union, or via bank transfer.
See my worklog for additonal details.
But wait... there's more!
If you are familiar with my FLUX and Anibrush systems, then you'll like this...
I plan to port both to a single system for animating BOBS in much the same way that they now work on 3D objects. With just a few simple commands you'll be able to have BOBS weaving back and forth in sine wave patterns, becoming more and less transparent, while animating their image, in looped, one shot, or ping-pong animation modes.
This will be a FREE addition to the BOB system when completed.
Grab the demo here... and as a bonus, you'll get a sneak peek at some of the graphics for a puzzle game I've been working on...
[update]
I've uploaded a new demo of my BOB system here:
http://sky.prohosting.com/scswift/swiftbobs-demo-021.zip
This version has a few added options to play with as well as triple buffering, which is on by default.
Triple buffering dramatically improves the performance of the system in Blitzplus when using blending operations.
It has no effect on Blitz3D.
I've included one demo for each version of Blitz so you can see the performance in each. The BlitzPlus version is the faster one by far, especially with triple buffering enabled.
[/update]
SwiftBOBS is a system designed for handling 2D sprites, reffered to in the system as BOBS, which is an homage to the term used for sprites on the Amiga.
With SwiftBOBs, creating 2D moving objcts is very easy.
Just load your image, call CreateBOB(), and off you go. A single flag enables masking, if you use the default masking color.
And if you want, you can change the mask color for each BOB individually, or for a whole group of BOBS that use the same image, at once.
And this is just the tip of the iceberg.
Not only does the system make it simple to create sprites, but it supports every blending mode you get with 3D graphics in Blitz3D. Add, Multiply, Multiply x2... You can even do alpha blending if you specify an image to use as an alpha map.
Blending does come at a price however. It incurs a pretty significant performance hit. But it's there if you need it. Just don't expect to draw a hundred antialiased things at once.
You can also change the base color that the BOB's image is multiplied with, just like on an entity in Blitz 3D, and you can change the overall alpha of the BOB.
When not using the special blending modes, or the color shifting, or the alpha transparency, the system is lightning fast, as you can see in the demo. On my system I had 2000 24bit color 30x30 masked sprites moving around at 60fps. So when blitting normally you get no less than you have come to expect from Blitz.
To achieve maximum performance, the system has FOURTEEN seperate blitting functions, each one optimized for a specific task. A normal blit uses the standard image blitting functions which are super fast, while the special blending modes use highly optimized functions specifically designed for each combination of blending operations.
Here is a list of all the functions included in the system: (minus the internal blending functions)
InitializeBOBS()
CreateBOB.BOB(Image, Flags=1)
FreeBOB(ThisBOB.BOB)
BOBBlend(ThisBOB.BOB, BlendingMode)
BOBAlpha(ThisBOB.BOB, Alpha#)
BOBAlphaMap(ThisBOB.BOB, AlphaMap)
BOBColor(ThisBOB.BOB, Color_R, Color_G, Color_B)
BOBMask(ThisBOB.BOB, Mask_R, Mask_G, Mask_B)
MaskBOBS(Image, Mask_R, Mask_G, Mask_B)
BOBOrder(ThisBOB.BOB, Order)
BOBFrame(ThisBOB.BOB, Frame)
BOBFlags(ThisBOB.BOB, Flags)
ShowBOB(ThisBOB.BOB)
HideBOB(ThisBOB.BOB)
PositionBOB(ThisBOB.BOB, Position_X#, Position_Y#)
TranslateBOB(ThisBOB.BOB, Offset_X#, Offset_Y#)
SetViewport(X1, Y1, Width, Height)
UpdateBOBS()
BOBS_Overlap(FirstBOB.BOB, SecondBOB.BOB)
BOBS_Collide(FirstBOB.BOB, SecondBOB.BOB)
BOB_RectOverlap(ThisBOB.BOB, Rect_X, Rext_Y, Rect_Width, Rect_Height)
BOB_RectCollide(ThisBOB.BOB, Rect_X, Rext_Y, Rect_Width, Rect_Height)
BOBX#(ThisBOB.BOB)
BOBY#(ThisBOB.BOB)
Now that you've read about it, try the demo, and see for yourself. Most functionality is represented in the demo,
and there's lots of options to play with.
I have included one demo compiled in Blitz3D, and one compiled in BlitzPlus, so that you can see the perfromance differences between the two.
I highly reccomend you use BlitzPlus if you're going to make a 2D game that uses any special blending modes, but both BlitzPlus and Blitz3D are extremely fast with regular masked blitting.
And finally, if you're interested in purchasing a license for the system, the terms are the same as for all my other systems. $15 for shareware/freeware, $100 for commercial use. Payment is accepted through paypal to scswift@..., Western Union, or via bank transfer.
See my worklog for additonal details.
But wait... there's more!
If you are familiar with my FLUX and Anibrush systems, then you'll like this...
I plan to port both to a single system for animating BOBS in much the same way that they now work on 3D objects. With just a few simple commands you'll be able to have BOBS weaving back and forth in sine wave patterns, becoming more and less transparent, while animating their image, in looped, one shot, or ping-pong animation modes.
This will be a FREE addition to the BOB system when completed.