Trying to Create Some Awesome Stuff
The best thing about programming has always been about creating something from nothing. Starting with an empty screen and coding, and - for games - having something colourful and playable appear on screen when you press Run.
Enterprise development, Game projects, competitions, puzzles and even the old 4k code challenges. Custom electronics projects, arcades and grid computing. Engine internals, geometry problems and code cracking. Data analysis, Genetic Algorithms and performance optimisations.
21 Game Jam events attended to date (hosted a few in a couple of locations). Partial to the focused and restrictive nature - whatever those limits may be (including time)
Uploading the source code of games created during jam events, working together in teams, and contributing to various open source projects.
48 hrs / 72 hrs. One theme. At least once a year
Over a decade in screenspace
The focus that a 48 hr or 72 hr jam event gives you really concentrates on the basics ("can you win yet?") increasing the chances that by the end of the jam you have something playable. Whether the restrictions are art style, platform, target user interface or simply time itself, it helps keep that essential focus to just get the job done.
1973 -> 2013, 2020
In homage to Gregory Yob's classic Hunt The Wumpus (1973) the first remake was done at the 2013 Edinburgh Global Game Jam, added multiplayer and positional audio, and was presented at Bafta Scotland Awards in the same year.
Keeping the turn-based approach of the original, the game jam version allowed all players to submit their movements at the same time, meaning LAN parties of this version proceeded smoothly - uninterrupted - and few realised it was still turn-based at heart.
The 2020 remake was much more graphically heavy but still takes place on a dodecohedron and supports up to two local players.
Behind the Scenes
The Story behind the 2013 'Global' Edition
Learning the hard way why sleep is a very good thing and breaking a bunch of expected norms from that year in how game development should be done.
Also: how to scare people without even using pixels.
Enterprise Development Techniques in hilarious spoof creates results
Read about how one of the most successful game jams (up to 2020) was made surprisingly possible by poking fun at corporate 'agile' techniques
Under 48-hr pressure "there's no time" for corporate approaches - or is there?
Through the Decades
Gaming at 6, coding at 7
1986 - Atari 2600: Shown the ropes by my cousins with classics like Battlezone, Asteroids, Return of the Jedi, Keystone Capers, Barnstorming, Super Breakout, Pitfall and the Combat games pack.
1987 - Spectrum 48k: picked up at a second-hand shop with power connector problems. First game programmed on this in BASIC, and it used the joystick! Game was 'running-around-the-forest-collecting-treasure-avoiding-water'.
1990 - 8086 (XT) with a turbo button. A 32MB hard drive on a heavy, metal ISA card. The Secret of Monkey Island on a monochrome EGA monitor, that made hunting for those 'yellow' flowers in the forest a serious challenge! Used PathMinder and GEM shells. GEM was good for its built in DTP (Desk-top-publishing) and art packages.
1991 - Colour EGA monitor! No longer have to use cross-hatching to represent shades of grey.
1992 - Wolfenstein 3D made an appearance. It ran on almost no resources at all by today's standards and the sounds were forced out the in built PC speaker (and sounded terrible)
1993 - QBasic (MS-DOS). Examining the code behind nibbles and gorilla to tweak the existing games and make very simple new ones.
1993 - Doom: 486 encounters of the best kind: Walked into a computer store to see a demonstration model 486DX2 66 MHz (the only one in the shop) running a copy of Doom. Demo of E3M1 was running, plasma rifle was firing and I was standing in the store with my jaw open. Picked up a box with the shareware 3.5" floppy disks inside.
1994 - Sure I found a way to justify a 486DX2 66 MHz. Probably something about education. Probably nothing about Doom. Or Doom level editing. DEU and linedefs and sectors and many, many late nights.
1995 - Edinburgh's 'Cybercafe' Cyberia Hanover Street, receives most of my money every Saturday, as we network custom Doom II levels much to the chagrin of others trying to check their email on a network swamped with doom packets.
1996 - Quake makes an appearance. Worldcraft by Ben Morris used for level editing.
1997 - Created a version of Chess (with graphics and some form of computer player) in QBasic on 3.5" floppy.
1998 - C++ and ANSI-C algorithms at University.
1999 - Assembly language (ASM) and SQL in second year of University. And then partied because it really was 1999!
Java and OpenGL programming
2000 - Sun Microsystems: Introduction into Java, and JSP (Java Server Pages), Solaris (UNIX) and Sybase. People working on the manufacturing floor get in trouble for swamping the network with Doom packets.
2001 - 2.5D Java Maze (software renderer). Because when you have a full time job AND a University course to complete, a software renderer project is what you need.
2002 - Created a Lexical interpreter and neural network, to learn about building up word associations and training data. Front-end was a strange mix of JSP, Javascript and Flash.
2003 - GL4Java (thanks Sven Gothel), OpenGL bindings for Java as early M.A.C.E. version developed. First proper foray into OpenGL. Picked up Milkshape3D and Terragen.
2004 - Swish flash creation and flash-to-java, java-to-flash interactions. Swishzone closed October 2016.
2005 - OpenGL programming on M.A.C.E. - Frustum culling and terrain with trees and display lists.
2006 - Even more OpenGL programming M.A.C.E. - Modules for A.I. flocking behaviours, particle effects and networking
2007 - JOGL, developed by Sun Microsystems Game Technology Group - more OpenGL bindings for Java, used for Eternity II puzzle solving. Also heavy use of MySQL for offline generations of pre-cached tilesets.
2008 - Sun Microsystems-sponsored grid computing, and distributed computing as part of the Eternity II puzzle solving attempt.
2009 - Genetic algorithms, and shaders, used as part of the Eternity II puzzle solving attempt.
Let the Game Jams begin!
2010 - Shaders, networking and performance improvements for puzzle solving work.
2010 - Oracle Corp: More Java Servlets, new Oracle DB versions, ext-js, OEM and more.
2011 Jan - First jam event! Zombies in mah house, Global Game Jam. Using lwjgl - own multiplayer network code, animations and game logic. Hi-scores! Fun!
2012 Jan - Tower Defence attempt turns into Smash-TV style game with snakes.
2013 Jan - Hunt The Wumpus: Global Edition, Global Game Jam. See Making Of. Java client, nodeJS + coffeescript server for many global players.
2014 Jan - Jail Break, Hosted Global Game Jam. In-jam learning of Android game development with libGDX. Nothing like the deep-end! Fun on the Android tablet.
2015 Jan - Village Pillaging, Hosted Global Game Jam. In-jam learning of libGDX, used for the first time. Queue to play our game in the Glasgow Play Party, invited to RPG event.
2016 Jan - Pentagram, Hosted Global Game Jam. Better engine built for libGDX framework, with controller support. Amazes Rockstar North employees that this is in Java ("but.. it's smooth!")
2017 Jan - Project (Y,X), Hosted Global Game Jam. Tower defence from a heavily refactored 'Mace Dungeons' project for the tilemap and AI work. Named due to confusion about 2D arrays being [x][y] or [y][x]. (rows then columns = [y][x])
2018 Jan - Transmission, Hosted Global Game Jam. Tried to bite of more than we could chew and had to use some 'pure imagination'.
2019 Jan - Mansion Hunt, Global Game Jam. Networked multiplayer from the ground up. People thought we were mad, but it worked.
Game Jam Veterans
2020 Jan - Pod Rush, Global Game Jam. libGDX with normal maps and per-pixel lighting. Having fun and success with enterprise development concepts in a game jam setting. See Making Of
2021 Jan - The Journey, Global Game Jam. Remote Global Game Jam for the first time ever with mixed results.
2021 Oct - Dungeon Crumble, Ludum Dare 49. First solo LD entry that turned out rather well.
2022 Jan - Bounty Ball, Global Game Jam. The Pod Rush team reconvene for more space-based epic implementation.
2022 Apr - Omega Squad, Ludum Dare 50. Second solo LD entry. Also under the effects of the global dreaded lergie.
2022 Aug - Arcade Club: meet, talk and 'Dead Simple' Doom II deathmatch with the legendary John Romero. Good chats with @br as well - fabulous evening!
2022 Oct - Baltic, Ludum Dare 51. First 72hr Game Jam. Antartica. libGDX. Custom pixel-perfect collision physics and our first side-scrolling platformer.
2023 Jan - Minetanite, Ludum Dare 52. Second 72hr Game Jam. Planetary miner. libGDX. 4-strong team and some very curious collision performance puzzles.
2023 Feb - Mutant Mandrake: I am root, Global Game Jam 2023. Lab-escape platformer with 'rooting' mechanic. Winner of SGDA Community Choice Award.
2023 Apr - Discrete Dungeoneers: Ludum Dare 53. Stealth dungeon escape-a-thon with line of sight AI, lighting, fog of war, and simultaneous turn based phase processing - too complex for the time allowed.
2023 Oct - Additional programming to assist on @glaikunt's game "Emplacement"
2023 Dec - Terrain renderer ported into libGDX from early 2000s. LOD mesh, edge collapse - very fun stuff.
2024 Jan - Broah's Boiz: Global Game Jam 2024. A very silly, chaotic game highlighting logistical challenges in an old tale.
2024 Apr - Dicing with the Undead: Ludum Dare 55. A decent dice-rolling turn-based undead spawner.
2024 Oct - Cell la vie!: Ludum Dare 56. One of our best games with really positive feedback!