Max3D Noob thread

Miscellaneous Forums/General Discussion/Max3D Noob thread

Hi, I've trawled through the other Max3D threads and I'm still none the wiser. Can anyone please get down to the basics about Max3D so that noobs like me know what the hell is going? Thanks! :-)

e.g.

1) When is it planned for release? Roughly speaking.
2) How will it be distributed? I hear talk of SVN. Maybe a simple download zip would be cool for some of us, even if it's "out of date".
3) I gather it's free and undocumented.
4) So it'll work with BMax then right? Will I include it as a module or something?
5) Will I be able to use 2D and 3D in the same game on the same screen? E.g. spin a cube over a background made with Max2D commands?
6) Is it DX9 or 10 only or something? Or will it work with DX7 if I don't use fancy shaders?
7) Do I need to know anything else (big stuff, not fiddly tech details).

Thanks in advance to anyone that can help me with these questions.

AFAIK:
1) When it's not ready (in Q1 2009)
2) SVN only
3) Good code documents itself
4) It will work with BlitzMax, even if it's not a mod file
5) Yes
6) It's OpenGL 2.1+ only
7) You might need to learn GLSL language to make your own shaders

1. Soon. Imminent, by the look of it.
2. SVN I assume.
3. Yes, and yes.
4. Works with Blitzmax but apparently other languages too. Primarily Blitzmax atm, though.
5. No idea. I'm hoping you can combine 2D and 3D.
6. See 7.
7. I gather its OpenGL only.

OK thanks for the answers so far. OpenGL only, wow. So not much use for commercial games then...

Good code documents itself
hoho, don't want to go off topic here, but I personally prefer to read an English comment that I can understand instantly instead of having to comprehend some code, no matter how well written it is.

There are plenty of OpenGL and DirectX commercial games. The bad thing with DirectX games is that they don't give you the latest graphical candy, because the majority still has XP. Hopefully Windows 7 will fix that problem with DirectX10. I had the same problem with Far Cry 2, it just doesn't look as good as Crysis, which could be hacked to use DirectX10 quality under XP. Doom 3 and other very good titles were done with OpenGL, and they ran with amazing low end hardware. ATI also still has problems with DirectX and OpenGL drivers, but they are fixing things almost every week. I think in Q1 2009 the first fully working ATI drivers will come out.


OpenGL only, wow. So not much use for commercial games then...



OSX developers might disagree...

GL seems to be derided by most developers there days, and has almost no support in artist tools. Which makes developing cutting edge games a real pain in small teams without artists that are into coding.

One of the reasons the shaders in flow are d3d only is because I havent a clue how to make them work in GL. And the one that used to work in GL for the walkies demo (converted to cg) no longer runs and needs to be converted again. CG is very close to HLSL, almost identical so usually hardly any tweaking required for both GL and D3D.

So I'm mostly with Grey Alien on that front. Fortunately my commercial 3dsmax exporter will be supporting CG directly soon, but I don't believe anyone uses GLSL.

So really hoping theres cg or cgfx support.

You can't use CG, because it's a nVidia feature only. ATI cards support only GLSL.

somehow got a new post when editing this one.

Ah thats a shame since cg works fine on ATI cards, didn't know ATI didn't support it. Another good reason to not use ATI cards I guess.

Rendermonkey is total garbage, doesn't even import shaders unless they were created in rendermonkey originally, and the only good free shader tool belongs to nvidia :(

You can't use CG, because it's a nVidia feature only. ATI cards support only GLSL.

Sorry, that's all wrong. ATI cards support GLSL, HLSL and CG, all of the high level shader languages. CG was developed by Nvidia, but since the shaders end up being compiled to ASM anyway, it's completely irrelevant to support. They might be faster on Nvidia hardware, I suppose, but they're definitely supported across the board.

As Adrian says. there's almost no difference between CG and HLSL anyway. If you can write one you can write the other.

OSX developers might disagree...
Sure OpenGL is fine on Mac because it's up to date and default, but it's not on Windows and seeing as PC sales are generally a magnitude higher than Mac sales in Casual games, I'm keen to make sure I have a viable commercial solution for PC. If only OpenGL is supported how can ensure that customers have a decent version installed that works on their possibly crappy video cards?

Hey GA... from what I gather Max3D isn't going to be for Casual games for at least a few years, if ever.... ;-)

As therevills says - probably not for Casual Game usage - looking at the hardware spec required it is definitely not 'casual game' usage...I guess wait another 3-4 years when Intel cards have caught up to last year's tech - and hey by then if Max3d is still around it should be a tried and tested product.

Ah, I think I found the reason why some CG programs don't work on ATI:
CG "compiles" to an assembly-shader language. You are probably
outputting to an nvidia-specific assembler (vp30/fp30 or vp40/fp40). If you switch to ARB_vertex_program and ARB_fragment_program, you shouldn't be seing any problems.


I was only thinking of using a few 3D bits in some 2D games, mainly for special effects etc. (not GPU heavy) So should I consider another 3D solution compatible with Bmax then?

