<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>ShadowyNoobDev</title>
        <link>https://paragraph.com/@shadowynoobdev</link>
        <description>I make blockchain games with rust.</description>
        <lastBuildDate>Wed, 03 Jun 2026 18:49:07 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>ShadowyNoobDev</title>
            <url>https://storage.googleapis.com/papyrus_images/e864271078efbbece8fc1f9d0018b07960e790d0b553c5504861ca54e8c2fc9d.png</url>
            <link>https://paragraph.com/@shadowynoobdev</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[[GameAWeek] Week #3 Recap]]></title>
            <link>https://paragraph.com/@shadowynoobdev/gameaweek-week-3-recap</link>
            <guid>pUZ4vCe9jfoMAQCWQeMZ</guid>
            <pubDate>Sun, 17 Apr 2022 10:36:33 GMT</pubDate>
            <description><![CDATA[This week hasn’t been as productive as I initially hoped. There were 2 days where I didn’t have much time to work on the app. I also took 1 day off to spend time with my family and had a throbbing headache yesterday. Yes I know, it’s a whole buttload of excuses. I won’t deny it because it is. Let’s do better next week.Project ideaThe goal for this week was to build an NFT viewer (I’m calling the app Pocket). You can think of it as a Pokédex but for NFTs. The idea behind Pocket is to give user...]]></description>
            <content:encoded><![CDATA[<p>This week hasn’t been as productive as I initially hoped. There were 2 days where I didn’t have much time to work on the app. I also took 1 day off to spend time with my family and had a throbbing headache yesterday. Yes I know, it’s a whole buttload of excuses. I won’t deny it because it is. Let’s do better next week.</p><h1 id="h-project-idea" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Project idea</h1><p>The goal for this week was to build an NFT viewer (I’m calling the app Pocket). You can think of it as a Pokédex but for NFTs. The idea behind Pocket is to give users a way to easily show off their NFT collection, to search and buy other NFTs (future scope).</p><h1 id="h-scope" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Scope</h1><p>The scope that I had planned was as follows:</p><ul><li><p>connect a user’s wallet</p></li><li><p>get all NFTs of a particular address (moralis / opensea provides an API for this)</p></li><li><p>provide a way for users to search NFT contract address</p></li><li><p>a clean and simple way to display NFTs</p></li><li><p>a smart contract marketplace that allows users to trade their NFTs (future scope if Pocket gains traction)</p></li></ul><p>This looks like a week’s worth of work; I already have some code for task 1, tasks 2 and 3 <em>should</em> be doable within a day and task 5 is an extension. I was only a little worried about task 4 since UI was never my strong suit. I decided to challenge myself to make a more professional looking app. I imposed on myself an additional condition of making the app responsive (to different UIs) and to have some cool animation (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/ShadowyNoobDev/status/1514847598972063748">design mock ups</a>).</p><h1 id="h-problems-i-encountered" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Problems I encountered</h1><p>I found this really <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/miskatonicstudio/interactive-book-godot">cool example</a> on Godot which looks almost like what I had in mind for my UI so I thought that it’d be a good idea to use it and build the remaining features on top of it. However, I did not want to just copy and paste the code because I want to actually learn how it works so I decided to re-implement (most) of the Book scene.</p><p>When I tried to run the scene, the page numbers of my book did not want to update correctly. I’m definitely missing something but I don’t know what it is because there are so many properties you can modify e.g. bones, animations, meshes, lights etc. and I don’t even know any of them lol.</p><h1 id="h-the-band-aid-fix" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The band aid fix</h1><p>After not making any headway for about 2 days, I copied the original source code and it magically works 🤦! But 2 problem remains:</p><ol><li><p>I still don’t know how it works</p></li><li><p>my knowledge of UI, animation, lighting etc. is non existent.</p></li></ol><p>For problem 1, I’m going to work backwards from the solution by commenting out parts of the code and seeing how it affects the app. Problem 2 is a very common reason why so many new game developers get turned away from game dev (because the sudden and overwhelming amount of complexity). You can only get better at this by making more games and trying new things. Thankfully there are <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.godotengine.org/en/stable/tutorials/2d/index.html">a lot of tutorials</a> on the Godot documentation so I will have to work through them one by one.</p><h1 id="h-whats-next" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What’s next</h1><p>It’s called “Game A Week” so I am technically supposed to start on a new game / idea next week but because I barely made progress on this app, I think it’s okay to give it another week and see how much I can get done. You can try the demo <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://shadowynoobdev.github.io/pocket/">here</a> but note that it currently doesn’t work on mobile. Press on the left / right arrow keys to flip the page.</p><p>That’s about it for this week, thanks for reading and stay tuned for next week’s recap!</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"></h1>]]></content:encoded>
            <author>shadowynoobdev@newsletter.paragraph.com (ShadowyNoobDev)</author>
        </item>
        <item>
            <title><![CDATA[[GameAWeek] Week #2 Recap]]></title>
            <link>https://paragraph.com/@shadowynoobdev/gameaweek-week-2-recap</link>
            <guid>0jrW6Q0M1y2fLIKEqI2a</guid>
            <pubDate>Sun, 10 Apr 2022 10:05:06 GMT</pubDate>
            <description><![CDATA[Hello everyone, it is that time of the week again where I recap on my progress thus far, share about what I’ve learnt and what I plan for next week. This week is undoubtedly my most productive week despite having lesser time than the previous weeks. I was initially concerned about what to spend my time on but as the week started, a project was naturally “conceived” — to build a demo app with Godot and Ethers. Yes, I know this is a demo application and not a game but nonetheless, this is a gre...]]></description>
            <content:encoded><![CDATA[<p>Hello everyone, it is that time of the week again where I recap on my progress thus far, share about what I’ve learnt and what I plan for next week.</p><p>This week is undoubtedly my most productive week despite having lesser time than the previous weeks. I was initially concerned about what to spend my time on but as the week started, a project was naturally “conceived” — to build a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://shadowynoobdev.github.io/godot-ethers/">demo app</a> with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://godotengine.org/">Godot</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.ethers.io/v5/">Ethers</a>.</p><p>Yes, I know this is a demo application and not a game but nonetheless, this is a great starting project because:</p><ul><li><p>I want to build web3 games using Godot. (Why? Godot is royalty free!)</p></li><li><p>I want to learn how to integrate Godot with a library like Ethers instead of using Moralis (p.s. I don’t hate them or anything).</p></li><li><p>There aren’t many examples on how to do this and if I am interested, others might be interested too.</p></li><li><p>I can reuse some of the code for my future projects!</p></li></ul><p>These reasons more than justify why I should work on this app so I went ahead and started building!</p><h1 id="h-what-is-the-demo-app-about" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What is the Demo App about?</h1><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f16f87adac012447a376ed99612a98f1b204b6ad08ab8096134279950d9c2282.png" alt="Demo App UI" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Demo App UI</figcaption></figure><p>This <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://shadowynoobdev.github.io/godot-ethers/">app</a> is a very simple example demonstrating how a user might log into a Godot web3 game with their wallet. Once the user has “logged in”, they can start querying token balances and make token transfers. The intention of this app to showcase how these blockchain interactions can be implemented via Godot’s <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://godotengine.org/article/godot-web-progress-report-9">JavaScript object</a>.</p><p>There are a few quality of life improvements aka TODOs but it is more or less completed. It even works for mobile (kind of lol)! The source code can be found <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ShadowyNoobDev/godot-ethers">here</a>.</p><h1 id="h-general-thoughts-for-the-week" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">General thoughts for the week</h1><p>There are substantially fewer resources for building web3 games on Godot as compared to Unity. This proved to be quite an annoyance and oftentimes took some trial and error to resolve. I have to give credit to this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.hdks.org/Integrate-Godot-and-Moralis-for-NFT-Games/">Godot x Moralis</a> guide as it really helped me to get off the ground.</p><p>As usual, looking up “web3” or “blockchain” on Godot’s discord is very disheartening as everyone online thinks that they are an expert on blockchain or that “crypto bros” are out to scam everyone with NFTs. I hesitate to mention blockchain / crypto / web3 when asking for help lest I get banned from the server.</p><p>Another big problem that I faced was integrating with external 3rd party libraries. Unlike ESM modules where you can just import, with Godot I have to spend some time looking for the correct CDN URL to use in my <code>&lt;head&gt;</code> tags (hint: UMD works well for vanilla JS!).</p><p>Lastly, the building and testing of HTML5 game builds in Godot is very inconvenient especially if you need to interface with an external library. The built-in HTML5 scene tester is unable to pull in the imported packages mentioned in <code>head include</code> so whenever I want to test a new change, I have to resort to exporting the project, run a local server and test it on my browser.</p><h1 id="h-whats-planned-for-next-week" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What’s planned for next week?</h1><p>I’m actually super duper excited for next week. I want to build an NFT viewer, almost like a pokedex but for NFTs. That’s all I will say so if you’re interested, stay tuned for next week’s recap!</p>]]></content:encoded>
            <author>shadowynoobdev@newsletter.paragraph.com (ShadowyNoobDev)</author>
        </item>
        <item>
            <title><![CDATA[[GameAWeek] Week #1 Recap]]></title>
            <link>https://paragraph.com/@shadowynoobdev/gameaweek-week-1-recap</link>
            <guid>MCpQINGrPyFAtcy2hm5A</guid>
            <pubDate>Sun, 03 Apr 2022 09:54:36 GMT</pubDate>
            <description><![CDATA[Ngl, this week was an emotional roller coaster. I started off the week feeling super hyped and excited but it quickly came to an abrupt halt as I chanced upon errors after errors. I made minimal progress during the first few days as these problems were very challenging to resolve. I eventually pivoted and took a different approach and thankfully it somewhat worked out… I managed to create something but it’s not completed 😅 It’s okay though because I have 3 goals of this GameAWeek series:To l...]]></description>
            <content:encoded><![CDATA[<p>Ngl, this week was an emotional roller coaster. I started off the week feeling super hyped and excited but it quickly came to an abrupt halt as I chanced upon errors after errors.</p><p>I made minimal progress during the first few days as these problems were very challenging to resolve. I eventually pivoted and took a different approach and thankfully it somewhat worked out… I managed to create something but it’s not completed 😅</p><p>It’s okay though because I have 3 goals of this GameAWeek series:</p><ol><li><p>To learn to scope and plan better</p></li><li><p>To actually release something and receive feedback</p></li><li><p>To keep learning and growing throughout the entire process</p></li></ol><p>I think I achieved these 3 goals for this project so from that perspective, this week is definitely a success!</p><h1 id="h-what-went-wrong" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What went wrong?</h1><p>The biggest 2 mistakes I made were choosing to go with Rust and the Bevy game engine. I have very little knowledge of Rust and no experience using Bevy so when combine these together, it felt like I was spending a lot more time reading the docs and asking questions than actually building something.</p><p>I swapped over to the Godot engine and it was a much more pleasant experience. The GUI editor really made it much easier to do things but idk… am I less of a game developer for using a game engine with a GUI editor? Maybe some maxis might feel that way but hey, who cares man. I’m in it to make a game a week, not to make these maxis happy!</p><p>That said however, I still want to improve on Rust so perhaps I might eventually explore <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/godot-rust/godot-rust">Godot’s rust bindings</a> once I get more familiar with Godot.</p><h1 id="h-what-did-i-learn" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What did I learn?</h1><p>I went through <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.godotengine.org/en/stable/getting_started/first_2d_game/index.html">Godot’s 2D game tutorial</a> (source code <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/ShadowyNoobDev/first-2d-game">here</a>) and learnt more about the Godot’s programming design using scenes and nodes. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://godotengine.org/article/why-isnt-godot-ecs-based-game-engine">It is very different from traditional ECS</a> but I cannot say for certain which approach is better. I will need to make a few more games to fully grasp the benefits of this approach.</p><p>The most impactful thing I learnt this week is about Godot’s <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://docs.godotengine.org/en/stable/classes/class_javascript.html">JavaScript object</a>. This object is exposed to the developer if you’re compiling to HTML5 and you can use it to interact with the blockchain. I was following this <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.hdks.org/Integrate-Godot-and-Moralis-for-NFT-Games/">Godot and Moralis tutorial</a> but my first impressions are that it feels a lot more restrictive than programming directly in Javascript. I tried to modify it to use ethers but didn’t get very far. There are also <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/GodotExplorer/ECMAScript">Javascript bindings</a> for Godot which I want to try as well.</p><h1 id="h-what-did-i-end-up-doing" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What did I end up doing?</h1><p>I wanted to build a simple chat app this week but it is only like 30% completed. You connect your metamask wallet to “login” to the chat. Once you’re logged in, you can type messages and send them but because the blockchain components are not done, no one is actually receiving your messages 😅</p><p>These components are core for the app to work but I’ll need more time to learn how to do it e.g. handling blockchain events. Once I learn them, future projects will be much easier and I can reuse the code that I wrote.</p><h1 id="h-whats-next" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What’s next?</h1><p>For the next 3 weeks, I have some personal matters to attend to (such horrible timing…) so I don’t know how much time I’ll have to work on GameAWeek. My initial plans are to use the next week to at least finish up the blockchain integration and maybe start on a new project for the last 2 weeks. I want to start making games but I also don’t want to leave this project half completed as is but that’s the whole point of GameAWeek right?</p><p>We’ll have to see how things pan out tmr. Thanks for reading and stay tuned for next week’s recap!</p>]]></content:encoded>
            <author>shadowynoobdev@newsletter.paragraph.com (ShadowyNoobDev)</author>
        </item>
        <item>
            <title><![CDATA[Favourite game design / dev resources]]></title>
            <link>https://paragraph.com/@shadowynoobdev/favourite-game-design-dev-resources</link>
            <guid>q3hqFh46u5JkXjFSc3me</guid>
            <pubDate>Sat, 02 Apr 2022 03:38:14 GMT</pubDate>
            <description><![CDATA[Figured I should keep a list of favourite game design / dev resources for future reference.Game DesignOn open world gamesOn artificial scarcityOn randomness]]></description>
            <content:encoded><![CDATA[<p>Figured I should keep a list of favourite game design / dev resources for future reference.</p><h1 id="h-game-design" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Game Design</h1><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=-as8kVASgXw">On open world games</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.gamedeveloper.com/business/digital-real-estate-and-the-digital-housing-crisis">On artificial scarcity</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.gamedeveloper.com/design/randomness-and-game-design">On randomness</a></p></li></ul>]]></content:encoded>
            <author>shadowynoobdev@newsletter.paragraph.com (ShadowyNoobDev)</author>
        </item>
        <item>
            <title><![CDATA[[GameAWeek] Week #0 Recap]]></title>
            <link>https://paragraph.com/@shadowynoobdev/gameaweek-week-0-recap</link>
            <guid>7oTJccianYAOeS1agJwl</guid>
            <pubDate>Sun, 27 Mar 2022 16:21:44 GMT</pubDate>
            <description><![CDATA[Hi everyone, this marks my very first entry into the GameAWeek series where I try to release a new game every week. I was inspired by this video but because I lack sufficient relevant knowledge, I decided to start with a week 0. Week 0 is all about learning the various tools of the trade. After some research and deliberation, I settled on the following apps:Aseprite for art1BitDragon for soundBevy for the game engineAsepriteWhile conducting my research on the tools commonly used by indie game...]]></description>
            <content:encoded><![CDATA[<p>Hi everyone, this marks my very first entry into the GameAWeek series where I try to release a new game every week. I was inspired by <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.youtube.com/watch?v=9O9Q8OVWrFA">this video</a> but because I lack sufficient relevant knowledge, I decided to start with a week 0.</p><p>Week 0 is all about learning the various tools of the trade. After some research and deliberation, I settled on the following apps:</p><ul><li><p>Aseprite for art</p></li><li><p>1BitDragon for sound</p></li><li><p>Bevy for the game engine</p></li></ul><h1 id="h-aseprite" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Aseprite</h1><p>While conducting my research on the tools commonly used by indie game developers, one particular software caught my attention - <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.aseprite.org/">Aseprite</a>. Aseprite is a tool for creating pixel art. It was highly recommended by many users for being simple to pick up but also flexible enough to create very complex art pieces.</p><h1 id="h-1bitdragon" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1BitDragon</h1><p>Music is the bane of my existence. I enjoy music but I cannot make music to save my life. This is where <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://1bitdragon.com/">1BitDragon</a> comes in. 1BitDragon is an idiot-proof software for developers who are musically incompetent / illiterate (like myself) to be able to create some decent sounding music. That said however, I am definitely going to need some help to make anything more complex than simple rhythms.</p><h1 id="h-bevy" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Bevy</h1><p>Game engines are probably the hardest factor to decide on since there are so many amazing options to choose from. I settled with <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bevyengine.org/">Bevy engine</a> simply because I get to code in rust. I am not a pro by any measure of the stick but I really enjoy programming in rust; something that I cannot say for other languages. Let’s see how far we can get with Bevy first before considering <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/godot-rust/godot-rust">other alternatives</a>.</p><h1 id="h-overall-thoughts" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Overall thoughts</h1><p>My biggest area for improvement this week has to do with scoping and time management. I actually wanted to do more this week but because life happened, I did not have enough time to finish all the tasks. This may not be a deal breaker for week 0 but I cannot have this happening on the subsequent weeks when I have to actually deliver a working game.</p><p>Despite that, I would still consider week 0 to be a win. I created a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/ShadowyNoobDev/status/1506440279208837121">pretty decent fire</a> with Aseprite, I made two simple but rather apt soundtracks on 1BitDragon (have to upload them on youtube!) and I started to learn more about bevy. I made more progress this week than my other weeks of simply theory crafting so I am quite satisfied with my progress.</p><p>Kudos to myself! <em>pats on back</em></p><h1 id="h-whats-next" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">What’s next</h1><p>My plan next week (tomorrow!) is to create a browser chat app that interacts with the blockchain to read and post anonymous messages. The goal of this “game” is for me to tie everything that I’ve learnt together and to better prepare me for when I have to start making games the following week!</p><p>Thanks for reading and stay tuned for next week’s recap!</p>]]></content:encoded>
            <author>shadowynoobdev@newsletter.paragraph.com (ShadowyNoobDev)</author>
        </item>
    </channel>
</rss>