Jason Magee

2018 Guernsey Global Games Jam

Jan 6 2018

This year we ( Granite Games Limited ) are site managers alongside Ben Wratten (from the Digital Greenhouse ) of Guernsey’s Global Games Jam. The Digital Greenhouse are kindly hosting the event as they have done for the previous few years. There’s currently 11 of us and you can sign up for the Guernsey Global Games Jam 2018 here !

The event is not just limited to creating video games, people can also make board games and electronic games. You don’t need to be an expert either and people will be around to help when they can.

Granite Games started after the second Guernsey Global Games Jam and I would highly recommend going to meet people and from a learning perspective.

A lot of people turn up near the end of the events, particularly with children, to play the games we’ve created and watch the presentations at the end. If you’re not coming to the event, feel free to pop in near the end.

Image

Re-purposing jotter.io

Feb 12 2017

Jotter.io was a simplistic note taking application enabling you to take notes in three forms: notes, doodles and tables. Jotter was built in a responsive way to ensure maximum support for a variety of devices. All forms of note automatically save on the fly.

Jotter.io was one of my first web projects and never really took off, primary because I started using FastMail which solved the problem I had with note taking on the web and so never finished it.

I’ve decided to re-purpose jotter.io so the site will be re-launching soon with a new purpose!

For portfolio purposes, I’ve attached some screenshots of the app.

Image
Image
Image
Image

Closing up vote.gg

Feb 12 2017

This is just a post to note that I’m closing up vote.gg , I’m not going to have the time to do the project justice and I haven’t worked on it in some time. And to be honest I’ve lost faith in the system after Brexit and Donald Trump. The domain expires in 2018 – if anyone wants it for a good cause let me know.

vote.gg was going to be a site for voting on and building legislation in a mash up of Reddit and Wikipedia . People would be able to post the initial document and others would be able to amend and add pros/cons. After a few rounds, the document would be put to a vote. We planned to have anonymous voting and even delegated voting. Delegated voting would be saying “I know nothing about this subject but my good friend Jason Magee does – he can decide on my behalf”.

Anyway, just for portfolio purposes, I’ve attached some screenshots of how far we got as I’m going to point the domain at a simple page until it expires.

Image
Image
Image

Guernsey’s Global Games Jam 2017

Jan 25 2017

Last years Global Games Jam lead to the creation of Sacrificial Inferno . For those who don’t know, Sacrificial Inferno is a procedurally generated, permadeath, hack and slash, retro 2D platformer which we’re working on. As you can imagine I was pretty excited to attend again this year.

Image

Initially, Marc and I agreed to team up but we ended up with a team of five shortly after arriving. Four programmers and an artist/sound-man. Shortly after the theme of ‘waves’ was announced, we toyed with a couple of ideas but ultimately ended up creating Stealth Shoal. Stealth Shoal turned out to be a terrible name for a game but the game itself went really well. The objective is to get as many fish to join your shoal as possible while avoiding islands, whales (navigate by sonar) and fishing boats. The whales are the primary link to the theme as they use sonar waves to locate the fish. Check out the video below.

This year we even managed to upload the game to the Global Games Jam website here .

The big team turned out to be an excellent idea as I learnt quite a bit by trying new things I otherwise wouldn’t. A smaller team would have lead us to create a comfortable game rather than pushing boundaries.

Image

Thanks to the Digital Greenhouse Guernsey for hosting and Kurtis Richards and Marc Beavan for organising!

I've made some Blender abstract art

Jan 10 2017

Recently I’;ve spent a lot of time learning Blender for game development and fancied experimenting with something a bit different. Below I’;ve linked to two abstract art type of renders that turned out pretty good. The purple one was meant to have volumetric lighting but sadly my AMD card didn’;t seem to want to render it. Fortunately it turned out okay.

Both are the ultra-wide resolution of 3440x1440 and available to do with as you please.

Image
Image

Creating height maps from SHP files

Dec 15 2016

A while ago now, Digimap gave data.gg a SHP file containing elevation data for Guernsey, Sark, Alderney and Herm. Using this data, I’m going to place a WebGL widget on data.gg allowing users to fly around the islands. There’s two ways to approach this:

  • Create a height-map using the SHP data and generate game engine terrain using it. This would be done using geographic software to rasterize the data into a normal image (like a PNG) with white pixels representing high points and black pixels low (e.g. sea level).
  • Triangulate the XYZ points in the SHP file to create 3D meshes. This is done using an algorithm to join all the points together to form edges and faces.

This post is going to be about the former method which is to create a height map. You can check out my post on the other method here . Both approaches have different pros and cons—the mesh approach may be more detailed, while game engines (which is ultimately what the WebGL widget will be) will handle terrain better performance-wise.

Thanks to Steve Streeting who helped figure out how to best process this data using GDAL.

Software

I’m going to be using GDAL (Geospatial Data Abstraction Library) commands, which happen to come installed with QGIS desktop software for geographic data. You can install via either route—I went with QGIS because I can also use the software to view and edit the SHP file itself.

