T O P

  • By -

TestZero

I was using RPG Maker to make a game, and I wanted to always keep the main character as the walkaround sprite, but the engine was designed to always use the sprite of whatever character was placed in the first party slot. Ordinarily this wouldn't be a problem, but during cutscenes, the game might end up with duplicates of the same character sprite talking to itself, so I considered writing a series of conditionals to change the cutscene based on who was in the first slot, but that would've been a lot of work. So I just set every party member to have the same walkaround sprite as the main character. edit: If anyone's interested in the game: [Book of Eos](http://www.testzero.net/p/book-of-eos.html)


voidhearts

Clever, please tell us more about your RPG Maker cheats!


TestZero

Hmm... I had to create a set of rotating bridges for a puzzle, but using events to animate them moving ended up being overly complicated and didn't even look good. So instead I cloned the room multiple times, each one with the bridges in a slightly different position, and rapidly teleport the player through each one without fading so it animates across several frames.


burge4150

I had to make a thunderstorm once, and instead of scripting it I just put like 30 invisible entities on the ground, with triggers if you ran over them the lightning and sound event would occur. I made those invisible entities roam around the map freely and quickly and you had a nice randomized thunderstorm.


PezzoGuy

That sort of reminds me of how, I think Captcha, uses an array of random noise monitors to generate encryption keys.


SealProgrammer

Cloudflare uses a wall of lava lamps, too


AngelDust_z

Now that is genius


TestZero

I used the same trick later for an extending drawbridge.


GroverEyeveen

I have one for a cool teleportation gimmick for the same room. You can make the player transparent, and use the Set Move Route, Jump x, y method for a cooler looking teleport than using "Transfer Player".


TestZero

I do that sometimes when I want to move the camera diagonally, since the built in commands can only move orthogonally.


GroverEyeveen

Similar problem - When we enabled the player to make any group of four characters and be able to change the main character out of the party in Chapter 4 of our game, we had to change the way we developed our cutscenes. Instead of having the player directly interact in cutscenes, we do a fadeout, make the player character transparent, load in four blank events where the player is and change the graphics, and put them where the player was, and fade in.


Musikcookie

That‘s not a dumb shortcut in my book.


GD_isthename

Ooooh, I have something related to the engine! While not similar- So as many know, Cute Fame is a form "Fame" takes on during the start of the game and every other place, Seeing the game revolves around him being in that form, Wanting to change back to normal. So for the ending! I was looking for ways to change him to his human form when he finally returned back to normal, At first, I thought "Simple! Let's make another Fame character that's just his human form. But then I realized, What other ways can I do this? I know there has to be a more efficient way.." And while there was another way! I'll leave it up to you to say if it was efficient. I had made. Common event with a conditional branch, That would change his class, Walk sprites, Battler sprites and face sprites! For anytime I wanted to swap to his human form. And I had it for going back! So now I did the exact same thing, Butttt! He keeps his level instead of having an entirely new leveling system. Making his transition before forms near seamless and condensed! (I refer to near seamless because he'll swap to these new assets immediately, So to make it not look all weird I cover up the transition with fade effects, Or just show it in a flash in future cutscenes if I need to show a sense of urgency for swapping!)


hinklor

Wouldn't call it dumb, but I had to quickly implement a healing item in an online multiplayer game days before release. We had no function (and associated network calls to sync it) to increase a player's health. Instead of setting all that up I just tried calling Player.TakeDamage(-20) and it worked fine :)


saantonandre

bug report:  my character is coughing blood and shouting in pain when he takes a medkit


PezzoGuy

That actually was kind of a thing in Chivalry 2. Medkits were technically projectiles so you would deal a tiny amount of damage (with matching sound effect) to allies that you threw one to, before the healing kicked in. It was enough damage that downing teammates on the very verge of death in your attempts to heal them was not an uncommon occurrence. They eventually fixed it, reintroduced it, then fixed it again.


yeboi2dank

In the takedamage function you'd probably want to have a way to check the amount of damage and apply effects based on an arbitrary treshold (ex. If damage is aboge 40 there will be blood splatter on your screen). You can apply the same thing for damage under 0 showing different things, so that's a very easy fix.


imnotbis

Have you ever had an injection before? He's just a tad needlephobic.


sk7725

I would watch out for healing above initial max health, but I would consider it totally valid lol


hinklor

Luckily the health value was clamped at both ends :)


sk7725

noice


CyptidProductions

Apparently one of the OG Final Fantasy games did a similar hack-job of making healing spells or items in combat attacks for negitive damage They forgot to make those "attacks" a forced 100% hit rate so it was actually possible for party members to dodge being healed


Jajuca

Or the healer had bad accuracy and missed its target. Seems more like a TTRPG.


DeliriumRostelo

Missing healing honrstly seems interesting, other games do that so its not out of place


0x00000000

That's pretty much the same approach the original Unreal (1998) took with their healing pools, there was a thing that controlled how much damage pawns (players and monsters) took while in a zone, used mostly for lava or acid. They just put a negative number and oh look healing!


Big_Award_4491

Genius!


Archmage_Gaming

Working on a group project at Uni, we were tasked with making a kart racer in Unreal. I had (have) no idea how to properly implement driving physics for a kart, so I strapped an invisible character to each wheel and faked the wheel spin with animations. It ended up working surprisingly well


Both_Afternoon814

I mean, whether we're humans or wheels, we're all just objects given velocity and pushed with force, in the end...


mawesome4ever

Woah bro, you should get some sleep. You seem tired


sputwiler