OpenGL only, wow. So not much use for commercial games then...
well considering GL is comparable with D3D v10+ (and people have been making commercial games with B3D which is only DX7). Plus you have the added bonus that it works on all on-spec platforms rather than just on windows vista.

No contest really.

Flow3D is probably the lowest hardware capable 3D engine for BlitzMax.
It's based on Ogre3D, and I tried Ogre3D on a GeForce 4 series card under openSUSE 11.1, and it worked fine for most demos.

I would have thought minib3d was the lowest hardware capable 3D engine for BlitzMax, although I've not used either..

Irrlicht Has 2 3D software renderers, so doesn't require any 3D requirements (of course then no 3D acceleration)

MiniB3D runs really well on my old Geforce4MX machine. Haven't there already been two casual gamer releases with MiniB3D? On the other hand, Flow stuff (thus Ogre) had some small rendering errors on the same machine.

I have run Irrlicht on an ancient laptop with unknown 4 MB integrated video card and the software renderers worked surprisingly well.

Another 3D library for low level machines would of course be Blitz3DSDK. :)

I gather Max3D is not to be used if one wants the project to be runnable on older machines.

Just pleased I'm working on my own DirectX 9 version, just literally finished adding skinned mesh's.

Its not for use primary in BlitzMax, it has a nice Blitz3D style feel to it, and Yahfree quickly wrapped the 2D stuff for C#!

Its coming along a treat, further than this, and I've only been programming it now for 2 months or so! Oo

And theres me, a hairy arsed plasterer by day! :P

Dabz

On the googlecode page it says this:

Requires modern hardware: an nVidia 8800 or better highly recommended.
However, it should at least run on anything with a GL2.0 driver and the EXT_framebuffer_object extension.


So... Probably won't be very suitable for casual games regardless....

I was only thinking of using a few 3D bits in some 2D games, mainly for special effects etc. (not GPU heavy) So should I consider another 3D solution compatible with Bmax then?
Use the existing 3D soulution for BM named B3DSDK. Now that the source comes with it, you can change something if you need to. IT supports all of the old systems that a casual game developer would want to target.

I'm afriad I have to agree with Grey Alien. When giving my games to friends to try out........

OpenGL = problems
DirectX = not a single problem

My friends have 'normal' computers eg WinXP you'd buy from a random shop or site.


My friends have 'normal' computers eg WinXP you'd buy from a random shop or site.



*Dabz grabs his tin hat*

;)

Dabz

I don't follow :(

OK thanks all for the info, very informative.

I believe it's been stated that it is opengl only for now, but a basic directx driver exists already, but he didn't intend to progress it until opengl version was stable.

If your graphics card is recent enough to have the necessary hardware features for Max3D, it also has decent enough OpenGL drivers.

Oh, and...

List of mostly-commercial OpenGL Games

Gl is cool but I can see if you are really worried about sales for lower end spec machines etc then you might want to be trying to provide a DX driver for graphics. Max3D needs GL 2 or 2.1 which is going to likely need a driver installation on many systems. I definitely wouldn't say it's targettable at casual games. But I am a little disappointed that it `requires` GL 2, it couldn't provided at least some fallbacks.


if you are really worried about sales for lower end spec machines etc then you might want to


... use MiniB3D/Blitz3D SDK! Really, Max3D isn't what you should be looking at in this case.

OK thanks for the confirmation, good to know. I definitely want a bit of 3D in future games just for fun.

But I am a little disappointed that it `requires` GL 2, it couldn't provided at least some fallbacks.
Why should it? This is exactly the reason PC's haven't advanced significantly in the last 2 decades or so. Because they had to make absolutely positively sure that the latest and greatest, could still run WordStar. OpenGL 2.1 is a year and a half old now, exactly how long do you think it's reasonable to wait for hardware manufacturers to get their act together? AMD, Intel and nVidia are all members of the ARB.

This is why PC gaming is dying. You want to be able to support 10 year old PCs. Console gamers don't care that their PS3 game doesn't work on a PS1.

their PS3 game doesn't work on a PS1.
Well that would have meant the PS1 was some kind of ultra cool forward compatible console, perhaps made with alien technology.

Most consle games are commercial games and quite different from indie games, same goes for the gamers. It's hard enough to make a successful 3d game even with a ton of compatibility so unless you have a good industry presence and are well established I really don't fancy anyones chances at supporting the latest hardware only.

It's fine if your just a bedroom coder making demos, but if your aiming for higher than that I think supporting older hardware is very important. DX9 hardware is still the most popular and by a significant margin. A lot of hardware that was extremely common in 2006/7 notebooks and cheap PC's fall apart with pixel shader 2 thanks to dodgy drivers and not having vertex processing on hardware.

In a couple of years it may not be such a big deal, and maybe in that time M3D will be developed mature enough to take Blitz3D's place.

Because they had to make absolutely positively sure that the latest and greatest, could still run WordStar.

Console gamers don't care that their PS3 game doesn't work on a PS1.

To make your point you merged backwards and forward compatibility as if these were the same... in fact, PS3 owners (or potential thereof) cared a lot about compatibility with the PS2, and software developers are still porting their latest games to the PS2 as well. This sorts of defeat your point with your own example.

