While working on a 616-style prototype game, I got the idea of creating a silly remote car just for fun. It ended up looking like the red Among Us character, so I proudly named it Sussy.
After creating Sussy, I wanted to make a multiplayer game where a bunch of little goofy cars destroy themselves on a map, so I started working on it.
I decided to use Steamworks so we can, later on, when the game is finished, publish it on Steam and benefit from the lobby hosting system.
Stupid me thought it was going to be easy to create a fully working multiplayer system for the game.
No worries, I'm still trying to develop it. I actually got lucky and found a sample project that would do lobbying for me, but now comes the harder part, the transport of game objects, meaning that I have to find and correctly use a transport for sending/receiving game data between players.
I'm still trying to figure it out.
On the other hand, I also have to change Sussy's code,cuz it sucks. Sussy would noclip out of bounds all the time, and we can't have that happening in the game, so I kinda "fixed" it for now, but it's not done yet.
I also added a name shield on top of Sussy that displays your Steam username, which I think is pretty cool.
Damn, I am such an idiot. I realized that there were three transports that came with the sample project, I had absolutely no idea. This is going to make it less difficult, cause I can skip the process of looking for one.
Unfortunately though, while I was searching for it online, I ended up wasting the whole time I had for working on this project that day. Womp womp.
At least now I can start researching how to use these transports so I can make multiplayer for real.
Oh yeah i forgot, its called fishnet. :)
As I was researching how to use fishnet transports, I found out that the sample project was already using one by default, so I tried entering the same lobby with 2 pc's, meaning 2 steam accounts, and it worked! - well... only loading the scene worked there was no multiplay yet, but its a defnetly a step in the right direction.
I gave the player spawner, a sussy player prefab (Asset package), and all it did was spawn 2 sussys (one for each player in the lobby), which is good but unfortunately each player had control over 2 sussys instead of just 1, so yeah not working yet but were progressing.
Thats all i did, didnt have much time. bye.
Ok so here's the thing, scene loading on both client and host is working perfectly fine, but for some reason only the host can see whats happening, while the client just sees the void, because his sussy game object falls out of the map, i really dunno why.
Here's the weird part, the client's inputs are getting registered, meaning that if i press W on the clients pc, their sussy will move on the hosts pc, what the hell is happening here...
I ended up fixing the void issue! but theres still no movement on the client's pc, what a shame, i guess i'll try to fix it next time.
Oh also working with the server is a pain in my ass, but whatever bye.
I did it guys, there's actually multiplay in the game now, i'll tell you how i got it to work.
It turns out that working with the server isn't a pain in the ass anymore, because i discovered a component called "NetworkTransform", this shit allows me to simply write code for sussy without worrying about the server functions, meaning that, sussy's standard code works just right! and i get to remove every damn piece of networking function present in the code, and guess what...the client's screen is showing everything perfectly now, being able to run around, jump, launch and the host is able to see everything he does and the other way around too.
So basically multiplay is working, atleast the base for multiplay is working.
Ok im starting to understand stuff for real now, the component "NetworkTransform" takes care of the position, rotation and scale, while everything else like animations, needs to be called by a function inside the server, meaning that when sussy jumps, the client will see no animation, just a sudden jump in the air, but if i call the jump from the player that is about to jump, the server will play the animation for every client and the host.
Also. I had a little issue with the jump, since NetworkTransform is just...kinda basic, it would display a jump very poorly, with a bunch of glitches. So I decided to add a function to call the jump in the server aswell, and somehow it worked.
Now everything works just fine, and i even made some changes in the blender model of sussy, for future animations that it will be able to do. That's it goo'bye.
Yesterday i didn't have time to code or test anything, but i can talk about some ideas i have for the game and the additions to the sussy model i've made.
I have added a few new animations, like opening the top capsule, opening the back for boosters to spawn in and literally make sussy fly across the map. Its more of a future thing tho, i dont know how the game will look like or what to try out, but i'm preparing stuff, i guess.
Another thing i did was, another blender model, i named it weapon, its gonna be the weapons you will be able to spawn during the game. I decided to start with a goofy, yet simple weapon, a boxing glove, during the game if the weapon is activated, sussy will open the top capsule and a big boxing glove stuck to a coil (Cartoony as fuck) will punch another sussy into the void.
I already animated it (roughly) so it comes out and punches whatever is in front of the player, but i didn't have time to implement it to the game. Thats all i have for today.
Didn't do much yesterday, worked on the animation for punching, that's pretty much it honestly.
Atleast i have something to show, cuz i dont have anything to say...i really didn't have the time to code.
Also the boxing glove looks weird, cuz i didn't model it properly, dont worry i'll replace it with a better one, when i get the time for blender again.
Anyway i took a screenshot and recorded the animation, here ya go:
Here we have sussy punching.
And here we have sussy punching, but animated.
IT'S TIME! to make serious choices, since we already have a good basis, we need to start thinking HOW everything will work internally (Backend).
This means that I will need to create code that isnt sh!tty and that needs to have functions that can dynamically do things like animate every sussy on the map and even make them fight or something.
The reason why the code needs to be optimized and thought out for the future, is because once you start developing with one system in mind, there's no going back, well...there is, with github, but i'm probably going to forget to make branches and commit stuff for everything, because im dumb, so its better to come up with something solid.
So i'll come up with a code that allows me to actually have easy control and make it easy to implement new things, like weapons and even new sussy models, thats what makes this step so Cr1TiKaL.
Anyway this is going to take a while, lots of trial and error, so be prepared for a sh!t ton of logs about that, thats it for today, bye.
Today I started coding and trying to come up with a nice way of simultaneously jump and do the punch animation, so i decided to split sussy into 2 parts, the bottom part, which consists of everything besides the capsule and the weapon, and the top part which is the capsule and the weapon, now sussy's bottom part can do the jump animation and the top part can do the punch animation.
So that was pretty easy to set up, then came the more difficult part. I needed to make the punch actually punch and not just push, like it always does.
I decided to make a new script that would detect when the glove's collider was inside of an object and the apply impulse force on said object to make it look like he got punched really hard, and surprisingly after just a few attempts it ended up working just fine, only needs a few tweaks but its working. That's it for today bye.
I am making a big change to sussy, I know I should probably focus on getting everything right with the server and stuff, but honestly I would rather spend some of my time updating sussy itself.
So here's the thing, you can kinda split the gameplay into 2 parts (just like I did with sussy funny enough), and you will realize that there's a time when u need to move and punch, and there's the time when you GET punched and also get thrown around, I call this Gamer-mode and Silly-mode, what do I mean by this, well its quite simple, the game needs to work flawlessly when you're trying to play it, but it can get silly when u are technically not playing it, like when you're flying around the map and have like, no control over the player.
So with that information in mind, I decided to use a simple character controller for the time you actually get to play, in order to prevent bugs and also to get smooth movement, and only activate the rigidbody when sussy gets thrown in the air, like getting punched, jumping or launching.
I feel like having this balance will improve the game massively and controlling sussy wont get annoying, that's the step I'm taking, that's why I created a test_area_map so I can test sussy to its fullest, anyway that's it, sorry for all the yapping, bye.
Look dud i tried making whatever the hell i said in the last log, but it aint working yet, although i had alot of time yesterday...anyways i dont have any ideas on how to make a seamless transition between silly and gamer, but im figuring it out, i just need some time. a lot.
So yesterday i tried doing something like:
when on ground = characterController on & Rigidbody off,
when in air = characterController off & Rigidbody on
Sounds simple enough right?, wrong. Sussy ends up glitching through the map, because the change is too sudden, so i have to sort of, discard that idea idk.
Thats it, bye.
I cannot comprehend why its doing this to me. Its not opening the files. Its being a pain. VS CODE IS BEING A PAIN IN MY ASS. I WILL COMIT UNALIVE. I WILL UNINSTAL MY LIFE.
Anyway, thats future me's problem, sussy has been working fine, i have a good balance of silly and gamer, so ye just a few more tweaks , adding animations AGAIN and then i can progress by trying other things, maybe the UI, probably the UI ye, k good bye, i'll go deal with vs code now.
ARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE NIGHTMARE
After so much time, i finally got vs code to work with unity again so, thats good.
When vs code started working again, i went and started fixing sussy's code, had a few problems, like for some reason sussy would simply do a 45 degree angle and just get stuck like that, i ended up figuring it out but it was probably the weirdest most annoying bug I've encountered so far. Anyways thats kinda all i did, i'll make another log if i remember a crucial detail that i wanna say, but for now that's about it, bye byes
Hello, long time no text. Let me make a quick recap of my life and the unhealthy connection i have with this project, making me loose my sanity and making me question why everything has to be so complicated.
Everything seemed fine when i got fishnet working, but for some reason it just wasn't solid enough for me, it was mostly inconsistent, may be because of the code I stole, or maybe it just cant do the job for the type of game i want to make, anyways i switched to mirror, which is yet another networking package that actually ended up surpassing my expectations.
So there I was using another stolen code just to see if it was worth the switch or if it was just as good as fishnet, and honestly it was the same, inconsistent, buggy, spaghetti coded crap, that I could not understand (still not as messy as fishnet). I started giving up on the project, I couldn't find anything that could satisfy my needs.
Until a brilliant thought crossed my mind.
I'm coding it myself.
silence.
it works now.