Unity and Intel Optimus: Unity Editor has stopped working fix

5. September 2013


So I fired up Unity today on my laptop and




Oh dear, this isn’t good.  After some playing around it turns out Unity doesn’t play well with Intel GPUs right now.  Thing is, I don’t have an Intel GPU, I’m running an nVidia GTX765.  Enter Optimus.


What’s Optimus?  It’s an Intel technology that allows your computer to pick between using the integrated chipset to save memory or the dedicated GPU for performance.  The fix is pretty simple, set Unity to run on the nVidia GPU.


Open the nVidia control panel.

Select Manage 3D Settings



Select the Program Settings tab and Click the Add button.



Select Unity then click Add Selected Program



In the Select the preferred graphics processor for this program dropdown, select High-Performance nVIdia



Click Apply.


Load Unity.  VOILA!  No more crash.

Now, if you happen to have only an Intel GPU, um… sorry.

General ,

Lanica finally launch Platino, a cross platform AppceleratorTitanium based 2.5D game engine

3. September 2013


Way back in October of 2012 I mentioned the Platino 2D game engine.  It runs in Appcelerator Titanium a cross platform JavaScript based mobile development system.  Platino appears to have it’s roots in QuickTiGame2D, and open source 2D Titanium game engine.  Anyways, after several months in closed beta Platino is finally available to the public and it’s grown into an entire family of products.




Excerpts from the launch press release:

Over the past several months, we’ve been fine-tuning our Lanica product line and giving some of you early access to new goodies as we roll them out.  During that warm-up phase, we focused mainly on big studios to ensure that Lanica could handle the most heavyweight demands of mobile gaming and interactive development before we let it loose to the masses.

And now, without further ado, we’re releasing the Lanica Game Platform to indie developers!

What does that mean?  Well, most importantly, we’ve rolled out lower prices for indie devs, non-profits, and educational institutions to access Lanica.  You’ll no longer have to break the bank to have the power of our entire game-making platform in your hands.  Now, no matter what the scale of your operation, any developer can make use of all the big guns that we offer.


If you’re new around these parts, we should probably explain why we’ve decided to release Lanica as a three-pronged platform for making games:

You see, we realize that most developers out there already have their own processes in place, and it’s unfeasible for them to just drop everything and pick up a whole new platform every year.  That’s why we’ve built the Lanica Game Platform as a multi-tiered but separable platform, so developers can incorporate Lanica into their workflow at any scale — whether it’s just one tool or the entire platform.  We didn’t want Lanica to be an ‘all or nothing’ deal, that simply would not have been fair.  Instead, you can mix and match specific pieces of the Lanica Game Platform to fit your own development needs.

For instance:  Let’s say you absolutely love your current code editor, but are in dire need of a better sprite animator — Animo Sprites will have you covered!  Want better particle effects, but can’t part with your current framework?  You can use Animo Particles!  Need to step up to a completely new game engine? Then Platino (a.k.a. the JavaScript juggernaut) is your baby!

We don’t want to leave anyone out in the cold, so be sure to check out our entire product line and see what could work for you.


I was in on the closed beta and will say, working in Titanium is a breeze and the SDK is quite nice.  I never really got much into using the other tools other than to play around with the particle tool.  What I’ve been waiting on most was pricing and today we’ve finally got it:




Note the * beside all of the prices?  That’s because you don’t actually purchase monthly, it’s a bit of marketing slight of hand.  So basically the Platino Engine is 816$ a year for companies, or 408$ a year for indies.  Add another 144/72$ if you want to add in app purchase support.  To be honest, those prices are a great deal higher than I was expecting, especially given the amount of competition there is out there.  I am especially shocked there isn’t a complete package price point.


That said, if you are using Titanium and want a game engine, Platino is the only game in town and it’s a good game indeed.  Just not a cheap one, at least compared to it’s peers.

News ,

Looking at LibGDX and once again I find myself hating Google and Java developer tools

1. September 2013


I finally decided to check out LibGDX, a very cool and popular Java based cross platform game development library.  I’ve been meaning to check out LibGDX for ages, it’s the Java part that turned me off.  It’s not the programming language, Java is a really good one, it’s the eco-system.  Always it seems like when dealing with Java I deal with a whole slew of new headaches.  Often it seems the cause of those headaches is Google.  Today sadly was no exception.  This post reflects not at all upon LibGDX, a long time ago I intended to run a series of PlayN tutorials, but I spent so much time supporting the build process or fragility of Eclipse that I simply gave up.  Fortunately LibGDX ships with a setup tool that makes a bunch of these problems go away, but it’s certainly not solved the problems completely.


The first problem is partially on me, partially on Eclipse and a great deal on Java.  I installed Eclipse as it’s the preferred environment for LibGDX and often trying to do things the non-Eclipse way can really make things more difficult, at least initially.  ( I massively prefer IntelliJ to Eclipse )  Right away I fire up Eclipse and am greeted with:

failed to load the JNI shared library

