November 19, 2018

Tesla Motors Simulator - 2018 update

I've spent some time updating a Tesla Motors Simulator I originally made to learn Unity. It's free so I will not make money from it - but people are playing it so I will learn a lot about what can go wrong when releasing a game. For example, after uploading the latest update some Mac and Linux users reported that the game was pink so I had to come up with a fix for that which was disabling fancy post-processing-effects and change from Linear to Gamma color space. If they had bought the game, they would have demanded a refund and given me a bad review. Anyway, this is the difference between the old and new versions - and a comparison with the real thing:

Update 1. New Supercharger model. The reason the cable in the old version looks strange was because you could move the cable and attach it to a car and animating cables are kinda tricky, but I disabled that in the new version.

Update 2. New Factory model. If you wonder how I made the trees and bushes, I've written an article about it here: How to make stylized "The Witness" trees in Blender.

Update 3. New Test-track model. Behind the factory, Tesla has a small test-track where they test new cars and let customers test their cars, which you can see on YouTube. When creating the first version I used Google maps as a reference, and when texturing it I used two large textures which is a really bad idea to texture terrain because the result is blurry. To improve the textures I used a method called Tri-Planar Texture Mapping

Update 4. New Model S model. When making a car in 3d you need blueprints to make it easier to get the correct shape. What I learned now is that blueprints are not always accurate. I've always thought there was something strange with the old Model S model even though it matched the blueprint. Then I realized that the blueprint was of an old prototype Model S so when I added new blueprints the shape was different, so I had to remake it for this update.

Update 5. New Model 3 model.

Update 6. New Semi model. About one year ago, Tesla revealed that they were making a truck, so I had to add it to the 2018 update. It's not 100 percent complete, it's missing some details in the back, but the overall shape is correct.

Update 7. New Roadster 2020 model. At the same time as when Tesla revealed the semi, they also revealed a new Roadster. The old Roadster was in the game and I've decided to retire it because maintaining five models is more work than enough. But I've added the new model - and YES! it can do 0-100 km/h in 2 seconds.

And if you want to play it, you can download it here: Tesla Motors Simulator.

October 31, 2018

Adventures making doors in Blender

I've spent some time improving a Tesla Simulator I originally made to learn Unity. I've always thought the old models, which were made in Blender, were lacking something - and that something was gaps between the doors (and various other gaps you can find on a car).

The problem with these gaps is that when you add them you have increased the complexity of the model because the number of vertices has increased. When you model something you want to use as few vertices as possible. The reason is that if you realize that the model is incorrect, then for each vertex it takes some time to move it to the correct new position while making sure the triangles have the correct angle.

But what if there's a better way? A better way is to use modifiers, as explained in this YouTube video:

The basic idea is that where you want a gap, you mark the edge as sharp and add the edge's vertices to a vertex group. Then you add three modifiers: edge split, solidify, and bevel (make sure the bevel is using the vertex group you made), and you will see that you can make door gaps without adding new vertices. Well, your model will consist of more vertices but you don't need to move all these vertices when changing something.

But a problem not covered in the YouTube video is that when your model needs edges that are not gaps but they are sharp so you should mark them as sharp in Blender. For example, the car's rear spoiler has these edges. What you will now discover is that some new edges will appear and they will go though your model's nice triangles.

The problem is that when an edge is marked as sharp, Blender's solidify modifier is ignoring surrounding edges. To solve this problem you need another vertex group (or maybe the same vertex group you already have depending on the model) which you add to the solidify modifier, so the solidify modifier is not "solidifying" all edges, but just the edges that should be gaps. And the result is:

October 3, 2018

How you can bake textures faster in Blender's Cycles render

I needed to make a realistic tree log texture in Blender and found this tutorial: Blender Tutorial: Photorealistic Material. It turned out I needed to use Blender's Cycles render for the first time in my life. This render is node based and it makes it more complicated to export the material to a game engine like Unity. To export the material, you have to bake the diffuse texture, which is easily done if you follow for example this tutorial: How to make a bake texture in cycles. The result is this:

The problem was that baking the texture was really slow. When I googled the problem, most answers suggested that to make it faster you should make the texture you want to bake to smaller, such as 512 and not the 2048 which is what I wanted. But the one with the answer was no-one else than our dear friend Blender Guru and his video: 18 Ways to Speed Up Blender Cycles Rendering. The one "way" that improved baking was "#3 Use GPU." Apparently, most likely because not everyone has a GPU compatible with Blender, Blender is not using the GPU by default when generating images but the CPU which is slower. To tell Blender to use the GPU, you click File → User Preferences → System. And then at bottom left, you should select CUDA:

But that's not it! You also have to set the render to GPU Compute (CPU is default) in the panel to the right:

The results:
  • GPU: 2 minutes 33 seconds
  • CPU: 9 minutes 42 seconds

August 7, 2018

Stylized graphics - lessons learned from Sea of Thieves and Fortnite

Sea of Thieves
Stylized graphics can best be described as an art style which is between realistic- and cartoonish graphics. A game that's using stylized graphics is the newly released Sea of Thieves. One of the developers of the game gave a GDC talk where he explained how they did it: Visual Adventures on Sea of Thieves.

Simplify structures. The graphics should not be realistic, so you have to simplify everything. But you can still achieve a complex scene if you combine several simple objects.

Paint the textures. You can't use photos as textures, so you have to try to simplify the photo reference by hand.

Notice that the textures above were not used in the game because the final textures were actually more detailed: the palm leaves for example look more like real leaves but are still simplified.

Use the light source to change the mode. An often forgotten parameter you can change is the light source in the scene.

The stuff you add should look like it has been used. Almost no products in real life comes shining straight from the factory. You have to add wear and tear: someone has hit rock with that shovel below. You also have to add patches and repair: someone has repaired that gun below with a leather strap.

To achieve this look you have to learn the word "wonky."

But you still have to make sure the products are realistically wonky.

Another game which has stylized graphics is Fortnite, and they have also been to GDC. Their talk is called Developing the Art of Fortnite.

Simplify the textures. Fortnite tried to use the original realistic textures and simplify them in Photoshop to achieve the style they wanted.

But they realized it was better to hand-paint the textures to give them more character because simplifying a realistic texture by using Photoshop tools made the texture too noisy.

The stuff you add should be deformed. While Sea of Thieves argued that their models should be realistically deformed, Fortnite prefers another style which is more cartoonish.

To achieve this look you just have to remove all parallel lines from a real-world object. This means you can also use photo references instead of drawing concept art.

Even though the graphics is simplified, you can still use normal- and specular maps.

The stuff you add should look like it has been used. As in Sea of Thieves, Fortnite thought it was important to add wear and tear, dust, and leaky bolts, that gives the assets a character.

Don't add anything smaller than a mailbox. Smaller objects will just slow down the player and disrupt the flow. But you can add grass which the player can't collide with and just move through the grass as if it was hollow.

July 5, 2018

Lessons learned from the AIAS Game Maker's Notebook

Listening to Paradox's own podcast was a really good way to learn about the game industry. Now I found another podcast by the Academy of Interactive Arts and Sciences (AIAS). It consists of interviews with personalities in the game industry, including the creator of the hugely successful game PlayerUnknown's Battleground (Pubg). The interviewer is Ted Price who's the CEO of Insomniac Game (creators of the new Spider-man game), so he knows what he's talking about. As with the Paradox article, this article will be updated when new episodes are released!

