dadum [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=58102 Marksman <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-14.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> </p> <p>With music by <a href="https://www.lexaloffle.com/bbs/?uid=56373"> <a href="https://www.lexaloffle.com/bbs/?uid=56373"> @thesebonesalone</a></a></p> <h3>What's this about?</h3> <p>The most prestigious archery competition is now open to all that can string a bow. He who completes every stage will have an assured place among the queen's own marksmen!</p> <h3>Instructions</h3> <p>The goal is to hit the bullseye with an arrow</p> <ul> <li>Hold down <strong>O</strong> to enter <em>aim mode</em> <ul> <li>While O is pressed, use the arrow keys to change the direction in which the bow is pointing</li> </ul></li> <li>Press <strong>X</strong> to fire arrow</li> <li>Move with arrow keys</li> <li>Springs will <em>spring</em> both the player or the arrows</li> <li>Be careful of spikes, they'll make you spontaneously combust!</li> </ul> <h2>Devlog</h2> <p>You can find the source code for this game on GitHub, <a href="https://github.com/tupini07/games/tree/main/pico8/marksman-p">here</a>. I kept the code in different files and used <a href="https://github.com/dansanderson/picotool">p8tool</a> to bundle them in the p8.</p> <h3>1.0 [10/20/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> It's been a while since the last update. I've mainly been distracted by other projects but I decided it was time to go back to finish this one since it was so near to being done. This update finishes wiring everything up and adds some nice details that make the game feel more complete. This is the first game I actually finish and I think it's mainly because I forced myself to not succumb to the desire of keep adding more stuff. Near the end I had some ideas (some mine, and some suggested by others) to make the game more interesting, so maybe there will be a Marksman 2 someday :) </p> <p>While working on this I learned a lot, mainly by making mistakes. I also got advice from some very nice people and realized I wasn't so lost as I felt. The main thing I'm walking away with after finishing this is a whole new understanding of game patterns and scalable architectures, which would've made developing this game much easier if I had adopted them from the beginning (as it is right now, it's a bit of a hybrid among different approaches, although I strived for everything to make sense). A suggestion for my future self, or anyone reading this, would be to be sure to think about what chunks do you want of your game before you start working on it. This ensures you have the layout of things in consideration while working on the project and minimizes the necessity of completely changing the architecture you're using (or at least of doing big refactors of the code).</p> <p>Main changes added to this release:</p> <ul> <li>finally fix an issue I've been having since the very beginning that was sometimes happening when the player switched to a new level it would automatically complete that level without the player having to hit the bullseye (this was caused by me not clearing the ARROWS table at the end of the previous level)</li> <li>added nicer decorations! Grass and clouds now move. We also have banners</li> <li>added intro and outro scenes that explain more or less what is going on and why the player finds itself firing arrows at things</li> <li>cleaned up the win and &quot;spontaneous combustion&quot; banner.</li> </ul> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-14.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <h3>0.6 [10/7/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"></p> <p>The biggest change for this version is sweet music (literally). Created for you by <a href="https://www.lexaloffle.com/bbs/?uid=56373"> <a href="https://www.lexaloffle.com/bbs/?uid=56373"> @thesebonesalone</a></a>. Still in the <em>audio department</em>, we now have SFXs for almost every element. Other relevant changes: it should be easier to aim in vertical directions (thanks <a href="https://www.lexaloffle.com/bbs/?uid=50126"> @MikeyNoodles</a> for pointing this out),(hopefully) more visible sprites for spring platforms and spikes, I did a complete play-through of the existing levels and fixed some placement issues I found.</p> <p>Next stuff to do:</p> <ul> <li>Add moving clouds to the background</li> <li>Consider adding animated grass</li> <li>Create an intro scene that plays before the first level (good chance to try my hand at animation)</li> <li>Create an outro scene or screen that displays once the player has completed all levels</li> <li>Make more levels! <ul> <li>Still unsure about what the correct number of them should be. I guess I'll just continue making them until it feels that they're enough. </li> </ul></li> </ul> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-12.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <h3>0.5 [9/30/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> For this update I made a <a href="https://www.reddit.com/r/pico8/comments/pw5xdt/feedback_request_for_marksman/">post on Reddit</a> where some really nice people gave me a bit of feedback. Mainly (in my words, not theirs:: player feels slippery and hitboxes of player and target don't feel fair. Add music and SFX. The background and level design is a bit boring, maybe add animations to make it feel more engaging. </p> <p>Actual updates:<br /> Mostly added shiny things since last update: a worthy intro page, image fade in and out between levels, some SFX (there are still a lot that are missing, but at least the effort to add sounds has started), changed a bit some of the sprites to make them nicer, made the hitbox of the target a lot larger (it now matches the size of the target itself), and (possibly the biggest update) overhauled the collision and movement for the player, it no longer has a slippery feel (at least for me), and the hitbox is the proper size one wold expect from looking at the sprite (it used to be tiny). </p> <p>Next stuff to do:</p> <ul> <li>Add moving clouds to the background</li> <li>Consider adding animated grass</li> <li>More SFX</li> </ul> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-10.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <h3>0.4 [9/26/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> Lots of things have happened since last update! We now have new items to the game which make it much more interesting: spikes that will make you spontaneously combust if touched, tutorial levels, level tracker, background image, and most importantly, shiny particles!</p> <p>Stuff I'll be working on next: sound effects! make some more level, give some love to the intro page.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/58102/marksman_0.gif" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-7.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <h3>0.3 [9/21/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> This version mainly includes a big refactor of the code. It also adds springs! and a nicer sprites for player and bow, plus some new code to handle physics collisions among different entities (collision with map tiles is still being handled apart from the colliders and new physics manager, will probably include them if I get a change, eventually).</p> <p>Next I'll be working on making the intro nicer. I'm not sure if I'll add level selection or just a &quot;new game&quot;/&quot;continue&quot; options to the intro.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/58102/marksman_2.gif" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-3.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> <h3>0.2 [9/19/2021]</h3> <p><div><div><input type="button" value=" Show " onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Hide '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Show '; }"></div><div><div style="display: none;"><br /> Almost all the basic mechanics are in: basic platformer physics, bow aiming mode, arrow physics, level win condition, and automatic level switching.</p> <p>The last <em>mechanics</em> element I wanted to implement are <em>springs</em>, which will propel both the player and the arrows vertically or horizontally. Once that's done I can start adding puzzle elements to the levels (the idea is for the player to figure out the proper combination of spring jumps and arrow rebounds needed to hit the bullseye).</p> <p> <table><tr><td> <a href="/bbs/?pid=97567#p"> <img src="/bbs/thumbs/pico8_marksman-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97567#p"> marksman</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97567#p"> [Click to Play]</a> </td></tr></table> <br /> </div></div></div></p> https://www.lexaloffle.com/bbs/?tid=44684 https://www.lexaloffle.com/bbs/?tid=44684 Mon, 20 Sep 2021 00:06:25 UTC Duck's Flan <p> <table><tr><td> <a href="/bbs/?pid=97310#p"> <img src="/bbs/thumbs/pico8_ducks_flan-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=97310#p"> Duck's Flan</a><br><br> by <a href="/bbs/?uid=58102"> dadum</a> <br><br><br> <a href="/bbs/?pid=97310#p"> [Click to Play]</a> </td></tr></table> </p> <p>Very small game in which you play as a duck, and each level consists of getting to a flan while passing through some time-based traps.</p> <p>This is my first game for pico8 so any pointers are more than welcome!</p> https://www.lexaloffle.com/bbs/?tid=44618 https://www.lexaloffle.com/bbs/?tid=44618 Tue, 14 Sep 2021 14:15:07 UTC