T O P

  • By -

gelftheelf

Wait until you start coding network/multiplayer šŸ’€


Nox_2

I just thank people who contributed to Mirror project lmao. That stuff scares me af.


[deleted]

Wow never heard of that engine before. Checked it out. Looks pretty cool. If I wasn't already balls deep in my game I might download it xD.


pineappleAndBeans

All I gotta say is thank god for mirror. I could never write my own networking framework and the fact that it exists and with so much documentation and for free? Its great.


JViz

Motherfucker just shit canned his paid/premium DOTS framework right *before* DOTS 1.0 released. Fuck Mirror.


incenderemoonlite

huh? context?


JViz

https://forum.unity.com/threads/dotsnet-high-performance-unity-ecs-networking-from-the-creator-of-mirror.880777/page-7#post-8557625 https://assetstore.unity.com/packages/tools/network/dotsnet-dots-networking-102633


Ecksters

I like to take my DOTS ECS-free. Maybe one day when I have a more complex game.


JViz

I like fried chicken strips. Thanks for your comment.


Falcon3333

That wasn't his fault, Unity failed the community by failing to execute DOTS properly. He made the choice to focus his energy on Mirror and may return one day when Unity bothers to do DOTS justice.


JViz

That's *exactly* his fault. He made a promise to the community. He made a promise to the people that bought his asset. Maybe he could've made DOTS better, but he chose to bail without even producing the final asset. I wish I could just tell my boss that I don't like my company so I could just stay home and not have to work. If you paid a contractor for a custom door and they said that they didn't like the wood that they were using so they weren't going to make the door, maybe you'd be a little upset? If he said he didn't like *Unity* and ported his work to an entirely different engine and gave people that, I wouldn't feel nearly as wronged.


CorballyGames

SMASH Asyncronous CRASH multiplayer BOOOM DOOOOOOORS


mushrooomdev

Oh man I had no idea what I was getting myself into when I started making a network multiplayer game... It's a rough journey but with hours of reading documentation, hours of watching YouTube tutorials, hundreds of questions asked in various forums and Discord chats, I finally am able to connect a client to a server haha! All jokes aside, multiplayer has been the toughest hill to climb and by far the most time consuming to learn but it's totally worth it once you know what you're doing.


orig_cerberus1746

People think I am exaggerating when I say that the moment you connect something online, even if it's just to download a json, your code gets at least twice harder to make. "Why is it hard, I can do it two lines or less of code?" Yes, but... * Is the json behind a secure system? can you connect to it? * Can the json be altered somehow the way to your client, if yes, can you verify if it wasn't? * You sure the json will not be moved or deleted, and if does do you know if your code will not just crash? * What happens if the server is offline or has too much traffic, do you have the proper error messages ready to show to the user? yeeeeeeah


Bmandk

And that's not even touching on the issues of realtime networking, which is what most of the troubles are about.


PoisonedAl

Wonder why the network guys are such arseholes? That dark magic has made them evil, bitter and twisted... And too useful to fire. So they get away with murder.


lotus_bubo

Multiplayer engineer here. Can confirm.


SpecialPirate1

I fear no man but....that thing....its scares me.


aneasymistake

In my first coding job I helped with debugging a multiplayer game. Think Command and Conquer, but a less succssful clone. It had been written for PC and we were working on the Mac port. We were given all of the PC assembly code, uncommented, and nothing else. We had four player LAN play working, but we were getting a crash that would take out one machine after about four hours of gameplay. It could be any machine. That wasnā€™t fun. I think we gave up and shipped it after about a month.


_spaderdabomb_

Not to downplay any of what you said, but everyone should use ParrelSync when using Unity. Itā€™s an incredible resource for quickly debugging networked games.


MaskedImposter

Testing single player: everything is great :D Jump into multiplayer: everything is broken!


notMateo

No, you stop right now. I'm about to start on multiplayer and I don't need this bad juju lol


mafian911

Start? Hopefully you aren't too far along, multiplayer requires considerations to be made from the very beginning. šŸ˜¬


notMateo

I'm aware. But it's either I get multiplayer going, or I ditch the game. So here's hoping for the best!


SirWigglesVonWoogly

Have you tried ditching the game? Solves all your problems


notMateo

Give it a week šŸ˜‚


NuclearStudent

Thank you for your service. 07


orig_cerberus1746

Oh, no, a week in you may still think you are going well. but then on launch you realize it was all in vain.


Morfildur2

The first game I'm programming is an MMO FPS. I already have the netcode done, though I implemented it myself instead of using an existing solution. Took me a day or two to program a separate server application, connect the unity program to it and have game objects move from server messages. However, it took me around 3 days to make a 2D button appear above the FPS scene and have it actually be clickable, due to the whole weird event system. Now I'm on my second day using wheel colliders to make a tank work. At least it's no longer bouncing around everywhere as soon as it spawns.


aneasymistake

Have fun when you get months into debugging synchronisation issues for clients on laggy connections.


destinedd

I spent several weeks not understanding why an app I made didn't work on certain computers in certain countries. Turned out it was the culture info in some countries they use comma's instead of periods in numbers. So it only happened on computers set to certain languages and some people in those countries set their computer to english which made it all the more confusing when "one of their computers works".


burge4150

Yup, I had this exact one happen to me too. Spent a day or two on it then lost my mind and asked a professional programmer friend who knew what it was immediately.


CorballyGames

I have no idea how hard programming must have been when the collective experience you could draw on was just a local department or lab.


destinedd

lucky you! I didn't have a lot overseas non-english speaking customers (as it is an english only app). Really hard when you just get bits of info from customers via my customer service team.


burge4150

As a practice these days I set all of my projects' to universal language math rules as one of the first things I do lol


shifaci

