{"id":216,"date":"2022-09-02T08:31:14","date_gmt":"2022-09-02T08:31:14","guid":{"rendered":"https:\/\/blogs.scummvm.org\/quote58\/?p=216"},"modified":"2023-03-31T23:26:08","modified_gmt":"2023-03-31T23:26:08","slug":"weekly-update-3","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/quote58\/2022\/09\/02\/weekly-update-3\/","title":{"rendered":"Weekly Update"},"content":{"rendered":"<h3>Welcome<\/h3>\n<p>Just a quick update tonight. We are nearing the end of the program, with the deadline being September 12th. However, I have decided with my mentor to extend the timeline by an additional two weeks. The reason for this, is that the engine is only just now getting sprite drawing implemented, and with an additional two weeks I can hopefully get the first scene being rendered. Over the last few months I have been working to build the foundation of the engine, translating and building each subsystem. However much of that does not have a direct visual component. I am now at the point where I can implement sprite drawing and finally add a visual component. That being said, sprite drawing is not as simple as it may seem. I won&#8217;t go too far into it in this post, but essentially there is another aspect to sprites that I had not taken into account yet. What I thought was a simple bitmap turned out to be a complicated system of individual scan lines. Here is an updated sprite diagram:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-217\" src=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM.png\" alt=\"\" width=\"3178\" height=\"2032\" srcset=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM.png 3178w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-300x192.png 300w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-1024x655.png 1024w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-768x491.png 768w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-1536x982.png 1536w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-2048x1309.png 2048w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-09-02-at-4.11.04-AM-1568x1003.png 1568w\" sizes=\"auto, (max-width: 3178px) 100vw, 3178px\" \/><\/p>\n<p>Where S stands for scanlineWidth, D stands for DeltaX (offset before starting the scanline), and B stands for bitmap (with P standing for pixel). And this extremely simplified flowchart shows what is generally involved in putting together a sprite from start to finish:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-218\" src=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM.png\" alt=\"\" width=\"1886\" height=\"1664\" srcset=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM.png 1886w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM-300x265.png 300w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM-1024x903.png 1024w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM-768x678.png 768w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM-1536x1355.png 1536w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/Screen-Shot-2022-08-31-at-4.32.13-AM-1568x1383.png 1568w\" sizes=\"auto, (max-width: 1886px) 100vw, 1886px\" \/><\/p>\n<p>As you can see, there is quite a lot involved in what ultimately makes up a single sprite on screen. But we&#8217;re getting there! Here&#8217;s an example of a sprite being almost drawn correctly<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-332\" src=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/bad-wizard.png\" alt=\"\" width=\"468\" height=\"442\" srcset=\"https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/bad-wizard.png 468w, https:\/\/blogs.scummvm.org\/quote58\/wp-content\/uploads\/sites\/54\/2022\/09\/bad-wizard-300x283.png 300w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/p>\n<p>There are still some alignment issues (that deltaX mentioned earlier), but it is certainly getting the right data, and hopefully I&#8217;ll have it drawing correctly soon.<\/p>\n<p>Alright, that&#8217;s all for now. I will have more updates for the next two weeks while I use the time to try and get closer to a full scene being rendered.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Welcome Just a quick update tonight. We are nearing the end of the program, with the deadline being September 12th. However, I have decided with my mentor to extend the timeline by an additional two weeks. The reason for this, is that the engine is only just now getting sprite drawing implemented, and with an&hellip; <a class=\"more-link\" href=\"https:\/\/blogs.scummvm.org\/quote58\/2022\/09\/02\/weekly-update-3\/\">Continue reading <span class=\"screen-reader-text\">Weekly Update<\/span><\/a><\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-216","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/posts\/216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/comments?post=216"}],"version-history":[{"count":3,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/posts\/216\/revisions"}],"predecessor-version":[{"id":333,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/posts\/216\/revisions\/333"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/media?parent=216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/categories?post=216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/quote58\/wp-json\/wp\/v2\/tags?post=216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}