🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

What about 3d development can be simplified to make it more practical?

Started by
23 comments, last by nfries88 8 years, 3 months ago

Okay, just to be sure... is your last post a question of some sort? It sounds like it even though I am not sure what you are asking.

Is it that you are unsure where to go, which style to choose? If this is what you are looking for, you will find it hard to get good answers. There are a ton of lowpoly styles, each with its own pros and cons, and it depends completly on your own game and visual concept what fits or enhances the game or what is out of place.

I would first try to come up with a game idea, and then choose a visual style that is ideal for this game idea.

BTW, your test art is really good! I like what you did there. That kind of 3D art would go well with a JRPG or similar style of game, something where a japanese anime style would fit.

Nah, like I said, I don't think what I'm going for specifically is that important. I'm more interested in what can be simplified about any sort of game. Both because it would help me decide what I want to do, and because it would help anyone.

For example, some stuff that I can think of to simplify development;

- Make Low-poly models. (less time modeling, easier to modify, easier to UV map and texture)

- Make facial features and expressions textures rather than geometry.

- Make Models that don't require weighting when rigging (make limbs separate parts. Only works with some styles or characters)

- Re-use common animations between different models where it isn't noticeable. (two enemies could have the same run cycle, or have the same hit animation, etc)

- Avoid shaders or effects that require work on all assets to function properly.

- Use minimal lighting. (less work lighting areas)

- Use pixel art for textures. (low texture sizes, easy to work with)

So what I'd like to know is other stuff like that. Of course, what will be simple also depends on the person. Not everyone knows how to create pixel art, and so it wouldn't be easier to work with for everyone. But I'd still like to know what other people would do to simplify development in general anyway, since I think it's still important to know about different kinds of development, or styles. For example, someone may have good advice on hit-sparks/effects, or reasons why one type of environment is easier to create than another.

Granted, I suppose such topics are the type of thing someone would look for individually, so maybe a thread like this is pointless -__-

Advertisement

Nah, like I said, I don't think what I'm going for specifically is that important. I'm more interested in what can be simplified about any sort of game. Both because it would help me decide what I want to do, and because it would help anyone.

For example, some stuff that I can think of to simplify development;

- Make Low-poly models. (less time modeling, easier to modify, easier to UV map and texture)

- Make facial features and expressions textures rather than geometry.

- Make Models that don't require weighting when rigging (make limbs separate parts. Only works with some styles or characters)

- Re-use common animations between different models where it isn't noticeable. (two enemies could have the same run cycle, or have the same hit animation, etc)

- Avoid shaders or effects that require work on all assets to function properly.

- Use minimal lighting. (less work lighting areas)

- Use pixel art for textures. (low texture sizes, easy to work with)

Well, depending on what you do some tricks might be more effective than others, not everything works as well with certain game genres.

For example, if you create a FPS with a camera that gets up close and personal to 3D Objects, you will certainly see the low polygon count and blurry textures better than in a 3rd person pseudo-isometric camera game. In the second case, the player might not even notice that normal maps are missing or that you went with 256x256 Texture sizes. And you certainly don't need the fancy detail maps modern FPS games use, or fancy shaders to make stuff look good up close.

Your list is good. Altough, if you want to avoid weight painting, I would plain simple drop organic characters. Switch to robots, or vehicles. You do not need to explain your stiff characters with an "art style", they will look natural that way.

Also, be aware that some engines will use some texture filtering when texture resolution gets to low, so your texture will not look pixelated. Instead of Pixel art you now just have blurry textures, not nice to look at. AFAIK you can switch that off in most engines, altough I have never tried.

While lighting might take some time to get right, its rather minimal in most cases compared to other parts of 3D work or level design. The part that does take long is optimizing lighting so it runs fast on Toasters. But that is only a problem if you really create difficult lighting environments (a city level at night and stuff like that)...

I am not 100% sure that drawing facial features instead of modelling them is saving you much time, given the model is already low poly. Not having to animate facial expressions will save time, but then trying to make the shader animate the face for you with textures will also cost you some time and ideas.

Better yet, just avoid faces and human characters altogether... Again, if you want to save time, kick humans and organic creatures out of your game, and enjoy the mechanical simplicity robots and vehicles can bring to your 3D Pipeline.

Replacing complicated facial expressions with lights blinking in different colors certainly is easier to animate in the shader (just swapping out some parts of the diffuse and self-illum map), and might also do the job of showing that your cute little robot is angry, sad or happy at the moment.


So what I'd like to know is other stuff like that.

memory pools of shared assets.

IE lists of meshes, textures, models, and animations stored or paged into memory.

for rigid body animation (non-organic, static mesh limbs, no skin weights), a model can use any mesh and any texture, and any animation designed for a model with similar limb layout. animations (such as a generic quadraped walk animation) for smaller models will probably need to playback faster than for similar larger models. this is assuming forward kinematics as the animation method used. sharing of IK animations for rigid bodies of similar limb layout is something i've never messed with. i seem to be blessed with a wee bit of animation talent, so FK works fine for me. it also allows the artistic exaggeration of gestures, poses, expressions, etc that really bring an animation to life. something IK doesn't do - it just puts bone A at location B.

mesh morphing for facial animations, lip syncing animations, editable character faces, all that stuff - very cool, but technically just eye candy, pretty much zero gameplay impact. if you don't have the dev resources you might consider foregoing such things. same for multiple or custom outfits or gear. just more models, animations, meshes, and textures you have to make that add zero gameplay.

makes it look better? yes. but i have a saying:

"Pictures are for looking at, games are for playing!"

depending on method of implementation, shadows are another form of eye candy that can be cut from the game to reduce the need to create assets.