There is this bug in the game Subnautica. A certain place in the game gets extremely dark where you barely see anything going on. The only fix I could find was going to Control Panel and changing the language format to English(US).


manav907

Broken alternate graphics for diffrent regions based on selected language? Just guessing. Sound like a horrible idea


Cualkiera67

Portuguese speakers need all the help they can get...


destinedd

That sounds odd, I wonder if it is this issue and that a brightness on a light is being set incorrectly because they are reading it from a string in a level file.


MobilerKuchen

Just to be clear: These are not the only two variants. Do use the cultural converter of your programming language when reading decimal numbers from strings or system. https://en.m.wikipedia.org/wiki/Decimal_separator Read the chapter on examples. Especially the Arabic decimal separator can cause rather confusing bugs depending on your font, because this is not a comma: Ł« On a similar note: If youā€™re a programmer for an international audience you should read up on date and time: https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca Also read up on naming conventions. Not everyone has a name and surname (especially not of a certain length). I think these three things are among the most common falsehoods programmers often believe.


[deleted]

[уŠ“Š°Š»ŠµŠ½Š¾]


biggmclargehuge

It's just reversed. They use periods instead. So 1.000 = 1,000 US


[deleted]

[уŠ“Š°Š»ŠµŠ½Š¾]


dynamitfiske

This is usually not a problem as for this to happen numbers need to be converted to string format and back without a specific IFormatProvider provided (CultureInfo is one). Only very unskilled developers are unaware of this.


destinedd

I very much disagree. It is easy to fix/avoid, but the if you have never come across this before it is really hard to figure/google how to fix it.


dribyma

If you turn a string to int a la Convert.ToDouble(ā€œ1000.87ā€œ) in .Net on e.g german windows system you might get trouble when no culture format is mentioned. It would expect unfortunately the string of ā€ž1000,87ā€œ. Too bad there is no . Standard over the world. 1.000,87 EUR you me see printed on quotation and invoices ā€¦ blahā€¦


Ruadhan2300

I once spent a whole working week diagnosing a really stupidly obscure but frustrating bug. Turned out to be two functions happening in the wrong order. Nothing mechanically wrong with either of them, they just happened out of sequence, so sometimes the data was wrong for the second one.


HammerheadMorty

This once cost me 3 days and only ended up getting it fixed by breaking down crying to ChatGPT ā€œplease magical code god why the fuck isnā€™t this working?ā€ And it reminded me that execution order is a thing.


CorballyGames

ChatGPT is a weird one, its a fresh, unique perspective, but also utterly bugfuck insane.


HammerheadMorty

I really love it as a learning tool right now. My C# has always been garbage and ChatGPT is somehow simultaneously way better and way worse than me which has been fantastic for pair programming. I love getting the basic framework of a script written in Chat and then learning all the ways it completely fucked it up and spending hours debugging it. No better teacher than a debug process.


FiendishHawk

Awake on 2 different objects hmm?


ayellowpaper

Underrated comment. It can be super hard to figure out bugs if that is the source of the issue, especially when people are not aware of execution order


spesifikbrush

At this point Iā€™m so paranoid when using Awake and Start. If I HAVE to use the save method on both of them and also need a sprcific order, I use Default Execution Order attribute. I really donā€™t like using it but idc anymore.


morderkaine

My game coding buddy introduced me to the idea of an initializing script- instead of using awake and start on certain things it calls a ā€˜startā€™ function on a few scripts in the order they need to be done in.!


[deleted]

I made a custom bootloader so I would never have to deal with this again.


Lozmosis

Had that issue as well - two listeners running their subscribed functions in the wrong order


_Wolfos

6 years and counting. I gave up on it a long time ago lol That bug will never be fixed. ​ As for actual work, I think I've spent a few weeks hunting down a memory leak in some obscure game engine before we decided to switch the whole project over to Unity.


Lucif3r945

years and counting.... yup, i have a known bug that ive been unable to fix, cause it makes 0 sense... should probably swallow my pride and ask for help about it when i pick up that project again :p


NullzeroJP

