Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
14. April 2013

I just finished performing an upgrade on the software that runs this site. I ran into a couple small snags during the upgrade that resulted in the site being unavailable for about 15 minutes. If you we're trying to access the site earlier today and received errors... My bad, sorry.



The new software should be a little quicker, but it was mostly about server security and a few perks for me, like better blogging software support. I think the upgrade went smoothly enough, but there are a lot of moving pieces. If you encounter any errors, please let me know what and where so I can fix it!



Cheers and thanks for your patience.



4. April 2013

Now that my book is published it's time to move on to my next project.  Given the original purpose of this site, with a two year distraction, I think it's high time that I get around to actually creating and publishing a game!  I intend to share as much of the development process, code, assets, etc… as I go, including having the WIP game playable here!


What I have in my head is a science fiction business simulation game.  Trust me, the actual game is a hell of a lot more exciting than that title indicates, I will flesh out the details in further blog posts.  If you played old school BBS games, or many of the recent Kairosoft or Tycoon style games, you should have an inkling of the type of game I am considering.  I actually tend to find these styles of turn based games are the best fit for mobile games, especially in the world of play 5 minutes here, 5 minutes there.


One of the biggest requirements in creating a game is being able to post about it here.  I want to share as much of the development experience as possible, and hopefully be as interesting to as large an audience as possible.  Ultimately I do intend to sell the game on at least iOS and Android, but I would also like to give it away here.  I would also like to make all of the source, and eventually ( once I've hopefully sold a few copies ) the assets available as I go.


So here are my current requirements:

  • Turn based game
  • May require modest 3D support, otherwise sprite based
  • Excellent UI support ( UI heavy game )
  • Available on Android, iOS and on at a minimum
  • In a language of interest or known to a large number of developers
  • Tools at low or no cost, so maximum number of readers can follow along
  • Reasonably quick development time
  • Good library support, little desire to re-invent the wheel


For the last week I've been mulling these requirements around in my head and I think I've settled on my technology of choice.  First I will go through my list of considered but discounted technologies and the reasons why.

LoomScript I recently finished evaluating Loom and I was rather impressed.  There is CSS style markup and tweening support for making a solid UI relatively easily, it targets all the desired platforms, except the web ( MacOS and Windows builds might offset this lacking to a degree ).  That said though, at the end of the day, it's just not that popular yet, so I would be writing about a technology a very small minority of you are interested in.

Unity is an obvious choice.  It would handle the 3d portions better than any other engine i've considered and it is certainly popular, so would probably be relevant for a lot of you.  At the end of the day though, it's a 3D engine, not a 2D one.  Of course, you can accomplish a great deal using 3rd party libraries, for an additional cost.  At the end of the day, that was the biggest mark against Unity, the cost factor.  Although I own a 3.x license from the give away, and could ultimately buy a 4.x license when ready to ship, I don't want to go that route if I don't really need the majority of the features it buys me.  The UI support too is also remarkably sparse.

Scaleform was another one I considered.  On the UI side of the fence, it may be the strongest option.  It's basically a game optimized version of Flash and is used in hundreds of games to provide the UI functionality.  That said, it's pretty niche in the indie world at this point and the amount of supporting materials is pretty light right now.

C++, very little gain.  Would love to take a closer look at the GamePlay3D engine, but it's overkill for this game project.

Flash/AIR is another option.  In all my years, I somehow completely avoided doing any Flash development.  Keep in mind, I am not talking about browser based Flash, I am talking Flash as a development environment.  I haven't completely disregarded Flash as an option, but puzzling out the eco-system was rather confusing.  Not really sure what level of commitment would be need to be made to work with Flash.  I do really wish FlashDevelop was available on MacOS…  Not ruled out Flash yet, but probably not.

The LUAs. I really like all of the Lua based game engines but none are a particularly good fit.  I don't believe any of them support web deployment right now, Corona and Gideros both have a price tag attached and Moai is a poor fit… I am not writing a high performance game, so there aren't enough wins to make it worth while, as I'd have to roll my own UI system, etc.

LibGDX/PlayN Both support a good number of platforms, both are libraries of interest to me.  In the case of PlayN, I just found the entire build process ( MAVEN!!! ) so tedious and prone to breakage, plus I would be pretty much rolling my own UI.  LibGDX is on my todo to look into further and hasn't been discounted completely, but UI support is there.

HaXe + NME Still looking into this one, it's a maybe.


At the end of the day, that leaves an obvious choice and two maybes.


HTML5 It's popular, library support is staggering, UI support is a no brainer ( I can use a few thousand existing HTML libraries ), hosting it on this website is also a no brainer, I can easily port to Windows 8 and Chrome app stores and frankly, I want to see what the HTML5 developer experience is like on a full game.  There is one possible achilles heel to this decision though… native support.  I want to deploy as a native app at the end of the day, and there are options for this ( XDK, CocoonJS, PhoneGap ), but there are also problems.  WebGL support is I believe only available on Cocoon and it's "coming soon".  The game in my mind isn't performance intensive, but I don't know if native WebView is fast enough, probably rendering PhoneGap a non-starter… I need to (very very very soon) try the various native deployment options and see how it goes.


That said, if HTML5 doesn't work out, I've got two runners up picked out.  HaXe and libGDX.


Is there any mainstream language you would prefer I do this project in?  Anyways… wish me luck, first steps and all of that...

News Programming

30. November 2012


One of the most difficult concepts that new developers have to deal with is math.  As you may have noticed, i’ve been publishing a series of game math recipes over the past week or so.  I have now officially compiled them together into a single (static) page.  You can reach the table of contents here.


Right now there are recipes for:

  • Rotating to face a point
  • Rotating one object around another
  • Velocity and angular velocity
  • Axis aligned bounding box – Intersections
  • Axis aligned bounding box – Rotation



For each recipe, there is full source code, a running example and a description of what is happening.


I have other idea’s for math related recipes to add to this series, but of course I am open to suggestions.  If there is a particular topic you would like to see covered, post a comment in this thread.


So, if you are interested, go check it out.


19. September 2012

The ignore me part of this post is very real, this post has content that is probably of very little interest to 99% of you.  You see, until now I have been spoiled by the wonderful ( and free! ) Windows Live Writer blogging software, part of the Windows Live Essentials package.  Coincidentally that pack also includes a very good video editing package, so if you have written it off as garbage, you've made a serious mistake.



Anyways, Windows Live Writer seems to be universally regarded as the best blogging software out there ( Google it… this shocked me too! ), and on a Mac there is no good (free) alternative.  There is however hope, in the form of MarsEdit which I am currently giving a test drive in this post.  It's 40$, which compared to free is quite expensive, but compared to say…  kobe beef, is extremely cheap.  It's quite simple initially, but seems to do most of what I require so far…  mind you, I haven't posted any images or source code yet, so who knows what is going to happen.  I also haven't tried editing an existing post ( too afraid ), or editing a MarsEdit post in WLW ( I haven't got one yet. )


So that is what this post is all about… test driving MarsEdit and then seeing how friendly it plays with Windows.  So, the rest of this post is going to be a mish-mash of … stuff.


So, feel free to ignore me :)  Unless of course, you too recently added a Mac to your daily regime and are looking for a blogging alternative to Live Writer.  Oh, and I tried QTM already ( it was free ), and…  yeah, no.


The good news so far is, it spoke to my blog, got all the recent posts and downloaded the categories, which is nice as I use a slightly less common blog platform ( BlogEngine ).  That said, I haven't seen support for tags yet...


Now lets give an image a shot.


This is a centre aligned image ( of Oolong, the famous pancake balancing rabbit.  It appears you can position easily enough, but image effects and wrapping text


around the image is beyond MarsEdit.


Now lets see what happens with a right aligned image, If this text can't be wrapped around an image, that is actually a gigantic deal breaker right there.



Hmm, well it appears I can at least do that much, but I don't appear to be able to set the padding between my text and the image.



Perhaps even more oddly, I don't have the ability to resize an image once it has been added.


That frankly is just bizarre.


Also, I am just typing this stuff so I can fill the space to the bottom of the image.  Not that I can guarantee that will make sense once published, as this column of text doesn't come close to matching the actual width of my blog, so I have no idea how the text is going to format once posted.


Now it's time to see how code gets pasted:


var express = require('express'),
server = express.createServer();

server.use('/scripts', express.static(__dirname + '/scripts'));

server.get('/', function (req, res) {

//server.get('*', function (req, res) {
// res.redirect('/#' + req.url, 302);

server.listen(process.env.PORT || 3000);


Hm, default from WebStorm, it pastes as simple text.  Well, that's not going to work.  There doesn't appear to be any plugin support, so let's try pasting as RTF from the wonderful Sublime Text:


viewport =



Hmmm, nope.  HTML maybe?


viewport =





09/19/12 10:04:21 /Users/Mike/Dropbox/Moai/Adventure/2/main.lua
if screenWidth == nil then screenWidth =640 end
if screenHeight == nil then screenHeight = 480 end
viewport =




… well, getting there, but ugly as sin.  Thats using the ExportHtml plugin for Sublime Text.  I will look in to a better option in the future.


EDIT: Opened and edited in MarsEdit.  No tag support, picture formatting is meh at best and I am not happy with code markup yet, but the basics are there for now.  May have made progress with code formatting:


09/19/12 10:26:20 /Users/Mike/Dropbox/Moai/Adventure/2/main.lua 
17 MOAIRenderMgr.pushRenderPass(layer)
19 sprite =
20 sprite:setTexture("smile.png")
21 sprite:setRect(-200,-200,200,200)
layer =
sprite =


EDIT2: Pages opens and edits fine in Live Writer.





MarsEdit may work for me, but the lack of built in code formatting makes things a gigantic pain in the hoop, as do the lack of image formatting tools and (albeit a minor point) the lack of tagging.  On the other hand, I really do like the editing environment, it’s a much nicer and more natural experience than Live Writer.  The publishing process is also much nicer, as is the management aspects.


On the whole, MarsEdit seems like a capable product that falls short in a few key categories.  If I find nothing else, I will probably purchase a license.  Does anyone have another recommendation for Mac based blogging software?z

Totally Off Topic

7. December 2011



In case anyone was curious what exactly was coming up here at GameFromScratch, especially since I completely threw the original concept for this website out the window a few months back, this post is a summary of the current tasks I am looking at implementing.  Your feedback is greatly appreciated.



First of all I am going to finish off the GameFromScratch C++ with SFML tutorial.  It is getting close to done, and I have a couple more chapters worth of code written and nearly ready to go.



I am still trying to decide if that tutorial is or is not going to cover networking.  I am leaning towards not, as I don’t think it is a topic I can cover succinctly.  As you have seen from the rambling ( long ) nature of my posts, my definition of succinct is already way pushing the legal bounds of that word!  That said, it does seem to be one of those areas that is extremely under represented on the web, so I may visit it in a different post that builds off of Pang.



The rest of these ideas aren’t really in any particular order as I don’t really know what order I am tackling them in.  In fact I will probably continue to work on them in parallel, unless I find myself getting nothing done!




A simple RPG




This is one area I see people simply screaming out for help and there really isn’t much out there.  Of all the projects that new game developers want to jump into, Role Playing Games really do seem to be top of the list!  Sure, you could jump into the source code for one of the various open source Roguelike games but these aren’t exactly beginner friendly sources.  Not that I recommend against it, reading all of the source code you can is a good idea!  But, as a way to learn… not the best.  Hmmm, actually, I think I might put together a post about the various open source RPGs available…  ok, where was I?


Oh yeah, so there really isn’t a ton out there.  Even in book form, there isn’t a lot to go by.  There is RPG Programming with XNA Studio 3.0 and well, that’s about it.  I have access to this book so I may put a review together too at some point in the future.  There are a few older titles such as Programming Role Playing Games with Direct X which is now 8 years old and frankly is more about graphics than roleplaying.  I think a lot of the information you would be looking for is glossed over in this book. ( I’ve skim/read both and the XNA book is superior ).  Simply put, it is not an area with a lot of coverage tutorial-wise, and those are exactly the areas I intend to focus on.



At the same time, I am going to try to put together a bit of a glossary of resources on the subject, so if you have books or links related to RPG development that I don’t mention or cover, send them to me either via email or comments and I will include them!



My basic plan is to not focus on graphics, that you can learn just about anywhere.  Even creating tile-based games is covered by a few hundred different websites and books, so you are covered well in that regard ( again, I will link to these resources though, so if you have some, keep ‘em coming! ). Instead I will demonstrate the guts of an RPG.  Character systems, saving your game, inventory management, NPCs, random encounters, etc…  That seems to be the kind of information people are looking for and failing to find these days.



This project will actually be in two parts, the ( fairly simple ) role playing game, and the tool that goes into making that game.  In a project like an RPG, you will be shocked at how much of the magic is actually in the tools!  I will probably do all of this in C#. I am thinking of making the tool in in Mono/gtk#, so that it will run on Linux, Mac as well as Windows.  Also, frankly I have never done any cross platform C# work, the experience should be interesting.



I don’t really know how I will structure the tutorial/series.  It doesn’t really work as well linearly as the Pong tutorial did as there are more moving pieces and complexity.  I guess I will figure this out as I go.  I may actually used tagged posts initially then try to impose some kind of chapter specific structure on it later.  Again, suggestions are always appreciated!



So that’s one upcoming project to expect to see on  Another is:




The Mobile SDK roundup.




Basically I am going to be working on a game myself soon, that much I am certain of ( and much of that process will be documented as well! ).  What I need to do is pick a cross platform game framework and this is amazingly enough, a very difficult task.  There are dozens of players in this space, all with their own strengths and weaknesses!



So as a result I have started looking in to various cross platform game SDKs.  As I know there are many other people facing the same decision of what tool to go with, I am going to document the choosing process.



What I essentially plan to do is develop a base “Hello world” style game, some base template of what I want to implement with minimalist version of all the things I am going to need in my own game.  Then I am going to set out to implement that exact same game using each of the available devkits.  As a result, I can do as close as an apples to apples comparison of how well it worked, problems I encounter, the goods, the bads and the uglies encountered on the way.  I will also rate how long it took me to get up to speed, the costs involved, etc…  When I am done each evaluation, I will of course release all the assets and sources used along the way.  Keep in mind though, in many of these cases I may be completely new to the language in question ( such as Flash or Lua ), so don’t expect triple A quality code!



A few of the toolkits I am looking at evaluating are PlayN, Corona, Exen/Monogame, jMonkeyEngine (maybe), Ogre3D (maybe) Unity, UDK ( maybe? ), Marmalade, Flash ( maybe? ) and more.  I am favoring products that are free or have a free evaluation simply because… well, it’s an evaluation.  There is such a wealth of options out there and the majority of them have a free trial available, that its hard to justify an out of pocket purchase before you have made a decision.  This is why products like the Dragonfire SDK won’t be initially evaluated.  I am also still internally deciding if I am going to go 2D, 2.5D or 3D.  My mental game concept leans towards 2D so I think I am favoring that route.



I will put together a post with a bit more detail as I start fleshing out the list of SDKs I am going to evaluate.  As always, I look forward to your input, so if there is an SDK you would like to see evaluated as part of this process, LET ME KNOW!




Other Bits and Bobs




I don’t know if you’ve noticed or not, but I have this tendency to get more than a bit distracted at times.  That’s the joy of running your own blog, you can wander off on any particular tangent that hits your fancy at the time! Winking smile




So, in addition to the above, expect a bit of various coverage of random game development stuff.  I intend to document the process of creating the materials for my “Hello World” game, so expect a few posts on modeling in Wings3D or rendering game sprites using Blender.  I may also do one on animating in Blender, a point of much confusion… although truth told, I am far too impatient to create a good rig…  As I mentioned earlier, I may also look into doing an SFML networking tutorial or two!




I also will probably start doing a fair bit more reviews, especially when it comes to books.  There seem to be a handful of books that people are extremely curious about, so I will tend to focus on them.  I am a voracious reader of tech books, now I just need to learn to read them with an eye towards reviewing them!  If there are any specific books you are interested in learning more about, let me know.




Finally, this site is here for you, so I generally try to pick topics that I think you would be interested in ( and I would have fun explaining! Winking smile ).  Therefore, it is your feedback that directs me more than anything else.  So, if you have a suggestion or comment, fire away and I will see what I can do!



Finally… I really need to get on with my game soon… Smile


AppGameKit Studio

See More Tutorials on!

Month List