If you are a veteran developer this is no doubt immediately obvious to you.  I checked the most common things, first make sure JDK is installed.  Make sure JAVA_HOME is set, make sure javac runs from the commandline, run javac –version to make sure things are working right.  In the end it was a version mismatch.  I downloaded the 64bit version of Eclipse and the 32bit version of the Java JDK.  The obvious answer is to download the 64bit JDK but I really wouldn’t recommend that.  Amazingly enough in 2013 the 64 bit version still causes problems.  For example, FlashDevelop wont work with it.  That is just one of a dozen applications I’ve seen that wont run with the 64bit version.


Not really a big deal.  Eclipse should have done a heck of a lot better job with the error message.  If it said “64bit JDK required” this would have taken about 10 seconds to solve.  Keep in mind this is a problem that’s existed for 3 or 4 years, so don’t expect an improvement on the Eclipse side any time soon.  Accessibility and polish has never really been a priority when it comes to Eclipse.  The fact 64bit Java is still problematic, that’s 100% on Java though!



Anyways, other than fighting with Eclipse and Java, everything went wonderfully with LibGDX.  I got my project made and configured without issue ( beyond oddly enough, the Setup UI wanting the original GDX install zip file, I had already deleted… oops ).  Then when I went to run the HTML5 target in Chrome I get:




I click the Download the GWT Developer Plugin button.


Nothing.  No error, no page load, nothing.  I reload and try again.


Check my internet connection… all good.




So then I grab the URL for that button and it loads a Chrome Store page ( at least it did something! )



This application is not supported on this computer.  Installation has been disabled.


Lovely.  If I got that message when I clicked the initial link, things would have made a great deal more case.  Want to know why I hate Google for this one?


First off… it works in Internet Explorer and Firefox.  It’s only in Chrome that the GWT developer plugin doesn’t work ( on Windows 8 as it turns out ).  But that’s not the hatred part.

Take a look at GWT issue 7778.

"This application is not supported on this computer. Installation has been disabled" while installing GWT developer plugin on Chrome

So, its a known issue of Google’s developer tool working in Google’s browser on Windows 8.  But the hatred part…



November 9th, 2012.  It’s been a known and reported problem for almost a year.  Fixed?  God no!


Welcome to working in Google tools.  You will spend a stupid amount of time trying to debug what the problem is, only to find yourself looking at year(s) old tickets that have been ignored by Google.  When working in Android I ran into common tickets with hundred of comments that were years old on nearly a daily basis.


This isn’t a one off rant, this kind of stuff happens EVERY SINGLE TIME I work with Google technology.  I have literally never once NOT run into a problem, from Android, to DART, to NaCL to GWT.  Every single time.


It’s not such a big deal for me, I’ve got the experience enough when working with Google tools to expect minimal or wrong errors when problems occurred and for half assed support when I research the problem.  Frankly I just stay the hell away when I can.  Where its a gigantic deal breaker is when a new developer runs into these additional hassles.  In some ways it’s kind of infuriating as great libraries like LibGDX become that much harder for developers to access.

Programming ,

Whats changed in the game development world since I wrote my game dev guide?

1. September 2013


One of the oldest and most popular articles on my site is I want to be a game developer… now what?  It offers a collection of advice for new game developers.  I keep intending to update it but frankly, not enough changed.  The following was recently posted on GameDev.net:


This article was written 2 years ago, and is very informative about each game development language, but 2 years sounds like too much for how events quickly change now, XNA is partially dead, more books released, etc..

Is there a newer article of that kind of information? and is C++ still a bad choice (with the introduction of SFML 2.1 and SDL 2)?


Which got me to thinking about what all has changed since I wrote that guide.  The following was my answer.  Of course, I have no idea how many thousands of things I forgot to mention.  All told, the world hasn’t changed all that much, languages don’t really move all that fast.


Truth is, I keep meaning to update it, then look at the state of the game development world and there hasn't really been enough changes.  I will be doing a v2 eventually, but in summary, here is what's changed since the article was written:



SFML 2/2.1 released.  Frankly it's not all that different.

SDL 2 was released.  Again, not massive changes.

Gameplay3D engine released  Site Link My Look

Hands down the biggest change to C++ ( and over the last two years ) was the release of C++11.  This completely changes the C++ book recommendations.  C++ changes a lot about the language, especially how it should be taught.  Some books did a horrid job updating to the new standard ( just bolting on the new features ), while others did a better (less lazy) job.  I will probably do a post specifically about C++11 books at some point in the future.



XNA was put out to pasture by Microsoft.  Fortunately, Monogame also got a lot better.  XNA is still an option, just not as good of one as it used to be.

PlayStation Mobile was released and C# based.  SDK Link (My Tutorials)

Unity 3D is now free.

Mono for iOS and Android 100$ cheaper

C# 5 released.  Outside of parallel programming functionality (async), not much changed.  Nowhere near the change of C++ for example.



Slick2D is dead or abandoned.

Java took a few hits in terms of deployment due to security concerns ( Apple yanked it for example ).

LibGDX is probably the strongest option in Java now.

Don't believe there were any major language updates ( 1.7 then and now ), just service releases.



Um.... anything?

Otherwise there would be a few things I would mention that weren't as relevant 2 years ago.



Rise of the Lua game engines.  Add Dreemchest to that list as well.

In the mobile space, Lua just simply put got big.  Lua is also the scripting engine of choice for CryEngine, Gameplay and Project Anarchy.  Lua is a very very very good starting point for people looking to just start out.  Corona is now available free and at the same time, is more expensive...

HTML5 got a little bit more viable ( but still limited ) Flash suffered some major blows ( but still viable ).  There are now a number of solutions that make appifying HTML5 applications possible, such as CocoonJS.  Tons of libraries exist for HTML5 game development..

Previously niche/limited game maker software ( GameMaker, Construct2 ), as well as cross platform tools like Haxe (tutorial series) or LoomScript ( my look ) have made cross platform game development a hell of a lot easier.

The 3D engine space saw a bit more activity.  As mentioned earlier, RIM released GamePlay3D.  On top of that Torque was released for free, CryEngine leaked it's developer information in a hack attempt... ( thanks for that btw... :( ) and Project Anarchy (my look) was announced and released.  Project Anarchy is a bundle of Havok's game developer technology released completely free for mobile development.  On the 3D game engine space the story is Unity Unity and Unity.  Frankly Unity had a good year, made partnerships with pretty much every single platform available and is available in a free version for pretty much every platform now.

Grand total, not all that much happened, not really enough to full write a v2 version, hands down the biggest changes in the last two years:

C++ 11

XNA killed

Unity took over the world.

I miss anything?


Anything else I missed in the last two years of game development?

Programming , ,

Creating a game sprite: Modelling in Blender Part 4: Enough with the box modelling

29. August 2013


In this post we are going to, for the most part, complete with the modelling portion.  In the end, I am going to stick with a relatively low polygon model so it can easily be used in a real-time 3D game, as well as for rendering a sprite.  Additionally, a lower polygon count makes texturing more straight forward.  That said, if you are rendering to sprites, the polygon count really doesn’t matter to you ( except of course for your PC being able to run Blender that is! ).  Later on I may take a look at adding more detail, as well as rendering a normal map to give the illusion of more detail on a low polygon model.  That said, I cant spend forever on this or we will never get to texturing!


So… back to our model.  In our last stage we ended here:



Certainly more jet like than box like, but there are obviously some major exceptions.  First the cockpit is still basically just a box.  Second, the nose is about as aerodynamic as a toaster at this point.  Third, there is no engine yet, although you could argue that is just wasted polygons given the shape of the jet ( aka, you cant generally see the engine… ), so for now I am simply going to skip modelling an engine.  Finally we can do a bit of tweaking and movement in general.


The Cockpit

First we start off with our friend the loop cut.  Create one more loop cut along the edge of the cockpit like so:



Now move the outer edge of the cockpit down a bit, like so:



Now we are going to create out first triangle!  A few triangles here and there aren’t a bit deal, especially if they make sense.  What we want to do is basically change our edge loop so it loops around the cockpit.


To do this, we are going to make use of the Knife tool.  You use the knife tool by hitting K, then clicking here you want to start cutting from, then click where you want to cut to.  Finally click enter to complete the cut.  Hit K then click on the two locations marked.  Be sure you get the special square indicator that shows you are cutting to an existing vertices or you will create extra un-needed and un-wanted geometry.




Now repeat the process for the back of the cockpit and your new edge loop should look like:



Now shape the cockpit to suit.  I am not all that pleased with the initial results, so I will probably tweak later, but its at least a cockpit now instead of a box.




Modelling the nose


Now let’s do something about that nose.  We are going to collapse all of the vertices at the end into a single vertex.


Box select all of the vertices at the front of the jet, like so:



Then hit X and choose Edge Collapse



And Voila!



As you can see above though, our newly created uber vertex isn’t at the mirror point any more.  Make sure to move it back to 0 along the X axis:




Now we have one small problem… our plane is really really really boxy and we don’t want that!  You can spread the vertices out by hand but there is a much easier solution.


First make sure you don't have any interior geometry ( lines/vertices created along the X axis ) , like I do now.  You will need to be in Xray (Z key) mode to spot extra geometry.



If you do, select the edges and delete them ( X ). 

Now select the boxy edge loop making up the front of our nose:



And run the To Sphere tool.  ( Alt + Shift + S ) and:



Now move the selected edge loop back from the front of the nose:



Now repeat the same process with the next edge loop ( closer to the cockpit ).



Obviously we have a bit of cleaning up and tweaking to do now.  After a couple tweaks and moves we have:




At this point I turned off the background reference images and played around by hand and selectively set smoothing.  To set smoothing, simply select the face you want to be displayed smooth and click Smooth under Shading in the tools panel:



I made a number of small tweaks, such as extending the wings, shrinking the cockpit and main body and just smoothing things out.


So, this was our original design:




And this is where we ended up:







Pretty close to my original concept.  Not perfect by any means, but I’m happy. 


You can download a zip containing the blend file right here.


Time to move on to texturing!

Click here for the Next Part


Art ,