Sony cared so much that the ps2 emulator chip was dropped by the time the ps3 went on sale in the EU.

Sony cared so much that the ps2 emulator chip was dropped by the time the ps3 went on sale in the EU.

I don't think that Sony's concerns necessarily reflect customer views. Anyway, Sony cared enough that they included it in the first place despite the cost, and customers cared so much that many rushed to buy the last version with the emotion engine and a plethora of posts and articles popped up on internet. I don't care at all since I've got a PS2 slim a few months ago and I never intended to buy a PS3 anyway.

However, I still think that we are comparing apples and oranges. Given the current audience of Blitz developers (mainly shareware/casual game oriented) and the availability of other advanced engines already wrapped for BlitzMax, it's plausible that many were expecting the sort of thing Grey Alien pointed out.

Personally, I was looking for a simple driver caps enabled engine which would let me discard shader effects depending on the supported model.

it's plausible that many were expecting the sort of thing Grey Alien pointed out.
I don't see how. From day one it appears Mark has said Max3D would be a next-gen engine. For those wanting what Grey Alien does (DX & low spec), that is why Mark released the B3D SDK.

Well I may not know what everyone else was expecting, but I know what I'm expecting now. For years, I've been hearing about all the awesome games that people here would have been writing if only they had Max3D. So I'm expecting to sit back and watch the jaw-dropping games roll in.

@Gabriel

So I'm expecting to sit back


I hope it's a comfortable chair! :)

For those wanting what Grey Alien does (DX & low spec), that is why Mark released the B3D SDK.

I was talking about higher shader models and fallbacks for older videocards. My only concern is the requirement of shader model 2. Of course basic 3D functionality has always been there and I'm pretty sure Grey Alien is well aware of it.

For years, I've been hearing about all the awesome games that people here would have been writing if only they had Max3D. So I'm expecting to sit back and watch the jaw-dropping games roll in.

Well, if such games should came from the "if I just had..." crowd I second Amon: let's hope it's a comfortable chair, and get a fair amount of popcorns too. :)

I disagree that providing fallbacks for older/slower systems is somehow `holding back` the leading edge. You can support BOTH the more recent hardware capabilities and also some of the less capable systems. There's nothing wrong with that. Those who have a fast system will still use their better hardware, those who don't can use the workarounds. I just don't see that locking the software in to `only use the latest driver` is necessarily forward thinking. We are *always* going to have a market where some people have real modern systems and some people don't.

I look forward to seeing what cutting edge games come out too.

Shaders are rarely general purpose enough that you can just throw tham around and expect them to work efficiently. They are usually quite specific and very specialized and rarely artist friendly without a lot of compromises to make them that way.

Reason that a lot of games made with other shader based engines look rubbish is that the shader programming languages out there just aren't very accessible to artists or your average coder for that matter.
Shaders are still in their infancy and there really aren't any cheap and easy tools to make using them more straightforward. Things are a lot worse with GL than D3D too since GL has waned in popularity for game dev these past 4-6 years.

Part of the reason why developers are quick to buy up licenses for engines like Unreal 3, is the high level editing and pipeline tools that do make the engine and shader tech more accessible to devs.

And Unreal Engine is OpenGL, right? ;-)

And Unreal Engine is OpenGL, right? ;-)

Well, it is for MacOS, Linux and PS3 ports...

Its not so much a D3D v's GL thing.I'm talking about making shaders accessible to artists, something that just isn't done with GL outide of expensive engines. Which is why I brought up Unreal. It has a nice artist friendly node based shader material editor similar to the one I bought for 3dsmax $250.

There's no point to having a fancy render engine if artists struggle produce anything for it. Without a good material pipeline a shader based engine is pretty much useless.

And Unreal Engine is OpenGL, right? ;-)

To expand on Doiron's reply, it's DX10/DX11 on Windows Vista, DX9 on Windows XP and Xbox 360, and OpenGL on PS3, MacOS X and Linux.

Without a good material pipeline a shader based engine is pretty much useless.

However you must admit that as of today in most cases standard maps (diffuse, dot3, specular) plus common shader effect (heat, fast fresnel) are enough and it's what the gaming industry currently uses. Make a diffuse map, add/bake to it an ambient occlusion map, add a DOT3 and a specular map and you are done. Then apply in realtime if needed fast fresnel, sub surface scattering, or everything else the developer wants to put in. It's the fastest route if you outsource graphics.

I for one would be very glad to be able to use material pipelines such the one you mentioned, darktree or the new node editor of Lightwave 9, but there is still road ahead in the light of standardization. However there are already shader authoring tools available (starting from the free FX Composer from nVidia) which are very helpful if you use the baked maps approach. Even if the Unreal Engine has its own node editor, you still have to adapt your current art pipeline to work with it, and not everyone has the time anyway to work on custom shaders.

EDIT: Also, Unreal's approach can be mimicked by using an external node graph shader authoring tool.

EDIT2: I forgot to mention Mental Mill, the artist edition being included into FX composer and which should be exactly what I was talking about.