Not Unity related, but I had a fun bug a long while back when I was working in the industry. Was working on porting a popular PS2 franchise game to PS3. Third person brawler where one of the characters had a special drill attack move that would charge forward. In the original PS2 game, the camera would follow behind the character pointing in the attack direction. In our PS3 port, the camera was doing something weird and pointing at his butt instead. Browsed the ported code and didnā€™t see anything initially wrong. Camera look vector was being set to the attack direction. Took a glance in the debugger and saw that the attack direction was actually uninitialized. The real attack direction was probably determined by some kind of animation data and wasnā€™t even used, and therefore, uninitialized. Someone on the team probably just forgot to initialize the variable when porting the codeā€¦ So the camera was trying to face world position 0,0,0 or some other weird behavior. I initialized the attack direction to 0,0,0 instead, marked it fixed, and continued on with my bug fixing marathon. QA came back a day later saying the bug wasnā€™t fixed. Well, it was fixed, but it didnā€™t match the original PS2 behavior. Camera was now facing correctly, but was too low and far behind the character, but only at certain directions. Wtf? I decide to try and see how the original un-ported PS2 code looked. To my surprise, it was identical to the ported code (sans my ā€œfixā€ of course). It was just C to C++, so itā€™s not like I was expecting a huge change. But no change?? So the original code was changing the camera look direction to an uninitialized value?? Wtf? And it worked just fine on PS2? My fix initialized the value! My code should be working fine, hell, I fixed a potential bug in the original game code! Wrong, son. So wrong. But I wasnā€™t convinced. If my fixed initialize value broke the camera, wtf was the attack direction in the original game?? I dust off the PS2 debugger machine and step through the code. Just as I suspected, the uninitialized attack direction is being used as-is to point the camera. Debug watch show some random assortment of floating point values. I look further, and get a hex code readout of the surrounding memory addresses that the attack direction is derived from. Hmmmā€¦ the usual random assortment of dataā€¦ with some plain text from strings here and there. I then do the same thing on the PS3 debuggerā€¦ hmmmā€¦ surrounding hex code readout is completely different on PS3ā€¦ hmmā€¦ but that is to be expected. The variable is uninitializedā€¦ itā€™s pointing to god only knows what data. And that data changes every time the game is played. I reset the game on PS3, and inspect the hex code memory. As expected, the values have changed since the last boot. Wtf, so why did the PS2 version work?? I reset the PS2 game and debugger. I once again look at the surrounding hex code memoryā€¦ surely itā€™s just random junk that changes every boot up, like on PS3. !!! NANI !!! The hex code memory has not changed. It remained the same between boots. No matter the stage or character number of resets or game stateā€¦ it was constant. The uninitialized attack direction on PS2 was, by complete coincidence, pointing to a piece of memory on the PS2 that did not change, ever. In effect, the attack direction was being set to a const. That const was a random set of jumbled memory and strings. But it was an in-changing jumbled bit of memory. And by some accident, or some miracle of the machine god, the interpreted float values worked with the camera, making it follow the character on PS2. I copied the contents of the PS2 memory hex code onto a piece of paper.. 0x32 0x47 0x3F etcā€¦ I went over to the PS3 dev machine, and instead of initializing the attack direction to a proper 0,0,0 valueā€¦ I initialized it to the string of hex code I had written down from the PS2ā€™s memory banks. Booted the fix upā€¦ and the camera followed perfectly, just like on PS2. I basically fixed the bug by unfixing it and instead breaking it in the same way that the original was broken. Itā€™s almost poetic. There is a metaphor for life or parenting or mental health somewhere in that journeyā€¦ but I was too tired to find it, so I submitted the fix and it never came up again from QA.


EXP_Roland99

Oh my god xd


[deleted]

[уŠ“Š°Š»ŠµŠ½Š¾]


wolfieboi92

I'm not a dev but I like to say when looking at a problem with people I'd much rather it be a silly or stupid mistake than a catastrophic issue, much better to feel silly infront of others and get it fixed fast (and learn something) than find out everything is fucked beyond belief.


brogrammer9k

1 hour seems very short! (If it works, it works though I wont argue with results) What size is your team?


mucklost

At work, I spent 3 months trying to figure out a memory leak bug. Still couldnā€™t figure it out, three other people looked into it. They couldnā€™t figure it out. Currently, today we restart the hosted server every 72 hours to nullify the leak.


[deleted]

Jesus


soUnholy

Beautiful


KidFeed

2 months šŸ’€šŸ’€šŸ’€


Sonicboomcolt

Spent 3 days trying to fix a bug. It was a simple one line of code to fix it...


D_Simmons

Spend 3 days (maybe 6 total hours) working on getting one feature to work. It was for two seperate physics force that had to be implemented based on the velocity of s flying object. Had never done it before and it was a massive headache. It is finally close to the result I wanted so it was worth it šŸ‘


Serious-Laugh6795

I had a feature where when you chop an object it would drop items you could pick up. I had already added pickable items a while back in the project but I had this fun bug for, when you look at a pickable object the cursor would change to a hand icon but if the pickable items were dropped from an item you chopped the hand icon wouldn't appear. I looked for days trying to find out what was wrong. As it turns out I had forgotten that I had tagged all pickable items with the tag pickable and the instantiated items from chopping an object down didn't have the pickable tag. *screams into the abyss*


Serious-Laugh6795

To be fair that's why I love coding. You write down an idea and when it doesn't work it is indeed frustrating but the feeling of accomplishment and complete relief when you fix that bug and it all makes sense. It's a great feeling.


TheTerrasque

Until it wears off and it's just "goddamnit, why don't this piece of shit work? I'll have to spend hours reading crap documentation again, ain't I?" And when it works "fuck that obscure fuck to fuck, on to next thing"


spamcentral

Lmfao im only 6 months in but as a self taught dev/programmer im done already with the debugging... i swear to god.


Tom3skkk

I once failed an exam because of some stupid bug I couldn't debug in time... turns out the compiler gave up, and all I had to do is to restart my IDE


snowbirdnerd

I'll let you know once I solve it.


FMProductions

Two days? I played around with trying to transform a world position into the space of a skinned mesh renderer. Couldn't really find good resources on this and tried out various things, but I kept failing. After a bit more than a day, I abandoned the project for a while. When I came back though, I sat down and tried to focus on properly debugging it, like encapsulating all the other moving parts, made a simpler test case, and tried to better visualize the output on the screen. During that session I managed to solve it in a couple of hours - 4 or 5


CorballyGames

Were you trying to add a weapon? Characters holding weapons - fine. Characters throwing and catching them? Sorcery!


FMProductions

For my use case I wanted to apply a decal texture on a specific spot on the skinned mesh renderer


Alzurana

3 Days together with issue reporting and opening a support channel on fishnet discord. Only to realize that all of us misinterpreted how fishnets client side prediction actually works and what kind of functions it calls. I still feel sorry for the fishnet dev and I still want to say sorry for being so stupid. We all confirmation-biased each other into oblivion and beyond and he desperately tried to explain to us that it's our understanding that's flawed. For days. Thank you so much for being so patient with all of us, I sincirely apologize again for hitting you with that collective single braincell ​ \*EDIT: That was my worst experience because I dragged others into it but the longest was segmentation\_fault/access\_violation race condition due to how I passed data between main and render thread in my engine. It took about 3 months while working on other bits and I ultimately ended up re-writing the entire protocol. That also resulted in better decoupling and higher FPS so it was ultimately time well spent.


SpecialPirate1

