the hall of unfinished coding projects

smth i realised at some point is since i haven't really finished/released anything as of now, the game projects n such that i've worked on are fairly unknown apart from the little i share on twitter and in private discord servers n all that

that changes with this page!
here i will share any unfinished projects i have made to make sure they are not lost to time (and to also actually prove that i know how to code in case i wanna use this page in that manner lol)

throughout 2021-2023 i messed with learning how to code/using game engines a lot and made a bunch of projects where i just tested random things before i tried to make any of these "actual" games
if you're wondering about engines, all of these were made in godot
i've messed with unity for the sake of learning and i've thought of using it for certain ideas but i haven't really had a good enough excuse to do so yet

i might add to this at some point, but most of my other "unfinished projects" are mostly just ideas that i threw out before i made anything substantial for them


Plants vs. Zombies: Dimensional Smoothie

last worked on 10th of october, 2023

as far as i can recall, this is the first major game project that i ever attempted to create, this being a fangame for plants vs zombies
anything i tried to make is not really meaningful enough for me to still remember/have saved on my pc lol

while i could go into every little idea i had for pvz dmsm, for the purposes of this being a basic overview and getting to the stuff im more interested in (the code), i'll provide the basic ideas i had for it

✨dimensions✨(i am, and was, very aware of pvz dimensional destruction's existence, but i have not seem them do anything with the gimmick lol)
each world in pvz dmsm takes place within a dimension - these worlds are fantanstical in a similar way to pvz2's time travel theme, but do things that pvz2 couldn't

the exact list of ideas/worlds changed a lot, but some of the ones that stuck around a lot were:

the code

for the sake of having somewhere to start, this is the basic test level i worked on when implementing all the mechanics

plants have to be made in this specific folder structure in order for everything to work properly, and have an easily editable resource file in order to edit any common attributes


(the code for that resource class)

for clarification, the "slot" option describes whether the plant behaves like a pot/lily pad, or a pumpkin - i figured this was kinda important to implement early since it would result in up to 3 plants being on top of each other

most of the other attributes are pretty self explantory if you know how pvz works, but there is one other thing to the plants - animations (obviously)
with the way that i handled animations, they were stored in a seperate scene from the plant for the sake of being able to instance them in not only the plant, but also when the player is "holding" the plant, or in the "mini almanac"

speaking of the plant scenes, all plants inheret from a single "common" plant that basically has all the functionality you need for a basic plant


point is, this makes code for sunflower and peashooter simple as hell

and due to how plants and tiles are coded, pumpkin and lily pad don't need much code at all apart from setting certain parameters


water tiles? where?

while not being shown in the level video, tiles have a few things going on with them

i did make the admittedly bizarre decision to place tiles manually (for the sake of being easy to edit?), which is improved on later, but for now we're stuck with level templates lol

not gonna bother showing all the tile code, so here's just the code for different plants on a tile and them being visually ordered




zombies are pretty basic/unfinished (as you saw by the arm particle just kinda floating in the video lol), and they're pretty similar to the plants in how they're stored

the most interesting thing about them by far is the testing i did for in-engine animation and using texture atlases, but that's about it

other level code stuff

the level script is the 2nd longest/most complicated script i made for this project, as it handled various things such as menu buttons, sun, tiles, etc

but it turns out that the longest script in the game is the seed packet handler that is under it lol

last little thing, the level paramaters (the conveyor was left unfinished, but locked plants work just how you would expect)

there's a lot more i can get into when it comes to the code, with little specific things getting kinda complicated like the structure of the "mini almanac" or the code behind placing a plant, but i think it's time to move onto..

why did i stop working on it?

there was sort of a loss of motivation to continue working on it, and i feel like the main reason was because i was making progress way too slowly due to focusing on the presentation of what was essentially a prototype

i spent way too much time on testing plant/zombie animations, making a little spinning save icon for when the game saves your settings, or perhaps the best example, the entire splash sequence, despite the fact that all of this had literally no art made for it lol

there wasn't really enough attention being paid to continuing to implement all the basics and just what the hell i wanted in terms of mechanics and new things for this game, so yeah, this project was pretty much doomed from the start

that being said, a project that aims way too high and doesn't have much focus on game content is a pretty common learning experience for most game devs, so hey, i don't think it was a totally negative experience



cattocafe


last worked on 8th of november, 2023

(this one didn't really have any sort of wip logo lol)

cattocafe was a pretty basic concept inspired by papa's pizzeria (a flash game), being a bit less ambiguous in scope
i've been a bit obsessed with the idea of making a pvz fangame for awhile (you'll be seeing another one later), but i figured cattocafe would be a nice first (original) game to make
especially considering the fact that the game was dead simple, consisting of basically just dragging things onto other things and then giving that to a customer

(the art quality slowly gets worse as i stop trying to get bogged down in presentation again lol)

as you can see from this image, the game was gonna have around 18 ingredients from which you could make multiple types of "products", depending on what you put on the menu and what the customer asked for
i have two versions of the cattocafe godot project, this first "unfinished prototype" and a later one

what products you can even put on the menu depends on what ingredients you have, which you would buy from a shop after the "day" ended with the money you made from the cafe (this wasn't implemented yet in this prototype, so this was tested via changing the save file lol)

i did need a surprising amount of code for defining what products needed what resources, as well as accounting for alternatives in the recipes, not to mention i have to spawn the appliances/tools you need

as i said, the appliances/tools you needed for each product you're selling that day (you can only sell 4 at a time) would automatically spawn, meanwhile you were intended to drag the ingredients from the left side (none of them had logos lol)

"tool" script, this would be things such as the mug or the masher in the screenshot, which could be dragged around the workspace

the reason this "prototype" was left unfinished is mostly because i knew what i wanted at this rate and felt like reconstructing everything for the sake of making it nicer to work with, thus why i dubbed it "the prototype"

version 2

i'll explain why this version is even more unfinished in a moment, but let's go over the changes

the "workspace" was given way more screen real estate, and i added a menu on the right from where you would drag out your ingredients, appliances, and tools (which you would all get from the shop now (which also actually exists in this version, even if you can't get to it without the console i made)), aswell as a "cookbook" that would explain all the recipes in the game

you can also see i opted for 3 shelves like in the og version instead of the 4 in the concept drawing lol

all the things you have bought from the shop are saved in the save file, and this time ingredients are also stored as resources (like the plant/zombie info files that you can edit from pvz dmsm!)

"day unlock" references a mechanic i planned to add where you wouldn't have access to all the ingredients/appliances in the shop immediately, and would instead unlock more options from the shop over time

why did i stop working on it?

you've probably been wondering this for a good minute now, considering the fact that the scope of this game was pretty small and it was a simple cosy cafe game, why didn't i finish it and release this as my first game? well...


the game isn't fun


let me tell you something i've been keeping secret this entire time: the "shop" phase of the game was originally completely different, where instead of buying ingredients, you would scavange for them in a rougelike type minigame, creating a gameplay loop sorta similar to something like cult of the lamb (despite the fact that i never really got far in cotl lol)
the problem with this entire concept was that it made the scope kinda damn ambiguous as the rougelike part of this game was not a developed idea gameplay-wise at all, the concept simply being "the cafe is nice and cosy, but it's actually a post-apocalypse outside"

for quite awhile i didn't want to scrap the scavange phase due to the themeing, but eventually i convinced myself it'd be for the best

there was then something else i realised when i replaced the scavange phase with the shop, that being that the cafe phase is not really interesting at all, as i had said, it's literally "dragging things onto other things"
this is why after implementing the shop in v2 i abandoned it so quick, as i realised that i really didn't like the gameplay of this game, which pretty much made me lose all interest in continuing to work on it

even if part of my brain was telling me that "every lone game dev's first game is flawed, and you need to put something out there already", my total lack of motivation still made it pretty hard to continue, as if you ask me, there is no point in making a game that isn't fun



Plants vs. Zombies: Everfruit


last worked on 11th of april, 2024

pvz everfruit is my second major attempt at a pvz fangame, this being a bit more recent and the fate of it being a bit undetermined as of now

when i had posted something about dimensional smoothie months back, i had been asked (on either reddit or discord, i cannot remember at all) if i was using some sort of "pvz engine"

this idea of a pvz engine randomly popped into my head again and kinda interested me, this idea of some sort of pvz engine people could use to build off of to make fangames

i remember fnf's new (user friendly!) chart editor being revealed at some point which i'm pretty sure subconsciously gave me the idea that a pvz engine like this would need some sort of robust level editor, giving you the ability to make zombie waves and placing board gimmicks using a mario-maker style ui
but, of course, we need to make some zombies and some board gimmicks that could be used, and from there pvz ef turned into "a bunch of plants, zombies and gimmicks from pvz1/2 rolled into a cool level editor/player, with levels people can share via level files"

also, plants/zombies/gimmicks can be added via mods (considering that adding mod support with godot is extremely easy lol)

while all of this has a pretty ambiguous scope, the idea formed in my head to aim to add most stuff from pvz1, and then add extra things from pvz2 n such in various updates - whether i do the entirety of pvz2 or not, i still felt like this idea is pretty cool

so, lets see what i have made, shall we?

this fairly long clip showcases a variety of things that i figured all needed to be shown in motion
first of all, for the sake of testing, i made several different lawns to implement all the board code n such



all the custom tiles (pool tiles, roof tiles) are set in a giant array - this is technically the most precise way to do it, but it's fairly cumbersome to add to by hand
keep in mind that in the game's level editor you would choose from pre-made lawns like these and add on top of these, so i made a plugin to make these lawns with the godot editor


as you can tell, now tile types are also files - i took this approach with basically everything, to make stuff as modular as possible for the future

of course, with how the lawns are stored, the slants and the collision system i'll get to, it makes for some insanely convoluted code that basically constructs the lawn when level starts


(my code may have been simple enough before to get away with it before, but this is when you wanna comment your code kids)

anyways, about that collision system..

just about every existing entity on the board, plant, zombie, projectile, inherets from "topdownentity", which has a fair amount of collision code for detecting collisions with objects that.. technically have 3D hitboxes

i feel like its quite a bit too much to explain, especially with how i had to make a seperate class for "topdownfloor"s considering the existence of slanted tiles (and then having to make 2 big giant floors on either side of the lawn during level construction), but the point of all of it was to emulate the 3D environments going on in pvz1/pvz2 lol

moving on, plants and zombies are coded slightly differently but they're not too dissimilar from how they were in pvz dmsm, so i just wanna give you a few quick screenshots to something i didn't pay any attention to in dmsm, seed packets


something also teased at in the video that i haven't mentioned is the almanac, which is basically meant to be a giant guidebook for new players for not only info on plants/zombies, but also stuff like every board gimmick, using the level editor and info about the game

the questions on the main menu are basically meant to function as "links" to pages in the almanac (these would also be riddled throughout the level editor), but obviously the almanac isn't implemented at this point - either way this thing is meant to be able to slide in ontop of any situation without changing screens for the sake of not disrupting flow

why did i stop working on it?

at one point i got a bit tired and took a break from working on pvz ef, and just kinda haven't returned
despite the fact that whatever "1.0" version i'm supposed to make is meant to have the clear scope of "just things from pvz1", i still made this kinda ginormous task for myself to make sure EVERYTHING is as easy to expand upon as possible and having to do some insane forward thinking to make sure i don't get into technical debt later on

case in point, the weird 3D-in-2D collision system just doesn't feel great to work with and i ended up getting into my own head about just redoing everything, with actual godot 3D collision logic in the background of this 2D presenting game, instead of forcing any people who want to mod the game to understand the strange "depth" variable and floor detection of topdownentity

at the end of the day i think i just got scared of continuing to work on pvz ef considering how the strange mentality of "i need to remember i might wanna add more to it in the future" creating a scope that is small now, but can be much bigger later

there's a possiblity i could return to it in a few weeks when summer starts, but overall i'm not saying anything about whether or not i will lol
either way i hope i find something interesting to work on soon, specifically a pvz related project considering how fun these types of things are to code for me

for anyone who read this entire thing (you are insane) thanks for reading! :3