synert
not no man's sky - c++
my third year university dissertation, developed in directx using c++.

the goal of this project was to procedurally generate and render a solar system in realtime. the final product uses heightmaps created with a blend of noises, which are then applied to a sphere. this sphere is actually a normalized cube, which is split into a quadtree for the LOD system. biomes are determined from temperature, which is calculated based on distance from the star.

only works on 64 bit windows, haven't tested anything other than windows 10
this was built on a machine with an i7 6700k and gtx960, performance on anything else is unknown

github
zipped release build
video progress

screenshots

satellite image levels - python/unity
made during my third year of uni for the 'advanced technologies' module

the goal was to take satellite images and turn them into game levels- i achieved this using python and tensorflow to perform image recognition on the images, converting them in 'chunks' to level files. these files are then parsed in a unity project, to display the final result. the data used for training the tensorflow model was taken from digimaps. heightmaps are supported, but finding ones that are the correct size was difficult. only one is included with the project.

github
comparison video

screenshots

war pigeon - unity
made for global game jam 2018 in 2 days, at bristol site 'the foundry'
our group was voted best in show for this entry

the premise of the game is pretty simple- fly around a battlefield collecting and delivering letters, while avoiding the gunfire. you can swoop up and down through the clouds using [SPACE], WASD keys to move.

i worked on some of the post-processing, and provided the soldiers by modifying my 'squad ai' project.

ggj18 entry page

screenshots

wipeout clone - unity
a work in progress prototype of a wipeout-styled racer

the majority of the ship physics were completed within the first afternoon of development, shown off in my day 1 video. the ship properly floats on any surface by basing its gravity on surface normals, and continuously applying a variable amount of downforce based on the distance to the ground. most of its handling options can be tweaked. the ship can also be 'drifted' by disabling the side air brakes, and can be pitched up/down via left stick input.

probably gonna work on this until i get bored. planning to have some more ship models done, some weapons, maybe a multiplayer demo, simple ai, and actual tracks for racing/deathmatch

github
day 1 video
day 2 video

screenshots

procedural plants - c++
made during my third year of uni for the 'advanced technologies' module

the goal of the project was to procedurally generate meshes for rubble/rocks and/or plants. i chose to go with plants, since i already had a vague idea in my head as to how i could create the leaf shapes. simple trunks were then added, which led to trees that had multiple branches. procedural texturing was also added later into the project.

the final product exports models as .obj, .mtl and .tga files. these can then be imported into unity, although they will be flipped horizontally.

github
progress videos

screenshots

ai squad - unity
made during my third year of uni for the 'advanced technologies' module

the goal was to create a player-controlled ai squad, similar to the ones seen in shooter games like spec ops: the line. the stretch goal was to use the system in a game to demonstrate it, so i decided to start out by thinking of the game i'd make, and build towards that- i'd know what the ai needed to do in advance, so planning would be easier. door kickers ended up being my inspiration for this project, with a similar view and controls for opening doors.

in the final product, squad members can be given individual orders, or group orders. they will automatically respond to threats, find cover, and manage their ammo. the player simply tells them where to go, and if they should be doing something like defusing a bomb or placing a breaching charge on a door. different formations are also used depending on the squad size. 2 members will both be facing forwards, but will alternate the directions they check when entering rooms to cover each other. if a third member is added, they will hang back and cover the rear. when all 4 are together (this includes the player), a plus formation will be created to maximize coverage.

github
progress videos

screenshots

sky skrappers - unity
made in my third year of uni, during a week long gamejam as part of the course.

we'd had various issues with group members being unavailable or not doing enough in previous weeks, and also chose not to focus on graphics. this got us a lot of complaints, so for this jam we decided to scale back the mechanics to something a smaller group could handle, and put more emphasis on making everything look nice and polished.

there's still a ton of performance issues when scrap starts to build up lategame, and we never got the death animation finished

v1 release

screenshots

lelworms - flash (as2)
made for ludum dare 32 in 2 days, the theme was 'an unconventional weapon'