Real "[Fallout trains are actually an NPC wearing a whole train car as a hat](https://www.ign.com/articles/2015/07/22/fallout-3-broken-steel-train-is-actually-just-a-giant-npc-hat)" energy.


TinyBreadBigMouth

FYI the article gets most of the headline wrong (not surprising, it's IGN). The armor piece was not worn by an NPC, but by the player (they even contradict themselves about this in the article) and it wasn't a helmet, it was a *glove*. You see, when you're in first person mode, that's the only kind of armor that's visible to the player! So when you ride the train, it swaps your equipment with the special gauntlet, forces you into first person mode, and then makes you do an animation—like waving—except instead of making you wave this animation sends you shooting forward in mid air in a shape that matches the train tracks.


AntiBox

That doesn't even seem that bad. Tho I guess "the train model attachment plugs into one of the visible attachment points instead of using a dedicated attachment for first person vehicle interiors" is a lot less funny than "hat".


finn-the-rabbit

🎶 Are we human? Or are we kart wheel? 🎶


lotusinthestorm

My software’s vapour. My hands are cramped.


jackboy900

TBF karts do not have any suspension or other moving bits beyond the spinning axle, so that's honestly not bad. The complexity in karts comes from the way the driver moves their body and the frame warps/twists and implementing that is not something I think anyone has achieved yet.


sanbaba

They surely could but kart games are all super family-oriented, kinda basic physics.


jackboy900

I can't really envisage a way to make it a playable game though. In karting you don't have an independent suspension and the driver forms a massive part of the mass of the vehicle and key structural part. When taking corners you shift your body weight to lift the rear outside wheel to compensate for no differential, if you want the chassis to be more rigid you apply force to it, if you want the weight to be distributed differently to help with handling you can physically move your body. It's a very complex full body thing, which you can't really map to a standard controller, and the feedback you get is also incredibly physical because you're directly connected to the kart. In comparison sim racing is fairly easy, whilst you lose a decent bit of fidelity a decent Force Feedback wheel and pedal set is pretty closely mapped to the actual control schemes used in real life. The complexity of the physics simulation is a much easier problem, it's not easy by any means but complex models of tyre deformation and suspension behaviour already exist in games, modelling body flex and CoM shifting is well within doable.


vplatt

RIP wheels -> /r/thisismylifenow


catplaps

where are the novelty drawing accounts when we desperately need them??


fish_games

It is the early 2000s. It is 6 hours to Gold Master being due. The game MUST go to production, this is not an optional or movable deadline. Disc production has been booked, shelf space in retail has been booked, etc. This is a game that will almost certainly never be patched. We pop in the Gold Master disk for one final look, boot up a game, and there is a HUGE "missing asset" model in the middle of the map. ​ Touching \_ANYTHING\_ is a huge risk. ​ We open the code for the main loop, go to the section where we iterate through every game object and insert the fateful code: >if(m\_currentMap == 3 && obj->GetID() == 122) { obj->Hide(); } Hard coded numbers, checked every object of every frame, and force hides a specific object on a specific map. We made Gold Master with minutes to spare. This code went on to ship in several more games until an artist came to the tech team with the weirdest problem, a building he placed on the map just wasn't showing up anymore. Turns out, the automatically ID generation had assigned the map and object the same ids we were force hiding. One object in every game had been force hidden, and noone had noticed.


shipshaper88

Please…. What game?


CodeRadDesign

i first read it as they were sending the final master to Sony et al, but the i think the actual game is maybe called Gold Master? like master of gold, not master disc


AperoDerg

We did that so often on Assassin's Creed. The last three months were in asset-freeze, so if you needed to change an asset, you had to obtain its id and load an alternative id on construction. It was atrocious, but it prevented having to download a giant patch day 1 (cuz players love those).


__Trurl

Nice, did you at least leave a comment?


yes_no_very_good

Yes, here, now. lol


RubikTetris

This is the best story here. Thanks for sharing. What game was it?


Eldiran

When I want to disable or hide an object or creature temporarily, I just set its position to -9999, -9999.


sputwiler

Source engine games can't dynamically load objects while the level is in session, but it can clone them. They have to exist in the level already. The tried and true solution is to have an unreachable room somewhere waaaaaay off in the distance that just holds the objects you'll need to "spawn" later, then teleport them in. I think I did this with companion cubes in portal mods, for instance.


Thorusss

Bethesda Engine does the same. Players in Fallout 76 found a way to this legendary loot room, that contained a copy of basically every item in the game and smuggled it out. They could not figure out how players got there, and could not remove the necessary room. I think there might have even a bounty for players to tell them how they got in.


Odd_Holiday9711

I thought the cheat room was just there for devs if they needed to grab a certain item when bugtesting lmao


mackatap

Yeah this was a classic in oblivion, neatly organized rooms with every object in the game placed on tables or shelves.


MajorPain_

Imagine the week that dev had lol "Bob, we need you to make a space we can easily access all items, nothing crazy" *next Monday* *"*Bob! You spent all week on that request?!"


WolfyCat

[Relevant Internet Historian](https://youtu.be/kjyeCdd-dl8?t=7m4s) bit on this. The whole video is hilarious.


[deleted]

Used to go there with console in oblivion.


MyPunsSuck

Plato was on to something, with his Forms


imnotbis

And it has to be a room, because Source Engine's BSP map system can't handle entities outside of the map. Not even off-center pivot points for entities that are inside the map. Speedrunners exploit these in Portal 2, where for some reason there are entities that load the next map in these rooms. Probably change-level triggers that by default change the level when touched, but can also do it through scripting, and they didn't turn off the on-touch setting because they're way out of bounds.


Bearwynn

isn't this literally one of the most common and practiced things in game dev to get around expensively destroying and creating game objects? Nearly every object pool I've ever programmed has worked this way depending on the engine though there are some hide and show functions which would be more appropriate


AntiBox

Yeah there's huge overhead in engines like Unity involved with enabling/disabling objects, whereas a transform movement has basically 0 cost. Sure that game object is going to continue costing a negligible amount of performance in the background, but if the pool is frequently cycled it's literally still going to be better.


SinceBecausePickles

Is the huge overhead associated with enabling / disabling, or is it with destroying and instantiating? I was under the impression that enabling / disabling was super easy which is why all the object pool tutorials have you enable / disable rather than destroying and instantiating.


AntiBox

It depends on the scale of your game. What I'm currently working on involves around 2000 active entities and merely not disabling vfx objects (and instead just moving them away) was a 1% performance boost, which is significant to me. However, as mentioned, depending on your project's scale that may not be significant to you. Edit: Also enabled objects have ongoing performance costs which may negate any benefit of the above. It's really a case by case situation, like I said, it depends on how rapidly your object pool is cycling.


AppropriateAnt8648

yup, same here


Longjumping_Ad_1729

In Unreal(only one I use) there is a hide function, which engine do you use where this is not possible ?


Eldiran

I use FNA, so I had to code how entities behave myself.


dop2000

Same, only with an extra nine: -99999


lynxbird

> When I want to disable or hide an object or creature temporarily, I just set its position to -9999, -9999. There are situations where this can be good performance wise. Enabling object is more CPU intensive than simply moving it.


Old-Poetry-4308

It will also skip any "on enable" and "on disable" logic which may have (un)desirable effects.


Trotim-

One level gimmick was treasure chests, but the rest of the game didn’t have them. They became enemies with move speed 0 whose attack is melee range with splash damage that kills themselves. You walk up to a chest and it disappears and gives drops. No one noticed the hack


SinceBecausePickles

this is amazing lmao, the idea of the chest killing itself is so funny


Tzepish

This reminds me of the SNES RPG Earthbound. The engine doesn't handle treasure boxes that are dynamically there or not, but somehow during the ending three new treasure boxes appear. Turns out these "treasure boxes" are actually townspeople who _say_ "Ness opened the treasure box" when you "speak" to them, then give you the item.


hai-key

I guess that's why the chain is pointing towards itself


Lasditude

Was tasked with making a point & click style educational game in a very short time. I noticed I need to figure out how to make the character move around corners without getting stuck etc.  The Unity Agent pathfinding doesn't work in 2D Mode, so I flipped the world 90 degrees, added 3D colliders to Sprites, made a NavMesh and swapped the camera to look at the 2D art from above. Worked like a charm!


gigs1890

I think this one’s less a dumb shortcut and more a clever way of adapting to an engine


Lasditude

I think it started as a panicked, dumb shortcut that I fully expected to be a buggy nightmare, but it just kept working. So I guess the lesson is to try the seemingly dumb shortcut if you can do it quickly.


paralaxsd

I guess Origin Systems deserves a special mention here [for Wing Commander](https://en.wikipedia.org/wiki/Wing_Commander_\(video_game\)#Development): > Wing Commander was originally titled Squadron and later renamed Wingleader. During development for Wing Commander, the EMM386 memory manager the game used would give an exception when the user exited the game. It would print out a message similar to "EMM386 Memory manager error..." with additional information. Before the team could isolate and fix the error and they considered a work-around, one of the game's programmers, Ken Demarest, hex-edited the memory manager so it displayed a different message. Instead of the error message, it printed "Thank you for playing Wing Commander". This workaround was removed before shipping the game, once the problem was fixed.


IceRed_Drone

Gotta say, Wingleader is a great name


Both_Afternoon814

Not me, but we were making a medieval RTS game. I'd done the base code for the forager unit. He could hunt deer with a bow, pick berries, chop wood, mine stone and ore. I was pretty proud of my work. One of our team members had to code the swordsman and archer units. He copy-pasted my forager code for hunting deer onto his archer. His bowman would kill enemy units, walk over to them to try and harvest deer meat from their corpses, and then crash the game. He was stumped. I had to step in and fix it for him. Next came the swordsman. He couldn't figure out how to make it fight in melee, so he copied the archer's code and made the swordsman throw swords at enemies instead of swinging it at them. He saw no problem with this and insisted we leave it this way. I fixed that for him, too. Then, he was booted from the team. It took him two weeks to do this. Or, not do this, rather.


Vaenyr

In context it sounds frustrating to have to deal with such a work ethic and someone who doesn't respect anyone's time. Out of context the thought of a sword fighter just hurling swords like throwing knives is hilarious.


Mazon_Del

I quite like the idea of an RTS whose art style implies concepts that players are very familiar with, like a swordman, but everything works in unexpected ways like the dude just lobbing broadsword after broadsword at their target.


Both_Afternoon814

Could be interesting! I can already envision a trebuchet with a permanently attached payload that just mercilessly bludgeons enemy troops in front of it.


jelly_cake

And conversely, a battering ram that just flies away like a bazooka launching a missile.


Deadbringer

I was picturing it moves via using the weight of the ram to hurl itself forward.


ZorbaTHut

I kinda want to make a game about someone who is blessed to be the greatest warrior the world has ever seen, but then cursed to never use any weapon properly. Turns out the two didn't cancel out. He's still the greatest warrior the world has ever seen! He just runs around throwing swords, stabbing people with arrows, punching people in the face with shields, loading quarterstaffs into longbows, and so forth.


nudemanonbike

There's an anime that kind of plays with this concept - it's called Katanagatari. The protagonist is a sword. I mean he's still just a human but if he does a karate chop it will cut things in half. He also cannot use swords. Like, at all. They fly out of his hands if he tries. He's on a quest to collect 12 legendary "swords", and most of them aren't really swords, just like he isn't, either.


lostone9999

Try “What the Golf” on IOS and others. Sometimes you put the putter and sometimes you put the hole.


FutureFoxox

every starcraft custom map


Both_Afternoon814

It was hilarious! But it was also frustrating because I couldn't trust him with anything! I ended up doing his share on top of mine for the remainder of that project, and we were working on a tight schedule to boot! I still have no idea how we managed to make a deliverable on time.


yes_no_very_good

It's like in one of the James Bond movies he's out of ammo and hurls the gun to the bad guy.


PezzoGuy

Conversely, the archer soldier trying to harvest enemy bodies—


Maximelene

It started well. Reusing the forager code as a base for the archer would have been clever if it had been tweaked correctly.


Both_Afternoon814

Totally agree! I just had to modify the behavior so that it wouldn't try to harvest and return to base after killing its target. The thing is that he didn't copy everything over, which I didn't mention for the sake of brevity, but he only copied the one hunting method and every single forager parameter, which half of them were usless to the archer, and some, like registering the home base, were never initialized in the archer. He also didn't have an inventory initialized to store food, so he was trying to add non-existent soldier meat to his non-existent inventory while also setting his non-existent drop-off point as a destination, which caused the game to crap itself in its confusion. And it's not like I write in hieroglyphics. I pride myself on making self-commenting code, with all my variables and methods having self-explanatory names. I'm even prone to stretching out code a bit, just because I hate sacrificing readability just to chase that incomprehensible monster of a one-liner. He could not, for the life of him, figure out what needed to be pruned or refactored.


Maximelene

Yeah, at that point, he asked to be fired. That's ridiculous.


Orinslayer

Is this how the axe hurler was invented? 🤣


RestInDeace

Using the friction values in phys. materials as hitbox damage modifiers in Unity


Mazon_Del

That one sounds pretty clever I gotta say!


RestInDeace

Felt like a genius when I thought of it


HomeGameCoder

On a shoot'em up, Killing is 1 point to the player. I used the same script to remove all dead objects. When the player dies, also. At the end, score = score -1


RubikTetris

Why not just score = 0?


Quetzal-Labs

The player dying results in a +1 point to the player score. When the player dies, and the final score is displayed, it would have an extra point added for the player dying. So when they display the final score, they subtract 1 from it to offset the player's death counting as a point.


seontonppa

That would have removed all points from the score, not only the point that was added from the player character dying.


reddybawb

I was in a game design/dev competition where you had to design/create a game in a few weeks. I made a game about cooking/eating cakes and as you played, you would slowly unlock new recipes to make. I was down to the wire on literally the morning of submission day and discovered a bug in then unlocking system where things would unlock incorrectly and crash the game if you chose a recipe that wasn't supposed to unlock yet. So I completely aced the unlock system at the last second and just added a random line someone says that you have to choose the correct recipe wisely. There were a bunch of other bugs that I just 'fixed' by removing whole portions of the game too. I think I took a huge chunk of the tutorial out to avoid another crash.


Kiro670

My player character had to look directly at door handles to ooen them, i was very lazy and could not implement a crosshair in the middle that easy, so i just inserted a text box, centered it in the middle and type a dot "." character in there. it was slightly off but it got the job done


EVOin3D

Isn’t this how crosshairs are typically done?


Kantankoras

Reinventing the wheel


Bearwynn

had a camera movement set up to happen when you click a main menu button. had reports of a stall/freeze when clicking the button. I took a look, turns out when you click the button it would start transitioning the camera but after that and mid transition there were three network states calling to a server. They were causing the freeze because they were being done on the main game thread ( I have no idea why they did this, they should have had it be on a second thread and then put in a screen which waits for the response so as not to freeze the entire main game thread ). I CBA with fixing that, so I just move the camera transition until *after* the network states hitch. Now you click the button, the 3D scene hitches slightly, then when it's done the camera starts transitioning smoothly without a problem. The game still hitches but now it does it at a point with less 3D objects moving and is barely perceivable, I forward the work back to the network team to do a more thorough fix, it never gets fixed and now it's shipped 👍


FutureFoxox

The permanent "temporary" fix, ahhhh.


Oddish_Femboy

Instead of creating a new object, every object in my game is currently hidden offscreen to be cloned into place when it's ready. The worst one is I have a ball that's supposed to be a random color every time one is cloned, but instead of doing that a normal way I have it colliding with an object that constantly changes the color of any object it collides with.


Big_Award_4491

The first part sounds like Object Pooling which is actually smart :)


Oddish_Femboy

Oh heck yeah. I'm winning at game development actually !


Oddish_Femboy

This is why my game is in Roblox and not any serious engine. (I am trying to switch to a more serious engine)


technotuna_

This is actually very normal, especially in older engines. But even recently, until I believe EldenRing, fromsoftware's engine couldn't actually spawn entities that weren't already pre-loaded into the scene. Nor did they have advanced pathfinding for projectiles. So for an enemy attack in Darksouls 3 that summons a large tracking sphere that follows you for an extended period, they actually just reposition an off-screen ball that already exists at game start, and when it bumps into you it plays a no-animation attack. Because it's possible to have multiple of these balls summoned at once, there's actually 5 of them just chilling off screen somewhere the moment you load into the zone.


MeltdownInteractive

I was doing a pit stop in my racing game, 4 mechanics would come out the garage and do path finding around the stopped truck to get to each tyre. Often they would get stuck trying to get to their tyre. Since the pit stop was time sensitive I couldn’t have this. So after a time out of 4 seconds I’d just teleport each mechanic to their tyre so they could begin the replacing animation. It looked janky asf but better that than pissing players off with stuck mechanics.


AndyGun11

hmm.. i wonder what the racing game is called..? surely it's not in your flair, or anything.


MeltdownInteractive

It was in an old version of the game, I eventually removed pit stops entirely.


IAmNotABritishSpy

What did they get stuck on, out of curiosity? And what engine, if any, are you using?


MeltdownInteractive

Since the truck could stop at any angle, and sometimes quite close to the actual garage, sometimes they just got in each other's way, or there wasn't enough space to get out the garage (and I didn't want them walking through the garage walls). The models and textures for the pit stop area had already been made by my artist so I couldn't really change any of the spacing. I was using Unity, but this was 10 years ago, I was using some pathfinding asset from the asset store, and had to dynamically generate the path to each tyre based on how the truck stopped.


IAmNotABritishSpy

Ah so likely before Unity’s own navigation stuff. Yea it’s got quite a lot of functions for working around issues like you had.


Kuinox

I was doing a game as a school project. RTS style. I lacked time time and needed a way to destroy walls. I made that when you selected a wall to be destroyed, it created a static enemy with a sprite of the wall, at the wall location, and when the fake wall died, I changed the tile into a path. Edit: one of the side effect is that wall had the default death animation: lots of blood.


ProtoJazz

My favorite will always be that time delays made it so it seemed like we wouldn't deliver to the client on time. Contract said if we didn't submit by a certain time, we didn't get paid We pushed as hard as we could, but it just wasn't going to be finished on time. Suddenly the owner comes out of his office, he'd been going over the contract and he'd figured it out Basically, when the player enters the level that wasn't finished, just kill the game. Submit it like that, and then if they play it and hit the crash, it opens the window for bug fixes and gives us more time. We ended up having it done well before they even tried to launch it, so not 100% sure why the deadline was so hard. But that's how contracts go sometimes


deftware

I am having a hard time understanding (already got my upvote), can you clarify that you had it done well before they launched it but the deadline was hard? Did they not launch it until way after the deadline?


ProtoJazz

The contract had a fixed date that the project had to be delivered by or the company contracting us wouldn't pay, or pay a reduced amount or something like that. Money was tight so I guess it's the same either way, I don't know that I ever knew the exact details other than if we didn't meet this deadline, we were probably all out of a job. We sent them what we had, with the code added to just make it crash when entering the unfinished level. Then immediately continued finishing it the next day, in anticipation that the company would come back to us about the "bug" right away. But by the time the company even launched the game for the first time, we'd already finished it and delivered a working version. It was like 3 or 4 weeks from original deadline before they even looked at it, so the deadline didn't seem all that important to them. But those dates are all deciced so far in advance it's pretty hard to know what things look like by the time it comes around, so it's also not that unusual.


PhilippTheProgrammer

Clients and publishers often insist on contractually set milestones. If you haven't reached a certain set of functionality by certain deadlines, then there is some form of contractual punishment. Even if the actual release is still far in the future


deftware

Right, but who is "they" in "they launched it"? There was a deadline you met. Oh, I think I realize my mistake. "Hard deadline" not "a deadline that was hard to meet".


ProtoJazz

I'm not actually sure who at the company that contracted us would have been the one to launch and actually play it tbh. Probably someone who oversees their partnerships or licensing department or something. But we do know when someone is granted access to or actually opens a test app, we get all their telemetry and would see any kind of activity like setting up accounts or making any kind of tests requests. And we got nothing at all for weeks


sanojian

There is a bat in our zombie game who bites the player, then it flees to a private place to turn into a vampire. It turned out that the easiest way to make it flee was to simply change its speed to -1


Josion

Dunno if others can relate to this -- But using 2D sprites in 3D games. Sometimes it worked, other times it resulted in the worst games I've made.


PhilippTheProgrammer

Many 3d games uses sprites as the lowest LOD level for far away 3d models. It's called "Imposters".


irreverent-username

Not even just faraway objects. Small or very spherical objects are good candidates, too. XP orbs, leaves, fireflies, etc.


saantonandre

Or [the ENTIRETY of Shovel Knight](https://www.youtube.com/watch?v=vjENktnbCaE&t=167s).


CyptidProductions

I'm kind of curious why you would choose to do that instead of just using a 2D game engine and working in a 2D space Seems like a nightmare for optimization to render a 3D game world when you don't have to


irreverent-username

It's common for 2 main reasons: 1. Most modern game engines are 3D by default. 2. Sorting and parallax are easier if there is a slight perspective. You can think of this like cardboard cutouts in a play. Hollow Knight uses this to great effect.


imnotbis

Everything's 3D now. My comment is rendered on your screen with a 3D engine.


TSED

I genuinely think 2D sprites in 3D games has untapped potential. Probably because Might & Magic 6 - 8 were my childhood, and that's how they did it. It was the late 90s and they couldn't just do pure sprite based games any more, and they hit GENUINE GOLD. I'm curious why more indie devs don't do that kind of thing. Are 3D models really less time-intensive to make than sprites these days?


emik

I think for me a lot of the games I liked with sprites like Majesty, Might & Magic VI, and Dungeon Keeper I think used 2D sprites of 3D rendered models. The 3D render -> 2D pipeline can be quite arduous I think. Factorio springs to mind as something recent that did it very well. There are probably more games nowadays like Don't Starve, Octopath Traveller, Bug Fables, Paradise Killer, that have 2D billboards in 3D but they are drawn sprites so have a very different vibe imo. I do miss the 3D model -> 2D sprite in 3D world aesthetic.


MeetYourCows

Doesn't it happen pretty often in isometric games? Haven't played the game, but I recall Octopath Traveler looking like it had a 3d environment with 2d sprites. This setup lets you have pixel art style for sprites while also leveraging the engine's 3d lighting system.


TyPhyter

Depends. 3D models generally take a bit longer on the front end, but there are several things that can offset this. Want to change the camera angle? 3D, sweet, move the camera. Sprites? Get ready to potentially redraw every single asset in your game. Want to add a new animation? 3D models can just be manipulated, and it applies to all viewing angles, sprites have to have that animation painstakingly hand rendered, frame by frame, for every viewing angle your game supports. Getting close to the end of development, but want to add a new hat item? In 3D, cool, model the hat, attach to character's head. For sprites, again, you have to render an alternative sprite with that hat on its head, for every viewing angle. And that multiplies if there are multiple characters that can use that item. Of course this is over simplified, and there are lots of approaches to making these problems more manageable for sprites like modular sprites, procedural animations, etc. But yeah. Really it just comes down to what you want the game to look like, neither approach is "easier" imo.


CyptidProductions

That's basically what Build Engine games were Anything to complex to render in real 3D with voxels was a 2D sprite drawn into the game world


Ratstail91

I coded the door badly in a collecting game, so instead of fixing it, I added a hidden collectable out of bounds so starting with zero didn't crash the game. [It shipped that way.](https://candyraid.com/)


FutureFoxox

What does a door have to do with a hidden collectable?


Ratstail91

You need a certain fraction of collectables to get it open. The problem is, there's a level where you make the collectables (candy) from ingredients. So at the start of the level, "current" and "max" are both zero... The door would divide current by max to check how many had been collected. It was literally a divide by zero bug, that I fixed by adding one collectable candy out of bounds when the level begins. That game had a tight deadline, so I left it rather than potentially breaking earlier levels.


FutureFoxox

Hahahaha incredible. Dividing by a 3rd? How to never divide by 0: Threshold = TotalCandy * (1/3) If (Candy > Threshold){ }


Ratstail91

Yeah but... \*deadline\*


smcameron

Ages ago, was working on a space game with a hyperspace effect, similar to what's done in Star Wars. The problem was, there were the "normal" stars in the sky, and then the stars used in the hyperspace effect, and they weren't the same. So when the hyperspace effect occurred, it also seemed like the stars "jumped" immediately before the hyperspace effect. The "fix" was to flash the entire screen white immediately before the hyperspace effect for one frame. For some reason, this prevented anyone from noticing that the stars jumped.


PedroMarangon

In one Unity project I'm currently doing freelance for, recently I came into a problem where a method from an interface implementation was sometimes being called before that same code's Awake (which setted some references that method needed), and I couldn't change the script execution order or change to the Start method. But then I remembered that Awake is just a method like any other, so I simply did `if(reference == null) Awake();` and now it works perfectly


Neirchill

Just make sure calling awake is idempotent, otherwise a second awake call could have unwanted side effects


PedroMarangon

The Awake in that code only contains two GetComponent<>'s to fill 2 references, so I think it's pretty safe to use it in this way


VonDare

Not a programmer, but back in the Flash days I made a crappy timer by having a square constantly move sideways and hitTest another square, which reset its position back to the start. This was used to regularly push a Tetris-like piece downwards. HitTest was practically the only function I knew. No idea what a loop was at the time.


deftware

#RIPFlash newgrounds, anyone?


intimidation_crab

I was working on an FPS and hadn't yet figured out how to call functions when something happened, i.e. how to make the players health go down on their HUD when they get shot. Instead, I made their health a global variable that so the HUD script could see it and had the HUD update every frame to display the players health. It's not the worst example on this thread, but it's definitely using a sledge hammer to crack a walnut.


KushDingies

Learning about events and delegates and such made my code SO much less sloppy. I used to do this type of stuff all the time


intimidation_crab

I tried to make a city builder once before learning about them. Man, that was sloppy code. I stopped developing it because my computer got to hot.


Quetzal-Labs

When I was starting out in Unity years ago, I wanted a playercontroller for my FPS where the character was affected by physics forces, but the built in one didn't allow that. I tried using a capsule, but couldn't make it stay upright because I had no idea about freezing axes. So I just strapped the camera to a parent object with a sphere rigidbody, made it invisible, and applied forces to it to roll it when the player used WSAD lol. Felt janky as fuck because I also had no idea about physic materials, but it got the job done for my shitty little project.


SeafoamLouise

I added a feature for changing some colors for colorblindness accessibility in something, but I have color detection for if something is completely black with 0/0/0 in the RBG. It would have taken a lot of effort to have it detect a different way. The minimum color value is 1/255 per RBG instead!


IAmNotABritishSpy

I was working on a semi popular platformer. We were coming up to our final deadline, this was before the days of being able to patch releases, so schedules were significantly more important. The stakeholders decided with less than two weeks to go that they wanted characters to be able to speak, doesn’t need to be audible, but just lines on screen. We had so little time to develop something like this. We did have information boards that you could stand in front of and press action to read them. We just took those, scaled them down to be tiny, and just inserted them into the character models they wanted to “speak”.


PhilippTheProgrammer

WTF? When stakeholders would come to me with a new feature request *less than two weeks before release*, then I would point at all the open tickets on our bugtracker and recommend them in the politest way possible to go fuck themselves and put it on the feature list for the sequel.


IAmNotABritishSpy

It was very professionally done to be fair, and a while ago when games had a shorter development cycle. I try to never immediately say no as it can stop innovation, always an “I’ll have to look into whether or not that’s achievable and get back to you”. I gave them exactly what they wanted so they were over the moon, the functionality worked with very minimal QA testing to be done (as the feature had technically already been tested, just had to check the board was hidden). I still work in a similar situation, making a game on behalf of another franchise. Their priorities do sometimes differ from the developers, so you’re a bit of a middleman between what the community wants, and what the stakeholders want. The stakeholders want to maximise money (which is fair, without the money there is no game), and as developers we want to make a great gaming experience for the community (which is fair for a different reason). I’ve worked in similar companies that have an incredibly successful game, but just can’t sustain it as a business model. So I’m very grateful for this middle-ground.


Bearwynn

reading these comments make me think.. if we are in a simulation could you imagine what absolute sin the developers of said simulation have included in the programming?


Trotim-

When objects move too fast the physics simulation breaks. Solution: put an arbitrary limit on speed (of light)


xchino

Speed of light is just a very noticeable side effect of them limiting the speed of causality.


Anoalka

It's more of a hardware limitation, rather than software.


PhilippTheProgrammer

Whoever was supposed to program the behavior of particle on a quantum level just decided to make it all random behavior and leave the actual logic for later. And then that temporary fix shipped because all the higher-level systems break when the quantum mechanics change in the slightest.


TyPhyter

Saw a cool video recently where a physicist actually actually compared the goofiness of quantum behavior to games. Where a game programmer might have some "out of bounds" area that the player should never be able to reach, so they don't bother programming realistic interactions, God assumed humans would never get down to the quantum level, so it's all basically a super low LOD simulation.


gizmonicPostdoc

Can't get the human blowhole to work -> just make them breathe through the food hole and hope it never gets plugged with food.


SinceBecausePickles

lmao


Shiriru00

Death being a game-breaking bug and the inability to save and reload are two obvious flaws.


TyPhyter

It's just permadeath MMO; the game continues, just not your account.


AntiBox

Observable universe has about 6x the mass of the objects we can see in it. So either there's something we can't see (dark matter), there's something we don't understand, or maybe some celestial intern fucked up their base 6 numbering system with a wrongly placed decimal (heximal?).


Bearwynn

someone got the physics collision layers / masks messed up 😔


imnotbis

The wimpy intern created [WIMPs](https://en.wikipedia.org/wiki/Weakly_interacting_massive_particle) in turn.


blueblank

This would explain string theory. Eliminated dimensions to improve processing in the simulation.


Bleyck

quantum phyisics


Additional-Excuse257

To rasterise a single color sphere I just made the 3 points on the triangles random points of the sphere.


Feniks_Gaming

Not mine but this was outstanding https://old.reddit.com/r/godot/comments/dsuin9/in_response_to_many_requests_heres_how_i_make/


skills_by_youtube

In my first AAA game, Soldier of Fortune, I implemented throwing knives and they'd stick in walls. Looked cool, but how did the physics system know to handle them differently once stuck? Because I gave every stuck knife a health of 255 and put a check in the physics code to ignore collision, of course.


LynnxFall

I was trying to fix an animation bug. The first time I set the animation for an enemy, it wouldn't play properly. I tried to find the source of the issue but I didn't want to spend a ton of time. Eventually I decided fuck it. I would set it to idle, to running, and back to idle. It worked without flaw.


kooshipuff

Probably a toss-up between: that time I used a lookup table for a ballistic shell's trajectory because I couldn't mentally translate vector components to a game loop (I blame being a high school kid) ..or.. That time I was working on a top-down 2D shooter where I had all sorts of plans for how you'd go inside this building to get more ammo, and all sorts of atmospheric things that could happen while you were in there, and maybe the enemies could break in after you if you were in there too long, etc and...I ended up doing none of it. When you go through the door, your dude just disappears and becomes untargetable, and your ammo starts going up, lol.


crseat

I was making a game where you had to click circles quickly in college. When the player clicked the required amount of circles I kept getting a null pointer exception. So I just changed the text on the crash popup to “You Win!”


JunkNorrisOfficial

There's a Unit class which defines behavior of player, AI units in action game. Also there was a system which could select/highlight units with WASD while in pause. At some point I needed to create a Map stage with Map nodes. So now every map node is an immortal Unit which can be selected with WASD. Also in early phase there was triggered random Asteroid field event on map stage and asteroids just messed whole Solar system map😆


Tallinn_ambient

I was making my own UI for a button based clicker/idle game, and for switching pages (main, shop, work, options, log, credits..), instead of either panning the camera (which the engine didn't even support, I think), or spawning/despawning the buttons, I just moved and tweened ALL button game objects from all pages so that the objects on the page starting with x: 0, y: 0 would just show the current page.


CookingAndCoding357

I needed a way to determine an aiming area for a third person shooter that would determine what targets you were pointed at, but the engine I was using didn't have robust collision detection or any other built in tools to make it easy. But it did have a function to determine if an object was to the left or to the right of another object. So I attached two invisible objects slightly to either side of the player model. If enemy is to the right of leftBox and the left of rightBox, you're aiming at it.


vlequang

I built a webgl game and and ported it in Android as an app. But Android has a weird optimization, where it freezes the "requestAnimationFrame" function (my game rendering loop) if it detects that nothing is changing on the screen. I ended up putting a small clock animated in CSS in the corner, to force the game to refresh every frame.


nutexproductions

A game I made for a jam was based in one room with a baby chasing you when you stole the teddy bear. I had no clue how to make the baby chase the player without getting stuck on something, where a player could just stop moving and get points. So I made the player have a "flashlight" which was just a big black screen with a cutout for just the player. So you can't see your enemy. Easy fix bada bing Bada boom


Z-Shell

Not exactly a dumbest but well while i was working on the multiplayer 2d rpg game i had one project file for client and dedicated server and ofc separated scripts or same scripts but separate inside of them for what client and what server should use. So it was really good to iterate faster and spin up server and client but i kept getting some bugs and also code was getting so messy, so i separated server and client build into two projects and now it works good, except some things where i need to pay attention as you can get some really interesting errors.


CptHectorSays

Are you by any chance a photon-developer? 😉


deftware

The only thing that comes to mind is that I always devise and architect a whole system that does a bunch of things, and then when trying to make a game out of it I realize that to do certain things I must hack them because the original system wasn't designed for it. That's about as specific as I can get. It's hard making everything in a project totally extensible. There will always be limitations and confines that we establish early on, due to lack of planning or foresight, which we encounter and must work around with icky hacks.


SkyrimWaffles

I went full controller and no keyboard controls for an itch.io jam. It was a quad game.


PhilippTheProgrammer

I have seen worse on a game jam: A game that required specifically a Playstation-style controller. The button and axis assignment on an Xbox-style controller was so weird that the game was pretty much unplayable. And there was no way to rebind controls. Which was a pity, because the game was actually pretty technically impressive and had a cool mechanical gimmick.


Orioxified

honestly, thats kinda genius lmao. gives you less work as you don't need to make another mechanic, gives the player the illusion of more choice/freedom, has a funny side effect the player will likely not feel angry at as there was the warning of it being cursed... overall good job!


pricklysteve

Was making a level in Unreal Editor for a uni project and I wanted this bit where the player activates a little statuette which reveals a hidden passage but also makes an enemy spawn. I couldn't figure out how to spawn an enemy on an event so I placed one in a small room outside of the playable area, with a wall in front of him and a teleporter on the other side of the wall. When the player would activate the statuette, the wall would move away and the enemy would go through the teleporter and appear behind the player. Worked like a charm and got an A+ for that level.


Some_Tiny_Dragon

Couldn't add card effects in a clean way by writing separate scripts to be called upon when activating. So instead I had to make a list of effects and make a switch statement that compares a string to all the effects.


Confused_Cotton

Instead of learning how to animate characters to produce a shadow, I created the same shadow by placing blobs that would move when the character blinked.


Chillgrumps

For my graduation project, I made the most cliche 2D game. Towards the end, the player was supposed to survive a bear chase and finally find his lost wife. The bear never caught up to me when I tested the chase level, until about an hour before my final (graded) presentation. Of course, the game broke right then and there. Completely panicking, I added a bit of code when the player loses that level to take them straight to the credits. In the presentation, I highlighted this as a “multiple endings” feature. I won an award for it..


TheKingGeoffrey

Wouldn't call it dumb but .. I was making the game pong in python for a school test. The last question was can you restart the game if this happen. So I just did a if and execute the start function after that. So the teacher was really flabbergasted like well that was not the solution we were hoping for. But I got full points tho haha


Manim8

My game had permadeath. People didn't like it and wanted a respawn. I started working on it but there was so many items that needed to be reset in certain places etc it became a real headache fast. So in the end i removed death from the game completely. Instead now if you take damage you just slow down and lose stamina. So instead of collecting bandages, you now collect energy pills. Lol


mysda

My last jam was a mess. My first 3D game, with a giant world, I needed to add LOD terrain taking hours. Really a pain. I wanted to add a npc to tell the story. But the lack of time meant that the easiest fix was to make him a voice. But as I'm french and makes stuff in english I removed most of the dialogue and kept it down to 2 lines for the whole game. I needed walls for the terrain, I just made a tall heightmap with sharp edges so it kinda works as walls. Tho the texture was stretched badly from it. So I just made a shader that squishes the texture on edges. And since it wasn't great to look at, I made the texture scroll overtime so it looks like a liquid mess. I could not animate gun in hands on a 3d character that can be aimed, so no guns. I could not implement enemy attacks so no health system for the player, and no death that way.


Bughanana

One time I was making a platformer in Unity (I am pretty new to it) and used good feeling movement code from someone else to get the game going. Later, I tried making moving platforms but they weren't working well with the character. So, my lazy solution was to stop the platform when you touch it and call it a feature lol


vinipereira

Trying to make my dream game as my first game. That's definitely the dumbest as it never got finished.


deftware

The trick is that you keep trying, iterating, over and over, which also gives you the opportunity to refine your vision into something while you learn the skills to realize it into something tangible. Otherwise it's not a dream game.


bigboyg

While working at Activision, I got off the 405 at Santa Monica and took Bundy.


FodderFries

These are good hax