Optimizing Low Poly Style Shading in Unity 3D 2017

I started to work on a VR game project with Low Poly Style graphics. I am going to announce the new project next months. It’s very crazy and something never been tried. We are realy excited to work on it!

Eventhough, I used to work on Low poly style graphics in 3ds max ( I have even a tutorial post in previous pages), it is quite tricky when working in Unity 3D. When it comes to creating 3D models for VR experiences, keeping the vertex count low is very important. Models must be really low poly and the scene must be very well optimized for a fluid experience.

However, when i export my low poly models with individual smoothing groups per polygon, vertex counts in Unity increases to astronomical numbers. I was very surprised when i realized smooth objects are more performance friendly rather than flat objects (Low poly style). Because i was expecting the opposite.

So I wanted to test what is actually happening.

I created this two geosphere above in 3Ds Max. They are absolutely same, clone geospheres. I named them as “smooth” and “flat”, then i added smooth modifier to the “flat”. Then i lower the smooth treshold like picture below.

Then I exported them to Unity 3D 2017

Keep in mind that an empty scene in Unity 3D causes 5k vertex eventhough there is no object around. It is because of the skybox in the scene. If you clear the skybox from lighting panel you can decrease default vertex count to 4, I assume. 

As you see the picture above, you will notice that flat is 4 times more, compare to smooth. In larger scenes, this difference will be beyond acceptable limits.

What is the correct way to create Low Poly Style Scenes?

The best way to solve that issue is creating the low poly style in shaders. Exporting 3D Models with 1 smoothing group is best for performance. Then you can give it low poly look with shader below.


As you see in the picture below, object “smooth” has flat shading material which i downloaded from the link above, has no vertex difference compared to its default.

The result is absolutely wonderful for me.

I hope the post was clear and helpful for the people who stuck in that problem.



VR Days Europe 2017

A couple months ago i came upon open call for VR Days Europe 2017 volunteers. This kind of events gather many people all around the world from the industry and developers as well as the speakers. It is a great place to meet people and see what is going on in the industry. I applied to the open call and i was selected.

First day started in DeLaMar Theater with an opening speech by Zilah Watson from BBC then continued with conferences of the speakers. Due to i had no shift in the first day, i listened all the speakers and it was really valuable resource for me.

Martin de Ronde from Forcefield talked about his predictions of the second rise of the VR and the similarities of its current situation and mobile games  in 2007 according to his observations since then. Leen Segers explained the business side of the industry. Jason Toff from Google, showed some of the first prototypes of google’s VR projects and explained how did they used the prototypes to develop a stable version of their project. He pointed out mostly spending a dedicated time for prototyping, sketching ideas, brainstorming, sharing before being ready and letting people test the prototypes oftenly. Tenderclaws, showed some examples of their project and talked about creating the interaction in VR. Yitian Han explained the current situation of VR Cinema industry in China. Philip Rosedale from High Fidelity made a live VR performance of their massive online multiplayer videogame, Second life. Jeff Burton from Woodside Creek shared his previous experiences as an ex Electronic Arts employee.

So it was an very busy day 🙂

Next day i arrived to the construction of the exhibition place. It was 7 in the morning.

Exhibition hall is completely empty.

In a few hours the hall is getting ready.

This is the hall i actually worked 2 days. It is called Church of VR. I dont know why they named this place as church. Fun fact: I was the only one turkish or from muslim country to work in the church. It was fun though. We had around 15 VR experience and several movies to show. Some of them was really cool. “Gloomy Eyes” and “Chocolate” are my favourites. Visitors also liked the experiences. Their feedbacks were very positive.

This is the choir area. Visitors experienced VR movies with Gear VR. It was like a place from the future. People was looking different places in same movie. I understood the personal space that is offered by virtual reality again. Persoanl space was created with cinema curtain for above a century. But VR will increase it to a upper dimention.

Nice marketing 🙂 Sadly and surprisingly all the beverage and food was on sale. Including coffee and tea. This is the only summit i went and pay for them. Well i actually didnt pay anything because of i rejected to pay. So i bought what i need from markets.