Brendan Green (Pubg)
  • He started out as a photographer, DJ, and graphic designer, so he wasn't in the game industry for most of his life. 
  • Games like Pubg are popular because there are no rules except the rules you can find in the real world, like gravity. You can do whatever you want to do. There are simplifications, such as swimming with ammunition and weapons, but those simplifications are needed to make the game fun to play.
  • People like playing survival games because it's inherent in the human nature. How many times have you watched survival television shows and asked yourself: How difficult could it be?
  • In a game like Pubg you create stories on your own. People show on YouTube how they managed to kill the last person by jumping with a motorbike. 
  • Pubg wasn't the first survival game, and he had before Pubg about four years of experimenting with similar games like DayZ. 
  • If it's not broke - don't fix it. He didn't add stuff to the game just because he could, but because it wasn't needed. 
  • When talking about realism, are you talking about the realism you see in movies or actual realism in the real world? Most people don't know how it is to be killed by a real shotgun, but they have seen it in the movies and sometimes they are confusing movies with real life. What they think is real isn't necessarily real. 
  • The downtime in Battle Royale games are important because some people don't want constant action. But if you want constant action you have the option to get some by dropping at a popular place where like-minded people are dropping. 
  • Another simplification they made was the cars, so the cars could be more realistic but it would be less fun.
  • If you don't know where to start - start with making a mod to an existing game. DayZ is a mod to the game Arma. 
Robin Hunicke (Journey)
  • Her background is computer science, but also art, which is useful when trying to come up with a new idea and you can paint the idea. 
  • Your mom should understand the game idea. To be sure it's a good idea you need the people who has never seen it before test the game. 
  • Just because something, like a puzzle, fits in another game doesn't mean it will fit in your game. 
  • They rebuilt the Journey game three times. 
  • The more times you play your game, the more stuff you wan't to fix. But in the end you have to ship the game and most people will not notice what you didn't have time to fix. 
  • Most game developers are awkward on the stage so don't be worried if you are it as well.
Hermen Hulst (Guerrilla Games - Horizon: Zero Dawn)
  • Attention to detail is important. To make something as detailed as possible, the concept art is important, which should be as detailed as possible to make it easier for the people who make the actual 3d models. This will be more expensive but generate a better result. 
  • Don't be afraid to share your knowledge because it will benefit the industry as a whole. 
  • Each project is different so it's difficult to come up with the best practices to make a game. 
  • It's difficult to know if the game is a good game before the game is finished but you can use your experience to make a judgment if the game is good before the game is finished.
  • Most people are in the game industry because it's a fast growing, evolving industry. Many people are competitive and want to be the best at what they are doing. 
Neil Druckmann (Naughty Dog - The Last of Us)
  • The World Without Us is a good book to read if you want to build a post-apocalyptic game. It explains what would happen to the natural and built environment if humans suddenly disappeared. Another good book to read is The Last Town on Earth which is about the 1918 flu epidemic. So even if you are making a game about made-up events, there are books you can read to make a more realistic game. Other good sources of inspiration are movies and museums.
  • If you realize that after making 50 percent of the game, you have to change a major part of the game, then don't worry because that has happened to many successful games, including Firewatch and Uncharted 4.
  • It's important to listen to people saying what you don't want to hear. If you are disagreeing it's still important to listen because there is some truth in what they are saying. But the problem they see might not be the real problem, and their solution might not be the real solution. 
  • "x is dead!" (where x is single-player, console, PC, etc). This is not necessarily the truth because the game industry is constantly evolving. Just because AAA companies are not making money from single-player games today, they might do it tomorrow when they come up with an idea no-one thought about before. 
Christina Norman (Riot Games - League of Legends)
  • Most developers use their experience when making games, and that experience is often based on where they live. So if you live in Europe you make a game towards the European audience and forget what someone in Asia will say when they play the game. The gameplay itself should be the same (at least if you have a multiplayer game), but feedback may be different depending on where the player is living, and people in different regions will buy different skins. But people know where the game was made so if they buy a game made in Europe they expect to play a game with European values, so there's a balancing act. 
  • 10 hours a week is enough if you want to test-play other games. 
  • Instead of complaining that people spend time and money playing "silly" games like Candycrush and Farmville, you should study why people play these games and you will realize that you can learn something. 
  • When play-testing other games, the important lesson you learn might be "what not to add to your game."
  • Be careful with statistically changes. If you use data and realize that a character is too powerful, it's not necessarily the character who's too powerful, but an item the character is often using. 
  • Don't prioritize money before the player.
