Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
10. April 2014


Somehow missed this announcement in the chaos of the last few weeks.  It was only via this comment I became aware of the release.  Anyways Havok have released a pretty massive update to Project Anarchy, their free for mobile, cross platform gaming engine.  The star of the release is integration of Autodesk BEAST lighting solution and a new water system, but that’s only a small part.  Post below verbatim is the contents of the release:


We are happy to announce the release of Project Anarchy v2014.0.5. It is now available to download. This release contains a host of new features and improvements. The v2014.0.5 release also adds Autodesk® Beast® as a fully integrated component at no charge and includes a new mobile water shape.

Additionally, you can find a number of usability improvements for vForge such as better gizmos and a new transform panel. For easy and quick prototyping we have added several primitive assets that are directly shipped with the Project Anarchy package.

Below you’ll find some highlights for the changes in v2014.0.5. For a full list of changes please take a look at our documentation.

Autodesk Beast Plugin

With Project Anarchy v2014.0.5 we include our integration of the powerful global illumination lighting solution Autodesk Beast.

With Beast, you can generate amazingly realistic lightmaps and lightgrids directly from within vForge, and even distribute the computation workload among multiple machines using DistriBeast. The features of Beast can be considered as a superset of the default vLux integration. Summarized, it has the following strengths when compared to vLux lighting:

  • Faster computation times that scales well on n-cores and in some cases orders of magnitude faster if global illumination is enabled
  • Support for new light shapes: window light, area light
  • Tighter packing on lightmaps to save texture memory
  • Realtime preview through eRnsT tool
  • Better scalability for larger scenes with its support for instanced geometry

The Beast integration can be used for free in the context of Project Anarchy.

In order to activate Beast, open any scene, go to the menu Lighting->Active Lighting Tool and checkmark “Autodesk Beast”. Once this is done Beast will be used when you re-calculate the lighting.

New Mobile Water Shape

A specialized mobile water shape has been added in v2014.0.5. This shape implements specially optimized water rendering for mobile devices. For more details see "Mobile Water Introduction" in the Project Anarchy documentation.

The mobile water shape is located in the effects shape section and can be added to your scene by dragging and dropping an instance of the mobile water shape from the shape creator panel.

New Search Bar in Shape Panel

There is now a search bar in the Shape panel that can be used to filter all objects by name.

Asset Browser Improvements

  • The path to a file can now be copied from the asset browser.
  • When Perforce is used assets can now be checked out directly.

  • Particle Effects are now shown in the asset browser and can be added to the scene via drag & drop.

  • Static meshes are now also shown while dragging them from the asset browser into the scene and snap-to-grid is now also working while dragging meshes into the scene.

New primitive meshes for easy prototyping

In the base data directory there are now some primitive meshes that can be used for quick and easy prototyping and blocking out of a level. Material sets are also available to facilitate color coding sections. On a static mesh instance, see the properties, there is a property called 'CustomMaterialSet', which contains variants for different colors.

New Transform Bar

We have added a 'transform bar' to the bottom of the viewport. The transform bar allows quick and easy changing of the position, rotation and scaling of selected objects. Values can be input both relative to the current value, or absolute.

New Script List Panel

There is now a 'Script List' panel, which shows all the scripts that are used in the scene. You can open the scripts in the script editor directly from that list and you can see which shapes use that list and select them.

vForge Grid Improvements

The grid in vForge has been improved with a number of visual and UX improvements:

  • In ortho mode it now consistently displays in the viewing plane and the grid gets less detailed when zooming out.
  • Lines can be highlighted at user-defined regular intervals.
  • In perspective mode the grid now follows the camera and the grid size is fixed.

Improved Gizmos and ‘Stick to Ground‘ Feature

  • The 'Stick to Ground' feature for the move gizmo has been improved significantly. It can now correctly handle indoor levels comprising of different stories or levels.

  • The scaling gizmo has been improved. Scaling is now much smoother and the center handle of the gizmo now does uniform scaling dropping the need for an extra mode.
  • The translation gizmo now shows helper lines to make it easier to place objects.

General vForge Improvements

  • In the Visual Shader Editor, you can now zoom in with CTRL+Mousewheel.
  • vForge now automatically makes a backup of the scene when entering Run-in-Editor or Play-the-Game mode. Should that crash the editor, on the next start vForge will prompt to use that backup or continue.
  • The multi-user editing dialog will now retrieve more descriptive errors from Perforce in case connecting or workspace resolving fails.

Scaleform Integration Improvements

  • The access to the ActionScript state has been refactored.
  • The new VScaleformValue and VScaleformVariable classes now also allow invoking functions and accessing class members.
  • As opposed to VScaleformValue, an instance of the VScaleformVariableclass represents an ActionScript variable and its value is always kept in sync with the value in the movie.

