Making games over 5 decades
Recently did a talk in Portugal at the invitation of matosinhos.tech. Had a look at my career, how different it is today compared with the days of the BBC B with it’s 32kb of ram, how did we manage?
https://www.linkedin.com/feed/update/urn:li:activity:7240373079913181185/
From Bedroom to Billions
Excerpt from the Documentary From Bedroom to Billions: The amiga Years!. Talking about Syndicate and how it happened.
POPULOUS INFINITY: Game of the Gods
Having worked on the Original Populous in the 1980s, in 2017 we thought it might be a good idea to remake it but with epic battles. This is a montage I put to together to try and inspire potential investors / publishers to fund us to make it… This was the first of many videos!
CONWAY’S GAME OF LIFE
Conway’s game of life has always been a fascination for me and many other software engineers. Using Unity’s VFX Graph and Compute shaders mixed with RenderTextures and compute buffers:
Popul8 Tool
Something I have been working on for the most part of this year:
“Character creation is time-consuming and expensive. Our patented AI technology enables game creators to generate thousands of unique characters in minutes.
Popul8™️ by Didimo quickly populates your digital worlds with thousands of unique characters while matching your visual style & technical specifications. Now you can build richer worlds with greater diversity while maintaining your unique game aesthetic. And because it's so fast, you get to market quicker.
Popul8 uses AI technology to adopt base models to fit your visual style. It also fits assets, both external and proprietary, to your characters. Popul8 is an infinitely variable character generator that fits your game needs.”
Body Modification Demo
In this demo, we take our didimo and allow the user to change measurements of the body in real time. I started with a mesh and some blendshapes, added some measure lines i.e. point to point and wraps around and then changed the body to reflect them. Issues arise, as the rig positions change so we need to move the bone positions and rebind the skin.
Voxel Editor
Just for fun a simple Voxel Editor, written purely in JavaScript. At the time of writing I had zero knowledge of using the canvas and this was mostly an experiment to try and understand it. See what you can create!
Asset Creation Pipeline
Utilizing the GraphView in Unity (Shader graph, VFX graph use it), I built a system that allows us to convert, extract, modify, and recreate most assets in Unity, including Textures, Meshes, and Materials, etc. It’s common practice to write tools that allow simple processing of asset files, this promotes reuse and centralization of conversion code, usually distributed across projects. Its main use was to take assets from other Avatar systems and retarget them (move vertices, bind to bones and copy materials) to our avatar system. It’s also commonly used across all demos and the product SDKs.
GDC Demo: didimo creation show-off
Created this Demonstrator App to allow the client to capture and view themselves as a 3D avatar in less than 90 seconds. Built in HDRP, connection to ARKIT capture, beautiful scenes and lighting rigs. Coupled together with Mixamo animations and ARKIT mocap facial animations.
Configurator System
Mission, I did choose it, was to create a configurator system. I really wanted to produce a reusable system that could be applied to any 3D object, well not any, but most (which still need a little tweaking) and drive a system of camera focus, interchangeable parts and interaction. Customisable in the Unity Editor by content creators, assign components to different behaviours, highighters, camera controls, exploders and anything else you wish to extend it with inside the system. Easy to create a simple but elegant configurator for your business, cars, characters, objects, trainers, etc.
A procedural city
Originally I wrote this demo in Flash to sell licenses for my Engine, which took a lot of effort to create but yielded financial benefits later. That aside, building this in Unity just seems too easy. Buildings randomly generated from Bricks, traffic system joined together with road templates, people moving on Unity’s NavSurface, simple player movement controls, and a nice finite state machine to drive the AI. What could be more simple?
Well, 100 x 100 block city produced a small issue, too many peeps, too many cars, and too many Buildings. Draw Calls escalated, polygons enough for all my games put together - what an absolute nightmare. Of course, it was a known issue before writing one line of code, culling is key to making anything run smoothly. In this I used https://docs.unity3d.com/Manual/CullingGroupAPI.html, just did the work for me, brilliant.
Still required some simple optimizations, which turned into something complex and this was the result.
The assets were purchased on the Asset Store (https://assetstore.unity.com/packages/3d/environments/urban/toony-tiny-city-extended-170772) for demo purposes… the client was super happy.
Conveyor Belts
Another Physics demo showing off the AWESOMENESS of Unity. A shader graph to scroll the UVs to make it look like it’s moving and a simple script to apply physical movement to the conveyor belt.
Spline Group Movement
A deterministic spline group movement system built for Unity’s Timeline. The first iteration was a 3D spline system with Editor Controls and fast runtime behaviour. The Second pass I added spline Noise and a Grouping system which the Penguins are demonstrating nicely below. The Group pattern is not AI but sampling a Perlin noise map at various positions will give a good enough result for convincing grouping which can be used on a timeline and used in cutscenes. In addition I added a simple set of controls to tweak the group and using different ground collision components this can be used on pretty much every surface (see elephant video).
The Marble Run
Created this demo for educational purposes to allow people new to unity to play around and design some that works. Only two MonoBehaviours created, one to spawn the Marbles and the second to rotate the spiral lift. I had to design the spiral lift system in Sketchup and took many iterations for the Physic system to accept it. Fun ON!
Character Morph/Blend
Weekend exercise: program a morphing character animation system. Blending textures, morphing Blend Shapes, noise animation, blinking… all built in Unity using the latest HDRP 11.0.0.
Recorded using the Timeline and the Unity Recorder.
Rendering and Timeline controllers
Created a number of tools to allow us to control the timeline and to increase the rendering capability in Unity. We used Unity to allow us to render the sequences (i.e. like rendering in Maya or other 3D application), this allowed us to add simple physics and re-use the elements at runtime.