Nathan Vella (Capy Games)
  • Internal- and external game jams as well as dedicating Fridays to finding new ideas is a great way to find new ideas. 
  • The games get 10 times better if you delegate responsibility and don't micromanage. But you also need to discuss with the people you delegated work to if it becomes too crazy. 
  • Many games are released each week, to show your game to the world you need to analyze what other successful games (within your genre) did, and you need to show an understandable version of your game in a trailer or gif on social media. 
  • It doesn't matter anymore if you have a website because people will go directly to Steam or YouTube to find information about the game. When was the last time you visited a game's website?
Todd Howard (Bethesda Game Studios - Fallout)
  • Step 1 when making a game is to find the "tone" of the game.  
  • Too many games are shipped with features that work, but just because it works it doesn't mean it's good. The building system in your game may work but it might not be the best building system. 
  • Game developers tend to focus on the wrong things, like foot sliding and bouncing rocks, that players don't care about. The player care more about the save game system. What you should do is to write a list with what the player cares about and another list with what you care about. You will see that these lists are completely different.  
  • If you pick a game and then hire the people who made that game (with the same tools and budget) and tell them to make the same game, you will end up with a completely new game. 
Sean Vanaman (Firewatch) & Amir Rao (Bastion)
  • Making a video game is like being a member of a band. Each member has its own instrument (programmer, artist, sound designer), you release albums (games), and you have an audience (players who play the game). That's why it's a good idea to be a small game development team: You can't make music with hundreds of band members. The music will also become worse if you start switching band members every 6 months. 
  • Firewatch took about 24 months to develop. But if they for some reason lost the game and had to make it again (and if 90 percent of the models are finished), an exact same version of Firewatch could be made in 4 months.
Ian Dallas (Giant Sparrow - The Unfinished Swan)
  • There are many books on how to write for movies and television - but not a single one about how to write for games. 
  • While developing a game, and if you share the development process with your players, people will build up an mental image of what the game is which is not necessarily the same as what the game really is. 
  • It's difficult to balance a game so both the players who are skilled players and those who just want a relaxing experience will enjoy it. 
  • If you think you are the perfect play-tester then you are wrong. Do you have children? If not, then you may experience the game differently. 
  • You may have a great idea, but when you hire people to help you make the game, you will feel responsible for those people and thus make a game similar to all other games because you will think the probability to succeed is higher if you do so. So you have to ask yourself: Do I really need a team or do I want to make a game no-one has made before?
  • Not only will people play your game, they will also watch people playing your game on services like YouTube and Twitch. 
Ed Boon (NetherRealm Studios - Mortal Kombat)
  • As with many other games, Mortal Kombat took inspiration from the movies industry. Why didn't you make a battle royale game after watching the movie Battle Royale in 2000?
  • Listen to the "maniacs" which are the players who are your biggest fans AND your biggest critics. They will play the game more than you can. 
Jeff Kaplan (Blizzard Entertainment - Overwatch)
  • Guidelines are better than rules because creative people want to break rules. 
  • GTA 5 is an example of a game with a great story telling. 
  • Even though the teams that makes the Blizzard games work within the same company, each team has its individual culture. For example, the team who's developing Hearthstone is starting their day earlier than the other teams. 
  • Players are not good at expressing themselves when giving feedback. They say something is "sh*t" and then it's up to you to determine why they say so. 
  • You can make a post about something you plan to add to the game on a forum and then you will get reactions from your fans. The first reply (the gut reaction) is also useful because it will tell you what your fans think about it when they first heard it. 
  • Making a game is not stressful because it's just a game and not the cure for cancer, but game developers tend to become stressed because they care about the game and love what they do. 