We had a boat which worked between Central station and Exhibition hall (Kromhouthal). I came across it by chance. It was written nowhere in the papers i had. It is a cool thing.

PSVR stand. First time i have tried the PSVR. It was really comfortable. Screen resolution is same as oculus and vive. But the trackers sucks. Or maybe controllers, i dont know. They told me that trackers are interfereing with the others. It makes sense.

Pimax 8k VR headset is something you cant find oftenly. I waited a very long line to try it. It absolutely worth. Resolution is great. Tracking is not worse than Vive. They look very same. Device has a wider screen, so you dont see the end of the screen horizontally as well as vertically. I saw 2 seam lines in middle right and middle left side of the screen. It feels like they connected 3 screens in headset. After all, great device.

This one is the craziest experience i have ever seen. You actually jump in a pool with VR headset and a snorkel to swim with dolphins.

Third Year As A Game Artist


It’s been long time since my last post. Since then, i have created a few new media art work, a couple of VR video games and stuff. I also co-created my own game studio “Lazylab Games” with my brother. I already had 2 years experience in video game industry and i wasn’t able to improve myself anymore in same job. So why don’t i quit my job and making my own game? Then the journey of “Diesel Express VR” has begun.

“Apocalypse brought us freedom” said a stranger man named Marius. Nobody knew him before, but he showed another path beside the one which is going behind the walls that built by who responsible of this breakdown. In a few months he was controlling thousands. Then he ordered men to fill the diesel to the engines…”

Diesel Express is set on an alternative time period of the post-WW2 Europe. The war ended by a ceasefire after desolation of the earth. Only a very small population of people are living safely behind the walls of self governed cities which appeared after the breakdown of the countries. While cities are guarded by walls, outland is under control by a doomsday cult which is led by a stranger man named Marius. As an individualist, Marius convinces groups to act against the cities. His idea spread quickly because of the post war conjunctures. The only transportation way being used between the cities is railroad. All the resource trade is made with highly armored diesel trains called “The Dreadnought”s. Our character takes his place in a dreadnought by joining the “regiment”.

But How Does It Look Like?

The game starts with our duty in a group called “Regiment” who is responsible of defending the trains called “Dreadnought” which is used to transport goods between the cities in a post-apocalyptic world. The game tastes a lot of arcade. Player needs to shoot down enemy cars driver or shooter to secure the train. Or player can shot down enemy cars tyres to make them crash, or shot down the fuel tanks to explode the cars. Hiding behind the barriers is very important when need too. Shortly, action never fades in Diesel Express VR.

From the idea to Publishing

After the idea, we created a Game Design Document to make us sure our path. GDD can be look like waste of time by indie gamers but actually it is very important. With the document, we decided about what features we need to make an MVP(Minimum Viable Product). Then we used a Kanban Board to manage our tasks. Our MVP appeared even in two weeks. I am not sure if we assigned our deadlines generously, we always finished our tasks before the deadlines. In 6-7 months we already published Diesel Express VR as early access in Steam Store.


As the Artist of the game, I mostly used 3Ds Max, Unity3D, almost every product of Adobe, Substance Painter/Designer, World Machine, ZBrush, Marmoset Toolbag.

Currently we updated the game three times since the publishing. We added many features from our plans and steam users demandings.

What was the main problems in production?

Enemy vehicles had to approach our train car, then they had to follow us by keeping their velocity. This was a big problem because we didnt provide any paths for enemy cars. They have their own wheel and gas control. We used an algorithm called PID which is being mainly used in robotics and automation. It solved our problem perfectly.

Enemy cars have their own control. So, there is a simple AI working behind to avoid form obstacles.

VR headsets needs a powerful computer to work. But it doesn’t mean that models can be high quality and high polygon. When working with Oculus Rift and HTC Vive, we needed to reach 90FPS for a fluid experience. We created the models very low poly, sometimes we baked from high poly model. Optimized textures and so on.

