{"id":66,"date":"2022-08-19T13:31:35","date_gmt":"2022-08-19T13:31:35","guid":{"rendered":"https:\/\/leonwoud.com\/devblog\/?p=66"},"modified":"2022-08-22T12:55:12","modified_gmt":"2022-08-22T12:55:12","slug":"introducing-static-rectangle-engine","status":"publish","type":"post","link":"https:\/\/leonwoud.com\/devblog\/introducing-static-rectangle-engine\/","title":{"rendered":"Introducing Static Rectangle Engine"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"744\" src=\"https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-1024x744.png\" alt=\"\" class=\"wp-image-67\" srcset=\"https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-1024x744.png 1024w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-300x218.png 300w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-768x558.png 768w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-1536x1116.png 1536w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-250x182.png 250w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-550x400.png 550w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-800x581.png 800w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-248x180.png 248w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-413x300.png 413w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr-688x500.png 688w, https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/sr.png 2011w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Static Rectangle Engine lives!<\/figcaption><\/figure>\n\n\n\n<p>I started this project a few weeks ago, the goal? make my own game engine, why? purely educational reasons honestly. In my humble (and uneducated) opinion, there are a number of reasons someone may want to build their own game engine today, even in the land of Unity \/ Unreal and Godot etc. Full unbridled control and comprehension would be first and foremost. For me this is rather important, over my many years I have seen projects of great potential buckle and fold when those appointed to maintain them weren&#8217;t given the time to fully grasp them. <\/p>\n\n\n\n<p>Realistically, if I were to take a game to market I think I would utilise Unity, Unreal or Godot. I am in no position to write my own <em>commercial<\/em> game engine from the ground up, certainly not one that can ship across multiple platforms. I do not, or could not presume to know better than the thousands of insanely talented developers behind those offerings.<\/p>\n\n\n\n<p>All this said, for this project I really have one important goal in mind, education. There are many aspects of game development that I find really inspiring and given the world today, immersing yourself in what inspires you can only be a good thing.<\/p>\n\n\n\n<p>So here we are, I have embarked on a new project&#8230; I introduce to you, Static Rectangle Engine. This is a tongue-in-cheek working title, and was given this name because after a week of work learning the Vulkan API all I had to show for it was a &#8220;static rectangle&#8221;.<\/p>\n\n\n\n<p>This project is written in C++ and will be utilising the Vulkan Graphics API. As you may be able to tell from the screenshots \/ recording I am currently developing on a MacBook but will be setting this up to cross compile on my Windows workstation (something I haven&#8217;t attempted before). My current plans are to implement a deferred renderer (maybe.. as research suggests forward renderers are coming back in favour) and Physically Based Rendering. I&#8217;d love to investigate my own physics engine even knowing I am not even remotely qualified, I&#8217;m sure that&#8217;d yield hilarious results which I think is still meaningful.<\/p>\n\n\n\n<p>As you can see from this, I have quite some way to go.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"506\" style=\"aspect-ratio: 614 \/ 506;\" width=\"614\" controls src=\"https:\/\/leonwoud.com\/devblog\/wp-content\/uploads\/2022\/08\/spinny.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I started this project a few weeks ago, the goal? make my own game engine, why? purely educational reasons honestly. In my humble (and uneducated) opinion, there are a number of reasons someone may want to build their own game engine today, even in the land of Unity \/ Unreal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bgseo_title":"","bgseo_description":"","bgseo_robots_index":"index","bgseo_robots_follow":"follow","footnotes":""},"categories":[9],"tags":[11,10],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-game-dev","tag-static-rectangle","tag-vulkan"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/posts\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":5,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":206,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/posts\/66\/revisions\/206"}],"wp:attachment":[{"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/media?parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/categories?post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leonwoud.com\/devblog\/wp-json\/wp\/v2\/tags?post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}