{"id":54,"date":"2022-08-18T16:33:26","date_gmt":"2022-08-18T04:33:26","guid":{"rendered":"http:\/\/kyleclarke.co.nz\/blog\/?p=54"},"modified":"2022-08-18T16:33:26","modified_gmt":"2022-08-18T04:33:26","slug":"always-maintain-shippable-code-day-four-update","status":"publish","type":"post","link":"http:\/\/kyleclarke.co.nz\/blog\/always-maintain-shippable-code-day-four-update\/","title":{"rendered":"Always maintain shippable code: Day four update"},"content":{"rendered":"\n<p>Today&#8217;s update is really a lack of update. This is a great opportunity to introduce my holy commandments; my hero John Romero (of Id Software fame) has a fantastic talk where he recalls the early years of Id Software and explains the <a href=\"https:\/\/github.com\/anttiviljami\/romero-programming-principles\">principles of programming<\/a> they developed while rapidly building a tonne of games with a very small team at Id software, including <a href=\"https:\/\/www.gog.com\/en\/game\/doom_1993\">Doom<\/a>.<\/p>\n\n\n\n<p>John says that you must always maintain shippable code. This means that you should always be able to play and test at any moment during development. I have broken this rule by ambitiously working on the Level editor for my game which has completely broken playability of the game. But that&#8217;s OK, John has another rule &#8220;Great tools, make great games&#8221;. As I&#8217;m protected by the concept of necessity in criminal law, I&#8217;m OK with breaking one of John&#8217;s rules to prevent a worse crime.<\/p>\n\n\n\n<p>Hopefully by tomorrow I&#8217;ll be able to provide a demo of my level editor; which was the main purpose of this Game Jam. To build the necessary building blocks so that my kids and me can build out a really solid Strategy Game.<\/p>\n\n\n\n<p><a href=\"https:\/\/romero.com\/shop\/p\/programming-poster-xkd2d\">Buy the poster from John Romero&#8217;s personal shop<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/tomlutzenberger.github.io\/id-software-programming-principles\/\">Full list of John Romero&#8217;s programming principles<\/a><\/p>\n\n\n\n<p>John&#8217;s talk on the Early days of Id Software and his programming principles from GDC 2016:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The Early Days of id Software\" width=\"790\" height=\"444\" src=\"https:\/\/www.youtube.com\/embed\/E2MIpi8pIvY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today&#8217;s update is really a lack of update. This is a great opportunity to introduce my holy commandments; my hero John Romero (of Id Software fame) has a fantastic talk [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":55,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[],"class_list":["post-54","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-game-dev","category-rts-game-jam"],"_links":{"self":[{"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/posts\/54","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/comments?post=54"}],"version-history":[{"count":1,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions"}],"predecessor-version":[{"id":56,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/posts\/54\/revisions\/56"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/media\/55"}],"wp:attachment":[{"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/media?parent=54"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/categories?post=54"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kyleclarke.co.nz\/blog\/wp-json\/wp\/v2\/tags?post=54"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}