But the most unpredictable problem for us is teaching how to shoot to the players who doesn’t know how a pistol works. Because of HTC Vive and Oculus Rift controllers are mapped to the pistols, the game turns to a shooting simulation in a way. Without an accurate aiming, shooting enemies is impossible. So we decided to add a hovering crosshair to improve the shooting experience for unexperienced players.

Concept Of Diesel Express

We are impressed from many materials when we creating the setting and art style. The main material is Mad Max Fury Road for sure. As the art director of the game, it wont be a surprise if i confess i have seen the movie 4 times in theatre. We tried to use the accomplishment of the movie such as desert look, style and art direction as well as the never ending action in a suitable way in our game. But its wrong to say we tried to create something alike Fury Road. Instead of decorated, punk style cars, we wanted to create the cars as if they were repaired after great war more pragmatistically, not cosmetically.

The date of the year is not definitive. We can estimate the production of the cars and weapons as 1940’s. Because of that, firstly we decided to make a dieselpunk style in our models. Weapons, cars, buildings and clothings gives the clue of dieselpunk. But in overall, we created dusty and rusty Dieselpunk style.

We tried to catch the Bioshock Infinite look in 3D models, Camera effects, interiors and characters. We analyzed Bioshock a lot when we deciding the materials and lighting. Camera has saturated colors and bloom effect like Bioshock. Wooden material that usually not used in Dieselpunk style, might be come from that game too.

Diesel Express has awesome music as well. Before the action, in the pub, we listen 1930’s 1940’s musics. When we ride the train, we hear “Battle in the Sky” by Walid Fegahli.  I can’t imagine that i could find another music fits Diesel Express more than that. I think the reason that makes this music so magical to us, we frequently listen it while development. We did the alpha tests with this music. So keeping it in our game was a must. Honestly, we paid the most money to this music.

Poster art was created by a very talented concept artist Eren Arık.

Why VR?

VR is good! VR is impressive! VR has future!

VR is not a new thing. The origin of the idea comes from 50’s. But the golden age of VR start with Oculus Rift which is successfully kicked in Kickstarter. VR provides a very huge experiment space to game designers. When you come across to a problem when developing a game, instead of solving the problem by investigating other games, you solve your problem by yourself. Because most of the time you are the only one in universe who come across this problem. I am sure VR will reach more people in future.

Would I Create The Same Game To Another Platform?

Due to our decision to create the game to VR, i can’t imagine Diesel Express in another platform. Because it has a lot of VR only features. But if i would create, i would like to create something in the triangle of “Outlaws” level 3 Train, Western Express Arcade and Kabaneri of the Iron Fortress.

What Did I Learn

  • I learned that a two people indie team must choose the boundaries of the game very wisely. Which features are really must have and which features are overkill.

Above left advanced shooting script is a must have while above right is an overkill feature

  • Developers himself/herself can become an obstacle. Motivation lose can ruin the project.
  • Don’t tell the project to people too much. It starts to feel like it’s already finished.
  • Before the actual start of project, a game blog have to be started.
  • Working at home in pajamas is not the best way to work.
  • Last 10% of the project is equals to the first 90% of the project is a real thing.
  • Definition of the “fail” changes in your mind very often. A game financially failed can be priceless for some ways.
  • “Indie generalist” is a real thing. Responsibilities oftenly changes.
  • Never pleasured in my entire life more than pressing publish button in Steam. It absolutely worth to work really hard.
  • Unity Asset Store looks amazing in the first glance, but we actually never able to use any assets form store except some minor ones because of the performance and quality issues.
  • Most of the time, modifying a downloaded 3D model takes much time than creating a new one.
  • Feedbacks from the players may change the content of the game.
  • Try to test your game with hardcore players and causal players. You will learn different things from the players who have different experiences.
  • ESRB rating is not just a picture on the DVD Cover. When we try to publish Diesel Express VR in Oculus Store, we face off with some questions that rates the game for the perfect audience. Questions were like “is there any weapon in game?”, “Do they look realistic or fantastic?”, “Is there blood?”, “Does the hero kill humans?”, “Is there swastikas? ( we clicked “no” at least this one)”. We got something like +16. But if i design another game in the future, i will absolutely think about it.


  • In the story of the game, the name Marius named after the same named character from the book “The Spell”.
  • Some of the weapons we use in game are Nazi-made weapons. But it doesn’t make you nazi. Come on guys!
  • Regiment’s logo is an eagle. It was also considered as a Nazi symbol by some people. No. We used this reference as a Roman symbol. Self governed cities, a regiment that defending this structure is too Roman thing.
  • Our dreadnought DN-Selandia’s name comes from MS-Selandia, first ship that using a diesel engine.