same for almost every other whiz bang effect you've ever heard about. basically "<anything>map", light maps, bump maps, etc. IE extra data (usually texture type data) used to render a mesh. all you really need is perspective correct texture mapping with basic gourard and phong lighting - and maybe auto-generated mip levels for a 1st person view game.

never underestimate the use of tools to automate the process. auto triangle reduction can be used to quickly create multiple LOD meshes from a single high rez mesh, for example. always look for a tool first (or make an in-house one), and do it by hand as a last resort. that being said, you have to break a few eggs to make a real mayonnaise, so unless you can rely 100% on existing assets you can edit, you will be doing some stuff from scratch by hand no matter what - like me having to make a 3d model of a ww1 flak gun for AIRSHIPS!.

for example, i use a batch file to copy concatenate animations onto models to create the .x files used to load skinned meshes into the game. so i just need to make one female attack animation for example and export it, and then the batch file automatically adds it to all the female models used by the game.

for skinned meshes, texture and animation sharing is possible. as is sharing of rigged clothing between identical body models. animation sharing may require identical skeletons. i've had issues with sharing animations between similar skeletons at different scales not working. but that may be due to the way they are animated, and thus may be specific to the modeler (blender) and skinned mesh library (dx9 tiny.cpp sample code based) i'm using.

for multipart skinned meshes, different parts can be shared (interchangeable heads and bodies for example). note that seams between parts can be an issue. i was unable to use interchangeable heads in caveman due to neck seams not always being hidden by clothing. even co-planar faces at the seams doesn't work, as the lighting does not lerp across the seams, since they are two different meshes.

an example:

Caveman 3.0 uses (so far, its still under construction and final graphics are not done yet):

~280 meshes

~450 textures (256x256, adjusting mip levels prevents blur at close range in a FPSRPG).

~170 rigid body models

~165 rigid body animations

10 skinned mesh models

38 skinned mesh animations (with 1-2 dozen more still required)

~210 wavs

these implement:

a 2500x2500 mile game world with all types of terrain.

~50 types of monsters

~400 unique female characters (different faces, skin tones, hair style, hair color, eye color)

~400 unique male characters (different faces, skin tones, hair style, hair color, eye color)

~240 different types of objects in the game including about 60 types of weapons and 30 types of armor.

lighting is sun or moon + any campfires or torches. directional light for sun/moon, point lights for campfires and torches. DX9 fixed function pipeline lighting (IE basic gourard and phong).

mipmaps are automatically generated by DX on load. as i recall, some mip level adjustment is done at draw time for some objects (like big rocks you can walk right up to).

little or no special effects. gourard and phong are provided by the dx9 fixed function lighting engine - just add a light and make sure your meshes have normals. alpha test for sprite textures, alpha blend for clouds, and a simple 2 stage texture blend for snow. all quite doable with fixed function. in fact i was surprised to find only a 6fps difference between the slowest fixed function method and the fastest possible skinning methods (like 172 vs 178 fps on my PC).

using photos for textures instead of drawing them yourself is also a great time saver.

needless to say, always try to use existing assets first. so for example, right now i'm searching (unsuccessfully) for a public domain 3d model of a WW1 flak gun for AIRSHIPS!

and of course the best thing you can do is improved your artwork skills. the first animated mesh may take a week or two, but by the twentieth or so, that's down to half a day or a few hours.

but based on your questions and samples posted, i'd say your problem is with your obsession with "massaging every vertex until its perfect". i understand totally. its easy to become obsessed with perfection in 3d modeling. i must make a conscious effort to not fall into it myself when modeling. and extremely low poly will just make things worse, as you have fewer vertices at your disposal to get the correct shape.

you may also want to revisit your pre-conceived notion that low poly is a must. its only a "must have" due to the limitations of the artist (takes them a long time to make high poly), not the hardware. in caveman, 20K+ tris is a low poly skinned mesh model.

so i'd say your bottleneck is in hand creating low poly models and hand painting textures, instead of using existing in-house, PD, or 3rd party models as a start, and editing from there, and using photos to make textures, and using in-house, PD, or 3rd party textures where possible. with caveman, so far i've been able to get away without having to buy any 3rd party assets. either i find something PD i can work with, or "roll-my-own" from scratch.

so in the long run, the biggest time savers are use of existing assets (in-house, PD, or 3rd party) as a start, and designing the game with maximum asset re-use in mind.

but until you get over the urge to tweak vertices forever, you'll never get anywhere.

try setting yourself a deadline. ok, i have 1 day to do this model - after that, no more tweaking

once you get better at it, cut it down to 1/2 day per model, and so on.

once you learn to recognize when you're wasting time tweaking vertices, and learn to force yourself to stop obsessing over every vertex, your production rate will improve greatly (probably double at least) - mine sure did. <g>.

the sad thing is i can just picture you spending days and days modeling and texturing the examples you posted, when in the same amount of time you probably could have gotten much closer to AAA results by editing existing PD or cheap 3rd party assets. been there, done that.

not that finding existing assets is easy. especially free ones of high quality. but for common models its possible.

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

I personally just use a combination of asset packs and custom made assets in one artistically coherent art style. I'm going for a realistic style and there is no shortage of realistic assets for all sorts of environments, at least for UE4.

The lighting and shading is usually given to you out of the box. It really makes making realistic 3D games more effective and that means you have more time to focus on exciting gameplay.

Faces can be generated mathematically from sets of numbers (IE position on a slider in a GUI), so you could just make a program or modeller plug-in that does this to reduce the time spent designing faces, but might be difficult to program.

Additionally, you can alter body models mathematically in much the same way. I wouldn't be surprised if you were able to use one or two base models for every human in your game.

This could significantly cut down your art development time.

This topic is closed to new replies.

Advertisement