olivander65 [Lexaloffle Blog Feed]https://www.lexaloffle.com/bbs/?uid=64475 Tiny Epic Kingdoms Blog <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/pic2947892.webp" alt="" /> <h1>Motivation For the Game</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/PXL_20240824_230112575.jpg" alt="" /> <p>Tiny Epic Kingdoms is one of my favorite boardgames to pick up and play. I love big strategy games but often don't have the time or the people for a massive game of Twilight Imperium (Sardaak N'orr all the way!). I really like that Tiny Epic is a game I can play in less than an hour that gives a similar experience to something like Twilight Imperium or Dune or any other grand strategy boardgame without dedicating a whole day to it. </p> <p>Deciding to make this Tiny Epic Kingdoms into a Pico 8 cart came from playing the solo variant at a coffee shop while I was killing some time and realizing it would be fairly simple to implement it into Pico 8.</p> <h1>Development</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/PXL_20240810_185915918.MP.jpg" alt="" /> <p>80% of the development was done within the Pico 8 engine with some of the development done on my little Pico 8 mac with a Raspberry Pi 3 inside! I jumped into VSCode in the last stretch for Debugging the AI and cleaning up tokens. It makes things convenient when you need to mass rename something or look at two parts of code quickly. I still enjoy using the Pico 8 internal editor the most. It's so cozy and nice to be able to do everything in the little program.</p> <h2>Infinite While Loop Debug</h2> <p>I found out I could set a variable within a loop to break out after a set amount of tries. That way I could test a while loop that was running infinitely and print some text without having to change the entire structure of the code.</p> <div> <div class=scrollable_with_touch style="width:100%; max-width:800px; overflow:auto; margin-bottom:12px"> <table style="width:100%" cellspacing=0 cellpadding=0> <tr><td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> <td background=/gfx/code_bg0.png> <div style="font-family : courier; color: #000000; display:absolute; padding-left:10px; padding-top:4px; padding-bottom:4px; "> <pre> while true or i_thing&gt;50 do [stuff] i_thing+=1 end</pre></div></td> <td background=/gfx/code_bg1.png width=16><div style="width:16px;display:block"></div></td> </tr></table></div></div> <h2>Order of Operations</h2> <p>This project in particular required implementing some features before others. For example the battle system required having the day/night and at least the Patrol action before it would make sense.</p> <h2>Sound Design</h2> <p>This project I learned a little bit more about sound design. Because actions are done quickly by the AI and it is difficult to telegraph the movements, I ended up adding a specific sound to each action the AI could do to try to help players know what was going on if their eyes missed the movement or numbers change.</p> <h1>Other Art</h1> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/71_te-invlogo.png" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/72_te-logo-upd.png" alt="" /><br /> Above are a few pictures I thought could have been cool as a cart image. I especially liked the color one. I opted to keep the cover art simple though. Regardless, here they are!</p> <h1>Things I wish I Could Have Included</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/PXL_20240825_035122284.jpg" alt="" /> <p>One concept that I especially love in Tiny Epic is the explore tokens. They give a sense of randomness and life to the world. I like to pictures how the explore token and the region mix together. Like having a bandit in the plains could mean they are a roaming warband of horse warriors, or something like that. Exploration is a concept often missing from many games in the 4X genre (Explore, Expand, Exploit, Exterminate) and I really appreciate that they are included in Tiny Epic Kingdoms.<br /> There are a few other things that could have been cool to include, especially more factions, but explore tokens were the ones I would have liked to have included the most.</p> <h1>Final Thoughts</h1> <p>I am really excited to have finished this project and am really happy with how it turned out. I am also excited with my ideas for future projects!</p> https://www.lexaloffle.com/bbs/?tid=143843 https://www.lexaloffle.com/bbs/?tid=143843 Sun, 25 Aug 2024 11:34:21 UTC Tiny Epic Kingdoms <p> <table><tr><td> <a href="/bbs/?pid=152563#p"> <img src="/bbs/thumbs/pico8_tinyepickkingdom-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=152563#p"> tinyepickkingdom</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=152563#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is a fan port of the boardgame Tiny Epic Kingdom. If you enjoy the port, you should support the creator of the game, Scott Almes, by buying the actual game!</p> <h1>Official Rules and PDF</h1> <p>(<a href="https://www.gamelyngames.com/wp-content/uploads/2020/09/UTEK_rulebook_v2.pdf">https://www.gamelyngames.com/wp-content/uploads/2020/09/UTEK_rulebook_v2.pdf</a>)<br /> This version uses the basic rules found in the rules PDF linked above. </p> <h1>Instructions</h1> <p>You play the game by selecting actions to either move your units (colored squares representing armies) around the board or to research upgrades to try to get the most victory points before either you or the opponent fulfill one of the following:</p> <ul> <li>6 units of one color are in play</li> <li>research level 5 is reached</li> <li>tower level 6 is reached</li> </ul> <h2>Action Area</h2> <p>In this area you select what action you want to do on your turn. You select different actions by using ▲ or ▼ and selecting with the Z/O key. You can press ◀ or ▶ to move to other menus.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_0.png" alt="" /> <ul> <li>1) Patrol Action: Move in the same region</li> <li>2) Quest: Move one unit to another region if your unit is on the border of a map.</li> <li>3) Build: Increase tower level to get more victory points.</li> <li>4) Resrch (research): unlock new abilities for your faction</li> <li>5) Expand: add units to the board</li> <li> <p>6) Trade: swap resources of one type for a resource of another.</p> </li> <li>7) The icon to the right says whether it is day or night. AI is stronger during the day.</li> <li>8) this shows the current tower level.</li> <li>9) pressing x while in the action menu will open the description of each of the actions.</li> </ul> <h2>Player and AI Maps</h2> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_0 - Copy.png" alt="" /> <ul> <li>1) action area (greyed out)</li> <li>2) name of map</li> <li>3) blue player units</li> <li>4) player resources</li> <li>5) red ai unit</li> <li>6) ai resource area</li> <li>7) player name. Notice the crown that representing who played first his round. This area also says the player's current level.</li> <li>8) ai name and level.</li> </ul> <h2>Patrol Action Explanation</h2> <p>if you select the patrol action, you will then select one of your units with the Z/O key and ◀, ▶ keys (left picture). Once selected, the unit will turn purple and you will then have to select where you want the unit to go (right picture). You then press O to move your unit to the new position. You can always back out before moving with the X button.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/86_tiny-epic_4.png" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_5.png" alt="" /> <ul> <li>1) the unit selected to move</li> <li>2) the area selected to move to.</li> </ul> <h2>Quest Action Explanation</h2> <p>quest works similar to patrol, but you move from one realm (map) to another.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/88_tiny-epic_6.png" alt="" /> <ul> <li>1) the selected unit</li> <li>2) the destination for the unit</li> </ul> <h2>Ability References</h2> <p>This area shows the current level of the player and ai respectively and gives a description of the abilities. You can pres ▲ or ▼ to look at the different levels.<br /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_1.png" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_2.png" alt="" /></p> <ul> <li>1) reference card</li> <li>2) currently selected level</li> <li>3) description</li> <li>4) shows you where you are at in the menu</li> </ul> <h2>Tower Card</h2> <p>The tower card shows the tower levels for the ai and player.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_3.png" alt="" /> <ul> <li>1) Tower Card</li> <li>2) player level</li> <li>3) ai level</li> <li>4) victory points given for being at the given level</li> <li>5) the required stone in order to move up to that level</li> </ul> <p>That is it for the rules explanation. I hope you enjoy the game!</p> <h2>Gameplay GIFs</h2> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_0.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/tiny-epic_1.gif" alt="" /></p> <h1>Blog Post</h1> <p>You can read about my journey making this game in the accompanying blog post.<br /> (<a href="https://www.lexaloffle.com/bbs/?tid=143843">https://www.lexaloffle.com/bbs/?tid=143843</a>)</p> <h1>Changelog</h1> <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> <ul> <li>v2 fixed a bug that allowed player to collect over resources 9.<br /> </div></div></div></li> </ul> <h1>Thanks</h1> <p>Thank you as always to my wife for being supportive of my little projects. I also want to thank Scott Almes for making a cool boardgame! And thank you all, the awesome Pico 8 Community! </p> https://www.lexaloffle.com/bbs/?tid=143623 https://www.lexaloffle.com/bbs/?tid=143623 Sun, 25 Aug 2024 11:34:14 UTC Square Transition Cart <h1>Square Transition Cart</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/PICO-8_0.gif" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=152564#p"> <img src="/bbs/thumbs/pico8_jusedigna-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=152564#p"> square-transition</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=152564#p"> [Click to Play]</a> </td></tr></table> </p> https://www.lexaloffle.com/bbs/?tid=143624 https://www.lexaloffle.com/bbs/?tid=143624 Mon, 12 Aug 2024 17:58:38 UTC Solar Collection <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/65_logo.png" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=147387#p"> <img src="/bbs/thumbs/pico8_solar_collection-0.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=147387#p"> solar_collection</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=147387#p"> [Click to Play]</a> </td></tr></table> </p> <h1>Controls</h1> <p>◀ ▲ ▼ ▶: to move.<br /> z/o: make selection.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/64_story.png" alt="" /> <p>Orion CORP. General Pilot Contract:<br /> You will be using a rental Star Catcher vessel. You are welcome to choose whichever craft that suits you from the ship-lot. This document binds you until completion of a full tour of duty. you will be billed for any towing services if you run out of fuel. you will be responsible for the maintenance of your craft. Awards will be given to those who meet the assigned quota. Sign below if you agree.</p> <p>ORION CORPORATION ltd.</p> <p>....................</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/63_gameplay.png" alt="" /> <p>Solar Collection is fruit drop style game with shmup influences. the goal of the game is to collect as much of the colored solar fruit while also keeping your fuel up with the yellow fruits. The green preview line will show where the solar fruit will spawn. use it to plan your movements!</p> <p>There are two modes:</p> <ul> <li> <p><strong>Main Story:</strong> this goes through 4 levels each with 7 waves of solar fruit.</p> </li> <li><strong>Fuel Rush:</strong> no levels and no solar fruit. As you play, the score multiplier ticks up and fuel drain increases.</li> </ul> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/solar_collection_1.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/62_solar_collection_3.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/solar_collection_0.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/solar_collection_4.gif" alt="" /> <h1>Acknowledgements</h1> <p>As always, thank you to everyone in the Pico 8 Community. You are amazing and so giving! Thank you to my wife for being awesome and encouraging (and for testing these little games).</p> <h2>Changes</h2> <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> <h3>v1:</h3> <ul> <li>Released!</li> </ul> <p></div></div></div></p> https://www.lexaloffle.com/bbs/?tid=141979 https://www.lexaloffle.com/bbs/?tid=141979 Sat, 27 Apr 2024 14:05:32 UTC Shallowend - Low Rez Adventure <p> <table><tr><td> <a href="/bbs/?pid=143823#p"> <img src="/bbs/thumbs/pico8_shallowend-5.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=143823#p"> shallowend</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=143823#p"> [Click to Play]</a> </td></tr></table> </p> <h1>Controls</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/50_Controller.png" alt="" /> <p>◀ ▲ ▼ ▶: move player/make choices<br /> z/o: interact with world<br /> x/x: show/hide minimap</p> <h1>Story</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/Crystals.png" alt="" /> <p>It has been 3 years since darkness has left the land. Your brother has been missing since the darkness was lifted. Many rumored he defeated the four evils and brought peace back to the land. Now darkness is returning. You have the hero's blood, so you are the next hope. </p> <p>Explore the 64x64 resolution world with a cozy 63 screens map.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/shallowend_1.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/shallowend_2.gif" alt="" /> <p>Discover the secrets to your brother's disappearance. Learn more about yourself and gain insights.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/shallowend_3.gif" alt="" /> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/shallowend_4.gif" alt="" /> <p>Go forth adventurer!</p> <h1>Other Notes and Thanks</h1> <p>As always, everyone in the Pico 8 Community is amazing. I wouldn't be able to put anything together resembling a game if it wasn't for the folks ahead of me sharing their knowledge and expertise. Thanks to my wife for always encouraging me in these goofy projects.</p> <p>You can read more about the development in my <a href="https://www.lexaloffle.com/bbs/?tid=140915">blog post</a>.</p> <h2>Hints</h2> <h3>Map</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> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/foo.map.png" alt="" /> <p></div></div></div></p> <h3>Graveyard</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 /> There is a sound effect if you take a wrong turn... keep following the center statue...<br /> </div></div></div></p> <h3>Dessert</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 /> There is a map hidden in the dessert. Use that to traverse the spikes.<br /> </div></div></div></p> <h2>Changes</h2> <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> <h3>v1-3:</h3> <ul> <li>Bug fixes</li> </ul> <h3>v4:</h3> <ul> <li>added a hidden hint for the graveyard</li> <li>added more grass sprites to overworld<br /> </div></div></div></li> </ul> https://www.lexaloffle.com/bbs/?tid=140900 https://www.lexaloffle.com/bbs/?tid=140900 Tue, 19 Mar 2024 17:11:34 UTC Shallowend Postmortem <h1>Initial Inspiration</h1> <p>My inspirations for this game are games like Zelda and Undertale. I wanted to include dating sim style gameplay as well because I think it is fun. I was interested in the idea of this being the second time the boss monsters have interacted with heroes. I thought this gave a cool dynamic to the bosses and gave them the opportunity to give their perspective of heroes running in and breaking stuff.</p> <p>A portion of my notebook is dedicated to 1-2 page game drafts. These can be as short as a name and a couple of sentences of ideas or filling the entire space. I really enjoy making rapid fire game concepts. The 2 pager for this game had the viewscreen being 64x64. After I saw the game SokoBird, I knew I wanted to try something low-rez. After deciding on a game idea I want to pursue, I'll move to the section in my notebook where I can write multiple pages and have room to blog my progress. I enjoy looking back at the draft page to see what ended up being altered or abandoned.</p> <h1>Development</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/word doc.PNG" alt="" /> <p>With this game, I started in a word document and worked on creating the content of the game. I knew programmatically it wasn't going to be a very intense game, so I worked on what I thought would be the biggest hurdle: content. I wrote a basic outline for each boss and most of the dialog for the town folks. I also wrote some story prompts to bring out the world. I also spent an afternoon reading a articles on sibling relationships. That reading probably shows up a little heavy handed in the game, but I liked it.</p> <p>With zeldalike games there are tons of directions you can go with traps, combat, and content. I wanted to pick a few concepts I liked to include in the game and not try to add too many ideas. I enjoy things like infinite mazes and spike puzzles, so that's what we ended with. I learned that with all types of content (music, story, programming features) it is best to start small and focused. You can then build out more content if you feel like the game needs it.<br /> I wanted this to be a game you could complete in one sitting in around 30 minutes. Games with hours of content are amazing (Morrowind forever best), but I really enjoy cozy games that you can complete and be happy you experienced. Short and cozy is the main goal of this game.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/excel sheet.PNG" alt="" /> <p>I had to start using an excel sheet to keep track of all my variables. I even wrote some basic formulas to populate code that I could copy and paste into Pico 8. It made things a lot easier as the map was changing size and people and rooms were being shifted around.</p> <p>A thought on maps: You can build a map like any other feature. Take it one area at a time and iterate. The map came late in the development. I had already thrown in a couple of bosses before I began designing how the overworld would look. I had the basic idea from the beginning of four different biomes, but I wasn't sure how those would turn out until I started writing. I ended up with a 13x4 map. This size allowed me to use the entire bottom half for sprites and some of the leftover space to the right of the overworld for interior rooms.</p> <h1>Final Thoughts</h1> <p>In the end, I am happy with how it turned out. There were some big breaks in the development, and it ended up taking around 7 and a half months to finish. </p> <p>For my next game, I am either going to work on one of my project that has a technical problem that needs to be solved before I can start (one I abandoned previously) or make something small and arcady. Either way, I am excited to continue making cool stuff!</p> <p>-olivander65</p> https://www.lexaloffle.com/bbs/?tid=140915 https://www.lexaloffle.com/bbs/?tid=140915 Tue, 19 Mar 2024 17:10:20 UTC Merchant Life <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/big logo.png" alt="" /> <p> <table><tr><td> <a href="/bbs/?pid=133417#p"> <img src="/bbs/thumbs/pico8_merchantlife-4.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=133417#p"> merchantlife</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=133417#p"> [Click to Play]</a> </td></tr></table> </p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/intro crawl.png" alt="" /> <h1>Controls</h1> <p>Use the z, x, and arrow keys to navigate through the menus.</p> <h1>The Game</h1> <p>This ​game is ​​about buying and selling goods and traveling between outposts There are two types of goods: contraband and normal trade goods. The rules of the game are simple, you have 300 days to make as much money as possible and have the outposts up to level 3. Leveling outposts is completed through &quot;outpost requests&quot;. These will upgrade the outposts so that they produce more. </p> <p>The &quot;hard mode&quot; of the game is to complete all the outposts without selling any contraband.<br /> <a href="https://olivander7.itch.io/merchant-life">itch.io page</a></p> <h1>Behind the Scenes</h1> <p>I wanted to make a game where trading was the main focus. I've always been inspired by games with traveling and trading. Games like Oregon Trail, Albion online, and text adventures in general. I was also inspired by another cart, <a href="https://www.lexaloffle.com/bbs/?pid=125247">Age of Ants</a>, that used some really cute bugs as units. I wanted to use similar bugs as companions.</p> <h1>Change Log</h1> <p>V2:</p> <ul> <li>added lantern of farsight item to plains</li> <li>bandit will never steal all items in inventory</li> <li>option to choose travel speed in menu</li> <li>removed sell back contraband to black market (no returns...)</li> </ul> <p>v3:</p> <ul> <li>Fixed a small bug with the retire button</li> <li>Moved the level up text to not interfere with the retire button</li> </ul> <h1>Credits</h1> <p>My Wife for encouraging being very supportive and encouraging me in this endeavor and the great Pico 8 community :).​</p> <h1>Screenshots</h1> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/trade.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/travel.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/random event.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/outpost requests.gif" alt="" /></p> https://www.lexaloffle.com/bbs/?tid=53849 https://www.lexaloffle.com/bbs/?tid=53849 Wed, 23 Aug 2023 01:33:51 UTC SokoVirus <p> <table><tr><td> <a href="/bbs/?pid=128482#p"> <img src="/bbs/thumbs/pico8_sokovirus-8.png" style="height:256px"></a> </td><td width=10></td><td valign=top> <a href="/bbs/?pid=128482#p"> sokovirus</a><br><br> by <a href="/bbs/?uid=64475"> olivander65</a> <br><br><br> <a href="/bbs/?pid=128482#p"> [Click to Play]</a> </td></tr></table> </p> <p>This is a simple Sokoban game about a little virus and the crazy adventures he goes on. This is my first Pico 8 game. You can start a new game or play any of the levels from the main menu. This was created over the last month. Big shout-out to Lazy Devs Academy and Nerdy Teachers for the awesome tutorials and sound advice! You can read the postmortem in the following thread: <a href="https://www.lexaloffle.com/bbs/?tid=52398">https://www.lexaloffle.com/bbs/?tid=52398</a></p> <h2>Controls:</h2> <p>Operate the menus/restart level with the O buttons and arrow keys.</p> <h2>Featuring:</h2> <h3>Groovy Menus:</h3> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/6_mysoko_0.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/mysoko_1.gif" alt="" /></p> <h3>Amazing Gameplay:</h3> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/mysoko_2.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/mysoko_3.gif" alt="" /></p> <h3>Level Selector and Acheivements?!?!:</h3> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/mysoko_4.gif" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/sokovirus_1.gif" alt="" /></p> <h2>Contact/Support:</h2> <p>Support is always welcome but not required. You can find my itch.io page here: <a href="https://olivander7.itch.io/sokovirus">https://olivander7.itch.io/sokovirus</a><br /> Please reach out if you find any bugs or have any comments :).</p> <h2>Thanks:</h2> <p>My Wife for encouraging me in this endeavor and the great Pico 8 community :).</p> https://www.lexaloffle.com/bbs/?tid=52396 https://www.lexaloffle.com/bbs/?tid=52396 Fri, 14 Apr 2023 01:40:36 UTC SokoVirus Postmortem <h1>Developing SokoVirus</h1> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/13_mysoko.png" alt="" /> <p>I started working on this game near the beginning of March. I set out to make a sokoban game of some kind after watching Lazy Devs Academy&rsquo;s video on 5 good starter genres. I used the first few episodes of his roguelike tutorials to get my character moving and doing what I wanted.</p> <p>The first big hurdle was in understanding movement animations. The roguelike tutorial was based on an 8x8 movement grid, so any movements were offset by 8. I would still say animation is a difficult subject for me, but I want to grow in it.</p> <p>For the story, I had the general idea of a hacker trying to get into different servers. My first few character concepts are shown in the early screenshots (I enjoyed the little mouse cursor dude). The theme sort of came about as I was developing the game. Another thing that came about randomly through the development was the actual levels. Most of them came from me looking at random shapes and seeing if I could make a puzzle out of them. I also played some other Sokoban games for inspiration (I learned I do not have the best patience for them. This is why I added the save feature).</p> <h2>Early Screenshots</h2> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/image3.png" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/image5.png" alt="" /></p> <p>Near the end of march I made a few really big changes to the project. The first was starting to use VSCode as a helper code editor. I was still using the pico editor, but I was using the VSCode editor as a reference and a helpful searcher. Later on in development, I almost exclusively coded in VSCode (split view is amazing!). I also used the Pico sound/sprite editor along with a tiny amount of Aseprite for the logo text. Git also makes versioning really simple.</p> <h2>Using VSCode</h2> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/image1.png" alt="" /> <p>Around the 31st of March I began to work on the particle system watching some Nerdy Teacher videos and looking at some code. This is where it became clear that I needed to change my organization. Before I would separate out the draw, update, and initialize functions into their own tab. I think this is standard and a good way to do things and I want to revisit this idea in the future, but I changed my organization to the following:</p> <p>Each game state had an init, draw, and update function and these functions were right next to each other in the code. The idea was that it would help with debugging. Any &quot;game state&quot; consists of an <strong>init</strong> that sets the _drw, and _upd, an <strong>update</strong> that updates (yeah), and a <strong>draw</strong> function. This made writing the code easier for my brain at the time.</p> <p><strong>Another important takeaway for me:</strong> It is better to bust out an isolated feature than to try to find an &ldquo;optimal solution&rdquo; online. Trust your instincts, fail, and try something else. It is all learning. Also implement a debugger early.<br /> It was most helpful for to start either writing stuff down or coding when I hit a problem. I spent a fair amount of time being stuck because I wasn&rsquo;t trying things.</p> <p><strong>4/9</strong> nearing the end of development. This is where my morale definitely dropped. I felt like it was done and I didn&rsquo;t like it. It felt like a waste of time. But after watching Lazy Devs&rsquo; postmortem I was again encouraged to see it through.</p> <p>No new projects. Finish the one you have.</p> <p><strong>4/10</strong> cool, I&rsquo;m done. But what if I added a way to play any level at will and keep track of the best score? What about some cart data while you are at it? Some of the animations could use some polish as well. What about an end screen? Ok, so the game is done, but not really done. I am now on to cleaning and implementing some final features.</p> <p>Random thing that came up often: init/upd workflow with animations. If I wanted to slide the menu or something, I would add an offset into the draw menu's text or whatever I wanted to animate, and then take over the update function to change the movement variables until the animation is complete. You can see that with my init_slidemenu() function that is called from the upd_menu().</p> <h2>The Notebook</h2> <p><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/21_image7.jpg" alt="" /><img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/22_image4.jpg" alt="" /></p> <p>I found that dotless notebooks work the best for me. I tried bullet journals in the past and I just got caught up in putting everything between the dots. Also, when I return to old pages my brain would get distracted by the dots (I was always jealous of engineering students using gridded paper. My mind just can&rsquo;t differentiate that well). </p> <h2>Overall Takeaways:</h2> <h3>Oh my gosh, scope is sooo important.</h3> <p>I have tried gamedev before on other platforms. On those platforms I didn't set out to make &quot;my dream game&quot;, but the ideas had mechanics that were uncommon and a not necessarily fully realized gameloop. More like &ldquo;it&rsquo;d be cool to make a story game about a cave&rdquo;. And then getting lost without a vision. I can&rsquo;t stress enough how amazingly helpful it was knowing </p> <p>1) What I was making in terms of game design.<br /> 2) how many levels it was going to be. </p> <p>Thank you Lazy Devs.</p> <p>That isn't to say you always need these two things clearly planned out from the beginning for every game, but as a new developer I think it is an essential thing to work towards.</p> <h3>Tracking small changes is great</h3> <p>I liked making tons of little checkboxes for things like &ldquo;change the color of a lock&rdquo; to some bigger things like fix the player animation bug or design level 12. Being able to physically check things off was really helpful. I also had a page for big feature ideas. Some features didn&rsquo;t make it into the game, but it was fun to cross or check things off when they were completed (or scrapped from the game).</p> <h3>Juice and UI will take more time than you expect.</h3> <p>I can safely say &ldquo;I finished the game&rdquo; halfway through development. The other two-three weeks were spent adding extra menus, making smoothish animations, and lining up the UI.</p> <h3>There is so much joy in making small things with limited resources.</h3> <p>I was so hesitant to develop on Pico 8 at first because of its size limitations. I was like, &ldquo;I want to make a game that can scale up to a giant Zeldalike game if I want&rdquo; (spoken in an evil genius voice). The truth is you don't need a ton of space to make fun games. A benefit of the limitations is that without generating my levels in code, I had about 12 levels to make. This saved me from getting bogged down making levels all the time and freed me up to try other things.</p> <h3>Pico 8 Games are great!</h3> <p>In making my game, I ended up playing a ton of Pico 8 games. Some games were absolutely massive games considering the constraints and some were these short little juicy arcade games. I enjoyed them all.</p> <p>Anyway, thanks for listening to my ramble. Definitely let me know if you have any comments or questions. I am happy to answer.</p> <img loading="lazy" style="margin-bottom:16px" border=0 src="/media/64475/23_mysoko_2.gif" alt="" /> <p>Happy gaming,</p> <p>Olivander</p> https://www.lexaloffle.com/bbs/?tid=52398 https://www.lexaloffle.com/bbs/?tid=52398 Fri, 14 Apr 2023 01:30:12 UTC