Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
30. November 2011



Epic has released a new version of their UDK.  Updated features include:Unreal Development Kit


Upgraded to Scaleform 4



Unreal Landscape and Foliage

  • Landscape flatten tool tool is enhanced with a flatten to slope option
  • New Clay Brush makes sculpting of landscape vertex data much quicker and easier
  • Foliage scale axis locking allows for variable Z scale but uniform XY scale, plus z-offset settings
  • New reimport Heightmap / layer button for each layer
    • Updated Unreal Landscape documentation with info on new layer nodes
    • Updated foliage documentation with info on new features
    • Foliage now follows base component on copy/paste/move/rotate/move-to-level
    • Much improved brush painting behavior for both vertex and layers in regular (non-clay) mode. Repainting the same area no longer causes artifacts
    • Changed the regular paint tool behavior so that painting over the same area requires multiple brush strokes.  The functionality is now consistent with Zbrush and prevent artifacts



    • You can now export skeletal meshes and animations from the editor, enabling bi-directional cinematic workflow
    • Added the ability to adjust sound class volume levels from a matinee track
    • The content browser's 'Packages' view now returns to previously active view (hierarchical or flattened) when filter is cleared
    • Added support for turning off startup movies and toggling cinematic mode for matinee movie captures



    • High level Twitter UnrealScript-accessible support has been added
      • You can now show the iOS 5 Tweet UI and optionally attach a local .png image and/or a URL, making use of the single-sign-on Twitter account(s) in iOS 5
      • You can also submit a generic Twitter request (i.e., get the local user’s followers)
      • Implemented for iOS 5
    • Added ADPCM sound encoding support


    Mac OS X feature parity work

    • Additions and upgrades
      • Added support for "Maximize" button
      • Added full support for vertex texture fetch
      • Minor PhysX library update, addressing some rare crashes, and adding "quickload" extension support
      • Support for loops and secondary color attribute during shader generation
    • Fixed issues
      • Instanced drawing now on full parity with PC
      • Light shafts now render properly and have full visual parity with PC
      • Full-screen rendering and MSAA
      • Inconsistent lens flares compared to PC
      • Inconsistencies with anisotropic filtering between PC and Mac
      • Shadows from spotlight on dynamic / skeletal meshes


A fairly significant release, especially if you are on Mac OS X.  It is a 1.5 GB download.  You can get it here.



Of course, now that you read all of that, is it a bad time to mention they have a video version highlighting all the recent changes? Winking smile




I really have to look into it a bit closer.  I downloaded and installed the last release, played around a little bit with the default level in the editor ( while watching my computer cry under the strain ) but never got into it much deeper than that. 


It simply staggers my mind the wealth of affordable and professional tools available these days.  I still recall not that long ago where everyone had to create everything themselves and the first available engines cost in the hundred of thousands of dollars to license. Amazing how much things have changed!


29. November 2011



First off, the following link is purely conjecture, nothing in it has been confirmed by anyone at Microsoft, that said the conclusions it draws are logical to say the least, and dire.  Microsoft seems to be exiting DirectX/XNA development.  Now, that’s not quite as bad as it sounds, DX and possibly XNA will continue to exist, but they won’t receive nearly the level of emphasis that they currently do.


The blog post was from Promit a moderator at, a DirectX/XNA MVP and the primary lead on the popular SlimDX library.  Simply put, the man is no idiot.


Here is a snippet:


Let’s start with the DirectX SDK, which you may have noticed was last updated in June of 2010. That’s about a year and a half now, which is a bit of a lag for a product which has — sorry, had — scheduled quarterly releases. Unless of course that product is canceled, and it is. You heard me right: there is no more DirectX SDK. Its various useful components have been spun out into a hodge-podge of other places, and some pieces are simply discontinued. Everything outside DirectX Graphics is of course gone, and has been for several years now. That should not be a surprise. The graphics pieces and documentation, though, are being folded into the Windows SDK. D3DX is entirely gone. The math library was released as XNA Math (essentially a port from Xbox), then renamed to DirectXMath. It was a separate download for a while but I think it might be part of Windows SDK from Windows 8 also. I haven’t checked. The FX compiler has been spun off/abandoned as an open source block of code that is in the June 2010 SDK. There are no official patches for a wide range of known bugs, and I’m not aware of a central location for indie patches. Most of the remaining bits and pieces live on Chuck Walbourn’s blog. Yeah, I know.


In case it’s not obvious, this means that the DirectX release schedule is now the same as the Windows SDK, which always corresponds with major OS updates (service packs and full new versions). Don’t hold your breath on bug fixes. Last I heard, there’s only one person still working on the HLSL compiler. Maybe they’ve hired someone, or I assume they have a job opening on that ‘team’ at least. What I do know is that for all practical purposes, DirectX has been demoted to a standard, uninteresting Windows API just like all the others. I imagine there won’t be a lot more samples coming from Microsoft, especially big cool ones like the SDK used to have. Probably have to rely on AMD and NVIDIA for that stuff moving forward.


That covers the native side. What about managed? Well the Windows API Code Pack hasn’t been updated in a year and a half so we won’t worry about that. On the XNA front, two things are becoming very clear:
* XNA is not invited to Windows 8.
* XBLIG is not a serious effort.
The point about XBLIG has been known by most of us MVP guys for a while now. Microsoft promised a lot of interesting news out of this past //BUILD/ conference, which I suppose was true. However you may have noticed that XNA was not mentioned at any point. That’s because XNA isn’t invited. All of that fancy new Metro stuff? None of it will work with XNA, at all, in any fashion.


I highly recommend you read the entire post it is an interesting read to say the least.



Say what you will about the conclusions he has drawn and you will realize this is actually just the tip of the iceberg. 



First off, I think its clear to just about anyone watching that the executive team at Microsoft don’t know their head from their….  Anyways, look at the recent attempts to purchase Yahoo for a hundred, trillion billion dollars, followed by an 8! billion dollar acquisition of Skype and it is pretty clear they don’t have a bloody clue what they are doing.  Fortunately for them Office and Windows make so much money they can weather a storm of stupidity.


But more core to the problem is the recent internal civil war between J Allard and Steven Sinofsky ( more details here ).  J Allard for those that don’t know is the guy behind Xbox ( and frankly a number of failures too ) at Microsoft while Steven Sinofsky is the guy that runs the Windows team at Microsoft and saved it from the debacle of Vista.  Both were highly regarded, both were stars on the rise at Microsoft and they went head to head on the future of tablet computing ( and to a lesser degree Microsoft itself ).  Steven won, Allard is gone.  Thing is, it seems Steven’s win is more far reaching and the future of the OS/Win 8 seems to be calling all the shots, no matter how ill advised they are.


So, the deprecation of DirectX to simply another SDK in the platform makes sense when viewed through the lens that the guy calling the shots is *in charge of the platform!*.  Sadly, DirectX, Courier and XNA don’t seem to be the only causalities in this story.  Silverlight also appears to be a dead end technology now, either killed by a political blunder by Bob Muglia or in fact on the way out, in support of HTML5/Javascript.  Developer support has always been the corner stone of Microsoft’s success and if they continue down this route, the future seems  a very bleak place.  Personally as a developer, the shift back to using HTML + Javascript is a blunder of epic proportions.


Frankly, it seems like innovation has died at Microsoft, Developer support certainly seems to have.  Microsoft has, for at least a decade, been known for exceptional developer support, probably the best in the industry.  These days however, may be in the past and I for one am greatly saddened.


Does this mean you should stop developing XNA apps?  Certainly not, at least, not yet.  Even as it stands now, it is a stable and well developed product.  Should you stop developing Silverlight or WPF applications?  That one is a hell of a lot trickier to determine and the lack of words outside of Microsoft aren’t exactly filling me with confidence.  Should you be boning up your HTML and Javascript skills?  Sadly, yes.


25. November 2011



In doing some link checking for a review I am working on, I started noticing that there are some pretty major sales going on… that whole Black Friday thing.  To non-Americans, Black Friday is a tricky thing to explain.  It’s name is routed in this Friday representing the day retailors traditionally went “Into the black” meaning they started turning a profit on the year.  To celebrate, there is an uber deal day around the world.  Traditionally ( and I am talking like 5 years worth of tradition here… ) online deals are on Cyber Monday, the upcoming Monday after Black Friday, but it appears some e-tailors ( did I really just say that! ) started early.



The roundup of great game related deals I have seen so far!



Corel Painter for 249$  180$ off and free shipping


I love Corel Painter, its great for replecating the analog art experience and I use the freebie version that shipped with my tablet all the time.  That said, 250$ is still a bit steep for my liking.  If you are looking for a natural media art package though, this is probably the best one.


PaintShop Pro and Corel draw are both on sale too, but frankly PSP used to be a nice cheap alternative to Photoshop, but since Corel purchased it, it has been more aligned as a photo touch up package.  That said, 30$ is 30$.  Corel Draw, and app I just can’t get into is 350$ down from 500$.  Again, personally not a giant fan.




Adobe has most products at 30% off too!


Photoshop for a 700$ instead of a grand… that’s a nice deal.  That said, 700$ is still 700$!  If you’ve been looking at buying PS5 though, this is probably the perfect time.  200$ for the upgrade price, although im not sure how much of a sale that is.