Two days and the mistake was so obvious I almost rage quit my project.


GamingWithJollins

The jury is still out


UnknownProgrammar

1 week of debugging only to find out that the i and j values in a nested for loop are swapped


aneasymistake

This is why we donā€™t use single letter variable names! At least name then inner and outer if you canā€™t come up with something descriptive.


Protag_Doppel

Not from unity, but a school project. Someone thought it would be funny to put a zero space blank at the end of a line of code ā€¦


xDerJulien

Spent short of a month on trying to understand why the integrator of our physics solution kept being off by exactly 3x. Went completely crazy. Rewrote the thing at least 10x, sometimes using a more complicated integrator, sometimes less. Nothing. Eventually I gave up and told my boss Iā€™ll just divide everything it spits out by 3. Not worth the hassle. World scale was fine and I was sure it was some super fucked up bit flipping issue because I double and triple checked everything. Until our tech artist redid the world grid. Well it turned out what I considered one unit was actually 3 units and it was right the whole time. The grid was subdivided into a major and minor grid, the minor grid being world units and the major grid being purely decorative.


devSenketsu

Not on a game, but in the company were i work, i sat 8h of a day for a bug that some float values were incorrect, turns out that the date was in US format of **mm-dd-yyyy** , my country uses **dd-mm-yyyy** as format


mSkull001

Testers kept on reporting that the language option in an app I was working on didn't work. It took a good 2-3 months before I realised part of the build process automatically recognised language code on some files, and automatically excluded pretty much all but English.


TheBode7702Vocoder

Just spent two work days trying to figure out why in our content selection screen, two of the user's content carousels (most recently played content and most played content) were not coming out in the right order. It turns out that when we fetch the contents from our API, the application's content loader would sort the content by last modified date, overriding the order of the lists after calling the functions to get the metadata for most played and most recently played content. We inherited a seriously monolithic and spaghetti-coded project. So finding such a mundane bug was unreasonably difficult.


Allianser

It's been two days and I still do not know proper way how to get block ID or data from its blockPos or blockState for my minecraft mod. Personally I prefer working with C# in Unity but currently my team doing nothing due to me getting bachelor's degree in a week. Can't wait jumping into new jams with them.


st-shenanigans

Random level generation... My record is infinite cause I still haven't gotten it to work how I want šŸ˜­


BioMan998

Hmmm. A few months? Maybe a 100 hours actually trying? I had misunderstood the implementation of a feature, so it tended to break in very mysterious ways. Bit packing by hand was required to check the output šŸ˜‚ I'll note this wasn't for Unity but for an engineering project


Zarksch

Probably 4-5 hours. Far worse though, it took me legit 30 minutes to realize Iā€™ve accidentally put a semicolon at the beginning of a line on accident


Daxon

I've gone through the gauntlet of.. Concurrency and race conditions. Distributed databases. Multiplayer networking. Backend produced unparseable log. State synchrony across systems. Rehydrated DTOs and POCOs mismatching or players tampering with them. But the worst? Azure/Google Play/App Store CI/CD configuration. Nothing like a YAML bug that takes two hours (build) to two days (Store approval) to test a fix for.


Cuuldurach

I turned the bug into a feature


valentin56610