General Improvements for Programmers

  • Double Tap via remote input is now supported.
  • Cubemap Textures that use the PVR format are now loading correctly.
  • The depth-fog settings are now exposed to Lua, so they can be changed at runtime from script.
  • There is now a new function on the ragdoll component to apply a force or impulse to bones that are inside a sphere. This can be used to create explosions and other effects that push or pull objects within a defined area.


19. December 2013


I just received the following email from Havok:


Project Anarchy December updates!



Happy Holidays Fellow Anarchists!


We can't believe how fast the year has gone by. We announced Project Anarchy in March, launched in June, and ended the Beta in November. Here’s a recap what's been going on:

Project Anarchy 2013.2.5 is Out!
Some highlights of the new release include:

  • vPlayer - replaces vSceneViewer and features an improved UI for debugging options and scene selection, improved interaction with vFileServe, better camera configuration, and a consistent interface and feature set across all platforms
  • New vGameSolution Creator – helps you quickly create a new Visual Studio project with all the necessary configurations for Windows, Android, and Tizen
  • A newly rewritten vFileServe tool
Additional enhancements to vForge: gui improvements, workspaces for sharing projects, improved rendering features, new file system classes, a new logging system and integrated documentation in vForge. Check out the release notes for more information.


Project Anarchy Mobile Game Dev Challenge

If you haven't entered the Project Anarchy Mobile Game Dev Challenge yet, you should! You can win up to $100,000! Also note, if you submit your game content by February 1, 2014 you’ll be eligible to receive feedback from Havok’s support team on how you can improve your game for final submission. We’ll also choose up to ten Early Submission Finalists to showcase and promote their games at Havok's GDC booth in March, and one lucky winner will get $10,000 cash (and will still be eligible to win the $100,000 grand prize)! Check out the details and sign up here!

We’ve Added Autodesk Scaleform for Free!
We’ve integrated the full version of Autodesk Scaleform software into Project Anarchy. Now you can design innovative user interfaces seamlessly across many platforms and use the Adobe Creative Suite to create menus, UI elements and 2D graphics. More details can be found here.

New PC Exporter License Available Q1 Next Year!

We announced the PC Exporter for Project Anarchy, allowing you to release your mobile projects on PC! Licensing will be available during Q1 next year, priced at $499 per seat.

Upcoming Events

  • January 15: Project Anarchy Open House at Havok. We'll be hosting an Open House night at Havok's San Francisco office for Project Anarchy users who want to share their games and get advice from the Havok team. If you are in the San Francisco area, be sure to swing by! You can RSVP on our Eventbrite page.

We'll check in with you next year!

-The Project Anarchy Team


PC Export for 500$?  Impressed!


17. October 2013


A few hours back I received the following email from Havok:


Calling all game developers!



Whether your studio is in an office building or a garage, we know you’ve had an idea bubbling in the back of your mind to create the next big hit on mobile! Now is your chance to wrangle your team, warm up your machines, and get your hands on some of the industry’s top middleware for video game development and a chance to win $100,000!

  • Download our FREE mobile game engine and get started developing the game that could win you up to $100,000 in prizes!
  • EARLY SUBMISSION deadline is Feb 1, 2014 that gives you an opportunity to get feedback from Havok's world class developer support team. These are the same guys that helped perfect Assassin's Creed IV, Halo 4, Uncharted 3, and Skyrim. They can help push the limits of what your game can do with the power of Project Anarchy
  • FINAL SUBMISSION deadline is May 31, 2014.


There are absolutely no revenue restrictions to develop your games with Project Anarchy. What are you waiting for? Get started at and start making some games! Check us out on our social media outlets (below) and share with your friends!


Project Anarchy is some really cool tech and is a great option if you want to make a mobile game ( oh yeah… and it’s free ).  If you are new to Project Anarchy, you can get an overview right here.  I’ve actually done a tutorial series you can read right here.


To be honest, I kind of put the series on the back burner because Project Anarchy wasn’t as popular as I expected it to be (the traffic just wasn’t there), which is a shame, it was fun to write and PA is incredibly powerful.  Hopefully this contest will help in that regard.  If so, expect to see more tutorials here in the near future!


If you haven't already, you really should check out Project Anarchy.


24. July 2013


I have finally put together a single page for Project Anarchy tutorials.




Basically, it’s just a static page where you can access all current and future Project Anarchy tutorials on GameFromScratch.  There are a couple advantages to this though.  First, it makes it easier to find things than using tags.  Second, since the tutorial series is in order, I suppose it’s nice to actually put them in order, eh?


