Checkout these two great talks from Ubisoft @ CppCon 2014 featuring multicore C++11 development and how C++ is used to develop AAA games at Ubisoft. I briefly met Nicolas Fleury and learned many tips from blurbs he’s written about good C++ practices and such. He’s very talented.
Naughty Dog’s most amazing art, the demonstration of how incredible of a medium games are, is compiled into one crazy set that feels as if the package was handcrafted by Dark Horse.
I searched for this awesome book for several months after learning about its existence. I had given up on trying to find one that didn’t consist of a crazy ebay listing, and due to the fact they’re limited print, I just went and purchased the regular edition. However, while at NYCC 2014, a friend of mine had requested we stop by Dark Horse’s booth to look for something of interest for him. They didn’t have what he was looking for, but just out of the corner of my eye as we walked away, I noticed a really cool looking Final Fantasy art book. I immediately jumped to it, and hidden just to the left of it, was this epic box. I cried out loud like a little girl, I kid you not. Everyone looked at me, and the Dark Horse rep laughed as I lifted the last copy off the shelf.
Learning Unity 2D Game Development by Example written by Venita Pereira published by Packt Publishing is quite a wonderful introduction to not only Unity itself but the new 2D game development suite it recently added. I had been meaning to checkout the 2D Unity mode myself for quite some time, and this book gave me a proper introduction.
After being a major supporter of Construct 2, mainly due to how easy it is to approach for new comers and the fully featured sprite editors, I can now easily recommend Unity as well.
Interesting network talk about Halo Reach’s network design, Bungie’s most recent game before Destiny, by David Aldridge. You can view it here, and I break down the bullet points in the blog post below.
Jurassic Park Trespasser, in 1998, had ridiculously awesome features being touted for its time. Fully detailed outdoor environments, hyper realistic physics, advanced graphic features like bump mapping. It was way ahead of its time. But it didn’t sell too great!.
This interesting article takes a look at the source code behind the project which, for its time, may have been “too complex” for C++ which has since evolved a ton. Interesting how no precompiled headers weren’t used so therefore hours of compile time were done. Good reading.
In my last review about iOS7 development, I held concerns about the platform in regards to Apple locking down the platform so much. I still hold those concerns. However, as Apple moves on we may see the platform available to dev on all machines soon as we move closer and closer to a “cloud” IDE in my opinion.
As Application Development in iOS 7 by Kyle Begemen shows, Apple continually evolves the Xcode platform, the Foundation Framework, updating Objective-C, and so on. Recently announced, they have a new language based off of Objective-C called Swift. I believe this shows how Apple is growing up with their tech and moving it forward. There are a lot of interesting changes here.
Interesting bit came up at work with our bi-weekly “brown bag” lunches with our programming team – Scripting vs Native C++ code. A lot of game developers, and even in many other realms, some of the code base may be split into Lua or Python for easy, quick iteration. I know many studios, such as many of the Call of Duty studios, use primarily Lua for their gameplay scripts.
The argument is that is easy to write, iterate fast, and provide to employees who don’t have deep programming knowledge (like some gameplay designers and such). It’s perfectly legitimate too, there isn’t anything inherently wrong with the scripting languages augmenting a huge C++ code-base engine. However, there are caveats such as managing two different languages and creating wrappers for stuff. Also, Lua doesn’t have proper debugging tools many C++ programmers are used to, and when tied into that code-base, it can become a nightmare to debug.
Fantastic read, pretty classy too. Each script is a single cpp file that gets compiled into a dynamic library which recompiles everytime the file changes, even during gameplay. The scripts even get a nice little compression size reduction too. Good read.
Effective C++ by Scott Meyers has been around for awhile and it is pretty revered. With good reason. It is one of the books a lot of C++ programmers, both beginners and adept, read and then never look back after. After being recommended the book several times, I finally got around to picking it up.
Unlike a lot of other programming books, such as the ones I’ve previously reviewed, this isn’t a tutorial or “how-to” C++ book. So there is some technical requirement for the book and if you don’t have interest in C++, it probably won’t do much for you. But if you want to check it out, my review can be found after the break.
iOS7 is Apple’s latest update to their mobile OS at the time of this writing. With it came huge changes for consumers and developers. Namely ‘flat’ design came about and the entire iOS interface was redesigned with new visuals. The change meant new features for developers too such as SpriteKit – the new 2D game development framework.
Member declaration order for structs and classes are important. You want to order the smallest to the largest (or vice versa) in order to avoid what’s known as ‘padding’. Padding is basically what the compiler will use to keep the memory allocation of the struct/class aligned in memory. This padding tends to be wasted space unless some compiler specific enhancement is occurring.
What I learned today was that Microsoft’s C++ compiler actually has extra padding involved, by design. And the solution to avoid the extra previous memory being stolen from you? Quite elementary, how could you not know? Inheriting from an empty abstract class makes your objects smaller.