I'm already warning you that this devlog won't contain as many images as the previous ones, because here I'm going to mostly talk about the problems I've been having with this game. This devlog is my current state of development, as of February 4th, 2023.
I wanted something new. Not only to create a multiplayer game, but to also create a game that could interact with your Game Jolt API, meaning you can get trophies, play with friends, etc. And I wanted it for this game. At first, the idea came when I was beta testing the game with @MaroonFox and, since the beta is an html file, I noticed that if I opened the game twice (as in, opening in two separate tabs), I could play the game with myself. This made me ponder about ideas that could fix it. And then it sparkled: Game Jolt API.
Lots of multiplayer games in Game Jolt use its API, but Scratch is particularly limited to these sorts of things. Thankfully, I had found an Game Jolt API extension for TurboWarp (the Scratch extension that I was coding the game with) made by @LukasStudioTV and it looked pretty promising. I quickly got used to the new blocks and could easily learn how to sync projects with games on Game Jolt. After experimenting with the extension for a while, I jumped back into my game and tried to apply it there. There I started noticing some things...
I would have to make a login screen. Easy, right? Yes, actually. After making the login screen, I decided to input my info to try to see if it was working. It was working, with two problems, though:
1: Whenever I inputted the wrong information (username and game token), the extension would still say I was logged in, even though the account I "logged in" with didn't even exist. This is huge because it basically makes the login screen and its whole purpose pointless. Think about it, just inserting anything into the prompts and you would have access to the game. But why didn't I make an account verifier? Well, I did, but you could still bypass it by putting a username that exists (which is what the verifier checks for) but a completely random game token. It worked like this: you typed in a username. This user's public Game Jolt data (like bio, friends list, last login, etc.) would be fetched and the verifier would see if the user's last login wasn't an error. I chose to verify the last login because it's not something customizable, like a bio, or who you're friends with. And when the user didn't exist, the output message would be "Error somewhere!" which means if the output wasn't that, then that account is real. The problem is, the extension didn't care if you were actually logged into a real account or not, it would still say you were logged in.
2: You could log in with an account twice at the same time. The extension also didn't care if someone was already logged into the account you are trying to log in with. This is also bad because even if the first problem didn't exist, you could still play the game by logging into a single account twice in different tabs (which was the problem I was initially trying to solve).
Now, to not discredit the creator of the extension, he did release a patch and he did hear me out when I reported the first issue. Not only that, he fixed it. Sort of. When I was testing the login feature on TurboWarp editor, the first problem had vanished. Now you needed to put precise and correct information in order to actually log in. However, as soon as I packaged the project (on TurboWarp's built-in packager) and went to test it for myself, the issue came back to haunt me. I don't know if it's me not knowing how to update the extension on TurboWarp Packager or if it's an actual error within the extension itself. Either way, I can't go further on anything regarding API in this game at least for now. I'm also trying to see if he can also fix the second issue I mentioned. After implementing the API extension to the game, I decided to make it v0.6 (which means v0.5 is exactly the same as v0.6 but without the API stuff).
Let's take a break here, because now I'm moving on an issue in my game: balancing.
You know how Five Nights at Freddy's 4 is a singleplayer game, right? In singleplayer games, the player can be as overpowered as they want because they are not going against other people who would not have a good gaming experience if that was the case, they are going against bots. Fun with Plushtrap is no different. It's a surprisingly easy minigame, that is, if you know what you're doing. I've even watched some tutorials on YouTube to get to know the game's mechanics, but all they would say is to just listen to a couple sound cues and shine your flashlight after some random sound cue. Of course I'm simplifying the tutorials, but I'm not doing it a lot. The minigame is brutally unfair against Plushtrap (the bot).
This is one of the problems with trying to turn a singleplayer game into a multiplayer game. In order for both players to have a good time playing the game, it needs to be balanced. But when you take a game that on its essence is heavily unbalanced and try to put that for 2 people to play, one of them is not having a good time. Playing as the child in my version of the game is just as easy as the original minigame's version. There's just one strategy: whenever any footsteps are heard, shine your flashlight. Eventually, Plushtrap will either be on the "X" when you shine your flashlight or he will not, which means time will run out if you apply that strategy. It's almost like Tic-Tac-Toe, where there's always a way to never lose, but in this case, it is only available for one of the players.
Now, I'm only allowed to mention this here because I will not release the game with this unbalanced gameplay. A couple of friends of mine who play-tested the game really liked the concept of it, but had the same complaint: the kid never loses. And when I change the gameplay to something more fair and fun, I will not talk about it in as much detail here, since I want the players to figure it out for themselves. But right now, I have absolutely no idea how to change a game whose essence is unfair.
So yeah, these are the problems that are preventing me from making further progress on v0.7, at least for now.