TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (1 of 10), Read 333 times
Conf: Discreet Take 5
From: Chris Subagio
Date: Friday, July 18, 2003 02:19 AM

Hiya. Long time no post here, been busy, but we're finally winding down the project I'm on and I'm getting in all a thinking mood. Forgive me if I waffle on, but there is a big ol' point at the end of this.

First off, who here is using Max with games? And I do mean whom here, rather than which company in general. I'd really like to know how many technical/ technically inclined people use Max for gaming too.

I've been a maxer primarily for ages now, and have stayed so by circumstance despite using the other packages professionally as well for stints. I've been an artist and have done various categories of effects work, TV, film, and even a few rather dull print bits. This project round though (my first game), I found a new branch in the path. Halfway through and I started to learn to code for myself. I've always had a muck with script languages and such, but this time it was proper code, and by golly does that get you a lot further than relying on you and a programmer effectively manifesting an abstract concept. So far, besides normal art chores, I've ended up doing a heavy portion of the effects work on this project too, and I'm accelerating towards the end. By virtue of being on effects and having to stick in my own hooks (i.e. how the effects get used), I've err... fondled (!) every other bit of game code in there. I'm babbling on about this because I want to point out that I have what I consider to have a very grounded base out of which the rest of this post comes from.

Now. I predict the relevancy of general 3D packages (all of them), if they continue down the path they're on now, to wane in game production. Shock horror Nostradamus prediction? No, just an observation based on practicalities. Many of us use in house tools. We have to, some bits of data you just can't generate any other way. The problem is that the percentage of that complicated data is growing steadily.

Time was when you modelled everything you needed, generated animation and all, then just treated the data like a big ol 3D sprite and chucked it around willy nilly. So much more is data driven now, you have collision, logic, parametric motion variables, sound triggers, all sorts riding on the back of the data. Even in the game we’re finishing now, the movement of the entities is derived directly from the animation (as opposed to being procedural, with the animation just being played locally), and our colliders are all parametric (animateable!) Max primitives with custom attributes. We even used note tracks as general purpose triggers. Fair enough, we could cover our needs this time, but the list of what I want to accomplish in our engine’s animation module is fast outgrowing Max’s capacity to provide data for it, at least not with equally as much effort being put into it as if we were to write our own tools, which is always preferably in the long run because you are never going to hit an artificial wall imposed by a host architecture.

And that’s just broadly swiping at animation. I recon modelling will always have a home in Max, but game shader design and character rigging probably wont. Same problems with above really. You could spend ages designing analogues in Max to what you already have running, or design your own tools instead.

Besides the work at work, I also dabble a lot at home. I’ve written my own engine from scratch, and am designing my first game. Given the freedom to experiment, naturally I can try far more radical and intricate things than I could at work, simply because the goal at work is always a dependable, stable build, which is hard enough to maintain in a multi programmer environment without being overly adventurous. I’ve already written my own animation tool. Sure it doesn’t do half the things Max does, but it already does far more in terms of what I have implemented in the engine. It shows me exactly what the animation will look like with my interpolators, and allows me to create and preview the exact procedural controllers I’d use in game.

So given that I believe the above scenario will continue deepen the rift, exactly how do we think Discreet can continue to be a vital part of our professional lives? Well, I’d love to hear ideas and suggestions tendered here. Personally I believe it’s probably already hit the guys at Discreet, and there are bits and bobs that are making promising hints at the future. The code for the 2 bone analytical IK was implemented and given away in Max4. This meant that animation using that system was far more wysiwyg than ever before, given you use the algorithm in your engine of course.

Which brings us to a fairly logical conclusion you see, one which I’m not sure they’d be willing to commit to. I believe that the way forward for Discreet and games is to get into gaming middleware. There is absolutely no way they can provide better data for a game than if they were the editor for their own game format data to be used in their render own engine.