Cory Barlog (SIE Santa Monica Studio - God of War)
  • Failure will teach you to love feedback from your customers because failing is not a good feeling.
  • There are no magic tricks - the secret to making a good game is hard manual work. The camera in God of War was positioned manually - they didn't have a fancy camera algorithm. 
  • The first version of the game should be chaotic because it means you are experimenting and trying new crazy ideas. Mistakes made in the first version of God of War actually turned out to be something they could add to the final version of the game.  
  • Don't be afraid of sharing your knowledge within the industry. Most big studios are willing to sharing their knowledge and the games industry will benefit from it as a whole, including you. Competitors in the game industry are not really competing because there's not one winner - players will buy different games and they will buy more than one game.
Ru Weerasuriya (Ready at Dawn Studios - Lone Echo)
  • As a game developer you want to be the best and you want to add the best features to a game - but that's not necessarily what the game needs to make it fun to play.
  • If you have experience from traditional games like PC, you will not be able to develop a VR game because those platforms are completely different.  
Siobhan Reddy (Media Molecule - Little Big Planet)
  • Take home the game you are developing and play it while relaxing and you will find things you wouldn't have found if you only played it at work. 
  • Some people tend to not talk about problems they see when developing a game because they are scared that the problems can't be solved. 
Romain Jouandeau (Sucker Punch Productions - Ghost of Tsushima)
  • He can spend a day looking for photo references before he starts creating the concept art itself. This is also the easiest way to start painting because if you just stare at the empty canvas it can be difficult to get started. 
  • One way to create a concept art is to start with a simple image made in some 3d software and then paint all the details on the top of that image. 
  • Don't forget to go out an observer the real world because drawing all day is not always good. 
  • Even professional artists struggle: If you don't struggle you are doing it wrong. 
  • You can find many good tutorials for free on YouTube so everyone doesn't have to go to a fancy, expensive school, and most recruiters look at the artwork and not which school you went to. But school can be good for networking purposes. 
Tim Schafer (Double Fine Productions - Grim Fandango)
  • When making a game it's important to transform yourself into different roles. First you need to be an explorer who's just coming up with crazy ideas, then you become an artist who implements the ideas, then you become the judge to determine if the product is really good, and finally you become the warrior who's finishing the game. It might sound silly, but it actually works. 
  • If you worry about something that hasn't anything to do with the game, such as which desk your office should have, then hire someone who knows which desk is the best so you can focus on the game. 
  • There are many games published each day, to stand out from the crowd you can ask a publisher to publish your game, such as Double Fine Productions (they call it presents). You can also use crowdfunding and social media to market your game. 
  • Today it's difficult to sell many copies of your game when you release it - you have to think long-term. Sometimes you read articles about game developers saying their game failed written just a week after lunch, but you can't tell if a game is successful after just a week. Many games make the most money on the first Steam-sale.  
Ashraf Ismail (Assassin's Creed)
  • The game designer is the gatekeeper of the production documents, which explains to the team how this part of the game is supposed to work, which assets and features are needed, and UI. To be able to make the production documents you may need to build a prototype and pitch the idea to the people above you and the people who have to build it. The game designer is not responsible for finishing the part of the game because that's up to the project manager. 
  • You can track how your players are playing the game and generate "heat-maps" showing where most players die. You can also track which animations are being played and in the Assassin's Creed case they realized they could remove some animations because they were never used. 
  • The "Rule of Three" says that before you challenge a player with a new feature, you have to introduce the player to that feature in three steps. But this might also be a problem because it sometimes becomes obvious to the player that something will happen if you are introducing something in three steps. (This wasn't exactly clear in the podcast but I think that's what he meant).
  • Assassin's Creed have rules telling how far you have to go to complete a quest. If you are on a main quest, you can travel far, but a smaller quest should take place in the nearby area.
  • The Assassin's Creed developer is using historians because they are making games based in history. They actually have a 30-seconds-rule saying that if someone can google what you see in the game to see if it really is historically correct, then it should be in the game. Otherwise, the can change history by using a little bit of creative freedom. When making the game based in Egypt, they had an historian who had to validate every piece of hieroglyph. Because they did so much research they could release a special version of the game where you could travel around and learn history instead of killing everyone. 
  • They were using the Unity game engine to prototype features before adding the features to their own game engine called Anvil