cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 10 2006 : 11:03:06 PM
|
Wuhoo thats such an awesome feeling knowing you did something right the first time.
I have something special for you! Wait for it! ... Wait for it! Warp3DVB! http://www.createdbyx.com/Files/CBXWarp3DVBRelease1.zip
I have finished converting the C# graphics library Warp3D over to vb.net 2005! You can find the original C# Warp3D library here http://alansimes.blogdns.net/cs/files/default.aspx
By finished I mean %95 done. I kinda cheated a little and got lazy doing the conversion so I am sure some people are going to find some gotchas in the code. My biggest concern is the way I converted the type conversions over to vb.net. Some of the type conversions were not written the same way they were in C#.
But I do plan on writing an extensive tester app that will run both my converted Warp3DVB and the original C# Warp3D library through it paces, and have the ability to directly compare the two. In the mean time hope you have fun using the library.
For those of you who don't know Warp3D is a powerful %100 .NET Graphics library! I would also like to thank Alan Simes http://alansimes.blogdns.net/ for creating/converting the Warp3D library to C#. If I am not mistaken I believe Alan converted the Warp3D graphics library from a java based graphics library. You can download the Warp3D library from alan's web site here http://alansimes.blogdns.net/cs/files/default.aspx
I would also like to thank Kamal Patel http://www.KamalPatel.net for his great C# to VB.NET converter utility which I used to assist me in the conversion. Although the C# to VB.NET converter is far from perfect it was still a great help and a great time saver. |
Created by: X http://www.createdbyx.com/ |
|
Spodi
Warrior
USA
142 Posts |
Posted - Apr 10 2006 : 11:29:33 PM
|
How about a VB6 version, too? :D
|
vbGORE |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 10 2006 : 11:34:50 PM
|
Hmmm,... not going to happen. Not by me anyway. It uses alot of >> operators and such do the conversion to vb6 would be a bit of a problem and take more work. Honestly I have not used vb6 for so long now that I probably could not do it even if I tried! vb6, that's like so 1998. |
Created by: X http://www.createdbyx.com/ |
|
|
Spodi
Warrior
USA
142 Posts |
Posted - Apr 10 2006 : 11:40:44 PM
|
1998 was a good year. :p |
vbGORE |
|
|
dxgame
Knave
USA
73 Posts |
Posted - Apr 11 2006 : 12:38:34 AM
|
Ok, you have our attention. :) Not tell us more about this and why we should use it? ;) |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 11 2006 : 11:43:36 PM
|
quote: Originally posted by dxgame
Ok, you have our attention. :) Not tell us more about this and why we should use it? ;)
Let me list the ways. ( The way's I would want to use it. )
1: It's 100% written in .NET! 2: It's fast, easy to use and the source code is availible, unlike directx for example. Limited only by the power of the CPU. 3: Does not require graphics hardware to run. 4: Should run under mono! I don't think it uses and system.window.forms objects 5: You can do things like create destructable geometry. Think DirectX VertexBuffer but without having to lock and unlock 6: No performance issuses like you have with locking directx resources. 7: As many render targets as you want and no performance penalties for it. 7: Basicaly think of all the current hardware limitations that exist that prevent you from doing something graphically, With Warp3D everything is in done in software so really anything is possible. 8: What about a layered Zbuffer(s)!
Obviously there are drawbacks but I think the benifits and customizability balence out the drawbacks.
... Grrr of course I can't think of any really good reasons right now but If I do I will post them.
If it performs adequetly I think I am hopeing to use it for a 2D size scrolling style game engine. |
Created by: X http://www.createdbyx.com/ |
|
|
dxgame
Knave
USA
73 Posts |
Posted - Apr 12 2006 : 01:58:12 AM
|
I hate typos.. I meant "NOW tell us more about it..." :) lol...
From a technical point of view, congrats on porting it over to .net, very cool! On a realisitic note I'm not sure if this is something I would want to code a shareware or commercial game with, because it would be very hard to base typical performance requirements. Especially on older hardware. I understand MS might release the .net framework/runtime on Linux and Mac, so something like this might have some unexpected advantages on porting apps to other operating systems. When you get a chance I would LOVE to see a compiled app throwing around some sprites in a typical 800x600x32 screen. Perhaps allowing the user to press a key to add or subtract sprites (32x32 sprites) so we can see some typical performance fps rates? Thanks.
|
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 12 2006 : 6:41:21 PM
|
Actually i think performance would be easier to do because you could setup a scenario where you could monitor the fps as the app increased the scene detail and complexity. This type of thing would be done one time after an install of a game for example. Then you could decide on how much complexity the hardware could run before starting to slow down.
I also have noticed a bit of flickering when rendering a large image. The ideal render window size on my amd athlon 64 3200+ laptop is about 512x512 or 640x480. I was thinking I could render into a 256x256 area then blit the image into a 512x512 area giving the image a classic pixelated arcade game look and feel. Doing this would also increase performance because it would be redering to a smaller window size.
I will know more when I write the test app that test all of warps3d feature set. |
Created by: X http://www.createdbyx.com/ |
|
|
dxgame
Knave
USA
73 Posts |
Posted - Apr 13 2006 : 10:07:13 AM
|
Sounds interesting. "I will know more when I write the test app that test all of warps3d feature set." That would great and all, but is there any way that you could simply write a small sprite test like the one I requested? That would go a long way in showing some basic performance for typical 2D games. If/when you have time that would be great, the demo with all the features would be cool too, but hopefully the sprite test would be something you could whip out much quicker? ;) Thanks. |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 13 2006 : 11:42:13 AM
|
I'm at the McBride husky pirating a wifi signal right now and watching the movie jarhead driving back home to bc for the week. I will try and hammer out a quick sprite test app and post link to it when I get home in a few more hours. On the road again ... |
Created by: X http://www.createdbyx.com/ |
|
|
dxgame
Knave
USA
73 Posts |
Posted - Apr 13 2006 : 5:13:50 PM
|
:) Lol.. "I will try and hammer out a quick sprite test app and post link to it when I get home in a few more hours." Ok, great! |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 13 2006 : 7:53:48 PM
|
Whoot! Back home! On my HP Pavillion Athlon 64 3200+ with 512Mb pc 2700 I can get around 830 milliseconds to render 100 512x512 images that take up the entire 512x512 render surface. The app also calculates the number of pixeles being processed and the number of bytes (rgba data) that were processed. I will do a test on my 2 desktop machines and post the numbers for them here too... but I have to eat first.
You can download the test app here ...
Download Attachment: Warp3DSpriteTest.zip<br>336.09 KB |
Created by: X http://www.createdbyx.com/ |
Edited by - cbx on Apr 13 2006 7:54:25 PM |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 13 2006 : 10:20:07 PM
|
Just tested the Warp3DSpriteTest.zip app on my desktop Athlon 1ghz with 512mb ddr pc2700 scored about 620 miliseconds to draw 100 sprites but if you use my vb.net conversion of the warp3D library it's about 20 ms faster! Wuhoo!
On my primary desktop an Athlon 64 3500+ with 2GB 3200 ddr mem it scored about 300ms to draw 100 sprites and again using my vb.net version of warp3d it scores about 20 to 30 ms faster.
And on my brothers computer the numbers were a little confusing. His system is a desktop with an athlon 750Mhz and sdr mem (not sure of the speed) again drawing 100 sprites scored from 2500 ms all the way to 5500 ms and for the vb.net version of warp3d scored differently sometimes getting up to 8000 ms, but I think he was running alot of crap on his system as well so that could have been why the speed was so un-steady.
So to draw 100 512x512 sprites on a athlon 64 3500+ taking 300ms all the way to a athlon 750 Mhz 5000 Ms (average) .
Keep in mind Warp3D is pure software driven it does not use the .NET framework for drawing 2D graphics. And also keep in mind that it is manually processing each pixel and each red green blue and alpha components of each pixel you see on screen. That's alot of data, like 100 megabytes of data every 300 ms! To me I'd say that's pretty good! |
Created by: X http://www.createdbyx.com/ |
Edited by - cbx on Apr 13 2006 10:22:58 PM |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 13 2006 : 10:33:33 PM
|
*Sigh* before I forget again! You need the .NET Framework 2.0 installed for it to run.
And again keep in mind using smaller sprites and rendering to a smaller area would allow for faster rendering. For example to render a 512x512 sprite warp3d needs to process 512x512x4=1048576 bytes of data. But in the case of dxgame and myself who like classic games, rendering a 320x240x4 sprite would only be 307200 bytes of data which is about a third the processing needed. |
Created by: X http://www.createdbyx.com/ |
|
|
dxgame
Knave
USA
73 Posts |
Posted - Apr 14 2006 : 12:08:33 AM
|
errr.. I don't have the 2.0 .net framework on ANY of my machines and 2 are less 6 months old. !@#$% Oh well, I guess I will go to one of the libraries this weekend and download the 2.0 .net framework. It's around 20-30mb right?
For simple minded folks like myself, a simple demo where it starts off rendering a single 32x32 sprite, and with every key press or a mouse click, another 10 or so is added. All the time displaying the frame rate and number of sprites being drawn. THAT would allow me to compare that to all the other engines, tools, I frequently test. :) Any chance of a basic demo like that? Thanks for all your hard work and time on this. |
|
|
cbx
Swordmaster
Canada
296 Posts |
Posted - Apr 15 2006 : 11:34:45 AM
|
Sweet! Just updated the sprite test and it is rendering 5000 sprites in 65 milliseconds! Here are the numbers ...
1: 5000 sprites (32x32) - 65 ms - Athlon 64 3500+, 2 Gig DDR3200, XP Pro (32 Bit) 2: 5000 sprites (32x32) - 183 ms - Athlon 1Ghz, 512Mb DDR2700, XP Pro (32 Bit) 3: 5000 sprites (32x32) - 162 ms - Athlon 64 3200+, 512Mb DDR2700, XP Home (32 Bit) (Laptop)
My brother is still a sleep so I can't use his athlon 750Mhz computer to test on but I will post the numbers for his machine when he get's up.
To use the ani sprite test demo use up and down arrow keys to add remove sprites or hold control and press up or down. Also pressing mumbers 0 thru 9 will set the number of sprites in the thousands (press 3 for 3000 sprites press 0 for 10000 sprites etc)
Download Attachment: Warp3DSpriteTestR2.zip<br>341.73 KB |
Created by: X http://www.createdbyx.com/ |
Edited by - cbx on Apr 15 2006 11:40:34 AM |
|
|