It’s no easy commitment. Support for middleware has to be immaculate if anyone’s to trust them, and they’d have to get in experienced game coders to guide them in optimising the living daylights out of it. They’d have to support a lot of the common techniques already in use, and probably try to throw in some more solutions to attract the first customers, not to mention all the relevant current platforms. All in all, an expensive and lengthy project. The upside though would be if the product was quality, they could completely own the market in a few generations, instead of constantly scrapping with the others. The benefit for us would be a far more relevant tool on a dependable, and above all common, platform. I’d love to concentrate on the higher-level stuff in a game, but as it stands you spend ages just getting a pipeline in place, then maintaining the thing.

I could go on for quite a while as to the tangible benefits, both from an artist’s pov and a programmer’s, but this is getting really long and I’d like to hear from everyone else at this point. What do you guys think?

- Chris.

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (2 of 10), Read 274 times
Conf: Discreet Take 5
From: Steve Green
Date: Friday, July 18, 2003 03:17 AM

Well as one who is using Max for games...

I'd pretty much agree - we aren't using Max for any of our vehicle models really, it's all modeled with in-house tools since we tend to use patches to generate LODs and Max's patch modeling is pretty sucky (you can't select multiple interior vertices for a start).

Level building is also done pretty much externally, since Max is not quick at handling large numbers of textures, and setting and organising attributes at the face level is a bind. We were using it to bake in vertex lighting on finished levels on our last game (in part), and we're looking at alternatives now where we write our own lighting solution and keep Max out of it.

Our main use is for character modeling and animation. We've also been looking at using it for normal map generation, but with the PS2 as the main console market, it's not a priority.

So... I pretty much agree with what Chris has said, I see less of a use for Max in games, purely because they are getting so complicated that trying to get Max to handle all that data is not worth it. Like Chris, I still see a place for modeling, but I also see animation being handled in Max (though with rag-dolls coming in, how long will it be before more and more animation is procedural?)

If the patch modeling tools were better, then I would see us using it more for vehicles, but they aren't...

- Steve

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (3 of 10), Read 260 times
Conf: Discreet Take 5
From: Borislav Petrov [FA]
Date: Friday, July 18, 2003 05:07 AM

On 7/18/2003 2:19:50 AM, Chris Subagio wrote:
>I believe that the way forward for Discreet and games is to get into gaming middleware.



A first step?
http://www1.discreet.com/SITE/PressN.nsf/5245eec90119c9cc852566a6005884a4/efc683c90ee66c1485256d470064140b

Cheers,

Borislav 'Bobo' Petrov [FA]
http://www.scriptspot.com/bobo

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (4 of 10), Read 201 times
Conf: Discreet Take 5
From: Rom Impas
Date: Friday, July 18, 2003 09:53 AM

hey Chris,

welcome back! i've been wondering where you were. its great to hear your voice again.

i too use Max for Games but on the artistic creation side of it. i totally agree with you on the gaming middleware and getting Discreet more involved in that. i think the more the artist can preview the look, the animation, the controls, the physics, the AI, etc inside of Max, the better and easier that would be for the artist.

i look forward to the day where an artist/game designer can purchase/license a game engine and create a game visually & interactively and thru scripting ala Director or Flash and not rely on a Dev team to implement the game. maybe its already possible.

cheers,
rom
primarymotion.com

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (5 of 10), Read 155 times
Conf: Discreet Take 5
From: Scott Godfrey
Date: Friday, July 18, 2003 03:21 PM

Hey Chris, long time no posting here for me, either. We're using MAX for asset generation over here. There's a lot of MAX functionality that I've replaced with my own functions that are guaranteed to give me reliable trouble-shootable data and I've moved into doing many things analytically or symbolically. Our level builder I've written is highly abstract and most things are intangible but for now MAX has provided me a fast way to prototype functionality but that's to be less and less as I get back into C++.
Absolutely everything that is artist driven, basically anything that is specifically visual in nature, is done with the traditional MAX tools, but everything that doesn't have to be the Mona Lisa is done by the numbers.
-Scott Godfrey
[It's been a long time away.]

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (6 of 10), Read 143 times
Conf: Discreet Take 5
From: Michael Spaw
Date: Friday, July 18, 2003 07:19 PM
Originally Posted 18-Jul-2003 19:14

Chris-

EA's LOTR was done this past year when I worked at Stormfront Studios with no real problems and it’s about as cutting edge as the PS2 gets. Likewise they are continuing to use max on some really cool stuff. Now I’m working in film and I’m still using max and Brazil. Good work is mainly about the artists and programmers, not the tools. Lets face it the tools can always get better. :)

-Michael
Oh and yep we had all kinds of custom metadata that we set up in max through mainly a custom material and utilities. Max in the right hands is more than cut out to do this kind of work.

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (7 of 10), Read 124 times
Conf: Discreet Take 5
From: Steve Green
Date: Saturday, July 19, 2003 01:55 AM

Hi Michael,

I'd be curious to know how you handle attributes at the face level, particularly if you have a texture that can have multiple attributes.

For example, say in a racing game you have a road surface that can be collidable, but also some that can be non collidable where it is located beyond a barrier. Using our in-house tools, we would often have multiple attributes for the same texture (mainly to optimise what is processed)

I wouldn't want to double up the materials, and there is nothing in editable mesh like Maya's Blind data that is immediately apparent -the custom attributes are per object only.

Do you know if there a way to set attributes at the face level which is not material based? Is Max capable of storing such data in a mesh?

Thanks,

Steve

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (8 of 10), Read 101 times
Conf: Discreet Take 5
From: Sorin Sava
Date: Saturday, July 19, 2003 01:18 PM

I don't quite agree with that. Max is capable of saving the required game data, through scripting or plugin. If there's more that really can't be saved or even set in Max you still can do that in your loader or with flags or whatever without writing a level editor.

A game engine means a huge amount of work and exporting form whatever app is just a drop in the sea. It just means you have to design your game right and then you'll see it can be exported. You can't whish for everything and you have to use some app and extend it to fit your needs since none will be completely right for you.
I agree there are improvements to be done but you are free to choose.

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (9 of 10), Read 99 times
Conf: Discreet Take 5
From: Steve Green
Date: Saturday, July 19, 2003 01:52 PM

We'll have to agree to disagree - we found Max very slow to navigate entire levels of our last game compared to our in-house tools when run on exactly the same system.

Because of the general slowness of just navigating a level, it didn't make sense to consider using Max to set attributes anyway.

- Steve

TOPTOP ... PostPost ... ReplyReply ... QuoteReply/Quote ... EmailEmail Reply ... DeleteDelete ... EditEdit
PreviousPrevious ... NextNext ... Previous TopicPrevious Topic ... Next TopicNext Topic ... Entire TopicEntire Topic
Topic: Max. Games. Now and then. (10 of 10), Read 82 times
Conf: Discreet Take 5
From: Chris Subagio
Date: Sunday, July 20, 2003 04:59 AM

Well Michael, cutting edge goes way beyond just what you see, it's not just art I'm talking about. To be perfectly honest, I think even the best PS2 engines out there (arguably that would be the Rachet and Clank / Jack and Daxter family) have just begun to fight, and while impressive those still aren't doing anything particularly advanced, just refined. Let's not even talk of what the Xbox should be able to do, if only the daft thing would start selling properly and we could start spending attention on it.

It's really odd, but often times an idea is shot down not because of implementation time, but because of the difficulty in generating the bloody data for it. Implementation in fact very often even comes third after the difficulty involved in testing the result. Seriously. If you're an artist, chances are a dozen interesting texhniques have already been shot down in someone's head long before they even bother telling you.

From a programming point of view as well, what I make in Max, I need to know I can get into the engine meaningfully. Less and less to me this means just getting a vert/face/keyframe array. Yes, the talent overrides the tools any day, but in this instance, I'm actually refering to spending the talent building/maintaining/using the pipeline more than the talent generating that data. From an artist's POV (mine until recently), it's easy to be glib and self centered and just demand the programmers do whatever it takes to represent whatever we make, however we make it, in game, but honestly, it's so much more productive, adventurous, and just plain exciting when we honor each other's arts and actually collaborate.

Back to Max, no it's not entirely up to the task, imho. We use it exclusively, and we've invested a LOT of energy in customising it. Here's a breakdown of what we do use:

We have a nice hierarchy of material/bitmap plugins that allow us to build materials as each platform sees them (per pass/per stage/per bitmap settings, with commonality an per platform overrides), as well as apply the 'material modifiers' we use in engine for effects by dynamically disabling/adding to those controls. The modifiers also change how the mesh gets treated in the converter tool, post export, including membership in collision sets. This is the most advanced thing I've seen so far for gaming materials built directly into Max. Forget trying to map the standard material on export, we started over. We can even preview simple multistage (not multipass) materials in the viewport.

Custom Attribute controllers on objects to add per object animated controllers. In fact we export most tracks with an animated controller at the moment, so we use this to export collision primitives as well.

Note tracks to add string triggers to animated objects over time.

Scripted plugin lights to add the parameters our engine understands, and replace the normal light UI to remove redundant controls.

A few plugins that do things the max architecture is perfectly capable of, but has no interface for, like HSV/levels manipulation of vertex colors with soft selection. Also some error checking/mesh validation things.

A small army of scripts that condition data, export cutscene script files, and any try to deal with any miscelaneous problems that come up.

So you see, we're practically using everything there is to use, and it works perfectly fine for this level of technology, but what I'm talking about is the future. There is quite a bit missing from Max at the moment for our liking, and while we can bodge around it, there's only so much bodging you can do before the max SDK stops you, the bodge becomes far too inelegant to be efficient, or the effort spent is better spent elsewhere. Things like per face data. There's a half a dozen places you can embed data on a per face level, but then go and try and view it meaningfuly in the viewport. The more interesting stuff you do in Mac, the more you do start having to write external tools just to view, validate and debug the results.

As for Sorin's comment about writing an engine and the ratio of work that is the exporter, I think you'd be surprised. It's not that small a portion of your effort, especially when you consider that you'll need to understand Max before you can even hope to extract the data you need, let alone any of the extension stuff you want to build into Max. The return on interest when you consider the limitations you eventually hit make writing your own tools more and more enticing each time you have to do it again. And you're missing the other side of the coin. If you're writing your own engine anyway, you already have the capacity to view and change all the data you need in it's native format. Writing an editor then is a case of coming up with an UI for it, you already know how it all works, almost exactly the reverse of writing something in Max, where you know nothing about how it works, but you get a UI for free.

Bobo, that's an interesting and interestingly timed press release! Doesn't do that much for me though honestly. I'm not the biggest fan of Renderware to date (wish them all the best though!), but more importantly I don't see anything in there that fundementally changes the relationship of Max to Renderware. It's still data going through a black box translator/sampler from our point of view, and where does that leave their Renderware Studio level editor? How much will Max be allowed to encroach on that territory?

Scott, by the numbers, eh? :) I don't know if this is a common evolution, but I was there and I've moved onto a stage where what I really want is intuitive procedural hooks into a data driven stream. Just data driving a game is a nightmare for the virtual impossibility of debugging the giant state machine it all becomes. Just holding a single frame's state in your head starts to hurt, don't you find? But conversely, trying to do too many thing procedurally is too dull and unexpressive for my tastes. Need some middle ground. Imho, it starts with removing resampling from the pipeline. The data you make has GOT to be as close as possible to the final data, e.g. no animating willy nilly with fancy curves that get resampled on export only to look just ever so wonky on the other side. No arbitrary tasselation of geometry for scene management without some way of viewing the results outside of the game. And so on and so on. Things that would be trivial in your own environment, but bloody hard in Max.

Oh dear, long rambling again. Nice to be having a discussion though. Any more thoughts?

-Chris.


Post New Topic | Reply to: "Max. Games. Now and then."
Stop Watching this Topic