Rubiks Cube AI Part 1 – Parity

Rubiks Cubes! I cant solve them to completetion for the life of me. But now I can just solve them using an AI.

But before jumping into heuristics, A* algorithms, and all kinds of solving. First, let us consider a random Rubiks Cube itself. Is the cube actually solveable in the first place? Can we go from the random state pictured above to a solved cube?

The answer is no. The Rubiks Cube parity has been altered!

Recommended Viewing: Ubisoft CppCon 2014

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.

Programming a Boggle Algorithm

Recently had to figure out how to program a Boggle algorithm. Boggle is a simple board game I never had the pleasure of playing by itself, but have played plenty of related variations of. These kinds of algorithms are pretty interesting and I had a lot of fun programming different solutions. I’ll share 2 solutions.

Boggle is relatively simple. I never had the pleasure of playing by itself, but have played plenty of related variations of.

You have a square game board with dice of various letters that is n x n. The board gets shaken/randomized and a timer starts. The player scores points by finding valid words on the board that are longer than 3 characters, with longer words scoring more points. The rules are that letters have to be adjacent or diagonal to the last letter in the word to continue. And you can never repeat a letter you’ve already used, so while you can have multiple of the same letter, its the die itself you can’t return to.

I decided to tackle it in C++.

Review: The Art of Naughty Dog Limited Edition

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.

I am extremely happy with The Art of Naughty Dog.

Book Review: Learning Unity 2D Game Development By Example

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.

Read on to find out why.

Ubisoft Internship Post Mortem

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.

Today I Learned: Range Insertions Are Better

Happy fourth-of-July, my American brethren. Sorry Canada, I went home for the weekend!

During my flight home, I started musing some of my unread C++ ebook collection and decided to start with Effective STL by Scott Meyers, the same author as the awesome Effective C++ book I reviewed. One of the first Items covered is how range member functions are better than single elements! I find this extremely intriguing. I never heard of this and I sure wasn’t taught this amazingly simple and clearly superior concept in school.

Recommended Reading: JURASSIC PARK: TRESPASSER CG SOURCE CODE REVIEW

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.

Book Review: Application Development in iOS 7

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.