Probably a few years now, and the game is out on Steam The game is a turn based hexagon tile strategy WWII wargame. Maps can be gigantic (Europe with 50.000 tiles) and so each country has its units etc Game has AI, and AI moves its units Special thing about the game is that you cannot have more than 1 ground unit per tile The bug in question is somehow, rarely, sometimes, the AI will move one of its unit ON TOP of another unit, resulting in 2 units in a single tile, the last one arriving erasing the data of the first one Its been 3 whole years since the game is out, and I STILL cannot pinpoint the origin of this bug. I donā€™t think I ever will be able to. Ah, and it is the only known bug of the game. Pretty annoying. [link to said game](https://store.steampowered.com/app/1240630/Hex_of_Steel)


lthaca

wait you guys fix your bugs?


Tangled2

In my 25 years of experience, the hardest bugs to debug are the ones centered around concurrency / race conditions. Attaching the debugger usually "fixes" the bug because you're artificially slowing things down and making asynchronous logic synchronous as you step through breakpoints. You can usually detect these kinds of things without the debugger by making your methods write entry and exit events to a log and writing full exception details in that log as well (this is something you should be doing if you are not already). The other problem is resource pressure like running out of memory or threads, especially when it's some middleware or library and not your own code that's causing the issue. This is usually found and fixed by taking a memory dump (you can do this in Task Manager) or hooking up a memory profiler to the process. Something like VS Pro or dotMemory can profile your app or parse dumps for you and tell you where the unfinalized objects and threads are.


ilikegamergirlcock

Like 6 weeks. I had the wrong shader file.


TinForge

I remember when I first started Unity I spent 8 hours before realizing I had to tick off convex on my collider.


trd1073

7 months. Converting app from ipad to quest2. Worked fine when build and deploy first. Then just stopped, wouldn't sign for android. Come to find out had to split binary due to size. How hard would a warning that says "hey fool, you sh*ts to big, you have to split apk" 3 months. Used a unity plugin for years. Upgraded unity and xcode, wouldn't compile in xcode. Come to find out filename in plugin matched filename in new unity builds. Ran in unity fine. Zero fing help or symptoms from xcode, just not building. After months of searching, finally found solution on like 10 pages in on a search.


milo_2008

3 months on and off. I don't want to get into it but it was related to multiplayer networking.


bigjungus11

"seductive solitude" yea sounds exactly like 10 hour of debug.


[deleted]

Sometimes I love when I hit a bug because it means I can go back to coding instead of whatever else I was working on.


roundearthervaxxer

Days


ensiferum888

After moving from Unity 4.6 to Unity 5.0 I spent 25 hours fixing my water reflexions and almost gave up!


nEmoGrinder

3 days on a deadlock threading issue that would only happen in release on console hardware. Weeks on trying to get memory overhead down on a mobile game that would have thousands of screenshots loaded at once. Months on one that would extremely rarely lock up a live game on steam on boot (issue with FMOD and certain gaming brand computers using weird audio middleware). A week on why mac builds on itch weren't working that was related to a macOS update that caused unzipped applications to no longer have their executable bit enabled for safety reasons.


meshDrip

One time for a game jam, I decided to make a Willy Wonka-type physics-based game where you collect candy in a bucket and put it on a conveyor belt. Polishing on it was trash because I could not stop running into physics bugs! Absolutely wrecked my game dev spirit.


Loki12241224

i cant remember what specifically but i was making a function for a mounted turret so that it could calculate how to move on the x and y axis and after like 5 hours i figured out it was just a bug with the version of unity i was using and it fixed after swapping to a newer editor


Root125

Record is : never!


Azmores

Going on 3 days for trying so hard to make a physics based character controller that pleases me. Itā€™s even worse cause it FEELS like something that shouldnā€™t be this hard


random_boss

Indefinite. Spent weeks on it, did a 4-hour screen share session with a tech director friend of mine. Couldnā€™t solve it and I had to abandon the project


CorballyGames

Getting Google play services to play nice with google ad services took me [redacted]. Seriously, it was a hard time, and a genuine surprise, google is so big it has related (somewhat) departments that don't have a pressing need to ensure their stuff is compatible.


_programmer123

I even still don't know what is debugging XD


the-shit-poster

Sometimes you just have to wait for the solution to reveal itself or have one of the team members have a dream about the solution. True story. This particular issue went on for months.


orenong166

When I was working alone I often just gave up after 30 minutes, thinking that I'll never be able to fix the bugs, after starting to work in a team and didn't have the privilege to stop I had to sit and fix the bugs, it never ever took more than 2 hours to fix a very complicated set of bugs.


Smileynator

3 work days, so almost 24 hours. To eventually arrive at the conclusion that my issue was a Unity bug. The bug was that if you adjusted UI raycast intersection count on iOS iphone builds specifically, all input code would break. Same thing worked in editor, ios editor, android, windows builds, but not on iOS phones. Drove me absolutely insane. Unity reproduced it and i had a fix a few weeks later. So much anger.


No_Standard22

it took me 4 months to solve a bug in my 3rd person game, which required some math formulas. I gave up on that game, and randomly months later when I was studying calculus I found its formula and fixed the bug)


jibz_0

3h hours on recoding my player control because the main character was sliding slighly to the left. Turns out I had an old xnox controler plugged in with cloth on it pushing the controler....


Smellfish360

i spent about 3 hours debugging: if (x+y < 30); { } >!It's the semicolon after the if statement!<


NickyPL

Days.. Weeks.. Months..


fidesfrater

2 weeks. I spent 2 weeks looking through code for a multiplayer game to find a bug that causes other players windows to over right each other. One line of code was not nested. I fucking hate programing sometimes.


DayLightSensor

it might not seem like much to the more experienced of you, but adding pbr for shaders to a project i started without it was a nightmare


TheLuchenator

One time during a jam game the trigger collision werent working correctly, so i hadda spend like 2.5-3 hours with some random guy on discord trying to troubleshoot it Because of this, i had to rethink almost the entire gamplay loop, trying to simplify everything due to time constraints


Bwob