day 1 - i started off with another idea, but scrapped it and pretty much wasted a day
day 2 - started over, got the majority of the game done within the day
day 3 - game finished, wrote some music
end - submitted, retrospective

final submission

screenshots

as2console - flash (as2)
a quake-style console implemented in flash. this was actually a real pain in the ass to set up since as2 doesn't have pointers. i later put this into both borderbutts and widide2.

play

screenshots

particle physics simulator - vb
my final year college computing project. the original idea for this was to build a 2d rocket simulator, using my own physics engine. got the circles flying around just fine and struggled with everything else, so i changed the project instead. it also started as a c++ project, but was later switched to vb. the demo's still called 'rocket simulator'

final version allows for loading/saving 'scenarios', with all the objects set up ready to go.
objects can be dragged/selected with the mouse, holding shift will pull objects into cursor, holding ctrl will push them away

download

screenshots

borderbutts - flash (as2)
i wanted to do something with widide, and i'd been playing a lot of borderlands lately.
had to do a ton of work to do the random guns, inventory system, etc. lighting was pulled across from waiet.
ultimately dropped due to performance issues, and the codebase is just raw spaghetti at this point.

never did come up with a better title

play

screenshots

widide2 - flash (as2)
following the difficulties i had using widide for a game, i decided to try doing another engine using what i'd learned.

features much faster raycasting using some fancy maths, more advanced particles, a rough implementation of the realtime shadows demo, and actual ai. the simpler ai does not use line of sight and will try to run at the player without pathfinding. a more advanced ai was worked on for a stealth game i was doing at the time, which has line of sight and some very rough pathfinding using nodes. they also respond to sound, will track the player's last known position, and know if you've entered an area they can't reach (like vents)

never finished doing anything with this, probably won't. neat tech demo though

as with widide, i also wrote a retrospective on this which contains links to versions
read here

screenshots

realtime shadows demo - flash (as2)
this works by drawing lines out from the corner of each shape, creating triangles.
i don't have to worry about overlaps since it's all covered in shadow at that point, but this wouldn't work for multiple light sources or anything more complex

play

screenshots

vbquest - vb
this was started during my college computing course, while we were learning to write console apps in VB.
when given a challenge to move something on the screen via keyboard input, i added collisions to make a little maze.
this was later expanded on to load in levels, have different tile types, have objects to pick up, and eventually i even got animation.

i got a networked demo about halfway done- it's playable, but the client can't actually see anything

download

screenshots

ascii worms - vb
after getting vbquest working, i took what i had and added gravity to have the worms jumping around.
once the logic for swapping between worms was in, i spent the rest of the time working on level generation.
three algorithms are used, which can be changed in the level options:
* random placement, usually pretty bad levels
* slightly random sine wave with chunks taken out
* an algorithm that kurtis came up with, i honestly can't remember how it works now

never got networking finished for this either, and some of the weapons are pretty half-baked too
the nuke was a mistake

download

screenshots

flash fps renderer - flash (as2)
works by raycasting a ton of lines... via constantly checking for collisions with objects.
it's pretty slow.

play

screenshots

ascii fps renderer - vb
a port of the flash version to vb, running as a console app.
uses bresenham's algorithm to trace the lines, turns are in 90 degrees.

download

screenshots

widide - flash (as2)
"wat is dis i don't even"

started out because i didn't like how the mouse controls for madness interactive felt
eventually turned into a little physics sandbox thing with too much spaghetti code

i wrote a retrospective on this which has all the links to various versions of the game
read it here

screenshots

waiet - flash (as2)
"why am i even trying"

after getting widide to work, i'd been playing a bit of stickrpg and wanted to experiment with top down.
started out with just the buildings, simple movement, and a ragdoll when falling. eventually implemented multiple cars and a lighting engine, which was later used in borderbutts. i put together a demo for 3d lighting- it worked, but it's not optimized at all and has weird graphical errors unless you're on low quality

play
play (3d lighting)

screenshots

racer alpha - flash (as2)
a little racing game experiment in flash
not a whole lot to say about this one, although the ai works surprisingly well

play

screenshots

water physics - flash (as2)
blueberry jelly simulator?

play

screenshots