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.
For years I’ve been adamant about getting a job in the gaming industry for many reasons that can take up a whole essay on it’s own about why I find it so fascinating and important in media today. As a student, I became very acquainted with the recruitment process of being met with blank stares and non-responses when applying for internships at gaming companies or inquiring about them. Many for some reason are totally opposed to the idea, but others have intern systems even if they say they don’t.
From my high school senior year onward, I was on the hunt for an internship in games. As I approached my senior year of college, I felt my rope was getting really short because an internship would have been incredibly vital to my career decision in games. I wasn’t sure if I wanted to be a designer, programmer, IT technician or something else entirely. I wanted to use the internship opportunity to experience it first hand and base my decision off that. When all my efforts failed, I decided to go all-in on programming. It was a risk, believe it or not, for a Computer Science major like me because I still wasn’t decidedly convinced I wanted to be in this field.
After Ubisoft reached out to me, I finally got to experience some professional hands on programming with languages I truly enjoy and learn about the industry first hand. I’m not only sold on programming now, but more than ever before, games as a career too.
Prepare for a long blog. There’s over 8 months of experiences summed up.
Sorry its been so long since my last blog. Ive been particularly busy lately with work and…. League of Legends. Ugh. Too much League for my own good.
I’ve got another iOS book review in the works and I’ve been getting more and more into board games recently thanks to a buddy at Ubisoft (designer on Assassins Creed) who you can checkout here at StrawPixel, his blog. Here is my BoardGameGeek profile. I’ll be trying to add a sidebar on the blog for it.
Team Omega’s Ubisoft GameJam project – “You, Me, Pigs In A Forest”
A spooky co-op game that features the theme of “You & I”.
One player controls a lantern and the other a sword. Enemies cannot be hit with the sword unless they are vulnerable from the lantern light. The lantern player is powerless to defend himself and the sword player has no light source. They must stick together to survive but are sometimes forced to separate.
Using Unity Pro, we employed depth of field and noise filters to create a cinematic quality to the darkness.
A custom shader I made gives maps a “fog of war” where shadows envelop the player, and only the lantern has the ability to shine through. If the sword player moves out of the lantern, the darkness completely covers him.
Enemies employ the Unity nav mesh system to follow and hunt the player down in swarms.
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.