Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

2. January 2017


Mike Fricker, UE4 Technical Director at Epic Games, just released a new plugin for Unreal Engine that enables you to utilize OpenStreetMap data directly in Unreal Engine.  Keep in mind this is just a hobby project and isn’t directly supported by Epic. is a crowd sourced (think Wikipedia) map of the world.  This plugin enables you to take data from OSM and use it directly in your game, quickly creating real world accurate cityscapes like the one shown to the right.OSM  Additionally all of the location information is retained upon import, so if you are creating an Alternate Reality based game like Pokemon Go, the data is available to you.  Keep in mind however that OpenStreetMap data is released under the Open Data Commons Open Database License (ODbL).  I am no lawyer, but I believe the license enables you to create closed source projects using the data so long as you give proper attribute, share any modifications you make to the database and make sure that the data itself (not your game code) remains available and open.


Details of the plugin from the Readme:

Street Map Assets

When you import an OSM file, the plugin will create a new Street Map asset to represent the map data in UE4. You can assign these to Street Map Components, or directly interact with the map data in C++ code.

Roads are imported with full connectivity data! This means you can design your own navigation algorithms pretty easily.

OpenStreetMap positional data is stored in geographic coordinates (latitude and longitude), but UE4 doesn't support that coordinate system natively. That is, we can't easily deal with spherical worlds in UE4 currently. So during the import process, we project all map coordinates to a flat 2D plane.

The OSM data is imported at double precision, but we truncate everything to single precision floating point before saving our UE4 street map asset. If you're planning to work with enormous map data sets at runtime, you'll need to modify this.

Street Map Components

An example implementation of a Street Map Component is included that generates a renderable mesh from loaded street and building data. This is a very simple component that you can use as a starting point.

The example implementation creates a custom primitive component mesh instead of a traditional static mesh. The reason for this was to allow for more flexible rendering behavior of city streets and buildings, or even dynamic aspects.

All mesh data is generated at load time from the cartographic data in the map asset, including colorized road strips and simple building meshes with triangulated roof polygons. No spline interpolation is performed on the roads.

The generated street map mesh has vertex colors and normals, and you can assign a custom material to it. If you want to use the built-in colors, make sure your material multiplies Vertex Color with Base Color. The mesh is setup to render very efficiently in a single draw call. Roads are represented as simple quad strips (no tesselation). Texture coordinates are not supported yet.

There are various "tweakable" variables to control how the renderable mesh is generated. You can find these at the top of the UStreetMapComponent::GenerateMesh() function body.

(Street Map Component also serves as a straightforward example of how to write your own primitive components in UE4.)

OSM Files

While importing OpenStreetMap XML files, we store all of the data that's interesting to us in an FOSMFile data structure in memory. This contains data that is very close to raw representation in the XML file. Coordinates are stored as geographic positions in double precision floating point.

After loading everything into FOSMFile, we digest the data and convert it to a format that can be serialized to disk and loaded efficiently at runtime (the UStreetMap class.)

Depending on your use case, you may want to heavily customize the UStreetMap class to store data that is more close to the raw representation of the map. For example, if you wanted to perform large-scale GPS navigation, you'd want higher precision data available at runtime.


The plugin and it’s source code is hosted on Github available here.  The plugin is released under the very liberal MIT open source license.

GameDev News

30. December 2016


After almost a year of running silently, it’s not to see regular updates to the Atomic Game Engine.  The Atomic Game Engine is an open source 2D/3D game engine with a comprehensive editor.  You can learn more about AGE in our Closer Look at review.  Atomic just released build 2 which focused on C# quality of life improvements, custom editor resource plugins , improved API documentation and various TypeScript improvements. 

