December 31, 2016

Books I read in 2016

Each year I write a list of books I read during the year. This is the 2016 list:
  1. A Brief Introduction to Neural Networks. A free book that will give you an introduction to artificial neural networks, which is a group of mathematical models behaving similarly to neurons in the brain.  
  2. Clouds of Glory: The Life and Legend of Robert E. Lee. A biography on Robert E. Lee who was an engineer but also a famous general in the US Civil War. 
  3. The Society of Mind. Written by Marvin Minsky, who is famous for his contributions to artificial intelligence, the book describes how he thinks the human brain works. 
  4. Superintelligence. What will happen when our computers are becoming smarter and smarter? Are they going to kill us or are they going to help us? 
  5. The Devil in the White City: Murder, Magic, and Madness at the Fair that Changed America. This book consists of two stories: the first is about the world fair in Chicago and the second is about a serial killer who used the fair to lure his victims to their deaths. 
  6. The way of the superior man. What's the meaning of life? Why are women so strange? This book is trying to answer those questions. 
  7. Omgiven av idioter (Surrounded by idiots). Is a Swedish book on psychology and why it seems like some people around us are idiots. The answer is that humans behave differently, so to handle people who seems like they are idiots you have to handle them in a special way. You might argue that someone who can't take initiative is an idiot, but that's just how that person is, so you have to tell the person what to do.
  8. Fundamentals of computer programming with C#. Is a free book about the basics of the C# programming language. 
  9. .Net Book Zero. Is a free book about the basics of the C# programming language. 
  10. The Pragmatic Programmer. Is trying to summarize the experience of older programmers so new programmers can learn from them. 
  11. The Best of edw519. Is a free book and summarizes the knowledge of the user edw519 (from Hacker News) who is an experienced programmer. 
  12. Game Programming Patterns. Is a free book and it will teach you basic ideas or building blocks related writing software for games. 
  13. Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture. Is a biography on John Carmack and John Romero, who created the popular games Wolfenstein 3D, Doom, and Quake. 
  14. Getting Real: The smarter, faster easier way to build a successful web application. This book will teach you a better way to develop new products. If you want to develop a Microsoft Word competitor, then you should build a product with less features, get feedback from customers as soon as possible, and try to stay as small as possible. If you do that (and a few other things explained in the book) then you will be able to compete with a larger company that can't be as flexible as you can.  
  15. Production Volume Rendering. Is a free book and is all about volume rendering which is a technique to display volumetric elements such as clouds on the screen. For example, the clouds in the movie Avatar were generated with volume rendering.
  16. Beyond Band of Brothers: The War Memoirs of Major Dick Winters. Is the biography on the leader (with the red hair) in the television series Band of Brothers.
  17. Panzer Leader. Is a biography on and by Heinz Guderian, who was responsible for making the tank an important part of the German war machine during World War 2.
  18. Ivan's War: Life and Death in the Red Army, 1939-1945. Russia lost millions of soldiers during the Second World War. This is the story of them (and those who survived).
  19. Infantry Attacks. In the movie Patton, where Patton on the battlefield is facing the German officer Erwin Rommel's troops, there's a famous line: "Rommel you magnificent bastard, I read your book." This is that book, and it's about Rommel's endeavors as an officer during the first world war. 
  20. The art of game design. A book about how to design games. 
  21. Mud, Sweat, and Tears: The Autobiography. Bear Grylls has a few popular television shows about how to survive in the wilderness. This is his biography. 
  22. Red Storm Rising. What would happen if NATO and Russia decided to fight a war against each other?
  23. A history of mathematics. As the title says: the history of mathematics from before the Egyptians to the middle of the 20th century.
  24. How to solve it. A book about how to solve mathematical problems. It's obviously not a solution to how to actually solve all mathematical problems, but it gives you insights into how to start solving problems and how other mathematicians have solved their problems. You can probably apply it on other problems as well - not just mathematical problems.
  25. Fermat's Enigma: The Epic Quest to Solve the World's Greatest Mathematical Problem. Fermat's last theorem was one of the most famous mathematical problems. This book tells the story of how the problem was solved. It will also give you a brief overview of the history of mathematics.  
  26. The man who knew infinity. A biography on the Indian mathematician Ramanujan (and also to some extent a biography on the British mathematician G. H. Hardy).
  27. The Wisdom of Crowds. Will teach you when you should (and when you shouldn't) listen to a group of other people. 
  28. Sophie's World: A Novel About the History of Philosophy. Is a dramatization of the history of philosophy, so if you want to get an introduction to philosophy you should read it. 
  29. Save the cat! The Last Book on Screenwriting You'll Ever Need. Is a book about how to write stories for movies, but most likely you can also use it if you are writing a book or a story for a game or a book.  
  30. The Great War of Our Time: The CIA's Fight Against Terrorism - From al Qa'ida to ISIS. Includes stories such as why CIA failed to predict 9/11, why CIA failed to find any weapons of mass destruction in Iraq, what are some misconceptions regarding the embassy attack in Libya, some Edward Snowden criticism, and what really happened when President Bush's dog Barney got a piece of plastic stuck in his throat during an intelligence briefing. 
  31. A theory of fun for game design. Why are some games fun and other games boring?
  32. Game over press start to continue. The book covers the history of Nintendo from the birth of the company to 1999, including stories how Mario was created, how Nintendo traveled to Russia to get the game Tetris, and the history of other companies like Atari and Sega.
  33. Moon Lander: How We Developed the Apollo Lunar Module. Tells the story of how the engineers developed the so-called Lunar Excursion Module, which landed mankind on the Moon in 1969.
  34. Swarm Intelligence: From Natural to Artificial Systems. All about artificial intelligence algorithms inspired by our tiny friends the ants and other insects.
  35. Visual Explanations. A book by Edward Tufte and is about pictures of verbs, the representation of mechanism and motion, process and dynamics, causes and effects, explanation and narrative. You will for example learn how the Space Shuttle Challenger disaster could have been avoided if NASA has used other visualizations. Is filled with images so it's a fast read.
  36. Beautiful Evidence. Is about how seeing turns into showing, how data and evidence turn into explanation. It's by the same author as Visual Explanations, so it's filled with images so it's a fast read. You will learn, for example, why you should have images that explain the text close to text so the reader doesn't have to go back and forth as if you collect all images at the end of the book, like some authors do. This is common sense, but you still have to learn it so that it becomes common sense. You will also learn why the Space Shuttle Columbia was destroyed because of a PowerPoint presentation, which by the way you should avoid because they are too summarized. Use technical reports! There's also a saying that "a picture is worth a thousand words," but you have to make sure that your picture is worth a thousand words. Sometimes a picture can be worth less and then you shouldn't use it. 
  37. Envisioning Information. Is the third book by Edward Tufte I've read this year and is about how to display complex data. You will see beautiful examples of how to display both railroad lines and dance movements. And you will learn how to improve your own visualizations, such as that you should add detail to clarify and why 1 + 1 = 3 (if you have two separated colored lines, there's always a third white line between them).
  38. Adventures Among Ants: A Global Safari with a Cast of Trillions. Is a book about ants written by Mark Moffett who is also known as Doctor Bugs.
  39. Ett halvt år, ett helt liv (A half year, an entire life). A Swedish biography by a UN soldier in the Bosnian War.
  40. Chickenhawk. Is a true story written by Robert Mason, who was a helicopter pilot in the Vietnam war. The battle dramatized in the movie We Were Soldiers was one of the battles he participated in.
  41. Deadliest Sea: The untold story behind the greatest rescue in Coast Guard history. Tells the true story of the sinking of the Alaska Ranger and how the Coast Guard were trying to save the people on the boat.
  42. Black Hawk Down. Is about a failed US military mission in Somalia.
  43. Jacked: The Outlaw Story of Grand Theft Auto. Written by the same author as Masters of Doom, it tells the story of the popular game series Grand Theft Auto (GTA), from GTA I to GTA IV. It includes stories like when the GTA team hired a cop to protect them while researching violent neighborhoods in New York for the game. Since GTA is a violent game you will also learn about if you can blame the game for inspiring violence, such as an incident where two teenagers began shooting at cars on a highway after playing the game.
  44. Essential Mathematics for Games and Interactive Applications. Is a super-good book (some nerds consider it a bible) if you want to learn how to apply mathematics to games. You will learn the basics of graphics (including lightning and shaders), interpolation, collisions, and much more.
  45. Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future. Is a biography on Elon Musk. A few years ago I wrote my own biography on Elon Musk, so it was fun to compare the books.     