Image

Generate a GeoTIFF

Taken from Wikipedia , a GeoTIFF is ‘a public domain metadata standard which allows georeferencing information to be embedded within a TIFF file.’ Basically—we’re going to take our vector data and rasterize it, which is stored in a GeoTIFF. I’m going to use gdal_grid to convert the data. You could also use (and should try) gdal_rasterize . Both produced good results, but as I have some gaps in the data, gdal_grid is more suitable because it can interpolate between the points (fill in holes).

' C : \ P r o g r a m F i l e s \ Q G I S 2 . 1 8 \ b i n \ g d a l _ g r i d . e x e ' o t U I n t 1 6 o u t s i z e 1 0 2 5 1 0 2 5 - z f i e l d Z V A L U E - a l i n e a r : r a d i u s = 3 0 0 \ b a i l i w i c k h e i g h t . s h p h e i g h t . t i f

I’m specifying that I want the grid system to use the linear algorithm, which uses Delaunay, the same triangulation algorithm I used to make the meshes in the other post. Despite this, my end result had some artifacts I couldn’t figure out a reason for. I found that setting the outsize to be ludicrously large (e.g. 20000) minimized the artifacts to roughly 4 pixels, instead of 40, which I was able to sort out in Photoshop after.

Converting to RAW

gdal_translate converts our GeoTIFF into other formats. Unity wants a .raw for height maps.

' C : \ P r o g r a m F i l e s \ Q G I S 2 . 1 8 \ b i n \ g d a l _ t r a n s l a t e . e x e ' o t U I n t 1 6 - s c a l e o f E N V I o u t s i z e 1 0 2 5 1 0 2 5 \ h e i g h t . t i f b a i l i w i c k . r a w

Opening in Photoshop

Attempting to open the .raw file in Photoshop, you’ll see a window like below (the defaults will be wrong!). The screenshot shows the correct settings to open the file. Notice we’re using 16 bits, as we did when interacting with GDAL above.

Image

Height map

Tada, one height map!

Image

It’s important to note that getting good results here took me a lot of trial and error. This will depend on the quality and quantity of your data. Try all the algorithms available in gdal_grid until you find the best results.

You can also do this using the QGIS desktop software instead of the command line, if that’s your preference.

Jeykll Presentation at Lunch && Code 2

Nov 30 2016
Image

Today I did a short presentation at Guernsey’s Digital Greenhouse about Jekyll, a static website generator. I’ve uploaded the slides here .

Official Jekyll Website

GitHub Pages (Free hosting via GitHub repo)

Unity game created live in ten minutes

Oct 28 2016
Image

On Wednesday I did a presentation in which I made a game using Unity in ten minutes for a new local software development meet-up called lunch && code. The presentation went surprisingly well, I had concerns about the game working (live programming is a nightmare) and keeping the presentation in the ten minute time window. The games objective is to avoid being knocked off of a platform by walls that spawn every three seconds and move towards the player. The walls are made up of six cubes, one of which is destroyed at random when the wall is created leaving a gap for the player to pass through. The source code for the game is on GitHub here .

lunch && code

The event was organised by Steve Streeting who has uploaded the README.TXT intro slides here . If you’re a software developer in Guernsey you can keep abreast of future events by visiting discuss.gg or by signing up to notifications here . Events will be at lunchtime every last Wednesday of the month.

Building your GameMaker game to run on Linux

Jul 3 2016

Over on sacrificialinferno.com I’ve created an in-depth post about building GameMaker games for Linux using Hyper-V. It took me considerably longer than I expected due to the amount of screenshots involved in creating a Hyper-V guest and installing Ubuntu. I used Hyper-V because my Dell XPS 13 laptop is Windows Pro which comes with Hyper-V and I thought I’d give it a shot as I’d usually use VirtualBox. Sadly, I can’t say I was very impressed as the guest was able to cause a BSOD on the host by using dynamic memory.

Image

Anyway, the post covers the following…

  1. Downloading and setting up a base Linux Virtual Machine (VM)
  2. Installing the GameMaker dependencies
  3. Hooking the Linux VM up to GameMaker Studio

You can read the full post here .

There isn’t really a good reason not to support Linux when using GameMaker which has build support out the box. I’d like to see GameMaker streamlining the build process to make it easier for people unfamiliar with setting up a Linux system, though.

Sacrificial Inferno progress since Jan

Jun 1 2016

Over on sacrificialinferno.com I’ve posted an update on our progress to Sacrificial Inferno since the Games Jam at the end of January. Bit late posting it on my site – sorry!

What I’m up to

Image

I’ve been working on a mega post explaining how to build an Ubuntu version of games using GameMaker which will be posted in the coming weeks. You have to setup a Ubuntu Server, tell GameMaker how to ssh in to it and hope it builds successfully. I made the build server using Hyper-V which is my first experience with the platform. Can’t say I was very impressed – using dynamic memory allowed the guest virtual machine to use up all the hosts memory causing a Blue Screen of Death.