Update Highlights:

  • [Editor] Custom file resource inspector plugins (with example)Atomic-Game-Engine-512

  • [Editor] Added TmxFile2D resource type for inspector fields

  • [Docs] Added new C#, C++, and updated JavaScript/TypeScript API references

  • [Network] Restored functionality for master server and client

  • [Web] Added Web subsystem events and convenience methods for post data and responses

  • [C#] Output dev project assemblies to Lib, so when modifying AtomicNET sources, changes are used properly

  • [C#] CSComponent cleanups for instantiation from script/serialized from scene (also cleans up nativeOverride hack)

  • [C#] Fix for exception when instantiating any RefCounted derived instance during a CSComponent default constructor

  • [C#] Better error reporting for CSComponent load issues

  • [C#] Added Material.SetShaderParameter API

  • [C#] Added Vector4/String to ScriptVariant

  • [C#] On demand project assembly compilation from within the Atomic Editor

  • [C#] Inspector attribute can now be used to set inspector tooltips

  • [TypeScript] Upgraded to TypeScript 2.1

  • [TypeScript] Removed deprecated allowNonTsExtensions

  • [TypeScript] Automatically generate a tasks.json for VSCode

  • [TypeScript] Updated tsconfig with rootUrl properly for non-relative imports

  • [TypeScript] Strongly typed native event interfaces and subscription

  • [Examples] Fixed exception with virtual dpad in JavaScript examples

  • [Desktop] Fixed issues with engine configuration json parsing in deployed applications

  • [Windows] Fixed issue with Visual Studio 2017 detection

  • [Windows] Fixed UI pixel offset issue when rendering with OpenGL

  • [macOS] Added NSHighResolutionCapable flag to Atomic Editor

  • [General] Updated About dialog with contributor and build vendor information

  • [General] Misc bug fixes and optimizations

  • [Maintenance] Removed CurlManager from ToolCore as duplicated Web subsystem


You can read more about this release on their blog.  Sorry, no direct link is currently available so you might have to do a bit of scrolling.

GameDev News

29. December 2016


Postal, a controversial video game from the 1990s, just released their source code under the the GPL 2 license. p1_screen_02  The code is primarily written in C++ and is hosted on BitBucket.  Sadly the release is source only and doesn’t appear to include any assets, so you will have to hunt down a copy to actually run it.  Details of the source release by the developer:


The remake – POSTAL Redux – was an especially big step for us; a passion project to make the original POSTAL again, but do it better this time, rebuilding it from scratch and focusing on making the most fun and exhilarating twin-stick shooter that we could by patching up the unfortunately outdated design decisions, and improve the game where we could. We even used the opportunity to bring old content, which was exclusive to the Japanese release of the game, to the west for the first time! For anyone who really wants to see how far POSTAL has come in the last two decades, there is no better way than by comparing the original to Redux.

It’s definitely been a wild ride for us all, and POSTAL means a lot to us – it’s our baby… But now we’re ready to hand the future of ‘the little shooter that could’ to the public at large. People have been asking, and we have been promising this for years now, but today we are proud to announce that the source code for POSTAL is officially released to the public on Bitbucket, under the GPL2 license. Everyone now has ‘under the hood’ access, to see what makes POSTAL tick, and anyone with the time and skills can now tweak/change/update/modify anything in the game at all! And hey, if anyone feels the urge to port the game to other platforms (The Dreamcast, for example *wink* *wink*), then they absolutely can!

This has been a long time coming, and we are tickled pink to see what the community will be able to put together from this (no seriously, someone get on that Dreamcast port. We’re not joking.).

GameDev News

28. December 2016


The Humble group are running another GameDev bundle.  The Humble Bundle is a collection of software with a pay what you want pricing structure where the proceeds go towards variousimage charities, this particular bundle is in support of the EFF (Electronic Freedom Foundation) and Child’s Play charity.  By paying more you can access higher and higher tiers which include even more software.  Currently the bundle consist of:

  • Clickteam Fusion (our review
    • HTML5 Exporter
  • Pyxel Edit
  • Spriter
    • Game Effects Art Pack
    • Basic Platformer, Adventure and Run N Gun Art Packs
    • RPG Heroes and SHMUP Sprite Packs
  • Marmoset
  • Todoist (1 year subscription)
  • PICO-8
  • Sprite Illuminator
  • Voxatron
  • 1Password (1 year subscription)





GameDev News

22. December 2016


Leadwerks 4.2 was just released.  Leadwerks is a 3D game engine that claims to be “the easiest way to create 3D games”.  Leadwerks runs on Windows and Linux and is scripted using Lua (while the Professional edition offers C++ support as well).  The 4.2 release is a free upgrade for existing customers.  The 4.2 release brings several new fixes and features including integration, graphics improvements like ray traced reflections, heat haze and soft particles and more.  A major character animation bug on Linux has finally been resolved as well.  The following is the official press release from Leadwerks:

Leadwerks Game Engine 4.2 Released

Leadwerks Game Engine 4.2 is now available on Steam.  This update adds new features to make game development easier than ever.  The free update goes out today to over 10,000 paid users on Steam.
Version 4.2 integrates analytics into Leadwerks games with a free account.  This allows developers to view statistics on player behavior and identify any trouble spots their game might have as players progress through levels.  By viewing a summary of all playerAttached Image behavior, developers can make data-driven decisions and get real-time information instead of relying solely on written feedback.

New graphical features make Leadwerks games more beautiful, including fast ray-traced reflections with a new post-processing effect called screen-space reflection (SSR).  Easy heat haze, glass refraction, and soft particles can now be Attached Imageadded to games just by dragging a prefab into the scene.  Textures can now be added to spotlights to project an image onto walls.

New animation commands and a built-in animation management system make it easier to display game characters with fluid movements.  Just set the sequence to play, add a transition time, and the engine will automatically manage and play a queue of blended animations.  A bug that sometimes caused animated characters to render incorrectly on Linux has also been fixed.
It's now easier to purchase items in the Leadwerks Workshop Store.  Clicking on the buy button in the editor will open the selected item in the Steam client, instead of requiring you to log into the Steam website through a web browser.
The professional edition has been upgraded to Visual Studio 2015, and is now compatible with the latest version of GCC with C++11 support.
The Leadwerks Winter Games Tournament is running until January 15th, and there’s still time to create a mini-game and publish to Steam Workshop.  All participants receive a prize, including stickers, posters, shirts, hoodies, and even Steam controllers.
Leadwerks Game Engine and the Professional Edition DLC are both on sale during the Steam Winter Sale with an 80% discount.  Leadwerks Game Launcher can be downloaded for free on Steam.



Leadwerks Professional is currently heavily discounted on Steam, available for 80% off.

GameDev News

Month List

Popular Comments