Baking Lights For Static Lighting In 3Ds Max


While making a game, optimisation is one of the most important things that the studio must care. There are various ways to avoid this problem like reducing the poligons, reducing the particle effects details, creating level of detail(LOD) or creating static lights. I will explain how to bake the lights to create  static lights in this post.

Basically the static lighting is to create a texture map for objects or environment by baking the effect of the light source on this objects. After we use this baked texture on the objects, we do not need to create a light source in the scene. Even in AAA games, the static lights are commonly used to maximize the performance.

For this tutorial I created this simple scene which contains two boxes and a ground. Then I arrange their UV’s by adding Unwrap UVW modifier as you can see below. This step is important because we need to make sure there must be no overlap.


After packing the UV’s correctly, the scene is ready to bake. Press “Render To Texture” below “Rendering” menu.

Hotkey is “0” by default in 3Ds Max 2014.


It opens the Render To Texture settings as you can see below. It automatically adds the selected object to the Objects to Bake list. In the picture it is Box002.



Below Output rollup press Add… button and select DiffuseMap in popup which appeared. For this example we need to add only DiffuseMap.


After selection, it will be added into Output list. And below the list there are some render settings. The  size of “1024” is fine for this scene but keep in mind that texture sizes is a part of optimization as well.  Because, while too big decreases the performance, too low decreases the quality.

Another important thing is enabling lighting and shadows. They can be enabled by clicking the ticks which is inside the “Selected Element Unique Settings tab” as you can see I marked with red square. Then press render button at the bottom of the window. You should do the same steps for each object in your scene to have baked texture.


When I baked textures of my scene the result is like below. Shadows, highlights and midtones can be seen on textures.


I added the textures to the objects with %100 self-illumination and I took this render. There is no light source in this scene. Graphics are almost the same but performance will be dramatically increased in huge scenes.


Creating IK Target For Double Hand Animation in 3D Studio Max

While making an animation which animating one or double hand linked to another object we use IK targets. Linking an IK target saves us from animating objects seperately such as holding sword, rotating a car wheel etc. For sword example, mostly the position and rotation of the sword matters, not the hands. So when animating a sword, we expect that hands follow the sword handle by keeping their position on the sword.

I will explain it with a basic human CAT object. For ones who dont know how to create a CAT object, it can be found below Create Panel> Helpers> CAT Object



If you successfully create the human figure click Motion Panel. You will find the Layer Manager as you can see in left picture. Press and hold the button which I marked with red and release the button on Abs (Absolute Layer). Then press Setup/Animation Mode Toggle button so it will transform from red stop image to green play image.






Select any hand bone. If hand bone selected in the figure, you will see the Limb Animation rollup in Motion Panel. The button which I marked with red, creates the Target Point we need. You should press this button for each hands for this tutorial. If you did it right a cross must show up just front of the hands.

If you move this crosses, hands wont follow it. We will solve it very soon. Now its time to positioning the hands. I created a very basic sword for demonstration as you can see below.



I moved the hands until it looks like the figure is holding the sword with two hands but targets are still keeping their position.


Below the Limb Animation rollup, inside the IK System tab click the button which says Move IKTarget to Palm. This button will relocate the targets to the place where they have to be. Below this tab there are three scrolls as you can see in left picture. The scroll which says IK/FK must be “0,0”. Now the hands will follow the targets. So link the targets to the sword. Now the hands will moved by sword. Try to rotate or move the sword. If you didn’t miss anything, your animation must work well. I showed a picture below when my figure holds the sword.