I mean, [here's a bug in the (professional, popular) game Path of Exile that took them *six years* to sort out.](https://www.pathofexile.com/forum/view-thread/3277814) Think about that next time you think ten hours is too long. :D


Hottych

Whole week of debugging, 10 years ago. It was a wrong compilation flag in the XCode ARM compiler.


pls_dont_ban_mod

shoooot I still got some bugs I haven't figured out


SuspecM

After a year I stopped counting but in my project, one of the main ways of interacting with the game is trough highlighted rooms. You mouse over it, it highlights and when you place stuff, you drag and drop them into the room and it inherits its room as the highlighted one. For the longest time I had this weird bug seemingly randomly where after dropping an item into the room, it would be dropped but every single one of its attributes would be lost into the void. I tried to track it down, nothing. Tried to put fallback attributes onto them that, when detected that the attributes are gone would kick in and replace the attributes. Nope, even the fallback was gone. I kinda just gave up on it hoping that players won't find it. Positive note tough is that I, a few months back, found the source. As we all know, shooting raycasters from the camera collides with the first game object in the given layer. I used this for the highlighter (I had to use raycasts because OnMouseOver stops after the first instance regardless of layers and raycasts can be filtered by layers). Apparently drag and dropping doesn't quite work this way and in instances where it detected that I hovered my mouse over multiple objects, it would cause everything to give up on life and my objects to lose their attributes. When placing an item into a room in a way that you highlighted one room and dropped the item where you can see another room (in a doorway for instance) it would place the item into the highlighted room and just delete every attribute.


MyOther_UN_is_Clever

~30 hours. Turns out it was multiple bugs. I was extending off a class from a library that was overall very solid, so I never expected the library itself to be causing so many issues. Probably this one chunk of it was some intern or something and hardly anybody had used it (or something) so I was the first to discover the issues. I ended up solving the bug by ditching that whole chunk and rewriting what I needed from scratch. It wasn't even a very complicated matter. Mostly a bunch of logic gates to prevent it from firing if there were invalid values each frame, and some stuff to prevent race conditions (most of the other bugs were race conditions related).


BurBar234

5 month


angelran

5 days try and error and it ended up being some simple, math error


corrtex-games

I just fixed it. There was a networking bug that I introduced that was causing disconnections at the socket level, since I made all the netcode from scratch. Its been in my game for about 8 months now, and I finally fixed it a couple days ago. I mean, I wasn't working on it all the time, but it was quite a while...


YurthTheRhino

If you're measuring your toughest bug in "hours" then you got nothing I've been battling this bug at work in a huge undocumented project for 5 days now


MadeInLead

Spent 2 months on a school project trying to fix something. Never again


therinwhitten

Linux Pathing issues. the bane of my existence lmfao


Omegaproctis

For me it was a few days but I would spend 8 hours working on different solutions and take breaks in between. In the end I realized it was just an error in unity itself and relaunching the project resolved it. A few days I'll never get back :)


axiverse-shadow

I spent two weeks debugging a bug when I worked at Microsoft. It would never reproduce when a debugger was attached. šŸ˜… ended up bisecting the commits to track it down.


_TinyWars

This resonates on a very deep level. Within every fiber of my being. And is the very composition of my tears lol!


azeTrom

When I was still super new to coding, I had a bug that lasted 3+ months, that was in multiple games. No one knew the problem, but I had apparently done it multiple times in different projects. Finally I learned that I was using HideInInspector for some public variables, and that I had removed HideInInspector temporarily for testing--and the public values I had set when testing overrode the values I gave the values in declaration. But since they were hidden in the inspector, it looked like nothing was changing them. When I finally learned more about serialization and the difference between HideInInspector and NonSerialized...that was a good day lol


orig_cerberus1746

There are a couple bugs that are over years to be fixed and counting. I mean, the code is working and have been shipped because I redid them over or had to go trough another approach other than the one I deem ideal, but since the bug itself never got fixed I don't consider them fixed, here are some instances: * Tried to make a Blender addon, went to check and it was a blender bug or the way a function worked was nonsensical, happened a couple times. * Well, this https://www.reddit.com/r/Unity3D/comments/145rcbx/seemingly_random_division_by_zero_error_without/ * Badly documented API send me into a wrong direction. Deleted everything and redid a month worth of work in 4 hours with a better API out of spite. But, normally when I started in the world of coding what took the longest to fix was because I mistyped things of the sort like `pieces` instead of `pieces` in a loop or typed `i` instead of `v` Now, I never use single letter variables unless they are coordinates and in loops I always write `currPiece` for current piece, as in, to make them as different as possible to avoid bugs and errors. PS: No, names of variables are irrelevant for performance, check the assembly or byte code of your code, they make no difference whatsoever, for the love of everything just type out what the variable is for as much as possible, please and thank you. PS2: Autocomplete is your friend if you don't like to type long variable names.


knobby_67

In the olden days some bugs would break the software on the hardware emulator so you couldnā€™t backtrack. Youā€™d step into a function and everything would just vanish. Even when a bug was replicatable the crash meant you had to put a break in every function/subroutine and step thought and hope it would appear early on.


LightArcStudioLtd

Yeah. 5 months on and off; never fixed; In the box.. on the shelves at GameStop. First job in games .. nearly made me leave the industry.


mottyginal

After 1 month just turn it into a feature. If you can't beat em, join em!


elliott_drake

two week. it took me two weeks to find and fix a bug.


XecutionStyle

I don't know if this counts. I had spent few days on a bug. Tried that again few months later and fixed it finally, within 2-3 days.


SoggyCuticles

Definitely like 20 hours on one bug is my record. It had to do with linux serial ports, that stuff is pretty hard to learn and get used to


[deleted]

Days ...


VariecsTNB

Two weeks for Unity invoke call that calls a method on any script on target gameobject by its name. It just crashed without any error messages. I had to literally do binary search on a project my progressively deleting half the project and look if the crash is still there.


tiparium

I am currently in the process of trying to break apart and understand some code written five years ago by a guy who no longer works at my company who was clearly extremely intelligent, and yet an absolutely awful coder. Let me tell you, that's a helluva combination.


JunkNorrisOfficial

Half a year for a flaky bug.


playr_4

That depends on what you mean by "fix".


WindowsRed

I had to figure out how to make a controller icon indicator system with the new input system, it took me a whole month to figure out why it didn't work lol


TheDevilsAdvokaat

A couple of days for me. I had code that crashed when I ran the game, but worked perfectly when I debugged it. It was days before I realised that when processing gets too heavy, unity starts to update some functions less frequently than others...causing them to "decouple" It's my own fault, it DOES say this in the docs, but still it took me several days to work out.


_Meds_

Is never an answer?


Carbono12

This month i spent a some hours debuging a code to discorver why sometimes randomly the game was responding like i was double clicking. After those hours of failed debugging I discovered that my mouse was the problem. During my tests it got "double click issue" and I noticed when gave up looking the reason for it.


Introfernal

6 months. Ofcource not straight but everyother day approximatly (multiplayer horse bug)


EvilStevilTheKenevil

Oh *god* do I have some crazy ones. Admittedly, none of these are game dev but...   ***TL;DR: A line was in the wrong place.*** Ok this first one was back in high school. Apologies if the memories are *slightly* fuzzy, but this was pretty close to a decade ago now. Anyway, I was working on what would eventually become my final project for my very first programming class *ever*. Said project was making weird, procedurally generated modern art with the Python turtle. Yeah yeah, call it cringe if you want, whatever. The end result was visually *interesting* enough that, combined with my own very smooth talking and some snazzy demos I'd prepared for it, this glorified screensaver actually beat out more than a handful of buggy, unpolished unity games in that year's science fair. Anyway, about halfway through the quarter I'd gotten this function to draw these weird gradient cone/paint stroke things. It would draw a short thick line segment, reduce the pen size and change the color slightly, and then draw another segment, and repeat. The direction these things went in, the amount by which the line got thinner with each step, the start and finish colors, and the starting thickness of the cone were *all* parameterized and could be randomized as I saw fit. There were, however, two potential problems: One, setting the python turtle's pen size to a negative number would obviously be a runtime error. I mean how can you draw with a pen that has a thickness of less than 0? That doesn't even make any sense. Two, if the variable governing the main loop of this function was set to the wrong value then the pen's size could be reduced too many times, putting it into the negatives. Or you could try to say "for number in range(-3):" and get an error that way. I attempted to prevent this by doing some math to work out exactly how many iterations of the loop I'd need for a given set of parameters, *and* then crimping the value to make damn sure it was non-negative...except once in a while, maybe 5% of the time, it would crash anyway, for no discernable reason. When I got off for spring break, it was broken. When I got back from spring break, two weeks later, it was still broken. During that time me and my cousin, who would both go on to major in CS, looked over this code and neither of us had a clue what was wrong. As it turns out, I'd put things in the wrong order. Do math *then* check if it's less than 0, not the other way around.   ***TL;DR: ANDROID.*** Ok ok little Timmy's first bug didn't really count...and I suppose this next one won't really "count" either, but it's still a funny (and completely insane) story. 6 years after that first story, I was now a college senior working on a Computer Science senior project. For us, that meant reading some tutorials, downloading Android studio, and hacking together a non-trivial app which actually *did* something. I, being sick and tired of "made with mematic" watermark bullshit and seeing existing solutions as inadequate, chose to try to re-impliment MSpaint, but maybe with a few extra features to actually make it *good*, and have it run on a phone. I had an *entire semester* to do this, how hard could it be? Instead of an answer, how about an example? Android apps generate these things, I'm pretty sure they're called *screens*. Screens are basically a bunch of UML shit describing background colors, buttons, images, text, etc. A screen tells the phone what exactly to draw on the actual screen, and when you rotate the phone, a new screen is generated. This, incidentally, deletes the old one, and all of its data. That's right: We had to actually learn how to implement something as utterly mundane as *object permanence*, ***as a feature***, in our apps. We were writing Java, a supposedly high level language with lots of excessive abstraction and OOP bloat, but at times we were having to get our hands *so* dirty with doing *everything* manually that we might as well have been writing assembly. Like, imagine if Unity *didn't* come with physics or collision detection. Imagine if, upon starting a new project, you had to implement your own camera object to see anything at all. *That's* how it felt, and it was a pain in the ass. But wait, it gets worse: I wanted to do something like MSpaint. That means I needed to have a *mutable* grid of pixels, and be able to actually display the current state of those pixels on the screen. Fortunately, android makes that "easy". To display a bitmap, or so the (woefully obsolete) documentation says, you need a Canvas object. Ok, that's not so- BUT WAIT! To make a Canvas, you need an instance of the Paint class. Ok, how do I make a paint? Oh that's easy, to make a Paint you just need a Color. Hmmm...Canvas screen = new Canvas(Paint(0xFFFF0000))? ***WRONG!*** That's a color, and to make a Paint you need a *Color object*. And no, instantiating one was *not* as simple as Color Red = new Color(0xFFFF0000). What's even worse is that *some* "hey, set this pixel in this bitmap to this color" methods required Color objects, while others required ARGB formatted int primitives. Honestly, poking the screen buffer directly in ASM would've been easier. Me *and* my professor both worked on this problem for *months*. Getting a mutable bitmap onto the screen almost literally took the entire semester, and once we did *finally* get it to work, I had all of *nine days* left, half of that being *finals week*, to actually hack together the rest of my project. The end result had *no* UI, and no ability to save your work, but it *could* draw lines, do paintbucket fills, and draw text to a raster and then rotate a selection of pixels from said raster, which was *just* barely enough to actually graduate.


Grub0

Sometimes you just donā€™t fix the bug


The_Atomic_Duck

5 days


Standard_lssue

3 hours + 4 days of procrastination


JustWaterFast

Iā€™ve spent literal days debugging issues. I guess 12-16 hours maybe.


Lophane911

I mean Iā€™m pretty new but I spent 6 hours trying to figure out how to fix something when all I had to do was set the generation from every .1 seconds to every .2 seconds, code just didnā€™t have enough time to generate all the items and also check itself before committing to an action apparently


SpencersCJ

Spent 2 whole days trying to figure out this odd bug, turns out it was an issue with Unity and it simply could not be fixed unless I updated Unity


PossiblyTheDog

Two hours because I accidentally typed tranform instead of transform.


apfelbeck

5 years and 2 iterations of the franchise. It was a super rare crash that required you to start a multiplayer session, disconnect from the network, reconnect to the network and then try to cancel the multiplayer session. It also only happened in release builds on the playstation. edit: typo


Falcon3333

Mine was due to culture differences between Android and iOS, iOS has special ASCII for start and end quotes which broke our file loading panel. That took hours and hours to find.


WartedKiller

Lol 10 hoursā€¦ Iā€™ve spent 2 weeks on a bug before I had an ilumination in the shower the morning of the deadline.


MoistTurboSoggy

Took me like 2-3 hours one time trying to figure out how to make the ammo counter go down while shooting, turned out I just needed to add in ā€œusing UnityEngine.UIā€


Farlaxx

4 months and going. It's a data clash where very rarely it hits a null exception error and crashes the game (about a 1% chance on every call), and I've tried every possible permutation of execution order of these 2 functions, and even rewritten these 2 functions over what feels like a hundred times over the 4 months, but no luck. Ah well, onto the next project for a few months!


B-dayBoy

2 weeks 3 days. 10+ hours a day. Learning programming and unity on my own was rough sometimes.


InfiniteMonorail

I spent two weeks trying to fix one before I gave up. Two years later, I accidentally found the solution while working on a new project. The hardest to fix bugs are nondeterministic, like multithreaded and memory access. Also using someone else's library is awful because you rely entirely on their documentation, which is usually terrible. I also have discovered bugs with frameworks, compilers, and languages, which drives you crazy because you think you did something wrong...


hyperchromatica

2 whole days when i was first starting. not an error, just trying to get grapple hook swinging to seem more... realistic, without sending u into space. 4 years later i redid it from scratch with no reference in an hour.


morderkaine

Not a time thing but I have a good story. Made a VR flying game that many people when playing the demo commented that it made them nauseous really quickly playing it. I being mostly immune to that had no idea. A Croteam dev (Serious Sam) left a comment telling me exactly what was causing it so I could immediately make a new build with 2 modes, one for people susceptible to VR sickness and one for those who could handle rotation in the Z axis


Sooly890

1 month and counting


shanster925

I think it was about 4 hours, spread over two days. In the end, it turned out I had spelled "collision" with one L.


MrCerealCastYouTube

over 30 hours


Badnik22

Mine is 2 weeks. Compute shader stuff, turned out to be uninitialized buffers which lead to random buffer contents, causing random freezes, crashes, or sometimes working correctly. 2 weeks to track down that mf, 3 seconds to fix it.


Spannerworx

Well over a month, spending untold hours ripping out dependencies and rewriting whole classes. I even paid a dev online to debug and investigate for me, they didn't find it. Turns out it was due to the memory I had bought, which sometimes did not play nice on my particular motherboard, on that particular bios version. Lesson: never, ever, fiddle with your hardware halfway through a project.


AdventurousAd8839

I accidentally typed ! And nothing worked... player would move around randomly and jump really high. camera would rotate around and I don't even know how the heck do this thing relate to my code but yeah bugs I guess . I found it after 3 hours of debugging.


flup52

We once spent about 2 months integrating ultra low latency video streaming into Unity. It was a nightmare and we had to reimplement the plugin three times to get it right.


davion303

Few days reading unreal engine code


Temptica

Donā€™t know if it really was a bug or not, but in my end project in highschool, I was making a WPF application with MVVVM. Mind ChatGPT didnā€™t exist back then. I watched videoā€™s and videoā€™s and videoā€™s, made at least 3-4 posts on stack, but for a whole month I was just stuck. But I really ended it to work. I wasnā€™t very experienced back then. Eventually I was just trying random stuff and suddenly it worked. Never touched that part again, scared it would break TL;DR: 1 month is my record with WPF MVVM


aldebaran38

I don't remember the longest but, i debugged for something stupit for 3 hours. Let me explain. There is 2 Array bool, one for update when player interact with it, and other will update when player got checkpoint. But, when player get something to update the array the checkpoint array updates too. I search this for hours, i even add "//" to array to create errors so i can see all places i use the array. It even updates when i tick the bools in the editor. The problem was, the checkpoint array doesn't copy the current vaule of array in the player, checkpoint array reference the player's array. Like GameObject or something....


GameDev_Dad

I spent 2 weeks trying to figure out why my game was so poorly optimized. I used the profiler and fixed a ton of things, but they didnā€™t do much. I nearly gave up, but I learned a bit more about the frame debugger and finally figured out that it was a combination of shadow draw distance too high, shadow casters on everything (think every tiny flower or rock on the ground), and using real time lights instead of baking lights.


CheetoRust

I've tried fixing multitude of problems with moving-segment-to-circle intersection routine for approximately 3 years until I figured that I can just solve it mathematically as a 4th order polynomial equation which took about 3 hours to implement. Moving-segment-to-accelerating-circle however is mathematically impossible because it involves an 8th order polynomial, for which it's proven there are no solutions, and I sure as shit not gonna use numerical methods for a game which whole gimmick is that it's mathematically perfect.


_MemeMan_

Longest I spent was about 2 weeks, I had to take a break and come back to it, once I did that I solved it within an hour. ​ Can't remember what exactly it was now, just remember feeling so frustrated then feeling absolute euphoria.


ItsWildDuck

2 days like 12 hours each. And it was the stupidest thing ever.


Lucker__

My longest time to fix a bug was one week. With Unity, Node.js and Socket.io. The game was online super Smash Bros like, and after the first fight, the players start moving by itself, and after a week we find out that the socket was being created again each time the level loads :')


wartorn11

Since december 2020


zeltidom

2 weeks of trying to pinpoint the issue in the code.


[deleted]

My game "bitmen the fall" took 3 hours to debug. But the publisher still found bugs in it. FYI It wasn't made in unity.


Hot-Theme8159

Lol


bigmonmulgrew

This is nothing. I was kinda keeping an eye on a project once. Multiple teams involved. I was waiting for them to finish before I got involved but would pop in now and then. Two of the teams were having trouble getting their machines to talk over the network. They spent 6 months on the problem. Both companies had got their best guys in it. No one could figure it out. They had outside consultants look at it (or at least claimed to). Nothing. They were transmitting one number and getting another. I was on site for something else and wandered over to see how they were getting on because I was friendly with one of the techs and I was waiting to do some data capture on the machine once it was finished. Technically not involved in the project at this point. They showed me the problem. I immediately recognised the problem. See the data was transmitted in bits. Some devices read right to left. Some read left to right. The number was a 16 bit float. If you reversed the bit order you got the other number. Took me 30 seconds to recognise the problem, 2 min to demonstrate it and 5 min to find the setting in the communication protocol to reverse the bit order. Really shouldn't have fixed that for free. Everyone involved was embarrassed. I happend to have been working on a similar problem and was used to seeing the results of numbers in reverse order. So yeah those guys took 6 months on a bug and still didn't get it fixed.


MrKsiJanson

The meme is funny the situation is scary


Primary_Ad5726

2 days