Another Day In Blitz3D

Blitz3D Forums/Blitz3D Programming/Another Day In Blitz3D

Kenshin Yurihara(Posted 2011) [#1]
Hello again, community. I'm refusing to move away from blitz3D, just because of how much I like the simplicity and the management Blitz3D has out of the box.

Anyway, I've been reading up on Texture Splatting, I've been wondering if using Fast Extension is the only way? If not what other ways has it been achieved? I'm rather curious because I wish to do my first 3D project.

I've done several 2D based games in C++ and B3D and I'm wanting to continue on by starting 3D now.


Any help would be greatly appreciated.


(I read it was possible to use a .dll to do it, I could quite easily do that, if that is possible as well)

Last edited 2011


Guy Fawkes(Posted 2011) [#2]
Go for your dreams man! Don't let ANYONE on the forums stop you! and believe you me, a few people WILL try. Don't give in! :)


Kenshin Yurihara(Posted 2011) [#3]
That isn't precisely what I meant, but I was just asking how yall've done it, lol.


I think I'm going to check into doing it by .dll..


Here would be a good question, when Blitz3D Calls, "Graphics3D" what does it
name the "DirectX" device? Someone with Blitz3D SDK would know, I believe.

Last edited 2011


Kryzon(Posted 2011) [#4]
Someone did do it without fastExt a long time ago: http://blitzbasic.com/Community/posts.php?topic=52663.
He used to sell the source and media, but the system he uses (AlloPass, never heard of it), doesn't seem to support US and UK purchases: http://bond357.free.fr/main/forums/viewtopic.php?id=3 (follow the "TELECHARGÉR" link).
I have a vague memory the DLL he uses isn't different than Tom's D3D lib for Blitz3D. Perhaps it's the same; the secret is in how he uses it.

To retrieve the handles to the graphics context etc. you can use SystemProperty(): http://blitzbasic.com/b3ddocs/command.php?name=SystemProperty&ref=2d_cat

Last edited 2011


Yasha(Posted 2011) [#5]
I think this is related -

A recent discussion on terrain texture splatting: http://www.blitzbasic.com/Community/posts.php?topic=94838

The eventual solution (got its own thread): http://www.blitzbasic.com/Community/posts.php?topic=94922


It does appear to use FastExtension though. However, to be honest, if you haven't got FastExtension, give it some serious consideration. It massively extends Blitz3D's power, and does so in a very consistent and natural way (basically a lot of it is "hidden" stuff that could have gone into Blitz3D proper but was left out by Mark for one reason or another - but there's also a lot of original content from Mikhail).


Kenshin Yurihara(Posted 2011) [#6]
I have considered using FastExt, mainly because although I could spend ages using a rendering engine like Orge or Irrlicht and add texture splatting to those and use good old C++, I would rather have simple B3D to manage things.

I'm not exactly positive on what I'm going to do now, I'm having mixed feelings on how to go about this project because I could do it so many ways and I just want one that, the project isn't massively crappy looking, but I don't care for it to be the best darn thing in the world.

I'm more so thinking about what I'm gonna do for this project, then I'll decide if I wanna force B3D to use texture splatting, lol.


Kryzon(Posted 2011) [#7]
Well, if you're planning on starting something new, I suggest it being away from Blitz3D. You're only fond of Blitz3D now because you're very familiar with it, or at least you know you can rely on it.
If you develop this same familiarity with a modern engine that has frequent updates, advanced features, backwards-compatibility and an active community, you're golden.

Also, think if it's worth all the trouble to get T. Splatting in your game... I mean, it looks good on paper, but even without it Banjo-Kazooie managed to look like this:


The transitions on the ground are given by a single diffuse texture; it doesn't have splatted layers.
That is, it's a regular-sized texture stretched over the entire ground. This on a console with just
4MB memory for the current scene (for instructions, models, textures and audio).


Last edited 2011


John Blackledge(Posted 2011) [#8]
Yasha - thanks for the vote of confidence. Yes the link is http://www.blitzbasic.com/Community/posts.php?topic=94922

Kenshin - I have achieved the sort of look that Kryzon shows, but using B3D and FastExt. There is no need to go to another software engine if you use B3D and FastExt. (Aint that reassuring!)





Guy Fawkes(Posted 2011) [#9]
Sexy, @JohnBlackledge =D


Kenshin Yurihara(Posted 2011) [#10]
Not to sound awkward, but I believe if blitz3D had Texture splatting from the get go(and better blend modes XD), a lot of people wouldn't of moved away from it, makes things so much more beautiful. Anyway, I'm still deciding on how to go about it, also it does seem FastExt does make Blitz3D less..old? Persay.

Lol, I'm down too 2 conclusions.

1. Develop the mapper with Blitz3D, then do the actual 3D rendering and
coding in C++ with Irrlicht. (Leaning towards this one, largely)

2. B3D + FastExt, explains it all.


Option 1 Pros: Modern DirectX 9, fast implemented particle system,
something I'm somewhat familiar with.

Option 2 Pros: Very Familiar with B3D, Faster programming.

Option 1 Cons: I'm not too fast with C++, but I'm not exactly slow.
I'm not very "smart" when it comes to shaders and all that, really need
to study those..

Option 2 cons: Older Graphics, Slower Running.

So, I'm just kinda weighing my options.


@Kryzon

Yes, that is also a way to achieve close to the same effect, the reason I prefer texture splatting however, is that it can be done over and over again using just the base textures, you don't have to create several WHOLE terrain textures and texture splatting blends the textures together, bringing more of a unity.

Last edited 2011

Last edited 2011


Yasha(Posted 2011) [#11]
also it does seem FastExt does make Blitz3D less..old?


Pretty much. FastExt does a great job of showing off DirectX 7's full power. Unfortunately (for it, not for us) it was superseded before graphics cards could use it properly.

As for your two options...

I'd recommend you consider which is your higher priority: finishing the product or learning a new technology, and base your choice on that. You'll probably make a much better product in the short term with B3D, whereas if you take the Irrlicht option you'll spend a lot longer bringing it up to the same standard you could have achieved quickly - learning is great and all that, but it does slow down production.

As an aside:
I'm not too fast with C++


C++ is one of those languages with a thousand ways to do everything. You'll work fastest if you stick to the stuff you know and introduce new language elements gradually as and when you need them (you can do a heck of a lot just using the original "C with Classes" core language). It's very, very easy to get confused by the vast array of options and trip up in modern C++. (Of course my point of view on C++ is well known and best summed up as "avoid it", but if you're already fairly comfortable with the language then you may as well keep going.)


Kenshin Yurihara(Posted 2011) [#12]
I'm actually very comfortable with C++, as in truth, I've used it long before I even knew about B3D, lol. Its as you said though "a thousand ways to do everything" which is why I didn't stick to using it at first.

My basis right now, is really just to finish a decent long term solo project. I would also like to catch up with modern technology, so that I understand how things are done now a days.



Final Decision: I will use Blitz3D to develop a varity of tools to speed up the development process, then use C++ and Irrlicht to render and bring the actual things to life.

Using B3D, to create tools to make the world, items, gui creator and various other things, means I won't have to do AS MUCH math from my head while using irrlicht, which will make things 100s of times faster, for me
atleast.

Last edited 2011


Kenshin Yurihara(Posted 2011) [#13]
Here is a new question for yall, is there a existing B3D Gui, that is done in 2D-in-3D? I need it to be free, as I hate spending money and would rather build one myself if it comes down to it, but if I can avoid re-inventing the wheel, I shall.


I need one because, my world editor needs several list and visible clicking options..lolz :)


Adam Novagen(Posted 2011) [#14]
2D-in-3D? DevilGUI might be what you want: http://devil-engines.dev-ch.de/devil-gui

It's entirely rendered in 2D imagery, and comes packed with several premade skins. However, if by 2D-in-3D you mean something that uses 3D sprites/quads to render a 2D appearance in 3D space... No idea. Best I could suggest would be WinBlitz3D, which is a GUI DLL that you can use to add a genuine (albeit basic-style) Windows GUI to a Blitz 3D program, but it has limitations; almost no documentation, fiddly, requires windowed mode and so forth.

Question to the forum at large regarding Kanshin's question, do the Fast--- userlibs have a GUI DLL? I haven't looked at them in ages...


Kenshin Yurihara(Posted 2011) [#15]
Yes, I meant quads and sprites. However, I may not need single-surface, as Raw Speed might not be a REAL big concern...hmm back to the drawing board.

Also, I found one, its just REALLY old and was never completed it seems.

http://www.blitzbasic.com/codearcs/codearcs.php?code=1194

Last edited 2011


Yasha(Posted 2011) [#16]
There's a 2D-in-3D version of Escape GUI: http://www.east-power-soft.de/index.php?menu=blitzbasic_blitzbasic_escape

If you don't need something as powerful as a full GUI system, Draw3D 2 has some limited button and so on functionality built in: http://www.blitzbasic.com/Community/posts.php?topic=92270

Also, why 2D-in-3D? If it's just for performance (to avoid the horrible slowness of 2D-2D), you should also get good results from WinBlitz3D or whatever it's called - that's far and away the fastest and best GUI library since it actually uses the Windows native GUI system.

As far as I'm aware Devil GUI is 2D-based, so I would avoid it. I haven't examined it in detail though so I could be wrong.


Kenshin Yurihara(Posted 2011) [#17]
Yes, the aim was at performance, but then I realized, I'm only going to be rendering models within a certain range of the camera and probably throw a fog up too, to reduce FPS lag. So I could probably just wing together something small or use one of the listed ones.

Last edited 2011


Wings(Posted 2011) [#18]
Here is a pic. it shows the core power of blitz3d. no plugins whatever needed. but forgett using alpha on player or enemy mesh after usting vertex alpha. the triangles dose not sort :(




Rroff(Posted 2011) [#19]
Yeah alpha is a massive issue :(

I had a pretty decent terrain editor going in blitz but gave up in the end due to the alpha issues and now re-approaching it using tiles (screenshots from the abandoned version).

http://aten-hosted.com/images/cldtest2.jpg

http://aten-hosted.com/images/roadtest2.jpg



Last edited 2011