In Praxis… I

This article series concentrates on the technical side of the development. We start it with a look at the 3D content creation tool Blender and how we use it.

Why Blender you ask? I’ve previously worked with 3ds Max and XSI and found both packages to have their strengths and weaknesses. The XSI workflow suited me well and was planning to continue with it when we started on this project. The limited project budget however made me look at other options aswell. Did take a peek at Modo which looked promising and a few other smaller packages like 3DCoat. I had heard good things about Blender from different sources and decided to have a look at it also.Before evaluating it I had a somewhat reserved opinion as to whether it would really be robust enough for actual content work, it being open source software. Quickly after starting to test it out (version 2.58a) I had to double check that it really was an open source project. Two things that really caught my attention. It was extremely stable and it seemed that there was a clear line of thought behind the workflow to which I quickly adapted. It wasn’t just copied from other sofware. Visually it was as professional looking as its commercial brethren. And of course you can’t beat the price.

It had all the features we figured we needed, so after a few weeks of using it and testing that we could get content from it to Praxis we decided to commit. And now after after several months we’re still happy with the decision.

Above is a screenshot of Zero-Two in Blender with the bone rig superimposed. The green bones are for the pistons which follow the animation of the main bones. We export the mesh and rig animation data to Praxis using FBX. It’s not 100% ideal, but for the most parts it works fine. We use Blender only to create the 3D assets: modelling, UV layouts and animation. Materials are created in Praxis.

One excellent tool in Blender is the texture painting tool. Our material system in Praxis uses layers for dirt and other attributes that modify the base material layer. The texture paint tool is ideal for quickly painting  areas of dirt on the objects. This map defines where dirt will be present on the object. It’s not the actual dirt texture, it only defines where to blend the dirt onto the base material.

The dirt mask as we call it and and a moss mask are painted for most of the objects. These are the only per object textures. It is extremely fast to create compared to actually texturing each object. The base materials are shared between objects to save a huge amount of time. We use two UV sets to define the base material and the dirt/moss. Two UV sets poses no problem on the creation time, since our guideline is to keep objects fairly simple. Texturing an object is really fast once the base materials exist. The workflow:

1. Model directly the in-game mesh (no high res to low res baking)
2. Assign material names to desired polygons
3. Layout UVs, no need to pay close attention to how perfectly the space is filled
4. Paint dirt/moss masks quickly and in low res
5. Export to FBX

On the Praxis end materials are assigned to the different polygon areas. The materials are simply tiling textures which have to be created only once. For example there is only one chrome material in the game, all objects that are made of chrome, use the same textures. So instead all objects having unique textures (which would be impossible for me to create by myself) different materials have to be created only once. The uniqueness to each object comes from the dirt/moss masks. To enhance the uniqueness of objects a decal layer is used on some objects.

To save a huge chunk of time we decided not to do high res to low res transfer but instead create in-game meshes directly in a “medium” resolution. That combined with our “all hard edges must die” mission lays the foundation for being able to use tiling textures on all objects. In the above screenshot extra edge loops have been applied to create smooth edges. The geometrical smoothness must be on the geometry itself since no unique normal maps are applied. We are working on a solution to automate the rounding of edges.

