Help
RSS
API
Feed
Maltego
Contact
Domain > michaelmackinnon.com
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
Whois
Property
Value
NameServer
NS1798.HOSTGATOR.COM
Created
2010-10-27 00:00:00
Changed
2015-04-24 00:00:00
Expires
2016-10-27 00:00:00
Registrar
WILD WEST DOMAINS, L
DNS Resolutions
Date
IP Address
2025-01-10
192.185.5.31
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Fri, 10 Jan 2025 02:34:33 GMTServer: ApacheLink: http://michaelmackinnon.com/wp-json/>; relhttps://api.w.org/Upgrade: h2,h2cConnection: UpgradeVary: Accept-EncodingTransfer-Encoding: chunkedContent-Type: text/html; charsetUTF-8 !DOCTYPE html>html langen-US>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1> link relprofile hrefhttp://gmpg.org/xfn/11> link relpingback hrefhttp://michaelmackinnon.com/xmlrpc.php> !--if lt IE 9> script srchttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/html5.js>/script> !endif--> title>Portfolio/title>link reldns-prefetch href//fonts.googleapis.com />link reldns-prefetch href//s.w.org />link relalternate typeapplication/rss+xml titlePortfolio » Feed hrefhttp://michaelmackinnon.com/feed/ />link relalternate typeapplication/rss+xml titlePortfolio » Comments Feed hrefhttp://michaelmackinnon.com/comments/feed/ /> script typetext/javascript> window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/,svgExt:.svg,source:{concatemoji:http:\/\/michaelmackinnon.com\/wp-includes\/js\/wp-emoji-release.min.js?ver5.2.21}}; !function(e,a,t){var n,r,o,ia.createElement(canvas),pi.getContext&&i.getContext(2d);function s(e,t){var aString.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);ei.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),ei.toDataURL()}function c(e){var ta.createElement(script);t.srce,t.defert.typetext/javascript,a.getElementsByTagName(head)0.appendChild(t)}for(oArray(flag,emoji),t.supports{everything:!0,everythingExceptFlag:!0},r0;ro.length;r++)t.supportsorfunction(e){if(!p||!p.fillText)return!1;switch(p.textBaselinetop,p.font600 32px Arial,e){caseflag:return s(55356,56826,55356,56819,55356,56826,8203,55356,56819)?!1:!s(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447,55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447);caseemoji:return!s(55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340,55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340)}return!1}(or),t.supports.everythingt.supports.everything&&t.supportsor,flag!or&&(t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&t.supportsor);t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady!1,t.readyCallbackfunction(){t.DOMReady!0},t.supports.everything||(nfunction(){t.readyCallback()},a.addEventListener?(a.addEventListener(DOMContentLoaded,n,!1),e.addEventListener(load,n,!1)):(e.attachEvent(onload,n),a.attachEvent(onreadystatechange,function(){completea.readyState&&t.readyCallback()})),(nt.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); /script> style typetext/css>img.wp-smiley,img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important;}/style> link relstylesheet idwp-block-library-css hrefhttp://michaelmackinnon.com/wp-includes/css/dist/block-library/style.min.css?ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-normalize-css hrefhttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/normalize.css?ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-fonts-css hrefhttps://fonts.googleapis.com/css?familyOpen+Sans%3A700&ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-fonts-body-css hrefhttps://fonts.googleapis.com/css?familyOpen+Sans%3A400&ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-font-awesome-css hrefhttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/font.awesome.css?ver4.0.3 typetext/css mediaall />link relstylesheet idportfolio-style-css hrefhttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/style.css?ver5.2.21 typetext/css mediaall />!--if lt IE 9>link relstylesheet idportfolio-ie8-css hrefhttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/ie8.css?ver5.2.21 typetext/css mediaall />!endif-->!--if IE 9>link relstylesheet idportfolio-ie9-css hrefhttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/ie9.css?ver5.2.21 typetext/css mediaall />!endif-->script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/jquery/jquery.js?ver1.12.4-wp>/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/jquery/jquery-migrate.min.js?ver1.4.1>/script>link relhttps://api.w.org/ hrefhttp://michaelmackinnon.com/wp-json/ />link relEditURI typeapplication/rsd+xml titleRSD hrefhttp://michaelmackinnon.com/xmlrpc.php?rsd />link relwlwmanifest typeapplication/wlwmanifest+xml hrefhttp://michaelmackinnon.com/wp-includes/wlwmanifest.xml /> meta namemy_reading_library-version content1.0 /> style typetext/css> body { font-family: , sans-serif; } .site-title { font-family: , sans-serif; } .site-main #page { max-width: 1200px; } #primary, #comments, .author-info, .attachment #primary, .site-content.archive #gk-search, .search-no-results .page-content { width: 1080px; } body { -ms-word-break: break-all; word-break: break-all; word-break: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } a, a.inverse:active, a.inverse:focus, a.inverse:hover, button, inputtypesubmit, inputtypebutton, inputtypereset, .entry-summary .readon, .comment-author .fn, .comment-author .url, .comment-reply-link, .comment-reply-login, #content .tags-links a:active, #content .tags-links a:focus, #content .tags-links a:hover, .nav-menu li a:active, .nav-menu li a:focus, .nav-menu li a:hover, ul.nav-menu ul a:hover, .nav-menu ul ul a:hover, .gk-social-buttons a:hover:before, .format-gallery .entry-content .page-links a:hover, .format-audio .entry-content .page-links a:hover, .format-status .entry-content .page-links a:hover, .format-video .entry-content .page-links a:hover, .format-chat .entry-content .page-links a:hover, .format-quote .entry-content .page-links a:hover, .page-links a:hover, .paging-navigation a:active, .paging-navigation a:focus, .paging-navigation a:hover, .comment-meta a:hover, .social-menu li:hover:before, .social-menu-topbar li:hover:before, .entry-title a:hover { color: #5cc1a9; } button, inputtypesubmit, inputtypebutton, inputtypereset, .entry-summary .readon { border: 1px solid #5cc1a9; } body .nav-menu .current_page_item > a, body .nav-menu .current_page_ancestor > a, body .nav-menu .current-menu-item > a, body .nav-menu .current-menu-ancestor > a { border-color: #5cc1a9; color: #5cc1a9!important; } .format-status .entry-content .page-links a, .format-gallery .entry-content .page-links a, .format-chat .entry-content .page-links a, .format-quote .entry-content .page-links a, .page-links a { background: #5cc1a9; border-color: #5cc1a9; } .hentry .mejs-controls .mejs-time-rail .mejs-time-current, .comment-post-author, .sticky .post-preview:after, .entry-header.sticky:after, .article-helper.sticky:after, #prev-post > a:hover, #next-post > a:hover { background: #5cc1a9; } .comments-title > span, .comment-reply-title > span { border-bottom-color: #5cc1a9; } .article-helper { height: 380px; } .site-content.archive article { height: 416px; } .post-preview { padding: 56px 36px 36px 36px; } @media (max-width: 1140px) { .site-content.archive article { height: 336px; } .article-helper { height: 320px; } .post-preview { padding: 20px 16px 36px 16px; } } /style> style typetext/css> .site-content.archive article { width: 25%; } /style> style typetext/css> body.custom-background #main { background-color: #f1f1f1; } /style> /head>body classhome blog> !--if lte IE 8> div idie-toolbar>div>Youre using an unsupported version of Internet Explorer. Please a hrefhttp://windows.microsoft.com/en-us/internet-explorer/products/ie/home>upgrade your browser/a> for the best user experience on our site. Thank you./div>/div> !endif--> header idmasthead classsite-header rolebanner> a classhome-link hrefhttp://michaelmackinnon.com/ titlePortfolio relhome> h1 classsite-title>Portfolio/h1> /a> /header>!-- #masthead --> div idmain classsite-main> div idpage classhfeed site> nav idsite-navigation classmain-navigation rolenavigation> div classmenu-main-menu-container>ul idmenu-main-menu classnav-menu>li idmenu-item-107 classmenu-item menu-item-type-custom menu-item-object-custom menu-item-107>a hrefhttp://www.michaelmackinnon.com>Index/a>/li>li idmenu-item-121 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-121>a hrefhttp://michaelmackinnon.com/about-me/>About/a>/li>li idmenu-item-110 classmenu-item menu-item-type-custom menu-item-object-custom menu-item-110>a hrefhttps://linkedin.com/in/MacKinnonMichael>Linked In/a>/li>/ul>/div> /nav>!-- #site-navigation --> div idprimary classcontent-area> div idcontent classsite-content archive rolemain> article idpost-284 classpost-284 post type-post status-publish format-standard has-post-thumbnail hentry category-game tag-c tag-mobile tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/lemmings/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/lemmings/> img width360 height360 srchttp://michaelmackinnon.com/wp-content/uploads/unnamed.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/unnamed.png 360w, http://michaelmackinnon.com/wp-content/uploads/unnamed-150x150.png 150w, http://michaelmackinnon.com/wp-content/uploads/unnamed-300x300.png 300w sizes(max-width: 360px) 100vw, 360px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/lemmings/ relbookmark> Lemmings /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/lemmings/ relbookmark>p>Lead Programmer for the mobile version of Lemmings. https://play.google.com/store/apps/details?idcom.sadpuppy.lemmings&hlen_GB&glUS/p>div classpost-teaser-block>a hrefhttp://michaelmackinnon.com/game/lemmings/ titlePermanent Link: Lemmings relbookmark>Permanent link to this post/a> (10 words, estimated 2 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-271 classpost-271 post type-post status-publish format-standard has-post-thumbnail hentry category-aaa category-game tag-c tag-unreal tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/programming-for-ndreams/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/programming-for-ndreams/> img width600 height600 srchttp://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21.png 600w, http://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21-150x150.png 150w, http://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21-300x300.png 300w sizes(max-width: 600px) 100vw, 600px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/programming-for-ndreams/ relbookmark> Programming for nDreams /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/programming-for-ndreams/ relbookmark>div classpage titlePage 1>div classsection>div classlayoutArea>div classcolumn>p>Used Unreal Engine 4 and C++ to develop Vertical Slice Demo of Fracked. More information on the game can be found at https://ndreams.com/games/fracked/p>/div>/div>/div>/div>div classpost-teaser-block>a hrefhttp://michaelmackinnon.com/game/programming-for-ndreams/ titlePermanent Link: Programming for nDreams relbookmark>Permanent link to this post/a> (25 words, estimated 6 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unreal/ reltag>Unreal/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-235 classpost-235 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/the-descent/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/the-descent/> img width527 height503 srchttp://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204.png 527w, http://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204-300x286.png 300w sizes(max-width: 527px) 100vw, 527px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/the-descent/ relbookmark> The Descent /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/the-descent/ relbookmark>figure classwp-block-image>img alt />p>Date: May-October, 2019br />Concept: VR game, guns fighting monsters in mining shaftbr />Team: 3 programmers, 1 artists, 1 audiobr />Platform: Steam VR w/ Hydraulic platformbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Extra Notes:/p>p>Player stands on hydraulic platform and the hydraulic platform moves to simulate lift descending down mine shaft, as well as any knocks or drops the player’s cage may get on the way down. I worked on the AI and animation state diagrams./p>/figure>div classpost-teaser-block>a hrefhttp://michaelmackinnon.com/game/the-descent/ titlePermanent Link: The Descent relbookmark>Permanent link to this post/a> (72 words, 1 image, estimated 17 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-238 classpost-238 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-programming tag-ar tag-c tag-multithreaded tag-networking tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/programming/lecturer-in-game-programming/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/programming/lecturer-in-game-programming/> img width225 height225 srchttp://michaelmackinnon.com/wp-content/uploads/uni-logo-1.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/uni-logo-1.png 225w, http://michaelmackinnon.com/wp-content/uploads/uni-logo-1-150x150.png 150w sizes(max-width: 225px) 100vw, 225px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/programming/lecturer-in-game-programming/ relbookmark> Lecturer in Game Programming /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/programming/lecturer-in-game-programming/ relbookmark>p>Date: Sept 2018 – Mar 2019br />Extra Notes:br />Taught classes and labs in the following courses:br />Games Engine Creation (1st)br />Fundamentals of Graphical Programming (1st)br />Concurrent Network Applications (2nd)br />Maths and Algorithms (2nd)br />VR & AR programming (2nd)br />Multiplayer Games (3rd)/p>div classpost-teaser-block>a hrefhttp://michaelmackinnon.com/programming/lecturer-in-game-programming/ titlePermanent Link: Lecturer in Game Programming relbookmark>Permanent link to this post/a> (42 words, estimated 10 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/ar/ reltag>AR/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/multithreaded/ reltag>Multithreaded/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/networking/ reltag>Networking/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-233 classpost-233 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-ar tag-ipad tag-mobile tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/zombie-pirates/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/zombie-pirates/> img width960 height720 srchttp://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o.jpg classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o.jpg 960w, http://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o-300x225.jpg 300w, http://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o-768x576.jpg 768w sizes(max-width: 960px) 100vw, 960px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/zombie-pirates/ relbookmark> Zombie Pirates /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/zombie-pirates/ relbookmark>p>Date: 2018br />Concept: AR game fighting Zombie Piratesbr />Team: 2 programmers, 2 artists, 1 audiobr />Platform: iPadbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Extra Notes:/p>p>Kids on cruise ship can borrow iPads from the operator. Then they start the game, and point the iPad at the AR target on the wall. Zombie pirates appear to burst through the wall towards the child and the child shoots their cannon at the zombies. The highest scores get recorded on monitors next to the AR target./p>p>a hrefhttp://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg>img classalignleft size-full wp-image-265 srchttp://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg alt width2220 height1080 srcsethttp://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg 2220w, http://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-300x146.jpg 300w, http://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-768x374.jpg 768w, http://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-1024x498.jpg 1024w sizes(max-width: 2220px) 100vw, 2220px />/a>/p>div classpost-teaser-block>a hrefhttp://michaelmackinnon.com/game/zombie-pirates/ titlePermanent Link: Zombie Pirates relbookmark>Permanent link to this post/a> (83 words, 1 image, estimated 20 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/ar/ reltag>AR/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/ipad/ reltag>iPad/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-205 classpost-205 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/the-tower/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/the-tower/> img width3508 height4961 srchttp://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2.png 3508w, http://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-212x300.png 212w, http://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-768x1086.png 768w, http://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-724x1024.png 724w sizes(max-width: 3508px) 100vw, 3508px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/the-tower/ relbookmark> The Tower /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/the-tower/ relbookmark>p>Date: August 2016br />Concept: A VR archery game taking place in an ancient tower.br />Team (5):br />Aaron Humphries (3D Artist)br />Ben Luff (Designer/Programmer/Audio)br />Chris Winn (Designer)br />Michael MacKinnon (Producer/Programmer)br />Nelson de Costa (Programmer)/p>p>Platform: Windows with HTC Vivebr />Engine: Unity Engine 5.4/p>p>Role: Producer and Programmer (Gameplay/Audio)/p>p>Extra Notes:br />The game makes use of 3m x 3m play area with no teleportation. A tower is used so thatbr />the player can move vertically to encounter new areas to experience. This allows for thebr />elimination of teleportation and forces the player to fully immerse themselves into thebr />room-scale element of the game./p>div classpost-teaser-block>This is a preview of q>The Tower/q>. a hrefhttp://michaelmackinnon.com/game/the-tower/ titlePermanent Link: The Tower relbookmark>Read the full post (599 words, 11 images, estimated 2:24 mins reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-200 classpost-200 post type-post status-publish format-standard has-post-thumbnail hentry category-coursework category-game category-tech-demo tag-c tag-mobile tag-networking tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/networking-team-tanks/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/networking-team-tanks/> img width2844 height1362 srchttp://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard.png 2844w, http://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-300x144.png 300w, http://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-768x368.png 768w, http://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-1024x490.png 1024w sizes(max-width: 2844px) 100vw, 2844px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/networking-team-tanks/ relbookmark> Networking: Team Tanks /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/networking-team-tanks/ relbookmark>p>Date: April 2016br />Concept: two players operate a tank togetherbr />Team: Solobr />Platform: Windowsbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Repository: a hrefhttps://github.com/stuff13/TeamTanks>https://github.com/stuff13/TeamTanks/a>/p>p>Extra Notes:br />This was the final project for a Networking course.br />The Assignment: create a networked game environmentbr />What I developed: To add something extra, I decided to do a cross platform networked game.br />A PC would act as server with two players: a player on the PC server and a player onbr />an iPhone using Google Cardboard.br />Player 1 on the PC moved a tank around the environment and had a good clear view.br />Player 2 on the iPhone using Google Cardboard moved the tank’s turret by turning the phone to look in another direction. By tapping on the screen, the player could fire a projectile into the scene./p>div classpost-teaser-block>This is a preview of q>Networking: Team Tanks/q>. a hrefhttp://michaelmackinnon.com/game/networking-team-tanks/ titlePermanent Link: Networking: Team Tanks relbookmark>Read the full post (129 words, 1 image, estimated 31 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/networking/ reltag>Networking/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-196 classpost-196 post type-post status-publish format-standard has-post-thumbnail hentry category-coursework category-game category-tech-demo tag-cplusplus tag-tests tag-unreal data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/ai-driving/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/ai-driving/> img width960 height542 srchttp://michaelmackinnon.com/wp-content/uploads/AIDriver.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/AIDriver.png 960w, http://michaelmackinnon.com/wp-content/uploads/AIDriver-300x169.png 300w, http://michaelmackinnon.com/wp-content/uploads/AIDriver-768x434.png 768w sizes(max-width: 960px) 100vw, 960px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/ai-driving/ relbookmark> AI Driving /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/ai-driving/ relbookmark>p>Date: December 2015br />Concept: Driving around a track by AIbr />Team: Solobr />Platform: Windowsbr />Engine: Unreal Engine/p>p>Role: Programmer/p>p>Extra Notes:br />This was the final project for an AI course.br />The Assignment: create top-down 2D view of a car driving along a vertical line. Providebr />input controls that allow you to shift the car right or left and use a Fuzzy Logicbr />Controller to control steering the car back to the vertical line.br />What I developed: To add some extra challenge to my assignment, I took the 3D car driving gamebr />sample from Unreal Engine and spliced in an AI controller in place of the inputbr />controls. I then created the Fuzzy Logic Controller supported with automated tests (sobr />I could modify the FLC if needed later with confidence) and gave it to the AI Controller./p>div classpost-teaser-block>This is a preview of q>AI Driving/q>. a hrefhttp://michaelmackinnon.com/game/ai-driving/ titlePermanent Link: AI Driving relbookmark>Read the full post (138 words, estimated 33 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/cplusplus/ reltag>CPlusPlus/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/tests/ reltag>tests/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unreal/ reltag>Unreal/a>/li>/ul> /div>/article>!-- #post --> article idpost-187 classpost-187 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/apco-trainer/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/apco-trainer/> img width1024 height767 srchttp://michaelmackinnon.com/wp-content/uploads/1.jpg classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/1.jpg 1024w, http://michaelmackinnon.com/wp-content/uploads/1-300x225.jpg 300w, http://michaelmackinnon.com/wp-content/uploads/1-768x575.jpg 768w sizes(max-width: 1024px) 100vw, 1024px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/apco-trainer/ relbookmark> APCO Trainer /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/apco-trainer/ relbookmark>p>Date: February 2016br />Concept: The game presents users with a scenario and a fully explorable, 3D object. Different areas of the object can then be highlighted and interacted with (e.g. removing the back of a phone, unplugging the Ethernet from a PC tower, or ejecting the disk from a games console), with the final aim being to submit the object in an appropriate state for future testing./p>p>Team (4):br />Ben Luff (Designer)br />Chris Winn (Designer/3D Modeller)br />Louis Dimmock (Programmer)br />Michael MacKinnon (Producer/Programmer)/p>p>Platform: Windowsbr />Engine: Unity Enginebr />My Role: Producer and Programmer (Gameplay/Audio)/p>div classpost-teaser-block>This is a preview of q>APCO Trainer/q>. a hrefhttp://michaelmackinnon.com/game/apco-trainer/ titlePermanent Link: APCO Trainer relbookmark>Read the full post (190 words, 5 images, estimated 46 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-180 classpost-180 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttp://michaelmackinnon.com/game/cult-v-cult-the-myxtery/> header classentry-header full-width-image data-urlhttp://michaelmackinnon.com/game/cult-v-cult-the-myxtery/> img width708 height502 srchttp://michaelmackinnon.com/wp-content/uploads/screen_intro.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttp://michaelmackinnon.com/wp-content/uploads/screen_intro.png 708w, http://michaelmackinnon.com/wp-content/uploads/screen_intro-300x213.png 300w sizes(max-width: 708px) 100vw, 708px /> h2 classentry-title> a hrefhttp://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ relbookmark> Cult V Cult: The Myxtery /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttp://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ relbookmark>p>Date: January 2016br />Concept: You and your cult buddies need to work together to sate the hunger of Sassarilla the demon. Sassy has a craving for you and your friends delicious mortal bodies. Create the right concoctions as a team to keep Sassy at bay. Wait though, while you do that you need create your own secret (read not secret) potions to gain favour with Sassy and save yourself leaving your friends to be devoured.br />Team (5):br />Blair Gray (Designer)br />Caitlin Goodale (Artist)br />Glenn Patrick Cullen (Programmer)br />Inka Nieminen (Artist)br />Michael MacKinnon (Programmer)/p>p>Platform: Windows with PS4 Controllersbr />Engine: Unity Engine/p>div classpost-teaser-block>This is a preview of q>Cult V Cult: The Myxtery/q>. a hrefhttp://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ titlePermanent Link: Cult V Cult: The Myxtery relbookmark>Read the full post (125 words, 4 images, estimated 30 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttp://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttp://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> /div>!-- #content --> nav classnavigation paging-navigation rolenavigation> div classnav-links> div classnav-previous>a hrefhttp://michaelmackinnon.com/page/2/ >Older posts/a>/div> span classpagination-item>Page 1 of 2/span> /div>!-- .nav-links --> /nav>!-- .navigation --> /div>!-- #primary --> /div>!-- #main --> /div>!-- #page --> footer idgk-footer rolecontentinfo> div idgk-bottom rolecomplementary> div classwidget-area> div idcategories-3 classwidget widget_categories>h3 classwidget-title>Categories/h3> ul> li classcat-item cat-item-33>a hrefhttp://michaelmackinnon.com/category/game/aaa/>AAA/a>/li> li classcat-item cat-item-35>a hrefhttp://michaelmackinnon.com/category/game/coursework/>Coursework/a>/li> li classcat-item cat-item-32>a hrefhttp://michaelmackinnon.com/category/game/>Game/a>/li> li classcat-item cat-item-34>a hrefhttp://michaelmackinnon.com/category/game/indie/>Indie/a>/li> li classcat-item cat-item-3>a hrefhttp://michaelmackinnon.com/category/programming/>Programming/a>/li> li classcat-item cat-item-38>a hrefhttp://michaelmackinnon.com/category/game/coursework/tech-demo/>Tech Demo/a>/li> /ul> /div>div idarchives-4 classwidget widget_archive>h3 classwidget-title>Archives/h3> ul> li>a hrefhttp://michaelmackinnon.com/2022/02/>February 2022/a> (1)/li> li>a hrefhttp://michaelmackinnon.com/2020/04/>April 2020/a> (1)/li> li>a hrefhttp://michaelmackinnon.com/2019/11/>November 2019/a> (3)/li> li>a hrefhttp://michaelmackinnon.com/2016/09/>September 2016/a> (8)/li> li>a hrefhttp://michaelmackinnon.com/2012/07/>July 2012/a> (1)/li> /ul> /div>div idmy-reading-library classwidget mrl_widget>h3 classwidget-title>My Reading Library/h3>div classmy-reading-library> br> h4>u>strong>Current Books:/strong>/u>/h4> table stylefont-size:9px;>tr>td stylevertical-align:top;>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/0735627045/refnosim/celallwin-21>img srchttp://ecx.images-amazon.com/images/I/412wa7iEt3L._SL75_.jpg altCLR via C# />/a>/td>td stylevertical-align:top;>a hrefhttp://michaelmackinnon.com/index.php?my_reading_library_authorjeffrey-richter&my_reading_library_titleclr-via-c>strong>CLR via C#/strong>/a>br>By Jeffrey Richterbr>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/0735627045/refnosim/celallwin-21#customerReviews>Amazon Customer Reviews/a>br>Planned Book/td>/tr>/table> table stylefont-size:9px;>tr>td stylevertical-align:top;>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/1407109367/refnosim/celallwin-21>img srchttp://ecx.images-amazon.com/images/I/51tVK4drmVL._SL75_.jpg altThe Hunger Games: Catching fire />/a>/td>td stylevertical-align:top;>a hrefhttp://michaelmackinnon.com/index.php?my_reading_library_authorsuzanne-collins&my_reading_library_titlethe-hunger-games-catching-fire>strong>The Hunger Games: Catching fire/strong>/a>br>By Suzanne Collinsbr>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/1407109367/refnosim/celallwin-21#customerReviews>Amazon Customer Reviews/a>br>Planned Book/td>/tr>/table> /div>/div> /div> /div> div idgk-social> div classmenu-social-menu-container>ul idmenu-social-menu classsocial-menu>li idmenu-item-112 classicon-gplus menu-item menu-item-type-custom menu-item-object-custom menu-item-112>a href#>Google+/a>/li>li idmenu-item-113 classicon-fb menu-item menu-item-type-custom menu-item-object-custom menu-item-113>a href#>Fb/a>/li>li idmenu-item-114 classicon-twitter menu-item menu-item-type-custom menu-item-object-custom menu-item-114>a href#>Twitter/a>/li>li idmenu-item-115 classicon-pinterest menu-item menu-item-type-custom menu-item-object-custom menu-item-115>a href#>Pinterest/a>/li>li idmenu-item-116 classicon-youtube menu-item menu-item-type-custom menu-item-object-custom menu-item-116>a href#>Youtube/a>/li>li idmenu-item-117 classicon-rss menu-item menu-item-type-custom menu-item-object-custom menu-item-117>a href#>RSS/a>/li>/ul>/div> /div> div idgk-copyrights> p classcopyright>Free WordPress Theme designed by a hrefhttps://www.gavick.com>Gavick.com/a>/p> p classpoweredby>Proudly published with a hrefhttp://wordpress.org/>WordPress/a>/p> /div>!-- .site-info --> /footer>!-- end of #gk-footer --> span classscauto-footer>small>© 2025 - a hrefhttp://michaelmackinnon.com/privacy-policy/ relnofollow>Privacy Policy/a>/small>/span>link relstylesheet idmediaelement-css hrefhttp://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver4.2.6-78496d1 typetext/css mediaall />link relstylesheet idwp-mediaelement-css hrefhttp://michaelmackinnon.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver5.2.21 typetext/css mediaall />script typetext/javascript srchttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/functions.js?ver5.2.21>/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/jquery.fitvids.js?ver5.2.21>/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/wp-embed.min.js?ver5.2.21>/script>script typetext/javascript>var mejsL10n {language:en,strings:{mejs.install-flash:You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/,mejs.fullscreen-off:Turn off Fullscreen,mejs.fullscreen-on:Go Fullscreen,mejs.download-video:Download Video,mejs.fullscreen:Fullscreen,mejs.time-jump-forward:Jump forward 1 second,Jump forward %1 seconds,mejs.loop:Toggle Loop,mejs.play:Play,mejs.pause:Pause,mejs.close:Close,mejs.time-slider:Time Slider,mejs.time-help-text:Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds.,mejs.time-skip-back:Skip back 1 second,Skip back %1 seconds,mejs.captions-subtitles:Captions\/Subtitles,mejs.captions-chapters:Chapters,mejs.none:None,mejs.mute-toggle:Mute Toggle,mejs.volume-help-text:Use Up\/Down Arrow keys to increase or decrease volume.,mejs.unmute:Unmute,mejs.mute:Mute,mejs.volume-slider:Volume Slider,mejs.video-player:Video Player,mejs.audio-player:Audio Player,mejs.ad-skip:Skip ad,mejs.ad-skip-info:Skip in 1 second,Skip in %1 seconds,mejs.source-chooser:Source Chooser,mejs.stop:Stop,mejs.speed-rate:Speed Rate,mejs.live-broadcast:Live Broadcast,mejs.afrikaans:Afrikaans,mejs.albanian:Albanian,mejs.arabic:Arabic,mejs.belarusian:Belarusian,mejs.bulgarian:Bulgarian,mejs.catalan:Catalan,mejs.chinese:Chinese,mejs.chinese-simplified:Chinese (Simplified),mejs.chinese-traditional:Chinese (Traditional),mejs.croatian:Croatian,mejs.czech:Czech,mejs.danish:Danish,mejs.dutch:Dutch,mejs.english:English,mejs.estonian:Estonian,mejs.filipino:Filipino,mejs.finnish:Finnish,mejs.french:French,mejs.galician:Galician,mejs.german:German,mejs.greek:Greek,mejs.haitian-creole:Haitian Creole,mejs.hebrew:Hebrew,mejs.hindi:Hindi,mejs.hungarian:Hungarian,mejs.icelandic:Icelandic,mejs.indonesian:Indonesian,mejs.irish:Irish,mejs.italian:Italian,mejs.japanese:Japanese,mejs.korean:Korean,mejs.latvian:Latvian,mejs.lithuanian:Lithuanian,mejs.macedonian:Macedonian,mejs.malay:Malay,mejs.maltese:Maltese,mejs.norwegian:Norwegian,mejs.persian:Persian,mejs.polish:Polish,mejs.portuguese:Portuguese,mejs.romanian:Romanian,mejs.russian:Russian,mejs.serbian:Serbian,mejs.slovak:Slovak,mejs.slovenian:Slovenian,mejs.spanish:Spanish,mejs.swahili:Swahili,mejs.swedish:Swedish,mejs.tagalog:Tagalog,mejs.thai:Thai,mejs.turkish:Turkish,mejs.ukrainian:Ukrainian,mejs.vietnamese:Vietnamese,mejs.welsh:Welsh,mejs.yiddish:Yiddish}};/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver4.2.6-78496d1>/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver5.2.21>/script>script typetext/javascript>/* !CDATA */var _wpmejsSettings {pluginPath:\/wp-includes\/js\/mediaelement\/,classPrefix:mejs-,stretching:responsive};/* > *//script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver5.2.21>/script>script typetext/javascript srchttp://michaelmackinnon.com/wp-includes/js/mediaelement/renderers/vimeo.min.js?ver4.2.6-78496d1>/script>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Fri, 10 Jan 2025 02:34:34 GMTServer: ApacheLink: https://michaelmackinnon.com/wp-json/>; relhttps://api.w.org/Upgrade: h2,h2cConnection: UpgradeVary: Accept-EncodingTransfer-Encoding: chunkedContent-Type: text/html; charsetUTF-8 !DOCTYPE html>html langen-US>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1> link relprofile hrefhttp://gmpg.org/xfn/11> link relpingback hrefhttps://michaelmackinnon.com/xmlrpc.php> !--if lt IE 9> script srchttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/html5.js>/script> !endif--> title>Portfolio/title>link reldns-prefetch href//fonts.googleapis.com />link reldns-prefetch href//s.w.org />link relalternate typeapplication/rss+xml titlePortfolio » Feed hrefhttps://michaelmackinnon.com/feed/ />link relalternate typeapplication/rss+xml titlePortfolio » Comments Feed hrefhttps://michaelmackinnon.com/comments/feed/ /> script typetext/javascript> window._wpemojiSettings {baseUrl:https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/72x72\/,ext:.png,svgUrl:https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/,svgExt:.svg,source:{concatemoji:https:\/\/michaelmackinnon.com\/wp-includes\/js\/wp-emoji-release.min.js?ver5.2.21}}; !function(e,a,t){var n,r,o,ia.createElement(canvas),pi.getContext&&i.getContext(2d);function s(e,t){var aString.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);ei.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),ei.toDataURL()}function c(e){var ta.createElement(script);t.srce,t.defert.typetext/javascript,a.getElementsByTagName(head)0.appendChild(t)}for(oArray(flag,emoji),t.supports{everything:!0,everythingExceptFlag:!0},r0;ro.length;r++)t.supportsorfunction(e){if(!p||!p.fillText)return!1;switch(p.textBaselinetop,p.font600 32px Arial,e){caseflag:return s(55356,56826,55356,56819,55356,56826,8203,55356,56819)?!1:!s(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447,55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447);caseemoji:return!s(55357,56424,55356,57342,8205,55358,56605,8205,55357,56424,55356,57340,55357,56424,55356,57342,8203,55358,56605,8203,55357,56424,55356,57340)}return!1}(or),t.supports.everythingt.supports.everything&&t.supportsor,flag!or&&(t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&t.supportsor);t.supports.everythingExceptFlagt.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady!1,t.readyCallbackfunction(){t.DOMReady!0},t.supports.everything||(nfunction(){t.readyCallback()},a.addEventListener?(a.addEventListener(DOMContentLoaded,n,!1),e.addEventListener(load,n,!1)):(e.attachEvent(onload,n),a.attachEvent(onreadystatechange,function(){completea.readyState&&t.readyCallback()})),(nt.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings); /script> style typetext/css>img.wp-smiley,img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 .07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important;}/style> link relstylesheet idwp-block-library-css hrefhttps://michaelmackinnon.com/wp-includes/css/dist/block-library/style.min.css?ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-normalize-css hrefhttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/normalize.css?ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-fonts-css hrefhttps://fonts.googleapis.com/css?familyOpen+Sans%3A700&ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-fonts-body-css hrefhttps://fonts.googleapis.com/css?familyOpen+Sans%3A400&ver5.2.21 typetext/css mediaall />link relstylesheet idportfolio-font-awesome-css hrefhttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/font.awesome.css?ver4.0.3 typetext/css mediaall />link relstylesheet idportfolio-style-css hrefhttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/style.css?ver5.2.21 typetext/css mediaall />!--if lt IE 9>link relstylesheet idportfolio-ie8-css hrefhttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/ie8.css?ver5.2.21 typetext/css mediaall />!endif-->!--if IE 9>link relstylesheet idportfolio-ie9-css hrefhttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/css/ie9.css?ver5.2.21 typetext/css mediaall />!endif-->script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/jquery/jquery.js?ver1.12.4-wp>/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/jquery/jquery-migrate.min.js?ver1.4.1>/script>link relhttps://api.w.org/ hrefhttps://michaelmackinnon.com/wp-json/ />link relEditURI typeapplication/rsd+xml titleRSD hrefhttps://michaelmackinnon.com/xmlrpc.php?rsd />link relwlwmanifest typeapplication/wlwmanifest+xml hrefhttps://michaelmackinnon.com/wp-includes/wlwmanifest.xml /> meta namemy_reading_library-version content1.0 /> style typetext/css> body { font-family: , sans-serif; } .site-title { font-family: , sans-serif; } .site-main #page { max-width: 1200px; } #primary, #comments, .author-info, .attachment #primary, .site-content.archive #gk-search, .search-no-results .page-content { width: 1080px; } body { -ms-word-break: break-all; word-break: break-all; word-break: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } a, a.inverse:active, a.inverse:focus, a.inverse:hover, button, inputtypesubmit, inputtypebutton, inputtypereset, .entry-summary .readon, .comment-author .fn, .comment-author .url, .comment-reply-link, .comment-reply-login, #content .tags-links a:active, #content .tags-links a:focus, #content .tags-links a:hover, .nav-menu li a:active, .nav-menu li a:focus, .nav-menu li a:hover, ul.nav-menu ul a:hover, .nav-menu ul ul a:hover, .gk-social-buttons a:hover:before, .format-gallery .entry-content .page-links a:hover, .format-audio .entry-content .page-links a:hover, .format-status .entry-content .page-links a:hover, .format-video .entry-content .page-links a:hover, .format-chat .entry-content .page-links a:hover, .format-quote .entry-content .page-links a:hover, .page-links a:hover, .paging-navigation a:active, .paging-navigation a:focus, .paging-navigation a:hover, .comment-meta a:hover, .social-menu li:hover:before, .social-menu-topbar li:hover:before, .entry-title a:hover { color: #5cc1a9; } button, inputtypesubmit, inputtypebutton, inputtypereset, .entry-summary .readon { border: 1px solid #5cc1a9; } body .nav-menu .current_page_item > a, body .nav-menu .current_page_ancestor > a, body .nav-menu .current-menu-item > a, body .nav-menu .current-menu-ancestor > a { border-color: #5cc1a9; color: #5cc1a9!important; } .format-status .entry-content .page-links a, .format-gallery .entry-content .page-links a, .format-chat .entry-content .page-links a, .format-quote .entry-content .page-links a, .page-links a { background: #5cc1a9; border-color: #5cc1a9; } .hentry .mejs-controls .mejs-time-rail .mejs-time-current, .comment-post-author, .sticky .post-preview:after, .entry-header.sticky:after, .article-helper.sticky:after, #prev-post > a:hover, #next-post > a:hover { background: #5cc1a9; } .comments-title > span, .comment-reply-title > span { border-bottom-color: #5cc1a9; } .article-helper { height: 380px; } .site-content.archive article { height: 416px; } .post-preview { padding: 56px 36px 36px 36px; } @media (max-width: 1140px) { .site-content.archive article { height: 336px; } .article-helper { height: 320px; } .post-preview { padding: 20px 16px 36px 16px; } } /style> style typetext/css> .site-content.archive article { width: 25%; } /style> style typetext/css> body.custom-background #main { background-color: #f1f1f1; } /style> /head>body classhome blog> !--if lte IE 8> div idie-toolbar>div>Youre using an unsupported version of Internet Explorer. Please a hrefhttp://windows.microsoft.com/en-us/internet-explorer/products/ie/home>upgrade your browser/a> for the best user experience on our site. Thank you./div>/div> !endif--> header idmasthead classsite-header rolebanner> a classhome-link hrefhttps://michaelmackinnon.com/ titlePortfolio relhome> h1 classsite-title>Portfolio/h1> /a> /header>!-- #masthead --> div idmain classsite-main> div idpage classhfeed site> nav idsite-navigation classmain-navigation rolenavigation> div classmenu-main-menu-container>ul idmenu-main-menu classnav-menu>li idmenu-item-107 classmenu-item menu-item-type-custom menu-item-object-custom menu-item-107>a hrefhttp://www.michaelmackinnon.com>Index/a>/li>li idmenu-item-121 classmenu-item menu-item-type-post_type menu-item-object-page menu-item-121>a hrefhttps://michaelmackinnon.com/about-me/>About/a>/li>li idmenu-item-110 classmenu-item menu-item-type-custom menu-item-object-custom menu-item-110>a hrefhttps://linkedin.com/in/MacKinnonMichael>Linked In/a>/li>/ul>/div> /nav>!-- #site-navigation --> div idprimary classcontent-area> div idcontent classsite-content archive rolemain> article idpost-284 classpost-284 post type-post status-publish format-standard has-post-thumbnail hentry category-game tag-c tag-mobile tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/lemmings/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/lemmings/> img width360 height360 srchttps://michaelmackinnon.com/wp-content/uploads/unnamed.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/unnamed.png 360w, https://michaelmackinnon.com/wp-content/uploads/unnamed-150x150.png 150w, https://michaelmackinnon.com/wp-content/uploads/unnamed-300x300.png 300w sizes(max-width: 360px) 100vw, 360px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/lemmings/ relbookmark> Lemmings /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/lemmings/ relbookmark>p>Lead Programmer for the mobile version of Lemmings. https://play.google.com/store/apps/details?idcom.sadpuppy.lemmings&hlen_GB&glUS/p>div classpost-teaser-block>a hrefhttps://michaelmackinnon.com/game/lemmings/ titlePermanent Link: Lemmings relbookmark>Permanent link to this post/a> (10 words, estimated 2 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-271 classpost-271 post type-post status-publish format-standard has-post-thumbnail hentry category-aaa category-game tag-c tag-unreal tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/programming-for-ndreams/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/programming-for-ndreams/> img width600 height600 srchttps://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21.png 600w, https://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21-150x150.png 150w, https://michaelmackinnon.com/wp-content/uploads/Fracked_03-03-21-300x300.png 300w sizes(max-width: 600px) 100vw, 600px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/programming-for-ndreams/ relbookmark> Programming for nDreams /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/programming-for-ndreams/ relbookmark>div classpage titlePage 1>div classsection>div classlayoutArea>div classcolumn>p>Used Unreal Engine 4 and C++ to develop Vertical Slice Demo of Fracked. More information on the game can be found at https://ndreams.com/games/fracked/p>/div>/div>/div>/div>div classpost-teaser-block>a hrefhttps://michaelmackinnon.com/game/programming-for-ndreams/ titlePermanent Link: Programming for nDreams relbookmark>Permanent link to this post/a> (25 words, estimated 6 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unreal/ reltag>Unreal/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-235 classpost-235 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/the-descent/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/the-descent/> img width527 height503 srchttps://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204.png 527w, https://michaelmackinnon.com/wp-content/uploads/Screenshot-2019-11-08-at-14.07.12-e1573573623204-300x286.png 300w sizes(max-width: 527px) 100vw, 527px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/the-descent/ relbookmark> The Descent /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/the-descent/ relbookmark>figure classwp-block-image>img alt />p>Date: May-October, 2019br />Concept: VR game, guns fighting monsters in mining shaftbr />Team: 3 programmers, 1 artists, 1 audiobr />Platform: Steam VR w/ Hydraulic platformbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Extra Notes:/p>p>Player stands on hydraulic platform and the hydraulic platform moves to simulate lift descending down mine shaft, as well as any knocks or drops the player’s cage may get on the way down. I worked on the AI and animation state diagrams./p>/figure>div classpost-teaser-block>a hrefhttps://michaelmackinnon.com/game/the-descent/ titlePermanent Link: The Descent relbookmark>Permanent link to this post/a> (72 words, 1 image, estimated 17 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-238 classpost-238 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-programming tag-ar tag-c tag-multithreaded tag-networking tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/programming/lecturer-in-game-programming/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/programming/lecturer-in-game-programming/> img width225 height225 srchttps://michaelmackinnon.com/wp-content/uploads/uni-logo-1.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/uni-logo-1.png 225w, https://michaelmackinnon.com/wp-content/uploads/uni-logo-1-150x150.png 150w sizes(max-width: 225px) 100vw, 225px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/programming/lecturer-in-game-programming/ relbookmark> Lecturer in Game Programming /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/programming/lecturer-in-game-programming/ relbookmark>p>Date: Sept 2018 – Mar 2019br />Extra Notes:br />Taught classes and labs in the following courses:br />Games Engine Creation (1st)br />Fundamentals of Graphical Programming (1st)br />Concurrent Network Applications (2nd)br />Maths and Algorithms (2nd)br />VR & AR programming (2nd)br />Multiplayer Games (3rd)/p>div classpost-teaser-block>a hrefhttps://michaelmackinnon.com/programming/lecturer-in-game-programming/ titlePermanent Link: Lecturer in Game Programming relbookmark>Permanent link to this post/a> (42 words, estimated 10 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/ar/ reltag>AR/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/multithreaded/ reltag>Multithreaded/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/networking/ reltag>Networking/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-233 classpost-233 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-ar tag-ipad tag-mobile tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/zombie-pirates/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/zombie-pirates/> img width960 height720 srchttps://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o.jpg classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o.jpg 960w, https://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o-300x225.jpg 300w, https://michaelmackinnon.com/wp-content/uploads/55861077_2273665159358500_4529738798333952_o-768x576.jpg 768w sizes(max-width: 960px) 100vw, 960px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/zombie-pirates/ relbookmark> Zombie Pirates /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/zombie-pirates/ relbookmark>p>Date: 2018br />Concept: AR game fighting Zombie Piratesbr />Team: 2 programmers, 2 artists, 1 audiobr />Platform: iPadbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Extra Notes:/p>p>Kids on cruise ship can borrow iPads from the operator. Then they start the game, and point the iPad at the AR target on the wall. Zombie pirates appear to burst through the wall towards the child and the child shoots their cannon at the zombies. The highest scores get recorded on monitors next to the AR target./p>p>a hrefhttp://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg>img classalignleft size-full wp-image-265 srchttp://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg alt width2220 height1080 srcsethttps://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o.jpg 2220w, https://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-300x146.jpg 300w, https://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-768x374.jpg 768w, https://michaelmackinnon.com/wp-content/uploads/55912319_2273665149358501_1313550081726611456_o-1024x498.jpg 1024w sizes(max-width: 2220px) 100vw, 2220px />/a>/p>div classpost-teaser-block>a hrefhttps://michaelmackinnon.com/game/zombie-pirates/ titlePermanent Link: Zombie Pirates relbookmark>Permanent link to this post/a> (83 words, 1 image, estimated 20 secs reading time)/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/ar/ reltag>AR/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/ipad/ reltag>iPad/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-205 classpost-205 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/the-tower/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/the-tower/> img width3508 height4961 srchttps://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2.png 3508w, https://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-212x300.png 212w, https://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-768x1086.png 768w, https://michaelmackinnon.com/wp-content/uploads/Front_Final_Final2-724x1024.png 724w sizes(max-width: 3508px) 100vw, 3508px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/the-tower/ relbookmark> The Tower /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/the-tower/ relbookmark>p>Date: August 2016br />Concept: A VR archery game taking place in an ancient tower.br />Team (5):br />Aaron Humphries (3D Artist)br />Ben Luff (Designer/Programmer/Audio)br />Chris Winn (Designer)br />Michael MacKinnon (Producer/Programmer)br />Nelson de Costa (Programmer)/p>p>Platform: Windows with HTC Vivebr />Engine: Unity Engine 5.4/p>p>Role: Producer and Programmer (Gameplay/Audio)/p>p>Extra Notes:br />The game makes use of 3m x 3m play area with no teleportation. A tower is used so thatbr />the player can move vertically to encounter new areas to experience. This allows for thebr />elimination of teleportation and forces the player to fully immerse themselves into thebr />room-scale element of the game./p>div classpost-teaser-block>This is a preview of q>The Tower/q>. a hrefhttps://michaelmackinnon.com/game/the-tower/ titlePermanent Link: The Tower relbookmark>Read the full post (599 words, 11 images, estimated 2:24 mins reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-200 classpost-200 post type-post status-publish format-standard has-post-thumbnail hentry category-coursework category-game category-tech-demo tag-c tag-mobile tag-networking tag-unity tag-vr data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/networking-team-tanks/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/networking-team-tanks/> img width2844 height1362 srchttps://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard.png 2844w, https://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-300x144.png 300w, https://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-768x368.png 768w, https://michaelmackinnon.com/wp-content/uploads/Tanks-on-cardboard-1024x490.png 1024w sizes(max-width: 2844px) 100vw, 2844px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/networking-team-tanks/ relbookmark> Networking: Team Tanks /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/networking-team-tanks/ relbookmark>p>Date: April 2016br />Concept: two players operate a tank togetherbr />Team: Solobr />Platform: Windowsbr />Engine: Unity Engine/p>p>Role: Programmer/p>p>Repository: a hrefhttps://github.com/stuff13/TeamTanks>https://github.com/stuff13/TeamTanks/a>/p>p>Extra Notes:br />This was the final project for a Networking course.br />The Assignment: create a networked game environmentbr />What I developed: To add something extra, I decided to do a cross platform networked game.br />A PC would act as server with two players: a player on the PC server and a player onbr />an iPhone using Google Cardboard.br />Player 1 on the PC moved a tank around the environment and had a good clear view.br />Player 2 on the iPhone using Google Cardboard moved the tank’s turret by turning the phone to look in another direction. By tapping on the screen, the player could fire a projectile into the scene./p>div classpost-teaser-block>This is a preview of q>Networking: Team Tanks/q>. a hrefhttps://michaelmackinnon.com/game/networking-team-tanks/ titlePermanent Link: Networking: Team Tanks relbookmark>Read the full post (129 words, 1 image, estimated 31 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/mobile/ reltag>Mobile/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/networking/ reltag>Networking/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/vr/ reltag>VR/a>/li>/ul> /div>/article>!-- #post --> article idpost-196 classpost-196 post type-post status-publish format-standard has-post-thumbnail hentry category-coursework category-game category-tech-demo tag-cplusplus tag-tests tag-unreal data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/ai-driving/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/ai-driving/> img width960 height542 srchttps://michaelmackinnon.com/wp-content/uploads/AIDriver.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/AIDriver.png 960w, https://michaelmackinnon.com/wp-content/uploads/AIDriver-300x169.png 300w, https://michaelmackinnon.com/wp-content/uploads/AIDriver-768x434.png 768w sizes(max-width: 960px) 100vw, 960px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/ai-driving/ relbookmark> AI Driving /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/ai-driving/ relbookmark>p>Date: December 2015br />Concept: Driving around a track by AIbr />Team: Solobr />Platform: Windowsbr />Engine: Unreal Engine/p>p>Role: Programmer/p>p>Extra Notes:br />This was the final project for an AI course.br />The Assignment: create top-down 2D view of a car driving along a vertical line. Providebr />input controls that allow you to shift the car right or left and use a Fuzzy Logicbr />Controller to control steering the car back to the vertical line.br />What I developed: To add some extra challenge to my assignment, I took the 3D car driving gamebr />sample from Unreal Engine and spliced in an AI controller in place of the inputbr />controls. I then created the Fuzzy Logic Controller supported with automated tests (sobr />I could modify the FLC if needed later with confidence) and gave it to the AI Controller./p>div classpost-teaser-block>This is a preview of q>AI Driving/q>. a hrefhttps://michaelmackinnon.com/game/ai-driving/ titlePermanent Link: AI Driving relbookmark>Read the full post (138 words, estimated 33 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/cplusplus/ reltag>CPlusPlus/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/tests/ reltag>tests/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unreal/ reltag>Unreal/a>/li>/ul> /div>/article>!-- #post --> article idpost-187 classpost-187 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/apco-trainer/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/apco-trainer/> img width1024 height767 srchttps://michaelmackinnon.com/wp-content/uploads/1.jpg classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/1.jpg 1024w, https://michaelmackinnon.com/wp-content/uploads/1-300x225.jpg 300w, https://michaelmackinnon.com/wp-content/uploads/1-768x575.jpg 768w sizes(max-width: 1024px) 100vw, 1024px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/apco-trainer/ relbookmark> APCO Trainer /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/apco-trainer/ relbookmark>p>Date: February 2016br />Concept: The game presents users with a scenario and a fully explorable, 3D object. Different areas of the object can then be highlighted and interacted with (e.g. removing the back of a phone, unplugging the Ethernet from a PC tower, or ejecting the disk from a games console), with the final aim being to submit the object in an appropriate state for future testing./p>p>Team (4):br />Ben Luff (Designer)br />Chris Winn (Designer/3D Modeller)br />Louis Dimmock (Programmer)br />Michael MacKinnon (Producer/Programmer)/p>p>Platform: Windowsbr />Engine: Unity Enginebr />My Role: Producer and Programmer (Gameplay/Audio)/p>div classpost-teaser-block>This is a preview of q>APCO Trainer/q>. a hrefhttps://michaelmackinnon.com/game/apco-trainer/ titlePermanent Link: APCO Trainer relbookmark>Read the full post (190 words, 5 images, estimated 46 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> article idpost-180 classpost-180 post type-post status-publish format-standard has-post-thumbnail hentry category-game category-indie tag-c tag-unity data-cols4> div classarticle-helper notloaded> div classpost-preview transition animation animation-slide-up data-urlhttps://michaelmackinnon.com/game/cult-v-cult-the-myxtery/> header classentry-header full-width-image data-urlhttps://michaelmackinnon.com/game/cult-v-cult-the-myxtery/> img width708 height502 srchttps://michaelmackinnon.com/wp-content/uploads/screen_intro.png classattachment-gk-portfolio-size size-gk-portfolio-size wp-post-image alt srcsethttps://michaelmackinnon.com/wp-content/uploads/screen_intro.png 708w, https://michaelmackinnon.com/wp-content/uploads/screen_intro-300x213.png 300w sizes(max-width: 708px) 100vw, 708px /> h2 classentry-title> a hrefhttps://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ relbookmark> Cult V Cult: The Myxtery /a> /h2> /header>!-- .entry-header --> div classentry-summary> a hrefhttps://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ relbookmark>p>Date: January 2016br />Concept: You and your cult buddies need to work together to sate the hunger of Sassarilla the demon. Sassy has a craving for you and your friends delicious mortal bodies. Create the right concoctions as a team to keep Sassy at bay. Wait though, while you do that you need create your own secret (read not secret) potions to gain favour with Sassy and save yourself leaving your friends to be devoured.br />Team (5):br />Blair Gray (Designer)br />Caitlin Goodale (Artist)br />Glenn Patrick Cullen (Programmer)br />Inka Nieminen (Artist)br />Michael MacKinnon (Programmer)/p>p>Platform: Windows with PS4 Controllersbr />Engine: Unity Engine/p>div classpost-teaser-block>This is a preview of q>Cult V Cult: The Myxtery/q>. a hrefhttps://michaelmackinnon.com/game/cult-v-cult-the-myxtery/ titlePermanent Link: Cult V Cult: The Myxtery relbookmark>Read the full post (125 words, 4 images, estimated 30 secs reading time)/a>/div>/a> /div>!-- .entry-summary --> /div> ul classtags-links>li>a hrefhttps://michaelmackinnon.com/tag/c/ reltag>C#/a>, /li>li>a hrefhttps://michaelmackinnon.com/tag/unity/ reltag>Unity/a>/li>/ul> /div>/article>!-- #post --> /div>!-- #content --> nav classnavigation paging-navigation rolenavigation> div classnav-links> div classnav-previous>a hrefhttps://michaelmackinnon.com/page/2/ >Older posts/a>/div> span classpagination-item>Page 1 of 2/span> /div>!-- .nav-links --> /nav>!-- .navigation --> /div>!-- #primary --> /div>!-- #main --> /div>!-- #page --> footer idgk-footer rolecontentinfo> div idgk-bottom rolecomplementary> div classwidget-area> div idcategories-3 classwidget widget_categories>h3 classwidget-title>Categories/h3> ul> li classcat-item cat-item-33>a hrefhttps://michaelmackinnon.com/category/game/aaa/>AAA/a>/li> li classcat-item cat-item-35>a hrefhttps://michaelmackinnon.com/category/game/coursework/>Coursework/a>/li> li classcat-item cat-item-32>a hrefhttps://michaelmackinnon.com/category/game/>Game/a>/li> li classcat-item cat-item-34>a hrefhttps://michaelmackinnon.com/category/game/indie/>Indie/a>/li> li classcat-item cat-item-3>a hrefhttps://michaelmackinnon.com/category/programming/>Programming/a>/li> li classcat-item cat-item-38>a hrefhttps://michaelmackinnon.com/category/game/coursework/tech-demo/>Tech Demo/a>/li> /ul> /div>div idarchives-4 classwidget widget_archive>h3 classwidget-title>Archives/h3> ul> li>a hrefhttps://michaelmackinnon.com/2022/02/>February 2022/a> (1)/li> li>a hrefhttps://michaelmackinnon.com/2020/04/>April 2020/a> (1)/li> li>a hrefhttps://michaelmackinnon.com/2019/11/>November 2019/a> (3)/li> li>a hrefhttps://michaelmackinnon.com/2016/09/>September 2016/a> (8)/li> li>a hrefhttps://michaelmackinnon.com/2012/07/>July 2012/a> (1)/li> /ul> /div>div idmy-reading-library classwidget mrl_widget>h3 classwidget-title>My Reading Library/h3>div classmy-reading-library> br> h4>u>strong>Current Books:/strong>/u>/h4> table stylefont-size:9px;>tr>td stylevertical-align:top;>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/0735627045/refnosim/celallwin-21>img srchttp://ecx.images-amazon.com/images/I/412wa7iEt3L._SL75_.jpg altCLR via C# />/a>/td>td stylevertical-align:top;>a hrefhttp://michaelmackinnon.com/index.php?my_reading_library_authorjeffrey-richter&my_reading_library_titleclr-via-c>strong>CLR via C#/strong>/a>br>By Jeffrey Richterbr>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/0735627045/refnosim/celallwin-21#customerReviews>Amazon Customer Reviews/a>br>Planned Book/td>/tr>/table> table stylefont-size:9px;>tr>td stylevertical-align:top;>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/1407109367/refnosim/celallwin-21>img srchttp://ecx.images-amazon.com/images/I/51tVK4drmVL._SL75_.jpg altThe Hunger Games: Catching fire />/a>/td>td stylevertical-align:top;>a hrefhttp://michaelmackinnon.com/index.php?my_reading_library_authorsuzanne-collins&my_reading_library_titlethe-hunger-games-catching-fire>strong>The Hunger Games: Catching fire/strong>/a>br>By Suzanne Collinsbr>a target_blank hrefhttp://www.amazon.com/exec/obidos/ASIN/1407109367/refnosim/celallwin-21#customerReviews>Amazon Customer Reviews/a>br>Planned Book/td>/tr>/table> /div>/div> /div> /div> div idgk-social> div classmenu-social-menu-container>ul idmenu-social-menu classsocial-menu>li idmenu-item-112 classicon-gplus menu-item menu-item-type-custom menu-item-object-custom menu-item-112>a href#>Google+/a>/li>li idmenu-item-113 classicon-fb menu-item menu-item-type-custom menu-item-object-custom menu-item-113>a href#>Fb/a>/li>li idmenu-item-114 classicon-twitter menu-item menu-item-type-custom menu-item-object-custom menu-item-114>a href#>Twitter/a>/li>li idmenu-item-115 classicon-pinterest menu-item menu-item-type-custom menu-item-object-custom menu-item-115>a href#>Pinterest/a>/li>li idmenu-item-116 classicon-youtube menu-item menu-item-type-custom menu-item-object-custom menu-item-116>a href#>Youtube/a>/li>li idmenu-item-117 classicon-rss menu-item menu-item-type-custom menu-item-object-custom menu-item-117>a href#>RSS/a>/li>/ul>/div> /div> div idgk-copyrights> p classcopyright>Free WordPress Theme designed by a hrefhttps://www.gavick.com>Gavick.com/a>/p> p classpoweredby>Proudly published with a hrefhttp://wordpress.org/>WordPress/a>/p> /div>!-- .site-info --> /footer>!-- end of #gk-footer --> span classscauto-footer>small>© 2025 - a hrefhttps://michaelmackinnon.com/privacy-policy/ relnofollow>Privacy Policy/a>/small>/span>link relstylesheet idmediaelement-css hrefhttps://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver4.2.6-78496d1 typetext/css mediaall />link relstylesheet idwp-mediaelement-css hrefhttps://michaelmackinnon.com/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver5.2.21 typetext/css mediaall />script typetext/javascript srchttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/functions.js?ver5.2.21>/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-content/themes/gk-portfolio/js/jquery.fitvids.js?ver5.2.21>/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/wp-embed.min.js?ver5.2.21>/script>script typetext/javascript>var mejsL10n {language:en,strings:{mejs.install-flash:You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/,mejs.fullscreen-off:Turn off Fullscreen,mejs.fullscreen-on:Go Fullscreen,mejs.download-video:Download Video,mejs.fullscreen:Fullscreen,mejs.time-jump-forward:Jump forward 1 second,Jump forward %1 seconds,mejs.loop:Toggle Loop,mejs.play:Play,mejs.pause:Pause,mejs.close:Close,mejs.time-slider:Time Slider,mejs.time-help-text:Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds.,mejs.time-skip-back:Skip back 1 second,Skip back %1 seconds,mejs.captions-subtitles:Captions\/Subtitles,mejs.captions-chapters:Chapters,mejs.none:None,mejs.mute-toggle:Mute Toggle,mejs.volume-help-text:Use Up\/Down Arrow keys to increase or decrease volume.,mejs.unmute:Unmute,mejs.mute:Mute,mejs.volume-slider:Volume Slider,mejs.video-player:Video Player,mejs.audio-player:Audio Player,mejs.ad-skip:Skip ad,mejs.ad-skip-info:Skip in 1 second,Skip in %1 seconds,mejs.source-chooser:Source Chooser,mejs.stop:Stop,mejs.speed-rate:Speed Rate,mejs.live-broadcast:Live Broadcast,mejs.afrikaans:Afrikaans,mejs.albanian:Albanian,mejs.arabic:Arabic,mejs.belarusian:Belarusian,mejs.bulgarian:Bulgarian,mejs.catalan:Catalan,mejs.chinese:Chinese,mejs.chinese-simplified:Chinese (Simplified),mejs.chinese-traditional:Chinese (Traditional),mejs.croatian:Croatian,mejs.czech:Czech,mejs.danish:Danish,mejs.dutch:Dutch,mejs.english:English,mejs.estonian:Estonian,mejs.filipino:Filipino,mejs.finnish:Finnish,mejs.french:French,mejs.galician:Galician,mejs.german:German,mejs.greek:Greek,mejs.haitian-creole:Haitian Creole,mejs.hebrew:Hebrew,mejs.hindi:Hindi,mejs.hungarian:Hungarian,mejs.icelandic:Icelandic,mejs.indonesian:Indonesian,mejs.irish:Irish,mejs.italian:Italian,mejs.japanese:Japanese,mejs.korean:Korean,mejs.latvian:Latvian,mejs.lithuanian:Lithuanian,mejs.macedonian:Macedonian,mejs.malay:Malay,mejs.maltese:Maltese,mejs.norwegian:Norwegian,mejs.persian:Persian,mejs.polish:Polish,mejs.portuguese:Portuguese,mejs.romanian:Romanian,mejs.russian:Russian,mejs.serbian:Serbian,mejs.slovak:Slovak,mejs.slovenian:Slovenian,mejs.spanish:Spanish,mejs.swahili:Swahili,mejs.swedish:Swedish,mejs.tagalog:Tagalog,mejs.thai:Thai,mejs.turkish:Turkish,mejs.ukrainian:Ukrainian,mejs.vietnamese:Vietnamese,mejs.welsh:Welsh,mejs.yiddish:Yiddish}};/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver4.2.6-78496d1>/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver5.2.21>/script>script typetext/javascript>/* !CDATA */var _wpmejsSettings {pluginPath:\/wp-includes\/js\/mediaelement\/,classPrefix:mejs-,stretching:responsive};/* > *//script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver5.2.21>/script>script typetext/javascript srchttps://michaelmackinnon.com/wp-includes/js/mediaelement/renderers/vimeo.min.js?ver4.2.6-78496d1>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]