Sadly no deals at Autodesk ( Max, Maya, Softimage, Luxology ( Modo ), Maxon ( Cinema4d), Pixologic ( zBrush ) NewTek ( Lightwave ), so if you were in the market for a 3D app, no deals as of yet Sad smile



That said, Amazon does have Poser 9 on sale for 59.99$, which is 140$ off.  For those not familiar, Poser is a bit of a weird one, but remarkably capable.  You can make, animated, “dress”, pose 3D characters in a pretty much drag and drop environment.  Sadly Collada support is a pro only feature.


It’s still a very cool program at a very decent price, I wonder if there is still support for older exports like OBJ or 3DS?  Need to look into that more.





Speaking of Poser, while looking at their publishers website SmithMicro, to see if it supported Collada I discovered this:


It's that time of year again and we're offering deep discounts—60% off most software in our online store*—from now until November 30th.
Use coupon code: BLACKFRIDAY2011
*One coupon use per customer. Not valid with any other offers or discounts. Not valid on trials or upgrades. Not valid for SendStuffNow subscriptions. Sale ends 11/30/2011 at 11:59pm PST.

So, any single product 60% off?  They don’t make a ton of products relevent to game developers, but there are a few standouts ( in addition to Poser and Poser Pro ):


Anime Studio Pro 8  If Animes your thing, its 199$, that’s 80$ with the coupon.


Manga Studio EX In case you call your Anime Manga I suppose… frankly I don’t know the difference, but its 299$ so with coupon that would be @ 120$.


That is about all I found that might be relevant, but you can see the whole list here.




Amazon has Roxio Game Capture on for 65$.  Seems a little niche to me, but if you want to record or screenshot 360 or PS3 footage, this is your ticket.



Doesn’t really count as a programmer item, other than the fact this was they “cool kids toy” forAeron Chair by Herman Miller - Official Retailer - Highly Adjustable Graphite Frame - with PostureFit - Carbon Classic (Large) recruiting programmers to come work at your company a few years back.  The Aeron Chair.  Remember those?  Well now is your chance, marked down from 1200$ to 736$.  Ok 3/4 a grand for a chair is a bit excessive, but I have heard nothing but gushing reviews about these things.  That said, I’m not really in a position to drop that kind of money on a chair, but if you are, well the price is (relatively) right!








Last but certainly not least…  the ThinkGeek plush zombie!  What self respecting developer doesn’t have a plush zombie??  Actually, Think Geek has a ton of geek stuff on sale.




Actually, going through that list again, it looks more like a great day for artists… programmers kinda got the short end of the stick!

Totally Off Topic

22. November 2011



Continuing the long standing ( and very cool ) tradition of releasing id source code a number of years after being released to market, the Doom3 engine/game source code has been made available on GitHub.



I have only had the chance to peruse it briefly, but I have to say what I saw was very clean, and shockingly enough C++!  After seeing prior id code, I simply figured it would be straight C for some reason.



Anyways, I highly recommend you check it out.  Clean, complete, professional quality source code isn’t made available every day, and Carmack really is one of our day’s brilliant minds.  I know I will be doing so in more detail shortly!



Now I cant wait for someone to port Doom 3 to my toaster…


20. November 2011



Handling game time is problem that almost all games have to deal with.  A very good question recently came up in my C++ game from scratch tutorial about why I didn’t normalize the players movements which reminded me of a post on the subject.



Years ago Shawn Hargreaves of XNA ( and Allegro ) fame blogged about how XNA handles the Update and Render loops.  I simply post it here again because it is one of the most succinct posts I have encountered on the subject.  So, if you are looking into creating a game and need to figure out how to implement the game loop, I recommend you give it a read.


By default XNA runs in fixed timestep mode, with a TargetElapsedTime of 60 frames per second. This provides a simple guarantee:

  • We will call your Update method exactly 60 times per second
  • We will call your Draw method whenever we feel like it


Digging into exactly what that means, you will realize there are several possible scenarios depending on how long your Update and Draw methods take to execute.


The simplest situation is that the total time you spend in Update + Draw is exactly 1/60 of a second. In this case we will call Update, then call Draw, then look at the clock and notice it is time for another Update, then Draw, and so on. Simple!


What if your Update + Draw takes less than 1/60 of a second? Also simple. Here we call Update, then call Draw, then look at the clock, notice we have some time left over, so wait around twiddling our thumbs until it is time to call Update again.


What if Update + Draw takes longer than 1/60 of a second? This is where things get complicated. There are many reasons why this could happen:


  1. The computer might be slightly too slow to run the game at the desired speed.
  2. Or the computer might be way too slow to run the game at the desired speed!
  3. The computer might be basically fast enough, but this particular frame might have taken an unusually long time for some reason. Perhaps there were too many explosions on screen, or the game had to load a new texture, or there was a garbage collection.
  4. You could have paused the program in the debugger.


We do the same thing in response to all four causes of slowness:

  • Set GameTime.IsRunningSlowly to true.
  • Call Update extra times (without calling Draw) until we catch up.
  • If things are getting ridiculous and we are too far behind, we just give up.

If you think about how this algorithm deals with the four possible causes of slowdown I listed above, you'll see it handles them all rather well:

  1. Even if the computer is too slow to run Update + Draw inside a single frame, chances are that Update + Update + Draw will fit into two frames. The game may look a little jerky, but it will still play correctly. If the programmer is particularly smart they might even notice that we set IsRunningSlowly, and automatically reduce detail or turn off special effects to speed things up.
  2. If the computer is way too slow (ie. if the Update method alone is too slow to fit into a single frame) there isn't really much we can do, other than set IsRunningSlowly, cross our fingers, and hope the game might do something clever in response to that. Most of the time, though, if you find yourself in this situation you just need a faster computer!
  3. If a particular frame happens to take unusually long, we automatically call Update some extra times to catch up, after which everything carries on as normal. The player may notice a slight glitch, but we automatically correct for this to minimize the impact.
  4. Pausing in the debugger will leave the game a long way behind where the clock says it should be, so our algorithm will give up, accept that it has lost some time, and continue running smoothly from the time execution was resumed.



Shawn’s blog in general is a very good read, but this this post in particular is one that I seem to keep coming back to.


For the record, Pang from the C++ tutorial does not gracefully handle hitting a breakpoint ( it adds a layer of unwanted complexity for learning purposes ), so will do downright stupid things when it hits a breakpoint causing it to pause for a while.  I believe on the next frame it will cause your movement to be really really really far.  It would be as simple as adding if(elapsedTime > someReallyBigValue) startTimeOver() if you really wanted to fix this.



Sorry for digging up the past, now back to your regular broadcast!


AppGameKit Studio

See More Tutorials on!

Month List