And so concludes the first “In Praxis…” article. Hope it was even a little informative. If you want to know something more drop a comment and we’ll ty to answer if we can :)

  • Trackback are closed
  • Comments (56)
  1. Yes, Blender! That is a great tool indeed.

    Question about the export format: how did you choose FBX? Did you evaluate Blender’s ability to export in different formats? Or was FBX something that Praxis already supported?

    • FBX seemed like the best way to go from the available formats. Collada was another option but we have had poor experiences with it.

  2. Reading you post, reminded me 100% of what we went through down here. After using 3dsmax for everything since v1 and many disappointment over the years, I invested my time in learning Blender and it met our expectations for asset creation for games. We used Unity3d as the engine and connected everything with FBX just like you’re doing.

    Congratulations on the project, it’s looking great. Let me know if you’d like to exchange some ideas on this.

    • Strong Drink
    • May 16th, 2012 5:23pm

    Looking great! I can’t wait to see the finished product!

    • Draigr
    • May 16th, 2012 5:54pm

    You guys are officially my new games dev heroes. Oh wait, sorry, that’s still accorded to IcePickLodge for making The Void. Which has allowed me to finally figure out what it was we were all missing in the great debate on Narratology vs Ludology. Game vs Story.

    Which in truth, was never really a debate, since it was never really up for question as to whether to combine the two.

    It was just HOW.

    Anyway, derailed myself. It’s fantastic to see you using Blender. That unsung hero of open source apps and 3D modelling programs. I’ve been using it for five years, and beyond industry standard, no-one has convinced me that the competition is better.

    When in reality, it’s a fairly level playing field with different tools being used for different things.

    Also, beautiful modelling!

    On a side note though. How are you handling avoiding the homogeneity issue with so much reusing of textures? It’s a great idea and very resource efficient, as well as time efficient, but it still begs the question.

    With so many things using the same textures, how are you going to handle contrast and differentiation. Because if we as players notice that this is happening, you’ll horribly break the immersion for us for quite some time. Since once spotted, we could see it everywhere.

    I’m not saying it couldn’t be done. I never realised Balmora in Morrowind only used about 6 to 8 textures until I started unpacking them and editing them for bump mapping.

    • On the issue of homogeneity: In addition to the basic material, we vary their diffuse color. And also we use a sort of decal layer in addition to the dirt and moss. But ultimately it comes down to finding good shape/material combinations.

    • Jemlee
    • May 16th, 2012 6:12pm

    Keep on the great work guys! Blender FTW! :D Done few simple things there myself too but nothing even remotely awesome.

  3. Oh, I’m so going to steal that mid-poly idea :D Should save quite a bit of time while giving amazing results, PCs have power so why not use it, right?

    Also, Blender! Personally I too have been using Max for a long time, but it’s just not cutting it anymore for me…then there’s also the question of “4000€ or 0€”

  4. So the game won’t be very scalable in resources, am I right?
    It’ll just run on any system from average to hardcore gamer?

    • Some scaling will happen, but mostly the visual quality will be the same, as far as textures go anyway.

  5. Very interesting seeing the workflow.

    Im curious as to why your avoiding normal maps when they could easily (ish) fit into your tileable texture pipeline, are you using any kind of bump mapping or is all the detail going to be coming from the geometry. Anything as fancy as tessellation going on? How high res are is the resolution of a texture before it tiles and how hard is it to get them tiling nicely without obvious repetition?

    Very intriguing stuff, looking forward to hearing more.

    Olly

    • We do have normal maps as part of the material texture packs. We just don’t have object specific normal maps since we don’t bake the detail data from a high poly mesh. We use mainly 512 textures which is plenty enough.

      Oh and no tesselation, since we’re DX10 based. There is enough geometric data on the meshes.

    • TürkOyuncu
    • May 17th, 2012 5:03pm

    I am Turkey

    Gerçekten güzel bir oyun.Sinematik görüntüler kadar iyi bir grafiği var ve daha önce gördüğüm oyun kaplamalarından 2 3 kat daha ayrıntılı ve iyi.

    • Syros
    • May 17th, 2012 10:54pm

    “That combined with our “all hard edges must die” mission…”

    ^^^THIS!
    I hereby officially proclaim Theory Interactive my heroes!

  6. Hi, I must say you guys rock !
    I really envy this quality of work.
    I’ll strive to reach this level of perfection in 3D game design. Still learning game design btw.

    • sa
    • May 18th, 2012 2:31pm

    great work. Blender is good, true. What about the game engine you are using? Can you write smth about that? Thanks

    • GraphiX
    • May 18th, 2012 8:32pm

    This work is absolutely stunning! It rivals that of Cryengine. For a sec I thought it was raytracing. No matter, just out of curiosity, is this engine going to happen be open source like blender? (hopefully :D)

    • DMN
    • May 18th, 2012 11:35pm

    Alright, I have to ask…from the blender screenshot…what graphics card are you running and your amount of RAM and Hard drive?!?!

    • Wizek
    • May 18th, 2012 11:52pm

    If you are going to do posts on development, I dare you to do it how Wolfire guys do it. They post videos of the process on youtube, and ever since I knew they existed, I watched all of them, enjoyed almost all of them, and always aticipated the next one. What do you think?

    • The Wolfire guys are a really efficient crowd. Wish we had their strength and stamina. We envy them :D

        • Wizek
        • May 26th, 2012 10:26pm

        Glad you know their ways already.
        Now, I’m sure you’ll do the right thing.

        (I would have used a smiley, but that would ruin the serious tone of my message, would it not?)

    • Sleeve98
    • May 19th, 2012 2:56am

    Nice. Real nice.

    • Aurvant
    • May 19th, 2012 6:34am

    Observation!

    So, I was watching the RESET trailer again and I couldn’t help but notice that the inside of the mech-suit seemed to be splattered with a red gooey substance…

    Also, the suits vital readouts stated that it had been “reconstructing grey matter”…

    So, um, did Zero-Two kill himself before? Has the suit been actively working on bringing him back to life all this time?

    Maybe I’m just reading to much in to it, but if I am on the right track then that would be quite an interesting plot point thrown in there.

    • Husam
    • May 19th, 2012 8:47am

    My faith’s been restored. I’d actually given up hope that a game/film of high quality can be done with anything short of an army of artists/devs.

    More blender stuff please!

    • Thanks! More Blender stuff is planned, not sure when but it’s planned.

  7. Interesting stuff, thank you for sharing!

    Despite it being open source, I’ve also found Blender to be one of the best 3D packages out there, and use it on a daily basis.

    Also, the workflow sounds really interesting, very different from most game studios, I’d imagine.

    Waiting for the second part… :)

    • Joukov
    • May 22nd, 2012 9:12pm

    I love you and I wish you good success :D it’s the crysis of this time :) well am trying to speak correctly because i’am algerian.

    • Megakoresh
    • May 23rd, 2012 2:01pm

    Oi! Great stuff!
    I know you haven’t set yourself a release date (and it’s a smart thing to do, IMO), but do you have any estimates on whether or not we will see this game this year?

    Also yeah, Blender is better than Max. In addition to it being free and much much easier to use than Max, it also exceeds functionality of Max due to having plugins that do pretty much everything and are available everywhere since anybody can create them.

    It only lacks some licensed features of Max like Mental Ray for example, but other than that it is the best 3D suit out there. And CG Cookie also has tutorials on just about anything you even want to know about working with Blender.

    Who knows… maybe when I get necessary experience I can work in your studio, you will most likely be large and successful by then. I mean I do live in the same city…

      • Victor
      • June 2nd, 2012 11:39pm

      I’m afraid you are wrong. There’s no program better than any other. It isn’t about what’s better neither. It’s about what the artist is more comfortable with.

      That’s the philosophy that only matters in the end.

      To the team; I hope in one of future blog posts you talk in depth about the lighting system. I’m terribly interested in seeing the insides of the engine.

  8. Awesome blog post and follow-up on your presentation at Digital Storytelling Alpo and Mikko. Looking forward to your next blog post on Praxis.

    Best, Kim

    • Arduinu
    • May 25th, 2012 3:50pm

    Mitä tekniikoita te käytätte Blenderissä Sculptin, proportional Editing, curveja, Lattiace, Hook? On todella hienoa nähdä, että kerrotte faneille todella paljon pelistänne ja sen edityskestä.

    • Vastailen englanniksi jos sopii :)
      Q: What techniques do you use in Blender?
      A: I use just basic manipulation tools like cut and extrude. I use alot of basic shapes as basis of forms. I cut them and combine them. Basically kit bashing basic shapes. I’m an oldschool vertex tweaker :)

    • Dima
    • May 29th, 2012 6:24pm

    Very interesting workflow :) The one thing I can’t understand is how (or whether) you achieve seamless textures on non-planar surfaces. For example, the piece of geometry in the last screenshot would have very noticeable texture seams if each plane is unwrapped separately.

    • Actually we don’t. There are seams where you’d expect. The red edge in the last screenshot indicates the uv seam. The idea is that the seam becomes unimportant since we have a “scratch” layer on top of the base layer. The scratches are painted on the seams so they are not visible.

  9. Wooo! Blender, awesome piece of software right there, always great to see it being used in production.

  10. I just like the idea of using medium-resolution meshes being used rather than the High-to-Low standard commonly used in the industry today. I think a lot of detail is lost in the transition, and makes for poor representations of otherwise good 3D artwork.

    • Thanks! Too bad our medium-poly approach is really good only for mechanical stuff. Organical stuff still needs some thinking.

  11. Your blogs are truly awesome I have no words to praise for your blogs.

  12. I have been really impressed by going through this awesome blog.

  13. Thank you so much for such a great blog.

  14. Actually we don’t. There are seams where you’d expect. The red edge in the last screenshot indicates the uv seam. The idea is that the seam becomes unimportant since we have a “scratch” layer on top of the base layer. The scratches are painted on the seams so they are not visible.

  15. This model looks stunning. What a great work have you done. Your goal is so unthinkable. I wish you good luck.

  16. congratulations guys, quality information you have given!!!

  17. It’s a classic great for me to go to this blog site, it offers helpful suggestions

  18. I’d purely tell you all “awesome information”

  19. I just like the idea of using medium-resolution meshes being used rather than the High-to-Low standard commonly used in the industry today. I think a lot of detail is lost in the transition, and makes for poor representations of otherwise good 3D artwork.

  20. wow amazing very good design and great work bro

  21. The idea of 3D projects is very interesting that is why there are a lot of such online games. I play funny dolphins from Whale O’Winnings 3D slot. Great and profitable stuff!