{"id":127,"date":"2018-08-22T12:09:24","date_gmt":"2018-08-22T12:09:24","guid":{"rendered":"http:\/\/www.gaminggarrison.com\/Site\/?page_id=127"},"modified":"2021-09-16T13:00:54","modified_gmt":"2021-09-16T13:00:54","slug":"portfolio-duncan-stead","status":"publish","type":"page","link":"https:\/\/www.gaminggarrison.com\/Site\/about\/portfolio-duncan-stead\/","title":{"rendered":"Portfolio &#8211; Duncan Stead"},"content":{"rendered":"<p><strong>Name:<\/strong> Duncan Stead<\/p>\n<p><strong>Summary:<\/strong> Graphics-leaning game programmer with professional experience in C++, C#, Unity, CG, GLSL &amp; Java.<\/p>\n<p><strong>Work Experience:&nbsp;<\/strong>9+ years:&nbsp;<a href=\"https:\/\/www.linkedin.com\/in\/duncan-stead-1856672a\/\">Linked-In page<\/a><\/p>\n<p><strong>Graphics programming specific showreel:<\/strong><br \/>\n<iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/8gFfVD055oY?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"560\" height=\"315\" frameborder=\"0\"><\/iframe><\/p>\n<p><strong>Portfolio (Most recent at the top):<\/strong><\/p>\n<p><strong>Starbeard (Unity &#8211; Mobile)<\/strong><\/p>\n<p><iframe loading=\"lazy\" title=\"Starbeard - Brush those beards, it&#039;s time to garden!\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/2cGqrEjy0Uw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>UK Games Fund sponsored team project.&nbsp; As the sole programmer, implemented all systems, including metagame, turn based battles, save games, UI and mobile platform integration.<\/p>\n<p><strong>Cat Word Poker (Unity &#8211; WebGL + Mobile)<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/R65ouRDW6X8?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"560\" height=\"315\" frameborder=\"0\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p>Solo project with real-time multiplayer, lots of menus, UI particle systems, PlayFab backend integration (and some fur shaders for fun)<\/p>\n<p><strong>Tiled TMX Importer (Unity asset)<\/strong><\/p>\n<p><a href=\"https:\/\/assetstore.unity.com\/packages\/tools\/sprite-management\/tiled-tmx-importer-102928\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-55 size-full\" src=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2017\/12\/LargeKeyImageCentral2.png\" alt=\"\" width=\"516\" height=\"389\" srcset=\"https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2017\/12\/LargeKeyImageCentral2.png 516w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2017\/12\/LargeKeyImageCentral2-300x226.png 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/a><\/p>\n<p>Solo project for the <a href=\"https:\/\/assetstore.unity.com\/packages\/tools\/sprite-management\/tiled-tmx-importer-102928\">Unity Asset Store<\/a>, reading an open source tilemap format to help level designers put their work into Unity.<\/p>\n<p><strong>Midi the Cat (Unity &#8211; PC)<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/zneWKb94rRw?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"560\" height=\"315\" frameborder=\"0\"><\/iframe><\/p>\n<p>Solo project with MIDI input, audio synchronisation, particle effects, and a 2D heightmap based shadowing system.<\/p>\n<p><strong>Runescape NXT (C++, OpenGL &#8211; PC + WebGL)<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/wUVNlfJU8dA?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"560\" height=\"315\" frameborder=\"0\"><\/iframe><\/p>\n<p>Senior Engine Developer on an team of ~10 people including QA.&nbsp; The project was a complete client rewrite from legacy Java to modern C++ (with full backwards compatibility).&nbsp; The team used Git, with Bitbucket for code reviews, Bamboo for builds, Jira for project management and Confluence for documentation.<br \/>\nI worked on the engine code and GLSL shaders for terrain, water (flow map based), volumetric lighting and animation.<\/p>\n<p><strong>Transformers Universe (C++, DirectX then Unity&nbsp; &#8211; PC and Web)<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/Fpov9NWYLKs?rel=0&amp;start=11\" allowfullscreen=\"allowfullscreen\" width=\"560\" height=\"315\" frameborder=\"0\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span>\ufeff<\/span><\/iframe><\/p>\n<p>Engine Developer on a AAA sized team of 100+ people.&nbsp; The project was a browser based MOBA style PvP game written in Unity (though had started in Java &amp; C++).<br \/>\nThe team used Perforce for version control, with a TeamCity based build system and some custom tooling.<br \/>\nI worked closely with the VFX artists to provide them with CG shaders and scripts to allow them to create all the various effects in the game.&nbsp; I also worked with the technical artists to optimise the 2-tone metallic car shader that is used on most of the characters.<br \/>\nI built a GPU clipmap based terrain renderer for the game to replace Unity&#8217;s default terrain (as an optimisation), but was moved onto Runescape to help their HTML5 project at the time, so it was never deployed.<\/p>\n<p><strong>Void Hunters (Java &#8211; Web)<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/_mTZuhVSYvs\" title=\"YouTube video player\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" width=\"560\" height=\"315\" frameborder=\"0\"><\/iframe><\/p>\n<p>Mostly solo project (some help for art, menus and audio) with real-time multiplayer, newtonian physics and customisable\/modular spaceships.&nbsp; The game was built for a Java minigame platform called FunOrb, using it&#8217;s software-rendering-based in-house libraries.<\/p>\n<p><strong>Game Jam Projects (Most recent at the top):<\/strong><\/p>\n<p><a href=\"https:\/\/aliaavatar.itch.io\/roborescue\">Robo Rescue<\/a> (CogHead level + effects)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-37\/?action=preview&amp;uid=11515\">gRAvity<\/a> (Gravity\/Camera rotation mechanics, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-36\/?action=preview&amp;uid=11515\">Ancient Invaders<\/a>&nbsp;(Bow mechanics, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-33\/?action=preview&amp;uid=11515\">The adventures of the Squire and the Liar<\/a>&nbsp;(Rhythm action gameplay, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-32\/?action=preview&amp;uid=11515\">In for a Pound<\/a>&nbsp;(Gameplay, top-down lighting setup,&nbsp; minimap revealing, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=11515\">Space Rails<\/a>&nbsp;(Freeform rail building, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-26\/?action=preview&amp;uid=11515\">Square Heart Flower<\/a>&nbsp;(Black\/white terrain shader and effects, logic-based gameplay system, music)<br \/>\n<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-24\/?action=preview&amp;uid=11515\">Mighty-chondria<\/a>&nbsp;(Shaders and effects, music)<\/p>\n<p><strong>About me:<\/strong><\/p>\n<p><span class=\"lt-line-clamp__line\">As my linked-in says:<br \/>\n<\/span><span class=\"lt-line-clamp__line\">&#8220;A game making nut with a penchant for new ideas. Enjoys coding, writing music and coming up with&nbsp;<\/span><span class=\"lt-line-clamp__line lt-line-clamp__line--last\">puns.&#8221;<br \/>\nI&#8217;d say that&#8217;s a fair summary.&nbsp; \ud83d\ude42<br \/>\n<\/span><span class=\"lt-line-clamp__line lt-line-clamp__line--last\">Considering I&#8217;ve made a game with cats and music keyboard controls, you can guess my game ideas are a little wacky.&nbsp; \ud83d\ude42<br \/>\nWhen I make something, it has to be something no-one has seen before &#8211; I came up with Void Hunters before craft\/building games became a massive thing in the early 2010s, built a non-greenlit prototype for a game that preceded the eerily similar Kerbal Space Program, and made a tower defence game as a kid years before they became big with Desktop Tower Defence.<\/span><\/p>\n<p><span class=\"lt-line-clamp__line lt-line-clamp__line--last\">I just love to try new ideas, and it&#8217;s a lot of fun \ud83d\ude42<\/span><\/p>\n<p><span class=\"lt-line-clamp__line lt-line-clamp__line--last\">As for my inspirations, I actually tend to play more mainstream titles &#8211; first person shooters, strategy and survival games.&nbsp; Multiplayer is great.&nbsp; I love to play coop, but definitely enjoy a round of DOTA or PUBG with the &#8216;lads&#8217; \ud83d\ude1b<br \/>\nI&#8217;d say I&#8217;m a pretty average gamer, and the games we can play today are amazing, but I definitely want to see (and help create) new games that we can&#8217;t yet imagine.<\/span><\/p>\n<p><a href=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/BUUG18.jpeg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-149 size-medium\" src=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/BUUG18-300x169.jpeg\" alt=\"\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/BUUG18-300x169.jpeg 300w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/BUUG18-768x432.jpeg 768w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/BUUG18.jpeg 960w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-150 size-medium\" src=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18-300x225.jpg 300w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18-768x576.jpg 768w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18-1024x768.jpg 1024w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/UnityDeveloperDay18.jpg 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/MidiTheCat.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-151 size-medium\" src=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/MidiTheCat-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" srcset=\"https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/MidiTheCat-225x300.jpg 225w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/MidiTheCat-768x1024.jpg 768w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/MidiTheCat.jpg 1536w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-147 size-thinkup-column2-2\/3\" src=\"http:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218-570x380.jpg\" alt=\"\" width=\"570\" height=\"380\" srcset=\"https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218-570x380.jpg 570w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218-300x200.jpg 300w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218-768x512.jpg 768w, https:\/\/www.gaminggarrison.com\/Site\/wp-content\/uploads\/2018\/08\/DSC01218-1024x683.jpg 1024w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Name: Duncan Stead Summary: Graphics-leaning game programmer with professional experience in C++, C#, Unity, CG, GLSL &amp; Java. Work Experience:&nbsp;9+ years:&nbsp;Linked-In page Graphics programming specific showreel: Portfolio (Most recent at the top): Starbeard (Unity &#8211; Mobile) UK Games Fund sponsored team project.&nbsp; As the sole programmer, implemented all systems, including metagame, turn based battles, save&#8230;<\/p>\n<p class=\"more-link\"><a href=\"https:\/\/www.gaminggarrison.com\/Site\/about\/portfolio-duncan-stead\/\" class=\"themebutton3\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-127","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/pages\/127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/comments?post=127"}],"version-history":[{"count":22,"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/pages\/127\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/pages\/127\/revisions\/233"}],"up":[{"embeddable":true,"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/pages\/2"}],"wp:attachment":[{"href":"https:\/\/www.gaminggarrison.com\/Site\/wp-json\/wp\/v2\/media?parent=127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}