(Receive email notifications)
Use the z, x, and arrow keys to navigate through the menus.
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 "outpost requests". These will upgrade the outposts so that they produce more.
The "hard mode" of the game is to complete all the outposts without selling any contraband.
Behind the Scenes
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, Age of Ants, that used some really cute bugs as units. I wanted to use similar bugs as companions.
- added lantern of farsight item to plains
- bandit will never steal all items in inventory
- option to choose travel speed in menu
- removed sell back contraband to black market (no returns...)
- Fixed a small bug with the retire button
- Moved the level up text to not interfere with the retire button
My Wife for encouraging being very supportive and encouraging me in this endeavor and the great Pico 8 community :).
(Receive email notifications)
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: https://www.lexaloffle.com/bbs/?tid=52398
Operate the menus/restart level with the O buttons and arrow keys.
Level Selector and Acheivements?!?!:
Support is always welcome but not required. You can find my itch.io page here: https://olivander7.itch.io/sokovirus
Please reach out if you find any bugs or have any comments :).
My Wife for encouraging me in this endeavor and the great Pico 8 community :).
(Receive email notifications)
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’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.
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.
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).
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.
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:
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 "game state" consists of an init that sets the _drw, and _upd, an update that updates (yeah), and a draw function. This made writing the code easier for my brain at the time.
Another important takeaway for me: It is better to bust out an isolated feature than to try to find an “optimal solution” online. Trust your instincts, fail, and try something else. It is all learning. Also implement a debugger early.
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’t trying things.
4/9 nearing the end of development. This is where my morale definitely dropped. I felt like it was done and I didn’t like it. It felt like a waste of time. But after watching Lazy Devs’ postmortem I was again encouraged to see it through.
No new projects. Finish the one you have.
4/10 cool, I’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.
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().
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’t differentiate that well).
Oh my gosh, scope is sooo important.
I have tried gamedev before on other platforms. On those platforms I didn't set out to make "my dream game", but the ideas had mechanics that were uncommon and a not necessarily fully realized gameloop. More like “it’d be cool to make a story game about a cave”. And then getting lost without a vision. I can’t stress enough how amazingly helpful it was knowing
1) What I was making in terms of game design.
2) how many levels it was going to be.
Thank you Lazy Devs.
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.
Tracking small changes is great
I liked making tons of little checkboxes for things like “change the color of a lock” 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’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).
Juice and UI will take more time than you expect.
I can safely say “I finished the game” halfway through development. The other two-three weeks were spent adding extra menus, making smoothish animations, and lining up the UI.
There is so much joy in making small things with limited resources.
I was so hesitant to develop on Pico 8 at first because of its size limitations. I was like, “I want to make a game that can scale up to a giant Zeldalike game if I want” (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.
Pico 8 Games are great!
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.
Anyway, thanks for listening to my ramble. Definitely let me know if you have any comments or questions. I am happy to answer.