Home Technical Talk

How deep into gaming engines do you need to be?

As professional 3D modelers, do you spend time studying the workings of game engines or does the basic input/output and lighting setup for tests suffice to do your work? I'm asking this since i'm new to the area of gaming art. I have a generic modeling and texturing background and to be honest its a bit scary to think i have to learn UDK or Unity coding from scratch to a high level like a game programmer, specially with the tales of how UDK makes a hassle of simple stuff like importing of assets etc.

And btw, not wanting to start any dividing topic, how transferable is the knowlege of UDK to Unity and vice versa? Are they so different that you need to start from zero if you happen to get work with a company that uses the other?

And finally, a really noobish question, but these days, what is the engine most used for indy 3d games that come out? Or Android/IOS? At first i'd assume Unity, but curiously UDK seems to have a better licencing deal for small business so i'm kind of confused.

Thanks mates!

Replies

  • Angry Beaver
    Options
    Offline / Send Message
    Angry Beaver polycounter lvl 7
    1) You don't need to learn to program, but you will handicap your skill at the higher levels if you never understand how they work. Most of how they work can be garnered form some of the great tutorials and explanations kicking around this site. If you want to get deep then my first suggestion for you is learning about how shaders affect your model as that's 90% of what an artist needs to know.

    2) What's going on is always transferable, I have entity, entity has normal. That stuff transfers. Exactly how you make an enemy move or exactly what you need to do to apply a normal, that stuff doesn't.

    3) On mobile people love Starling/Sparrow, personally I prefer to do it myself a little more as I want lots of performance and those libraries are wasting time and energy on features I don't want/need. UDK is mostly preferred by bigger projects although Unity is garnering a following, to me I don't like Unity I don't feel like I have tight enough control.
  • Justin Meisse
    Options
    Offline / Send Message
    Justin Meisse polycounter lvl 18
    I'd say getting it into the engine is good enough knowledge - later you can dive deeper if you want. The way things have turned out, I've spent most of my career working on Gamebryo games and in house engines - so almost all the tools are built in house, I was shown how to use them on the job.
  • saiph
    Options
    Offline / Send Message
    thanks for the insights
  • Autocon
    Options
    Offline / Send Message
    Autocon polycounter lvl 15
    Balls Deep.

    At both of my jobs the engine was all in house and everything was learned on the job. But knowing how to import meshes, create basic shaders, setup levels and do lighting pass in an engine helps you a great deal when it comes to being able to pick up the same concepts in house. Everything is transferable.
  • blankslatejoe
    Options
    Offline / Send Message
    blankslatejoe polycounter lvl 19
    'Deep into a gaming engine' implies coding, which you will not have to do much of, if any, to have a good career as a game artist.

    Even as a Tech Artist there can be plenty of work to go around with rigging, lighting, optimizations, material setups, etc. before you cross the code/scripting-barrier.


    But do you mean 'how well do I need to know the editor'?

    That depends on tools, the studio, and the division of labor.

    Character artists can often get away with doing just enough to get their work into the hands of animators/riggers, who take it from there. Prop artists can sometimes get away with only building their props and then handing it to the level builders. Some places have hybrid layout artists/env artists/lighting artists/etc. But, yes, most everyone will be touching the game toolset at least a little for some part of their job.

    Often times MOST of the learning happens on the job..especially if youre talking proprietary tech, like others have mentioned. But that's not an excuse for avoiding UDK or unity and just tinkering a little now and then. The concepts transfer, even if terminology differs.

    And, really, UDK isn't so bad. It's complex, sure, but if you can use a program like Max or Maya, the basics of UDK are not beyond you. Start small: getting an asset in and lit for your portfolio or something and goodluck!
  • blankslatejoe
    Options
    Offline / Send Message
    blankslatejoe polycounter lvl 19
    Also, to answer the last question: Unity seems to be more liked for indie games these days. The UDK lic. is viewed by many in the indie community as restrictive (if you're successful), although it is initially cheap. My own indie project uses UDK, since I'm fully ramped on the toolset, but were I not I'd take a hard look at unity to see what it offers.
  • saiph
    Options
    Offline / Send Message
    Thanks again. Just to expose better why i was asking, i'm going to do a reel, and besides normal animation/movie assets i'm considering branching to game models and environments, showing some optimized low poly meshes/ high poly and its normal maps etc, but i thought including a walkthrough in real time inside an engine would be a plus, but i haven't much experience in engines besides fiddling with Unity some years ago. But right now i'm downloading UDK and will learn the basics.
  • jStins
    Options
    Offline / Send Message
    jStins interpolator
    I am in the same boat and decided to take the plunge into UDK. It hasn't been too rough, but I've only been working with the static mesh pipeline so far. (yet to touch lighting or go in depth with materials/shaders)
  • chrisradsby
    Options
    Offline / Send Message
    chrisradsby polycounter lvl 14
    Being a 3d game artist without technical know-how is always a little bit strange. In a game studio you're not just making art. You're making art that's going to run in real-time for a game. That means you have to think about everything that you take for granted when playing games. You have weapon-models, how do you make it so that they work in-game? So that you can shoot with them? Tree-models, how do you make em so they look good, perform well and sway in the wind? Woooden Crates, how do you make it so that they brake? or fly away when you throw granades at them?

    Being a 3d-artist in the game industry also means that you're doing very technical things as well. You don't need to know everything about how it works and it's something you'll learn on the job but it's always handy to have some before starting to work as well. You'll start to understand a little bit more about games in general and how the underlaying code that affects it.

    You don't need to know how to write the code itself, but it's good to have the basic understanding of how it works. If you can wrap your head around basic things like the different Programming Paradigms and simple programming statements. You'll also soon a super basic knowledge of why certain things work in-game and why some things don't. Or why they would be too expensive to use.

    Example Scenario: You have a perfectly working environment in your game, both players and AI are running around on it. For some reason the performance drops super-low when the players and AI shoot eachother with the shotgun but with not with any other weapon.

    Example Solution: When shooting the shotgun the game calculated where each pellet would go and where they hit the hitboxes of the player models. Thus doing different types of damage on different parts of the bodies at the same time. Several players and AI doing this on each other at once caused the slowdowns. Solution was to switch the hit-detection of the shotgun to something like 1 ball that expanded over distance but did less damage depending on how long it took for it to reach its' target. 1 thing to calculate over 20 things to calculate at once. (which could also hit different players, surfaces, walls, water etc)

    It's not necessary to know this stuff, but it's good. Since then you can communicate a little bit easier with scripters & programmers. Asking them about things like that is always nice too, since most of the programmers I've met, love to explain these things to others as well but it's hopeless to explain these types of functionalities when they have to explain every little thing so that you can understand how it works.

    It's always good to learn how to use game editors. Importing assets into editors is a must but it's still something you'll learn during the first days of the job. It all depends on what you do, but don't limit yourself. You have great game editors out there for free, why limit yourself to staying inside a maya/max + model-viewer only? You can create great interactive environments with the tools that are out there.

    Being a 3d-artist is great, it's a lot of fun and you solve a lot of problems, not just art-related ones but very technical ones as well. In this case it might be a little bit too extreme, and you won't deal with stuff like that on a daily basis. You will however have pure art-technical issues that you will need to solve most days. :):thumbup:
  • Money
    Options
    Offline / Send Message
    Money polycounter lvl 8
  • fearian
    Options
    Offline / Send Message
    fearian greentooth
    I would say while going balls deep into an engine is great and will give you a headstart on many problems you might envounter, unless you are developing your own game you only have to know how to present work in the engine.

    By this I do not just mean how to import and slap on textures - but how to properly set up materials; multi-sub materials; light maps; animated materials; lighting and shadows; simple effects like wind, sparks, smoke or glow. Possibly even simple animation.

    This could sound daunting if your starting from scratch, but individually all these things are quite simple in any major game engine. Just take the time to learn them as you come across them and build up a skillset. This kind of stuff helps present your Art better and gives you a cursory understanding of how your props or characters will be applied in a game.


    I want to add finally that if you're looking at a job where you have to learn new tools in an area your not totally comfortable with, don't worry, you should get at least some training in in house tools and in my experience, working with the most complicated POS software day in and out in a professional work environment around other pros will make you a master quickly.
  • Mark Dygert
    Options
    Offline / Send Message
    While knowing the basics of engines helps quite a bit, I haven't worked with any big name engines yet and the problems we face are the same things that the engines dealt with years ago. So if you know an engine really well it can help but you probably won't encounter the problems that they've already tackled, problems that are likely to come up at a studio that is cooking up their own or using a less polished engine.

    So in UDK or CryEngine you just drop and go, there could be a lot more work that needs to be done. Mostly because they are looking to make the engines functional and not bulletproof so they can sell them to other companies, the product is the game not the engine so they tend to be a little rougher around the edges.

    What really broadens your understanding of how engines operate, is going through those rough around the edges challenges and figuring them out.
  • Eric Chadwick
    Options
    Online / Send Message
    Thanks for the link Money, hadn't seen that one! Added to the wiki, plus there are more like it here:
    http://wiki.polycount.com/CategoryTechnology
  • Farfarer
    Options
    Offline / Send Message
    I think the important stuff to understand is usually pretty common across all engines;

    How the meshes and textures are stored and moved around in memory (i.e. what makes them efficient for the game engine - tri-stripping, vertex splits, etc).

    How they're rendered (again, what the efficient methods are and when to use which - batching, instancing, fill rate, occlusion, portals, culling, draw calls, etc).

    Multiple ways around common issues (things like alpha sorting issues and ways they can be worked around - alpha test? two passes? forced rendering order? alpha to coverage?).



    Ultimately, it's about being a better game artist than knowing an engine better. They're things that are useful to be aware of when creating the artwork before it ever sees the engine because chances are they'll be of benefit no matter what engine you wind up using.

    A lot of game development is being able to problem solve or to find good ways around an issue if you can't fix it straight up. If you can predict it's going to be a problem, you can ensure that you know ways around them or you can build stuff in such a way that it's easy to go back and edit things.

    But you're only ever going to learn those things by putting stuff into an engine and seeing it break - so it's an iterative process :P
  • Angry Beaver
    Options
    Offline / Send Message
    Angry Beaver polycounter lvl 7
    To be clear I view it like this:

    Systems Programmer
    -
    -
    Graphics programmer
    -
    -
    Technical artist
    -
    -
    Game artist
    -
    -
    Traditional Artist

    Not to imply heirarchy but to imply a ratio of the 'level of required knowledge in engine' Vs 'ability to make pretty looking stuff' There's a place for everyone on that spectrum in a game studio you just have to accept where you lie. I consider myself more of a technical artist (my day job is programming for frigs sake)

    I have to be able to make pretty stuff and know the engine in equal measure. But because of that I'm a reference point, when people on my indie team need to make a model I'm telling the things they need to know so they can focus on being better artists than me. They still need to know something though, I don't want to spend all day explaining why covering your model in U/V seams is a bad idea. Additionaly when a systems programmer is like "I need to make a dynamically sized wall... how's that supposed to work with the model" I can tell him the different approaches the artists could use and we'll select one that works well.
  • solarSailor
    Options
    Offline / Send Message
    my first suggestion for you is learning about how shaders affect your model as that's 90% of what an artist needs to know.

    could you elaborate on this statement? specifically how could I lean more about how shaders affect my work?
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    ^He means that an artist will be essentially an artist, that will make stuff visually, so knowing about shaders (or how to get a certain look on a model) is important, even if you don't make them yourself, knowing how to use them to the full potential is important and what each slot does.

    For example, want to fake a 'rough' rocky surface on the cheap? Half-Lambert, Phong with a low Gloss and very faint Spec, standard option for almost all engines. Some artist go through their entire life not knowing how to setup proper looking 'cloth' or 'velvet' materials, even in premade stuff in MR or VRAY.
  • Mark Dygert
    Options
    Offline / Send Message
    could you elaborate on this statement? specifically how could I lean more about how shaders affect my work?

    http://www.neilblevins.com/cg_education/cg_education.htm
    The materials and shaders sections of Neil's site are helpful in understanding how to break the materials down into their basic elements. Little changes between the engines other than names and possibly some procedures for various game related technical issues. So it's a good place to start. The game related technical Mumbo-jumbo is nice to know but almost always on the job knowledge that no on expects you to know, the theories behind material break down and recreation are critical.
  • Angry Beaver
    Options
    Offline / Send Message
    Angry Beaver polycounter lvl 7
    Ace and Mark covered it for me :)
Sign In or Register to comment.