Tip: After creating the sword, move the pivot point to the middle of the hands. When you rotate the sword the hands will animate very realistic.



For another example the figure below move its hands as the wheel rotates.


I hope it was helpful. If you have any questions leave a comment.

3Ds Max to Unity 3D export issues from the perspective of 3D designer

The most shocking thing after I started to create game assets is a huge part of the features of 3Ds Max and Maya are not supported in fbx export. And the only way to export a 3D model into a game engine is exporting the model as a fbx file. Static models like a building, a tree or a car etc. can be easily exported with materials. I had no problem with that. But other than “Skin“, “Physique” and “morpher“, wont be seen in the game engine. So you must do all the animations with bones and morpher targets.

And the other important thing is you should always “collapse all” by right clicking the modifier list just before exporting. Because for example if you want to export a model with turbo smooth, if you dont collapse the modifiers, turbosmooth wont be exported.

First year as a game artist

Past one year which I was working as a game artist in a game studio has taught me a lot of things. As the only artist in my studio, I have got many responsibilities. Before my professional carreer I always used to create my own, unique stuff. However, I have noticed that to release the game in time, it’s a good idea to take advantage of asset stores. So before a game we start to work, we always check asset store for (trees, cars, rocks etc.) as much as we can. It saves a lot of time and it lets you focus on more important things. Details are neccessary but not need to be totally unique if you are in a indie game studio.

It is important to choose right font. The font must be suitable for different languages in case of translation. Style must be fit on your game as well.

Teaser video of the game matters to make the game to be downloaded. The video must be released in social media or indie game blogs before the games publish. My favorite game teasers have in-game videos which show gameplay, as well as motion graphics and 2D or 3D animations according to the game. Keep in mind that teaser must be released weeks before the game. So the studio can reach as much gamers as possible.

Markets show the icon of the game as feature image and it is the first thing users will see. So the icon matters. It must be clear and must be able to be choosen among the others. Icon better to be designed seasonal-ready. For example in christmas you can be able to put a red hat on the icon.

A proffesional game designer I’ve met in a seminar recommended the “Agile Method” that means creating a playable version of the game immediately. It can be a walk on a line with your character or a car or even a box. Then you can improve graphics and gameplay later.

Creating a Railroad with Path Constraint and Snapshot Tool in 3DS Max


In this post i will explain how to use path constraint and snapshot tools to create continuous multiple objects. I am using this tools oftenly at work. For small scenes copy-paste could be easier to use but in huge scales snapshotting is much more time saver. I will post a few different renders below the explanation as example.

Before the start I created some kind of coal mine enter as you see above. Its only for the tutorial, I did not spend much time on it. Then I simply created a curved line starting from inside of the gate. It will be the path of our railroad.


Then I fit the line to the earth by playing with vertices. The earth plane has some ups and downs.


I created the wooden rail holder at the left side to put it below the rail.





Under the motion panel and assign controller drop down menu you will see position, rotation and scale. To assign a controller to transformer I selected position and pressed the assign controller button above the selection. After selecting path constraint from the list, it will be added to the object.



After adding path constraint, Path Parameters dropdown menu will show up. Under the menu Add Path button lets you choose which line will be followed by the selected object. I picked the path I created before. Usually the result is out of the rotation than how it must be look like. So I rotate it manually to find a position as I want. I recommend you to press follow button that I marked in the picture above before the manual rotation. Otherwise it will be unrotate again. Follow check lets rotate the object that controlled by path constraint on the way of picked line.

Now the object has a path animation. It can be seen by scrolling the timeline from begining to the end.



Snapshot can be reached under “Tools>Snapshot”. This tool can make a copy of the mesh within any single time or between a range in timeline. I have an animation of object that i want to copy in a range of time. So I checked Range and copied it 12 times as the lenght of my path.


The result is fine to me. I drew two lines more to create rails. And this is how it looks.


I also created the two pictures below. The one with city lamps is for this tutorial and the one with roller coaster is a product.




alan render3