Featires of your dream 3d engine?

BlitzMax Forums/BlitzMax Programming/Featires of your dream 3d engine?

AntonyWells(Posted 2005) [#1]
Please list them, looking for inspiration beyond the obvious.


Dreamora(Posted 2005) [#2]
- A good terrain system with support of vertex and texture alpha splatting.
- A real OOP implementation, not some slugish workaround. This time with documentation as reading all bmx just to use it the natural way is ....


Filax(Posted 2005) [#3]
Pixel shader's :) and dynamic volumetric shadow :)


SoggyP(Posted 2005) [#4]
Hello.

A Free Bianca Beauchamp.

Goodbye.


AntonyWells(Posted 2005) [#5]
Soggy, is she a woman or more importantly (or as importantly even) is she fit?

If she's fit, I'm sure I can arrenge something.
If she's not, don't bother me with your sexist remarks.
(That's a joke.(No, that's a bad joke - Critic))


AntonyWells(Posted 2005) [#6]
(Seriously again)
Also, at this point I'm interested in co-writing the engine with someone, mainly to broaden it's appeal and mainly cos I'm really more interested in having a great engine to use in my games.

So...if Anyone's got a reasonable amount of GL knowledge and obviously a fair bit of blitzmax knowledge, and is interested in having their name on the Vivid2.0 Credits, and making 50% of all it's profits, fire a w-mail this way-> Vivid@...


LarsG(Posted 2005) [#7]
- an engine good for both outdoors as well as indoors terrains/levels

oh, I don't know if this is up to the 3D engine, but if possible.. streamed, threaded, dynamic loading of objects/models...


TartanTangerine (was Indiepath)(Posted 2005) [#8]
Unprecedented polygon occlusion culling straight outa the box.


Picklesworth(Posted 2005) [#9]
Speed.
A pixel shader language built for it, similar to BASIC. Or at least .fx support, because then I could use FX Composer.
Shadows.
Lots of polygons. No polygon limit. :)


AdrianT(Posted 2005) [#10]
an engine with a proper art path so you can actually make something that looks cool with it. And a decent shadow system. Basicly Blitz3D with shadows, better occlusion, DDC textures, .FX shader support. And after using torque, some good scripting/mission builder editor stuff for quickly doing gameplay.


TartanTangerine (was Indiepath)(Posted 2005) [#11]
Oh and it must get finished and delivered on time.


AntonyWells(Posted 2005) [#12]
Oh and it must get finished and delivered on time.


There will be no release date this time around...(eyeball twitches)

Mr Pickle, GLSL most likely, but a basic varient shader language that generates glsl code is a possibility. :)


ImaginaryHuman(Posted 2005) [#13]
How about a compatible particle system, lighting, reflections and refractions, soft shadows, easy clouds/skies, animation features, recording and playback, save snapshots/movies, physics, collision detection, multiple cameras and windows, bumpmapping, spline models/landscapes, deformation, fluid dynamics ? ??


SoggyP(Posted 2005) [#14]
Hello.

http://www.biancabeauchamp.com

oops, disclaimer

* Contains a woman with bits sometimes showing *

Goodbye.


AntonyWells(Posted 2005) [#15]
Soggy, I'm sure I can fit something into her. I mean, fit her into something.


Chris C(Posted 2005) [#16]
just the ability to do this as simply as you can
in blitz3d would be a start

; LoadMesh Example
; ----------------

Graphics3D 640,480
SetBuffer BackBuffer()

camera=CreateCamera()

light=CreateLight()
RotateEntity light,90,0,0

; Load mesh - textures loaded automaticaly
drum=LoadMesh("media/geometricks_models/oil-drum/oildrum.3ds")

PositionEntity drum,0,0,MeshDepth(drum)*2

While Not KeyDown( 1 )
TurnEntity drum,1,2,3,True ; local or global
RenderWorld
Flip
Wend

End

oh yeah and all in opengl so the examples work out
of the box on all 3 platforms would be real nice...


N(Posted 2005) [#17]
-Loading shaders via Xml files (either A. the code for the shaders can be in the Xml file or it can provide a URL to the shader code)
-Custom vertex formats
-Compressed textures
-No fancy features like entities or camera or things like that

'Course, I'm not really looking for a game engine. Just a rendering engine.


semar(Posted 2005) [#18]
I wish a fast and stable 3D engine like B3D is, with a built-in particle system and dynamic shadow.

Also, a 3D world editor and lightmapper ala Maplet (Maxlet ?), with a built-in Droplet (object dropper).

That are my wishes so far, which I am ready to pay for.

Sergio.


SillyPutty(Posted 2005) [#19]
built in occlusion ( BSP, Octree, Portal whatever )
collision
physics
shaders.


ImaginaryHuman(Posted 2005) [#20]
3D blobby objects? Material properties for each polygon?

[edit] I guess environmental mapping would be nice, for objects of any shape, showing proper reflections.

It would be nice to have some kind of scripting or animation language.


MadJack(Posted 2005) [#21]
1, works as advertised

2, gives same results across different OS and graphics cards (for features that are common to all graphics cards)

3, stable

4, works as advertised

5, gives same results across different OS and graphics cards for common features.

6, did I mention number 5?

7, and 3?

Sorry to be a downer and a pedant, but there's no point in coming up with a AAA 'graphics engine' if it's not stable and robust across a wide variety of platforms. Forget Shader2.0, forget all these special FX, if it's not stable and doesn't perform robustly across different PC configurations, then just fogeddaboutit!


The r0nin(Posted 2005) [#22]
Well, if you are looking beyond the normal, one thing I'd like to see is full deformable terrain/polygons. Also, vertex-based collision detection and force projection in-engine. That way when the collision occurs, the terrain (or even other polygon models) can be simply deformed from the engine (I'm thinking of the explosion that dents/craters the ground next to the player, or even dents the wall behind him). Been working on a simple physics engine to simulate it on terrain (using a height map for the ground and alpha mapping to modify), but a by-vertex process would look terrific (and be pretty unique)...


ImaginaryHuman(Posted 2005) [#23]
Screen wipes/transitions


Warren(Posted 2005) [#24]
That it ships in a completed form at some point.


maximo(Posted 2005) [#25]
let's be honest you will not be on time with this, better start working on some game ;)


AntonyWells(Posted 2005) [#26]
That it ships in a completed form at some point.


Which still doesn't tell us if the unreal3 demo was running on a ps3 or not.

let's be honest you will not be on time with this, better start working on some game ;)


No 3d engine I can use. Irrlict is nice and perfectly wrapped, but not as flexible/sensibly laid out as I'd need to spend six months using it for a game.


AdrianT(Posted 2005) [#27]
it was running on a PC with the new GF7800 GTX according to all the gaming news sites. Not a PS3


AntonyWells(Posted 2005) [#28]
Well, why show it a ps3 conference as a technical demo of the ps3 and why did Jeff specifically state they've been working on the ps3 version being shown for nearly three months. Man, I kind of wish they didn't go with Nvidia now. It's going to be out of spec by the time they release it...

I suggest you quit warren out of protest. "I REFUSE TO BE A PART OF YOUR LIES I " " NEXT..." "BUT I.." "NO NO, YOU QUIT. WE ACCEPTED. NEXT" "...I'VE MADE A HUGE MISTAKE."


*(Posted 2005) [#29]
im with Madjack, nothing more off putting for a 3d engine than it not doing what it says without you having to write it from scratch, also crashing for no apparent reason.


AntonyWells(Posted 2005) [#30]
Vivid2.0 will be a new benchmark in usability and stabaility. It'll do your taxes for you. It'll cut your hair when it's long. Trim it when it's short.

(Lights a cigerette) I needed that...


Alberto(Posted 2005) [#31]
Hello
Advanced animations
animation blending, morphing etc


AntonyWells(Posted 2005) [#32]
Alberto, yep unlike vivid1.0, v2 will offer animation support of some kind.
-

Another similar question guys, is how would you prefer shaders(pixel/vertex etc using glsl) be exposed to the engine?

The current two ideas I'm going ahead with are,

1.Automatic shader generation to emulate all fixed functionality but with optional extras like per-pixex/per-vertex light switches.

2.Material Shader skins. Objects that can be told how to maintain a shader and it's pars, and are activated per material.

3.Multi-pass shaders. Ability to define multiple shaders for use at once with vivid2 automatically re-rendering surfaces with each shader set binded by it..

Too long winded? Simplier setup?


ImaginaryHuman(Posted 2005) [#33]
The whole topic of shaders is totally new to me and probably to a lot of other people. All I know is that they are a certain program that somehow gets run by pieces of the pipeline on the GPU, to do special stuff on a per-pixel or whatever basis, for lighting or special shading, cartoon effect, etc.

To access that it would be great if it could somehow be easy to create/program a shader without having to use some external app or complicated extra instruction set. A simplified instruction set would be nice. You could have some pre-set shaders or have it so that certain variable are adjustable from within your app.


Bot Builder(Posted 2005) [#34]
Well, I´m interested in working on it, however, i am probably way too unproven as far as finishing something goes. I´ve got some decent ogl knowledge, as well as some ideas for engine design, however i´ve never actually made one before.

Something I will request, though is to have a nice OOPy engine with most of the functionality implemented into the base class, or at least most of the commonly used methods abstracted. So for instance you can set up shadows for any object, even if its a camera (which it will do nothing for).

Another thing is that it´s fast without sacrificing stability. In order to do this in the beginning you would fill up a bunch of global variables with information about the limitations of the current card/driver (commonly called caps). For instance, if the card supports vertex buffers loaded on the card, or vertex arrays, index arrays, etc, the list goes on. Then have it so that the user doesn´t need to decide on implementation details. Sometimes this is impossible though as the engine cannot predict future usage so you have to have stuff like CreateStaticMesh (Vertex Buffers, if the card supports them), or CreateDynamicMesh (vertex arrays, if supported). These could all fall back on the old ´n slow glBegin(GL_TRIANGLES), or better yet a buffer of stored graphics card commands (forgot the actual name for this). The point is that there are tons of ways to do things, and the responsibility of the engine is to pick the best one.

The engine should also feature the ability to begin doing something within a few commands, like blitybasic3d - no complicated setup required. Allows for some quick scratchpad experimentation with ideas.

Finally, an idea not in blity3d would be to have seperate worlds of objects. For instance a menu world, and a game world, so that you can switch between them without reloading. Oh, and make Render() a method of cameras.

I might be able to help you on it, although right now might not be so good because im in germany right now for 2 weeks. The summer is a really good time to do something like this because i have a ton more free time.

Yäy g€rmän keyböärd! Makes coding tough though - all the symbols are moved around :(


maximo(Posted 2005) [#35]
btw, who is this person you said goodbye in the dream?


AntonyWells(Posted 2005) [#36]
Bot, no worries, something tells me this is going to take a few months at least anyway. Get in touch whenever, and I'll send the current build. (It's not nearly finished..so even if it doesn't work out it's not like i'm giving trade secrets away. )
Most of your suggestions are sound. Graphics3D wrapper already implemented. :)
-

Maximo, yet another one that got away. :)
But not to worry, I'm now happily in unrequieted love with my doctor. (Begins to tie rope around neck)


Warren(Posted 2005) [#37]
it was running on a PC with the new GF7800 GTX according to all the gaming news sites. Not a PS3

Wrong.


AntonyWells(Posted 2005) [#38]
Lol, wrong in what sense?(And beside in the sense of it not being right.)
I saw on GAF that word is it was now running on two g7's sli'ed.. Ps3 alpha kit?


Warren(Posted 2005) [#39]
"Wrong" seems like a pretty easy word to understand. Based on past experience, I don't want to use multiple syllables with you so I don't know what I can do to help you at this point.


AntonyWells(Posted 2005) [#40]
<Removed post to pre-empt any war of the words.>

Of course I used a multi-syllable word there so I can't be sure that made sense.


jfk EO-11110(Posted 2005) [#41]
I'd love to see an engine that is fully Blitz3D compatible (or a Code translator that is fully capable of translate everything correctly), plus fast shadows, probably some shader FX and som additions to th collision system.

But since Mark is working on a 3D Engine like this too (AFAIK), it won't make much sense to do this twice.

So why don't you simply write a game engine from scatch? Something like doom 3.


AdrianT(Posted 2005) [#42]
support for ATI and Nvidia's .FX format would be best for shader materials as most 3D apps and nvidia and ati's tools support them natively in a WYSIWYG fashion. SO no guess work needed with dodgy non artist friendly coder tools ;)

Someone alreday wrote a DDC texture compresion module for Bmax, integrating this so artists get full control of their texture compression via tols like photoshop and paintshop pro would be another big score for me.

I'm kind of hoping mark supports these things in his engine though, since they are pretty much industry standard and everyone uses them now.


AntonyWells(Posted 2005) [#43]
Jfk, while Vivid2.0 will certainly share some design points of b3d('Cos it's my fav 3d engine too really.) it'll be entirely oop based, mostly.
Though i suppose it wouldn't be hard to do a b3d style wrapper of it's functionality?

Evak, problem is fx is really a directx thing as far as I'm aware. Plus glsl is a really nice easy to use shader system(Compared to CG at least, which was a bloody multi-.dll infested nightmare of a set up...PS3 is teh doomed(i feel cheap...))
but dds, is more likely. got a link for that dds loader?


Takuan(Posted 2005) [#44]
Support of shader tools would be a must have in my next engine. ATIS Rendermonkey has OpenGL Support.
Coding usefull shader effects from scratch is NOT fun.

By the way, the only usefull shader tool i have found has been bought by activision shortly after release.
Why compete with mark, if the world needs tools to create shader effects?:D

Good Terrain support would be a must have too.
That ugly stretched texture thingie in B3D is so frightening.

Engine developed with Max/Maya in mind.
Its a little sad if you first have to wait for "pudding's" next cool tool.


Dreamora(Posted 2005) [#45]
best thing for shader would be hlsl as it isn't owned by OpenGL or DX.
Whats the use of shaders that are restricted so a card or an api ...


Takuan: If you can afford one of those 2 tools, buying a real engine shouldn't a problem anymore ;)


AntonyWells(Posted 2005) [#46]
Well, if you know a way of integrating what is essentially a feature of DirectX9 into an OpenGL-only engine I'm all ears, but I really wouldn't know where to begin.


Why compete with mark


'Cos he kicked me off the Blitz Beta team years ago and I've still not got him back for it? :)
Nah, I just need this 3d engine for my own game...may as well kill two birds with one stone and sell it. I'm half tempted to make it open source though..if I thought there was actually people interested and capable of helping develope it. TrinityOS went down...like the titanic so I'm not really convinced there is.


Bot Builder(Posted 2005) [#47]
T'would be cool to make a shader language that is translated into both glsl and whatever dx's shader lang is. Very hard to make, but not impossible. They both do the same kinds of things. It would be like writing a basic to C converter.

I'll send an email.


AntonyWells(Posted 2005) [#48]
Yeah I'm very interested in writing a low level language that 'compiles' into at least glsl. I did start this for Vivid but it ended up being so horribly complex and ambitous..I tried to make it so it compiled into cpu AND gpu code, all from one source. (Just take a moment to think of the logistical nightmares of that if you will.)

But anyway, I'll fire up outlook.


Bot Builder(Posted 2005) [#49]
I've just realized i dont have your email, at least not on any of my webmail. perhaps on my home computer.

You can send it to botbuilder gmail com if you like.


AntonyWells(Posted 2005) [#50]
Yeah, it's Antony At Excess.eclipse.co.uk.


Bot Builder(Posted 2005) [#51]
doh, just found it embedded in the thread...


Jay Kyburz(Posted 2005) [#52]
In my little game engine im trying to write a resource manager that will automatically reload assets when they change on disk and have them update in game without restarting.


AdrianT(Posted 2005) [#53]
there's stuff on the nvidia dev site for loading .fx in GL

3dsmax creates .FX or .HLSL files from the regular 3dsmax material editor with all your wysiwyg specularity, normal and a bunch of other map types. XSI has similar support now judging by what I saw on the developer news this week. Not sure if maya does, havent used that in over a year.


AntonyWells(Posted 2005) [#54]
Well those kind of shaders generally(But not always) require a lot of assistence from the engine/code that is using it.

Normal Mapping demos for example require you to pass mesh tangents etc. So, although it is a nice dream to be able to produce wysiwyg shaders, it's rarely as easy as that.

I prefer coding shaders myself. It's fun. :)

Jay, check out the winAPI. there's a function to check if a file has been modified.


AdrianT(Posted 2005) [#55]
yeah, only problem is that most coders aren't artists and have trouble getting a good overall look. Like your over enthusiasm for bloom, which most of the time gets in the way and completely screws up the textures and lighting in a scene. It needs an artist to adjust those things and get a consistent look.

The WYSIWYG thing just works if your engine supports the shader format correctly, the problem with the .FX in GL is probably that the nvidia solution is windows only. Or that's what I gather considering it seems to be in DLL form.


Warren(Posted 2005) [#56]
Tools are the single most important thing an engine can provide to have decent looking artwork. The UnrealEngine stuff we show looks so incredible due to 2 things:

1) We have kick ass artists
2) We have kick ass tools. UnrealEd has a visual, node based material editor and the artists have produced amazing results with it.

Give them the tools and they'll take you places you never expected. Make them go through a programmer or type/edit text files and you're cutting your games throat.


AntonyWells(Posted 2005) [#57]
I'm all for tools, but I'm just trying to be realistic about what is possible.
I've yet to see a shader produced from any editor that didn't rely heavily on varying inputs that simply HAVE to be generated by the application running them. (Be it Tangents, custom..well Whatever. Just goto shadertech and try to run one of their shaders without a slew of C++ code to back it up.)
I suppose whatever Evak's on about may come with an api to do that, but I'm really against windows only. I want to make as much money as possible.
So at the moment it's just not THAT big a priority to me. I'm sure Mark's engine will be no different in this respect.(Shrugs)

Incidentally, the artists I'm working with are kick ass themself, and they're helping (Conceptually) with vivid2.0's design, work flow etc, so I don't think it'll be a problem either way.


AdrianT(Posted 2005) [#58]
My last post and how it relates to your previous engines, was mostly from experience with Vivid and Trinity and old blitz projects we worked on where I often found that I had limited control of materials textures and lighting, often leaving me with oversaturated and or bleached out textures and lighting that that was often hardcoded so the only thing I could do to compensate was adjust my textures in photoshop.

like forcing 4x multiply because you liked the way the lighting was closer to per pixel was a nightmare from an artist point of view, as it was almost impossible to compensate without some super drastic measures.

Still, looking forward to see what you come up with. Hope you manage to stay focused on your projects this time and don't lose interest when things get tricky.

I'd highly recommend supporting the B3d format ASAP as that is a really good game centric format that gives artists quite a lot of flexibility out of the box. And one of the better formats that supports bones and vertex weights.


AntonyWells(Posted 2005) [#59]

Vivid and Trinity and old blitz projects we worked on where I often found that I had limited control of materials textures and lighting, often leaving me with oversaturated and or bleached out textures and lighting that that was often hardcoded so the only thing I could do to compensate was adjust my textures in photoshop.



In vivid, definitely the case with it's bodged up b3d loader, but one bug aside Trinity's b3d loader was practically all working.
It shall be ported to Vivid2.0 Fairly easily though, so..that'll be in.
I'm using 3ds for my current game(Artist insisted) though(just nuked the last bug.Was going to post a compatibility test, but not after mark's kick ass demo. I need to do some more cool <bleep> first..)


AdrianT(Posted 2005) [#60]
hehe, going to be a while before I get to try anyones shader 2 engine demo's. Waiting for a 7600GT card to be released. A few months I'd imagine :)


Warren(Posted 2005) [#61]
I've yet to see a shader produced from any editor that didn't rely heavily on varying inputs that simply HAVE to be generated by the application running them. (Be it Tangents, custom..well Whatever. Just goto shadertech and try to run one of their shaders without a slew of C++ code to back it up.)

However much work it is, it's worth it. UnrealEd does it and it's just an amazing productivity boon for the artists.


ImaginaryHuman(Posted 2005) [#62]
Where there's a will there's a way!


AntonyWells(Posted 2005) [#63]
But at the same time Warren, don't you find it hampens all round creativity fx wise?
I mean with shaders you have the amazing ability to literally code any sort of material effect you can imagine,
Now, if you build a pipeline that is tool-centric(And a tool that is wysiwyg based), surely this suffers as a result?

You're basically taking away a fine pencil and replacing it with a ink stamp.


Amon_old(Posted 2005) [#64]
Please list them, looking for inspiration beyond the obvious


To answer your question I would like it to be noob friendly. If I cant install it and make my game with ease then its not for me. I also kind of agree with warren. The more tools you have to do the job the better it is. I've noticed a lot of new Game coding languages now coming with built in tools for editing all sorts of things for a game wether it be models, terrain or special effects.

Looking forward to vivid2 though.


Picklesworth(Posted 2005) [#65]
Oh, new feature:
Eventual support for my physics program's (the best program in the known universe) file type :D


AdrianT(Posted 2005) [#66]
You're basically taking away a fine pencil and replacing it with a ink stamp.


not really as the alternative is that your artist sits around getting depressed because nothing looks like it should, but he has got no control of what he's doing. Lighting and texture work involves a lot of subtle tweaking that often requires visual feeback to do well.

leaving it to a coder and trying to explain what something is in words just doesn't work, particularly when you need it tweaked.

Remember in Rifa, we spent days trying to get a specular map, and even with examples rendered with a 3dsmax material you didn't really understand what it was that the texture did.

the core set of tools that an artist is going to use is going to be made up of a series of fairly generic shaders.

Specular maps and masks and possibly fancy bump mapping. having precise control viw WYSIWYG tools means that you can tweak the map and the shader and experiment more with these base effects to get the variety you need.

Coding shaders is often more trial and error and somewhat tedious and in many cases leads to lazy artists not producing work. Particularly if they don't get to tweak at all.

Some shaders obviously don't need so much artist input, but essentualy taking control away from the artist is like trying to finish your work blindfolded and restricts creativity.

Artists should really be in control of visuals and be able to create assets that are designed with a specific look.

With trinity one of the nost frustrating things working on rifa was that the look of the game totaly changed from one day to the next depending on what you felt like tweaking. SO I might have spent several hours compensating for something you did that looked bad and ruined my textures, only to find that the following build was totaly different again and needed to be relit from scratch.

I'm a firm believer that artists and coders should 90% of the time stick to what they do best. Only problem I see if that these extra tools are a hell of a lot of work for one person to produce. But thats why games are created with teams of programmers and artists, rather than a couple of individuals anyway. And those that dabble in both sides usualy have a solid understanding and proficiency in both.


KimoTech(Posted 2007) [#67]
A Blitz3D-like engine, with a DX10 Renderer, soft stencil shadows, easy AI system, .fx Shader Integration, 'RemoveVertex' and 'RemoveTriangle' functions!!!!, and some kind of water and glass effects.


tonyg(Posted 2007) [#68]
.. and a time machine.


popcade(Posted 2007) [#69]
1. OpenGL/Direct3D dual driver
2. Fat as Blitz3D
3. Shader 1.1
4. Cros Platform
5. Unicode
6. As powerful as OGRE/Irrlicht/TV3D

That's very cool and have bixz potential


Picklesworth(Posted 2007) [#70]
Argh! The past me! The bumping... it burns!!!
You imbecile, our meeting could cause a massive paradox in time and destroy us all!

Anyhow, my dream 3D engine would have next to nothing except a basic framework to make 3D easy, and an extensive plugin system so I can turn off and pleasantly manage all of the useless features that I do not want.
Of course, that plugin system would have dozens of pre-existing plugins to do fun stuff like hardware shaders.


Dreamora(Posted 2007) [#71]
Shader 1.1
You are aware that by DX9.0c Dec 06, even DX does not officially support them anymore? :-) (was dropped together with Win9xStoneage Support)

I would like to extend the plugin idea:
The entity bases on a component system. So Physics, Collision, Material etc can be added to entities when needed, its not just there. (similar to XNA)


FlameDuck(Posted 2007) [#72]
not very often u see a 15 year old developer eh? :P
You'd be surprised...

6. As powerful as OGRE/Irrlicht/TV3D
Then why not just use OGRE/Irrlicht/TV3D?


popcade(Posted 2007) [#73]
>6. As powerful as OGRE/Irrlicht/TV3D
>Then why not just use OGRE/Irrlicht/TV3D?

Actually I' playing DX8.1(call me old-fasioned), I found what I need is light and easy to use engine, Irrlicht is the most close, if there's no such great engine I dream about, sould stick with Irrlicht tho.

As a side note, it's also a learning project.

>Shader 1.1
>You are aware that by DX9.0c Dec 06, even DX does not officially support them anymore? :-) (was dropped together with Win9xStoneage Support)

It actually still works, I'm not going HLSL soon, of course I have my reason to use some old techs, later days I'll isolate the renderer as an module and that should works with later DX.


Chroma(Posted 2007) [#74]
Please list them, looking for inspiration beyond the obvious.


For you to actually finish and support it. Sorry, was that an obvious one?

EDIT: Bah! Just realized this post is a year old.