Final Project Prototype

Project Description

Building upon my MP3, I added additional game mechanics and another level into my farmer platformer game to improve the overall experience. At the time I am writing this, I am having difficulty deploying the assets of my project, and thus my site is not releasing the sprites with the images I have created for them. Even so, this is deployed at this link.

gif of 8-bit farmer collecting a carrot and losing damage due to a stink bug

Project Scope: For the most part, my project scope has stayed the same in regard to adding new game mechanics, such as enemy sprites, adding a HUD, and revising “lives” into health points. One major change is that I find myself taking a lot of time in creating a new level, that it is actually making me question if making more than 2 levels in this project would be a sufficient way to use my time.
Time Management: Surprisingly, I spent less time working out the new mechanics of this project than I thought I would. Most of my time was spent reworking code that I had previously implemented versus adding new mechanics. A bit of a setback was the issue of deployment, which I will uncover more in my issue deep dive.
Implementation Plan: My implementation plan has shifted a bit in which I was able to complete certain milestone 2 objectives and also found myself unable to complete certain milestone 1 objectives. Even with this tradeoff, I feel confident in the ability to implement my final version, as my current prototype shows commented out code that contains my explorations in certain issues I hope to uncover more.

Development Process

Development Process

The following two methods helped guide my work:

  1. Planning
  2. Similar to my last project, I needed to make a concrete plan of my levels, as well as think closely about how I might add certain game mechanics with my existing code.
  3. Reiterating & reworking
  4. Since I was working with existing code, I found that I had to rewrite certain functions and parts of the game so that many variables could be access globally as well as make the overall program less redundant. Since levels were often hard-coded to account for where tiles, carrots, and other sprites go, I found myself reiterating on branching logics using if statements to define what level the player is on.

Issue Deep-Dive

There were a lot more issues than I had imagined, but the two that challenged me within this project were asset deployment and creating a game menu. For asset deployment, I kept finding that my assets were not deploying into my live site, causing a 404 resource error in my console. I believed that this was a similar error that I ran through with MP3, and hoped to follow the same logic to fix this issue for my prototype. However, since I was using Vite, I struggled to understand how to fix this problem, as I was making many adjustments to my package.json and vite.config files to no avail. Another issue that I want to explore further in my final is creating a game menu. In my game menu, I found that due to the nature of my games being written primarily in the windows.setup function, I need to learn more about how I might guide users to another level without using windows.draw.

blue background with a pixel barn and farmer with two white buttons sitting below them

Ideas & Future Work

I definitely overestimated the amount of effort it would take to restructure my code, that I was not able to meet all of my initial milestone goals for this prototype. Even so, I hope to include the following in the next iteration:

  1. Add “player death” logic that removes all health points when the player falls out of the map
  2. Add “game over” screen
  3. Improve animations for falling platform tiles (End of Milestone 1)
  4. Add to “game over” function to add a success ending screen to allow people to go to the next level
  5. Change player movement to support left-right acceleration and set a counter to limit double jumping

Kudos

I definitely wouldn’t have been able to create this extension without the following resources: