{"id":16,"date":"2019-06-01T09:39:18","date_gmt":"2019-06-01T09:39:18","guid":{"rendered":"https:\/\/blogs.scummvm.org\/nipungarg\/?p=16"},"modified":"2022-05-22T09:40:22","modified_gmt":"2022-05-22T09:40:22","slug":"gsoc-update-week-1","status":"publish","type":"post","link":"https:\/\/blogs.scummvm.org\/nipungarg\/2019\/06\/01\/gsoc-update-week-1\/","title":{"rendered":"GSOC Update: Week 1"},"content":{"rendered":"<p>The first week of GSoC is nearly over, so this seems to be the perfect opportunity for an update.<\/p>\n<h3 id=\"accomplishments\">Accomplishments<\/h3>\n<p>Starting on a positive note, let\u2019s go over the things that well. When I originally planned my project, I expected that I will have to build the low-level subsystems before going on to anything higher-level. Now that I have had some time to go through the original engine\u2019s codebase in depth, I have realized that I don\u2019t need that much low-level work to basically get started. So, I am revising my expectations: I would likely spending a lot of time going back and forth between the low-level subsystems and the actual game code.<\/p>\n<p>Moving towards the actual tangible accomplishments, I have gotten pretty comfortable working with Surfaces, and drawing things to the screen. I started by drawing lines, and then moved on to drawing from the data file. The filesystem I had setup before had a few errors and I spent most of yesterday rooting them out. But it definitely paid off since now I can extract the various tiles, pictures and maps from the MPC file.<\/p>\n<p>Today, I finally nailed down the drawing from file portion. Now that I have a good understanding how to extract data through the ScummVM API, I have managed to draw images and tiles to the game screen. Below is a screenshot of the Logo Screen, with a Ground Tile put on top.<\/p>\n<p><a href=\"https:\/\/blogs.scummvm.org\/nipungarg\/wp-content\/uploads\/sites\/28\/2019\/06\/logoScreen.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-18\" src=\"https:\/\/blogs.scummvm.org\/nipungarg\/wp-content\/uploads\/sites\/28\/2019\/06\/logoScreen.png\" alt=\"\" width=\"802\" height=\"641\" srcset=\"https:\/\/blogs.scummvm.org\/nipungarg\/wp-content\/uploads\/sites\/28\/2019\/06\/logoScreen.png 802w, https:\/\/blogs.scummvm.org\/nipungarg\/wp-content\/uploads\/sites\/28\/2019\/06\/logoScreen-300x240.png 300w, https:\/\/blogs.scummvm.org\/nipungarg\/wp-content\/uploads\/sites\/28\/2019\/06\/logoScreen-768x614.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><\/a>As far as Lua is concerned, I\u2019m just getting started with it and its my next target. From the Lua code I have read in other engines, it seems I have write an extended Lua interpreter with code extensions. Seems doable, but I\u2019m still trying to get a feel for the Lua-C API. As far as the compatibility problem is concerned, I\u2019m going to go ahead with 5.1.3 right on, and add the compatibility file if errors start propping up.<\/p>\n<h3 id=\"objectives\">Objectives<\/h3>\n<ol>\n<li>Setup the LuaScript code so I can load and execute Lua chunks.<\/li>\n<li>Understand the existing Lua code further, namely how to extend the default interpreter with new functions.<\/li>\n<li>Once the Lua system properly works, I can try to load the Lua and execute portions of the game.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>The first week of GSoC is nearly over, so this seems to be the perfect opportunity for an update. Accomplishments Starting on a positive note, let\u2019s go over the things that well. When I originally planned my project, I expected that I will have to build the low-level subsystems before going on to anything higher-level. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-16","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/comments?post=16"}],"version-history":[{"count":2,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/posts\/16\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.scummvm.org\/nipungarg\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}