Finally and perhaps most importantly, it gives a great place to leave suggestions, feedback and comments on the series as a whole.  So, if you have a question that isn’t specific to an individual tutorial, or you want to request a specific thing be covered, this page is the perfect place to post them.


23. July 2013


In this second part of the input tutorials, we are going to look at handling input on a mobile device.  We are going to cover:

  • Configuring the RemoteInput plugin in vForge
  • Connecting with an Android device
  • Handling touch
  • Handling acceleration


This tutorial is fairly short, as once you’ve got RemoteInput up and running, most of the rest is pretty similar to stuff we have already covered, as you will soon see.


One major gotcha with working with a mobile device is emulating touch and motion control on your PC.  Fortunately Project Anarchy offer a good solution, RemoteInput.




RemoteInput allows you to use an Android device to control your game in vForge.  This can result in a massive time savings, since you dont have to deploy your application to device to make use of the controls.


First though, you need to enable the plugin.  To enable the plugin, in vForge select Engine->Manifest Settings.



Then select the Engine Plugins tab



Then click Add Plugin



Then locate the vRemoteInput plugin, mine was located at C:\Havok\AnarchySDK\Bin\win32_vs2010_anarchy\dev_dll\DX9.




You will now be prompted to reload your project, do so.


Next you need to add a small bit of code to your project.


G.useRemoteInput = true

function OnAfterSceneLoaded(self)
  if G.useRemoteInput then



This code needs to be called before any of input is handled, I chose OnAfterSceneLoaded(), but there are plenty of other options earlier along that would have worked.  Of critical importance to notice is the global value, G.useRemoteInput, you need to set this to true if you are going to be using the RemoteInput plugin.  Next we start the server up with a call to StartServer() passing in an (arbitrary) string identifier.  We then initialize things with InitEmulatedDevices() which to be honest, I don’t know why you would ever defer this, so why not just do this in StartServer?  Anyways…  you need to call the init function.  You are ready to use RemoteInput.


Next time you run your app with the newly added code you will see:



Now on your Android device, open the web browser and enter the URL listed at the top of your app.  Once loaded, you can touch on screen and it will be sent to vForge as local input.  Motion data is also sent, allowing you to use the accelerometer and multi-touch without having to deploy to an actual device.  If you change the orientation of the device, it updates in vForge.  One thing to keep in mind, the coordinates returned by RemoteInput are relative to the window size on screen, not those of your actual device.


There are a few things to be aware of.  First, your computer and mobile device both need to be on the same sub-net… so both connected to the same wireless network for example.  Next, it doesn’t require a ton of speed, but as I type this connected to a cafe internet hotspot made of bits of string and a couple tin cans…  on a slow network it’s basically useless.  Also, you may need to reload your browser on occasion to re-establish the connection.  Finally, the browser may not support motion data, for example the stock browser on my HTC One works fully, but the Chrome browser does not.


Handling mobile input using Lua


Now we are going to look at how you handle touch and motion controls.  The code is virtually identical to the input code from the previous tutorial so we wont be going into any detail on how it works.


Handling Touch:


-- in the function you create your input map:
local w, h = Screen:GetViewportSize()"X", {0, 0, w, h}, "CT_TOUCH_ABS_X")"Y", {0, 0, w, h}, "CT_TOUCH_ABS_Y")

-- in the function where you handle input:
local x ="X")
local y ="Y")
-- Display touch location on screen
Debug:PrintLine(x .. "," .. y)


This code is taken from two sections, the initialization area ( probably where you init RemoteServer ) where you define your input map, and then in the function where you handle input, possibly OnThink().  It simply displays the touch coordinates on screen.  You can handle multiple touches using CT_TOUCH_POINT_[[N]]_X/Y/Z, where [[N]] is the 0 based index of the touch.  So for example, CT_TOUCH_POINT_3_X, would give the X coordinate of the 4th touching finger, if any.


Handling Acceleration:

-- in the function you create your input map:"MotionX", "MOTION", "CT_MOTION_ACCELERATION_X")"MotionY", "MOTION", "CT_MOTION_ACCELERATION_Y")"MotionZ", "MOTION", "CT_MOTION_ACCELERATION_Z")

-- in the function where you handle input:
local motionX ="MotionX")
local motionY ="MotionY")
local motionZ ="MotionZ")

Debug:PrintLine(motionX .. "," .. motionY .. "," .. motionZ)


As you can see, motion and touch are handled virtually identical to other forms of input.  The value returned for MOTION values is the amount of motion along the given axis, with the sign representing the direction of the motion.


See More Tutorials on!

Month List