December 14, 2016

Short December Updates

Update 1. Self-driving Car
Last year I learned about an algorithm called Hybrid A* (A star), which is what a self-driving car could use to navigate in a confined space like a parking lot. I decided to implement it in Unity, and it became very popular. I've sent the project to several PhD students from schools in US, Sweden, Japan, and Germany, who wanted to use it as well as to other people who have been interested in how to implement the Hybrid A* algorithm.
To display the search tree the algorithm is using, I used Unity's Line Renderer. It turned out that it was those line renderers that had the biggest performance impact on the final product, and I used techniques like object pooling to try to increase the performance without much success. But a few weeks ago I found something called GL which is a low-level graphics library used by Unity. And GL has a line function called GL.LINES which is much faster than line renderers if you want to display a lot of lines! So here's a pro-tip: Use GL.LINES if you want to display a lot of lines!
With that said I think this is the final version of the self-driving car:

Update 2. A New Beginning
Ludum Dare was on this weekend. It's a competition where you are making a game in 48 or 72 hours depending on how hardcore you are. You are not winning anything except fame and honor, so when I participate in the competition I always try to learn something new or experiment with a crazy idea.
Each competition has its own theme, and the theme this competition was "One Room." My idea was to maybe not make a game, but one of those "art installations" where you are in a traditional game, but it's not a game. If you don't know what I'm talking about you should check out Dear Esther on YouTube.
My art installation is called A New Beginning, and I'm not going to spoil it here because you should experience the game because that was the point of it.

Not everyone liked the game because some players didn't have the patience to play it through. Some players are used to those fast-action games and become bored if they don't get it after the first few seconds. But some players liked it:
I survived, don't give up!   This game made me feel something, stuck in a room, facing an unavoidable threat.  And I tried to move everything around in despair, soon the room was a mess, and soon it was to late. The narrator caught my attention about a second chance. That is interesting!   
I don't know what to think about the narrator that teaches me life. Ok, and I didn't do anything to deserve surviving, or to deserve to die. To conclude this game creates emotions, well done. Thanks for making this game!    

Update 3. Learn how to optimize your Unity project
If you are making a game you need to make a fast game, especially if you are making a game for mobile phones. Something you might not first think about from a performance perspective is how much battery your game is using, and you can actually optimize the game so it's using less of your precious mobile phone's battery. All this is a bottomless pit and everything about how to actually optimize is spread out across the Internet. So to solve this problem I decided to try to collect all links in one page, and you can find the collection here: Learn how to optimize your Unity project.