Let's have a thread about how developers went around and did something unusual in order for things in a video game to work
>Early WoW >Bosses had invisible bunnies around them >When event was triggered, bunny was killed >Another specific event occurred if a specific bunny was dead
Also early quests were mostly kill and talk quests. If you were on a specific quest and had to talk to a npc, an invisible bunny was spawned next to quest NPC so he immediately killed it in order for quest complete dialogue to appear.
Anyone else knows any other unusual things developers did?
Also someone remind me of which video game it was.
If you were to exit it properly an error would show, showing default error code.
Developers couldn't fix it so they just renamed the error code into "Thanks for playing X!"
Asher Lopez
>that pic Jesus Christ, Carmack
Adrian Hill
>tfw you'll never get drunk off your ass and code something revolutionary
Jaxson Kelly
inb4 Fallout 3 train
Ryan Young
Carmack didn't come up with it.
James Robinson
:^)
Nathaniel Wood
tcrf.net reminder
Dylan Jones
...
Blake Clark
In Bethesda games, much of the furniture is bigger, more complex furniture, but stuck under the ground - you only see the part thats sticking out.
Nathaniel Peterson
Explain?
Colton Gutierrez
Its a clever hack, I don't see what the problem is.
Andrew Martinez
What a champ
James Baker
It saved months of developing a train system just for one occasion, so yeah.
Landon Johnson
why
Brody Hernandez
Reused assets.
Logan Collins
In one of the Rare N64 games (I think it was DK64 but the same thing might have occurred in Banjo Tooie) there was an area where the game, despite all manner of optimising, would still run at 2fps lower than the rest of the game (likely due to the size of the area in the level) so Rare decided the best course of action was to create new animations for Banjo and the NPCs in the area that run 10% faster than in the rest of the game so the effect of the framerate being lower would be less noticeable
Brayden Long
That's actually a pretty clever way to get things done without having to design a tram system that was only going to be used once. Now this, on the other hand, is pretty fucking stupid.
Yes, pretty much every table in Skyrim is actually a shelf.
Liam Peterson
Most armor in games where you can equip different stuff is just a paint job on the character model, so you can see the armor shift and move as the character walks or flexes. Also most armor is mirrored, so it takes less time to make and takes less space in the memory.
In modern FPS on consoles guns are fucking huge, so they can cover up more of the screen. That way the level behind them doesn't have to be rendered, instead the more static and predetermined weapon model is shown. This is also one of the reasons for low field of view in such games.
Easton Williams
that shit is so fucking clever, makes me laugh every time
Daniel Thompson
ehhhhhhhh I never noticed. a table or 1 shelf thing could be made, but that works I gues.
Luis Young
For aerial missiles in half life, they attached missile models onto seagulls
Sebastian Gonzalez
Hack devs reusing assets reee~~
This reminds me of the Crytek engine, which would create your level as an island in a sea. So every level had a sea of water being animated under the level, even if the player never ever sees it, and its all covered.
Ayden Powell
>but that works I gues.
>Sacrificing shitload of ram instead of making different 200kb models which would even re-use the texture
Nah, it's just lazyness.
Dominic Powell
>DK64 This game also inexplicably had a game crashing glitch that the team couldn't figure out how to fix, but when playing the game on the dev kit (which had more RAM as standard) it seemed to solve the problem. After a few weeks of trying to iron out the problem, they couldn't find a way to stop this game crashing glitch occurring.
What was Rare's solution? To add a small line of code that meant the game wouldn't run without the N64 RAM cartridge upgrade thing that Perfect Dark and Zelda Majoras Mask used. The game itself doesn't actually make use of the extra RAM, it just stops this glitch from occurring.
Jason Wright
The memory cost of just cloning an object is probably negligible to loading another, different looking object though.
Dominic Bell
shitloads of RAM for one model???
James Morgan
First person camera is in the chest of the third person model, rather than its face. I have no idea why, but it is. So in first person you are shorter than in third person.
Austin Jones
I remember people getting those for free since their game crashed without it
Aaron Cooper
Re-using the same model costs almost no RAM, which was a big deal on consoles.
Jason James
Creating an existence of a model already in memory is better than loading an additional model in memory.
Leo Edwards
Maybe if you a 12K shelf texture
Easton Green
Yeah, it was bundled with the game (which I remember being £5 more than usual N64 games(
Ethan Diaz
Just imagine walking into a mansion FILLED with those tables. Your fps and memory would go to shit since they're actually twice the size.
Nolan Howard
>I have no idea why, but it is. So you could see the weapon you're holding.
Christian Peterson
I think you're blowing this out of proportion.
Carson Williams
FPS camera makes your third person model disappear and replacing it with a model that just has 2 hands without feet or body.
For newer games at least.
Luke Sanders
That shit's reasonable. But the shit I can't stand was Todd Howard bragging about how Fallout 3 had no ladders because they couldn't program them.
Dominic Taylor
I don't think you understand how shit the gamebryo engine is
Isaiah Lopez
I hate when this happens. I know it happens because when you just place the camera where the player model would be you'll most likely use the middle coordinates of the model, but that's not where the eyes are so it makes no sense. The memory is still not a problem because a new model would require even more of that. FPS SHOULDN'T be an issue because culling should take care of that, but I wouldn't trust bethesda's engine to do that correctly.
Cooper Adams
Starfox Zero real time renders the entire game world on the TV, but on the gamepad it only renders what you're looking at.
No idea why the couldn't do that for the TV as well, but Platinumgames probably had a reason for using 2 different rendering methods.
This trick was on the PS3: We on the Insomniac engine team had some textures that we wanted distributed with our engine/tools release. These were things like noise textures and source input for full-screen filter effects. For some unimportant reasons, we didn't want to distribute these as actual asset files, so instead we converted them to binary arrays and compiled them into the executable. There was one downside, though -- we wanted these to be in a different chunk of memory (RSX visible), so we would end up copying them out and just wasting the memory for the source.
The PS3 toolchain had a link feature to put certain sections in RSX memory, but it requires using 1MB pages, and in our case it would have wasted 700k. Instead, we added a new data section in the executable that aliased the bss (the "bss alias" or "balias" section). We had something like 3MB of bss in our final builds, so there was more than enough space to hide some texture assets. We ran some code as early as we could in the crt initialization to initialize the destination memory, copy the assets out, and then re-initialize the bss to 0.
Believe it or not, it worked! There was a little tweaking to accommodate hidden bss use and toolchain updates, but overall it was pretty straightforward.
Nathaniel Taylor
I liked Notch's attitude towards ladders in Minecraft a lot more. He didn't want to add them because he hated ladders in video game because how poorly they worked, but ultimately ended up creating probably the best functioning ladders ever in a video game.
I remember Bioware saying they removed the ability to holster your weapon in Mass Effect 3 to save 2-4MB of RAM on the holstered animations that would be required. So RAM on console is serious business, when you're incompetent.
Adrian Taylor
how the fuck do you put those in a second or higher floor without fucking it up?
Chase Scott
It's incredibly inefficient.
there is no "train system". all you need to do is set up a waypoint system and tween the train there.
it's the easiest shit to do
Michael Reed
Literally every video game does that already fampai
Justin Butler
Have you seen a table on the second floor in Skyrim?
Connor Wright
512mb of console ram is negligible. I'll give you that. That they shipped such a massive game for such outdated hardware is proof of their technical knowledge.
Tyler Wood
what the fug
Josiah Hill
>release dev version on steam big oops
Jeremiah Scott
The reason the enemies in Space Invaders sped up as they got fewer was because the game ran inherently slowly and killing off enemies freed up memory and let the game run through its game loop at a faster rate.
In other words, the fundamental concept of video games getting more difficult as you progress was the result of a bug/technical limitation.
Henry Martin
It's actually really fun to read about Source engine ladders.
Fallout 3: Broken Steel >subway train is a naked man with a train for a head
Camden Lopez
The first version of Dead Island released on PC was accidentally an early test build with debug settings built in IIRC
Jaxson Myers
2-4MB of RAM is a lot when all you have is 256 usable like on 7th gen consoles. Far less of it was actually usable for the developers. >such a massive game for such outdated hardware is proof of their technical knowledge They sorta failed though. Skyrim on consoles had a lot of problems long after launch. It still does from what I understand.
Wyatt Roberts
WHAT THE FUCK MAN I refuse to believe it. It's, like, shovelware-level laziness.
Noah Sanders
>The reason the enemies in Space Invaders sped up as they got fewer was because the game ran inherently slowly and killing off enemies freed up memory and let the game run through its game loop at a faster rate.
No way. You fucking lie.
Mason Davis
it's not really replacing a model, it's not rendering one at all in world
there's an entirely separate camera for your "HUD arms" and stuff, thats why your hands never clip into the world (except in crysis where they made a system in which the arms and character were animated in world)
Adrian Baker
Could you explain what's so great about Minecraft's ladders and what's wrong with them in other games?
Connor James
>mfw GTAV on 360/PS3 Black magic mang
Wyatt Gomez
Maybe I'm describing it wrong, but it's a resource saving thing and it made sense when I was reading it in Edge
Jackson Bennett
Its true.
Brayden Allen
True facts.
Liam Hill
They're not THAT great, just the best implemenation I've seen. Especially FPS-type games have often very uncomfortable ladders. In HL1, you'd be sent flying off them very, very easily.
Elijah Sullivan
Open the game and check for yourself. Only instanced buildings, where you enter through a loading screen, have tables on what should be the second or upper floor. And thats because they are actually outside of the world, and it is the first floor, and the rest of the shelf is there.
On PC use the no clip command to confirm.
Ian Rogers
they should have kept this as an option in the game
Hunter Gray
This is what happened before we could control framerates
ever ran an emulator without a frame cap? the game loop is tied to the frame rate on screen.
that's why fallout 4 is fucking awful, because the engine is tied to the framerate
Jordan Roberts
Now, that's black magic, I agree.
Thomas Kelly
Most ladders in first person titles (Not him, but I'll help move the goalposts a bit) have the big issue of you either teleporting up them, only using them in cutscenes, sliding up them, or crabwalking up them while still holding your gun. Oh, and you can go flying off a bunch due to how movement works on most.
In Minecraft, you're pretty much locked to the ladder and have a different movement speed until you get to the top.
Parker Price
Do you remember ladders in Battlefield 2, where you just welded to it and can't even jump off?
David Ross
That was actually the moment the concept of increasing difficulty came about.
It really is simple, the more enemies there are on the screen the more operations you had to do so it took longer. Old CPUs didn't necessarily have the sync methods and games didn't use delta time, they just did an operation after operation as fast as they could.
Isaac Rogers
Dark Souls 1 animations run natively at 30fps.
60 fps mod speeds them up so you'd often get clipping errors such as falling through the world when sliding fast down the ladders since game isn't programmed to calculate collisions so fast.
If you were to kill Ornstein and Smough at the very same micro second, only one of them will buff up every single time, as his death event code line was the first in the code.
>Back at [company X], I think it was near the end of [the project], we had an object in one of the levels that needed to be hidden. >We didn't want to re-export the level and we did not use checksum names. So right smack in the middle of the engine code we had something like the following. The game shipped with this in. if( level == 10 && object == 56 ) { HideObject(); } >Maybe a year later, an artist using our engine came to us very frustrated about why an object in their level was not showing up after exporting to what resolved to level 10. I wonder why?
Evan Roberts
...
Nolan Thompson
I'd just like to say every game that paints your first person model as practically a filter over the rest of the game should be removed from the internet and the devs should be publicly hanged. I should not have tiny baby arms compared to a guy's corpse when I attempt to loot their body.
Jayden Ward
Bethesda didn't hire the people they needed for their work, they just hired people who were their friends.
Just because their games started selling well since Morrowind doesn't change who they are.
Dylan Young
>People still falsely attribute inverse square root to Carmack
Hunter Garcia
I don't see how this relates to the topic
Christian Rogers
Gen 2 Pokemons code before release was so bloated that after a weekend of condensing, over HALF of the allotted game cartridge was freed up and the game run better as a result. This allowed Game Freak to add the National Pokedex and the Kanto Region (minus a few dungeons/caves) to the game, when previously these things weren't thought to be possible.
Satoru Iwata was the one who did the condensing
Kayden Roberts
Because you were there to fucking see personally who did it first, dimwit.
Luis Garcia
>Muh idol, leave him alone!!!
Bentley Watson
>60 fps mod speeds them up This doesn't happen with the majority of the animations though. Estus and humanity usage does sped up though, so do various in-game mechanics that were meant to run at certain speed.
Anthony Smith
No, but I do know it wasn't Carmack.
Logan Edwards
That's because Game Freak is terrible at vidya tech. Good thing someone fixed it though.
Adam Edwards
I'm so used to seeing the next gen version that I sometimes forget it was ever on just 360 and PS3.
Similarly, MGSV on 360 and PS3 is a miracle.
Logan Reyes
Heh.
Julian Nelson
Carmack himself says he didn't invent it.
John Nguyen
I was talking generally, but yeah.
Xavier Howard
Iwata pretty much did everything pokemon related on Gen 2, hell he even coded the entire stadium games.
GF is a bunch of incompetent fucks, also gen 6 games still have stuff from gen 3.
Camden Rogers
Barren wasteland, less than 5 NPC's per outpost, terrible FOV for a fucking TPS. Yeah man, a fucking miracle.
Kayden Murphy
>MGSV
Not really, it looks pretty last gen, the cutscenes look good but in game there is flaws
Lucas Sanchez
...
Liam Thompson
Some ladders that are "sticky" are used to trigger specific events. It's really handy
see: FEAR
Another similar example
In Metroid Prime, doors were loading screens. That's why the gamecube looked so fucking good. it only ever had 2 rooms max in memory, and it never rendered geometry behind it (it even "culled" whole sections of floor and walls when you weren't looking at it, even though they were one piece). So when you shot a door to open, it would load the next room and wouldn't open until everything in the room was finished loading. Then when it closed, it would remove the room you were just in from memory
the HUD was also an in-world effect attached to the camera. It was also locked to 4:3, because standard television and gamecube, so when you emulate it widescreen you get this
I'm having a real hard time finding tech images from metroid prime, but i've seen them before. If anyone has some that'd be great
Jordan Perez
If anyone mentions doom not being 3d is a clueless fuck.
Evan Perry
I've heard people say that needing MGSV to run on 7th gen consoles might be why it was so barren and lifeless.
Jonathan Jenkins
In Ocarina of Time 3D, a lot of the time Grezzo spent "developing" the game was redoing animations to run at 30fps, which proved to be a more monumental task than they thought. Because the framerate on the N64 was both lower than the 30fps standard AND extremely variable, Nintendo EAD had a complex series of animations that would trigger depending on their context in the game.
One example was in the fight against Ganon at the end. Due to the engine being under load due to the large area, the many destructible objects, the fire sprites, lightning effects, etc, the game run typically 3 fps lower than the game normally does at rest, which, considering the game runs at 20fps at the best of times, ended up lowering the game 12% which was immediately noticeable. Due to stress testing the game, EAD were able to determine that the game would be running at between 15 and 18fps during this fight, so different animations for Link were programmed to accommodate this. If Young Link is loaded in to the game using a hack or glitch, his animations are inherently slower and sluggish compared to the animations that Adult Link has in the final battle.
Jaxon Perez
That's... pretty neat, actually
Brayden Perry
Metroid Prime had some real cool shit. Also, due to that two room maximum limit, there's all sorts of animations and shit hidden in plain sight, like how Samus' hand is rendered and changes based on what weapon she uses.
Eli Hill
Isn't it a common knowledge? Ofc Doom 3 wasn't 3D just because it had number 3 in it.
Adam Sanchez
Emulate it on Dolphin. You can play it widescreen now because the screen culling can be removed with an AR code and someone made a widescreen HUD patch.
Andrew Hall
her hand isn't rendered, it's only "rendered" while you have xray visor active. There's no reason to animate the hands if you cant see it
unless you gave some evidence outside of the xray that she does
Blake Smith
Not surprised.
And they did all this for, feel free to correct me here, 4% of their total sales of the game.
PS4 80%, Xbone 10%, PC 6%, last gen 4% are the figures I seen kicking around last November
Brody Jackson
No, it's not that. They did go way overboard with development, but 7th gen versions weren't critical in any way at all.
Connor Sanchez
you could see this shit in game too without the third person camera because of how fucked up your shadow was
Austin Bailey
imagine how many of those get forgotten and left in
Samuel Flores
...
Angel Stewart
>In Metroid Prime, doors were loading screens This is readily apparent if you've ever emulated it. Everything runs smooth as fuck.
Conversely, if you hack a Wii using an SD card to play Trilogy, the doors take up to 10 seconds to open
Chase Hughes
A lot of Japanese are still playing on past-gen consoles, so every jap game comes out on ps3.
Aaron Sullivan
I feel like open world games in general are just barren and lifeless. The bigger the world, the less dense you can really make shit in it.
Jayden Mitchell
elevators are also loading screens
Robert Lewis
>the HUD was also an in-world effect attached to the camera. It was also locked to 4:3, because standard television and gamecube, so when you emulate it widescreen you get this
FF8 The entire game's rng is just a giant text file with a list of numbers that are used to determine what should happen, and the current number on the list choosen is decided by how many unrelated actions have occured while the game is running.
Notably, knowing what increments the number list index and by how much, you can control the game's rng, most usefully for Triple Triad rule spreading, or Triple Triad rewards (free rosetta stones).
Some of the things that cause an update include: interacting with a draw point (1), using the draw point (2), asking to play TT (1), losing the game (1), winning the game (2), whenever a model is loaded in the scene (like students in the schools or buses in the city).
For those intrested, the game attempts 3 times to spread a valid card rule before trying just once to abolish a card rule. Also the rules themselves are weighted to be more likely choosen, while also, an unused card rule still exists in the list and if choosen the game defaults to open.
Hard restting the game causes it to start the list from the beginning, which is why the first battle you fight after turning it on is almost always the same, or why the same card rule spreads every single time. Soft resetting does not cause this as the list doesn't reset, causing the (true) rumor that soft resetting does help with card rules.
"Random has spread" more often was not your imagination.
Jace Sanders
Yeah I thought the fucking game was fucking with me when I played it off an SD. Samus, on her way to the fire caverns, was sitting there looking around for a solid minute
Luis Bell
>Conversely, if you hack a Wii using an SD card to play Trilogy, the doors take up to 10 seconds to open
Completely untrue. Or are you talking about putting the games in the sd card? When I played MPT, the doors at most took 3 seconds.
Benjamin Campbell
it's not even that impressive, it's just a newton-raphson approximation with a better starting point with that hex shit.
Logan Gonzalez
That's what I like about Rockstar, they really put a lot of effort into making suburbs/areas feel different.
Charles Reed
>Or are you talking about putting the games in the sd card? Yes, I thought that was implied lad
Tyler Watson
I was always like "wow, this shit is REALLY far down"
Adam Jackson
Why did no one use it before then?
Jace Carter
Carmack didn't write that code, and whoever did at their company didn't invent it either
google "fast inverse square root"
Parker Barnes
In a lot of JRPGs with RNG based stat progression, the stat growth is based around an algorithm usually tied to the players name, to simulate true RNG.
Jackson White
sorry then mate. Then again, who would put their games on a fucking sd card?
Noah Barnes
I hate this argument.
The wheel isn't that impressive now, but it was when it first started being used.
Blake Lewis
Why did no one use it before then?
Anthony Thomas
I was young and I've since learned, my dude
Connor Reyes
That would be fine if Gamebryo could manage Z-culling but it fucking doesn't
Jacob Mitchell
because it was the 90s, computers still ran on steam back then
Kevin White
> Mathisen had written an implementation of a similar bit of code in the late 1990s, but the original authors proved to be much further back in the history of 3D computer graphics with Gary Tarolli's implementation for the SGI Indigo as a possible earliest known use. Rys Sommefeldt concluded that the original algorithm was devised by Greg Walsh at Ardent Computer in consultation with Cleve Moler, the creator of MATLAB.[16] Cleve Moler learned about this trick from code written by William Kahan and K.C. Ng at Berkeley around 1986 (see the comment section at the end of fdlibm code for sqrt[17]).[18] Jim Blinn also demonstrated a simple approximation of the inverse square root in a 1997 column for IEEE Computer Graphics and Applications.[19]
they did, just not in games because inverse square root isn't super useful outside of rendering
it's also not 100% accurate
Owen Perry
Thats really fascinating actually
Charles King
You fucking retard. Steam wasn't made until early 00's. And it just had few basic valve games.
kys
Easton Lopez
B A I T
don't bite it lads
Thomas Hughes
computers won't run on steam until gaben finishes dinner and releases it
Ayden Robinson
most programmers dont do things that retarded
Parker Green
lmao
Chase Brooks
It's not that he invented it (it was most likely done in 1990 by Gary Tarolli), it's that no one really tried using it for 3D rendering in games and it confused him because it actually worked even though he didn't put it in. That's what the "What the fuck?" is for.
It's like trying to come up with a new two-wheeled wagon and accidentally making a chariot using a couple other wheels and a box some other guy was working on nearby.
Justin Morgan
>most programmers dont do things that retarded
so you're not in the industry then?
we do that shit daily
Connor Cooper
thats the way every random number generator works, more or less
Kevin Baker
I mean, do you know why it works?
even with the knowledge of how bitshifting works, it still makes zero sense
Oliver Evans
No one had to use it in for calculating lighting.
Adam Carter
Any particular examples?
Jason Adams
>that zombie vagina in early game release
Asher Bailey
It's funny to see this in a product, but it sucks to work with people like this. I had a project I was handed where the previous developers had included a guy who named variables "piss", "shit", and "ass", and didn't leave any comments. It worked except for the changes I needed to make, but it added work trying to figure out what he meant when he set faggot to the square root of ass plus dicks.
Juan Garcia
Off the top of my head, Dragon Quest games use it
Carson Davis
>tfw I can't figure out programming for the life me
Carter Rodriguez
well yes, but most of them don't use a literal file of numbers to do it
Asher Sanders
It just works!
Brody Clark
The fact they typed out a thousands of lines long list of numbers rather than actually use a pRNG when the PS1 is capable of implementing one is funny. Also when you hear that the rng in FFX-HD on PS4 didn't work at all, it makes you think the programmer(s) at Square(enix) can't do number generators.
Liam Ramirez
when it clicks it clicks, everything more or less makes sense.
You want to move the character left, you code that when X button is pressed move Y direction at Z speed.
Austin Turner
its just starting small and building up like any skill really
Christian Barnes
Gandhi's aggression was so low in Civ2 that it often went below zero and back up to the max value (255)
In modern Civ games, they have his "Tendency to Use Nukes" set to max as a joke. Actually they set it to 12 in Civ5, even though the stats are only supposed to go from 1 to 10.
Ryder Myers
you think they typed them out? they just generated them and saved them in a file. alot of old games do that because it was faster than generating them on the fly. doom has a list of random numbers for it's generator aswell
Logan Russell
looks like you can't figure out grammar either
Landon Morris
>had to explain to a uni classmate in a group project that you can't use "nigger" as a variable for an assignment
Christian Ortiz
Programming is very simple user. You just need to understand the simple concept of it all(Assuming you're not retarded and just jumped right into Unity like every retard instead of starting with C or C#, I'd argue C++ after C) and once it all comes together everything else is simple. Until you deal with multi-threaded programming where nothing makes sense because of timing
Austin Brooks
I remember there were other approximations, like the one used for sqrt (square root), because older processors would crap themselves doing it, or didn't even have it.
The NES processor didn't even have a Multiply, for exemple. You couldn't do 4*3 directly, you had to do 4+4+4.
Luke Reed
i've never seen an introduction to programming course/book/article/etc that wasn't shit so that's not too strange
Zachary Rodriguez
The build engine (DN3D) has some neat hacks and weirdness
Mirrors aren't actually reflections, they do some hackery to recreate the room behind it, when making a mirror you have to create an empty room behind it that's roughly the same size. They also glitch out if you view them at a very flat angle so all instances of them in the game limit the angle you can view them at.
The maps don't take place in a true 3D space. You can build rooms that go 'through' where another room should be and the rooms will still be distinct and not block/interfere with each other.
Imagine a spiral staircase, squash it down so all the stairs are flat and level, if you keep following the direction of the stairs (ie go clockwise continuously), you'll get to the 'bottom' of the stairs, despite seemingly just going around in a circle.
Levi Taylor
One of the reasons FFX HD took so long to come out is that the game was designed for a certain resolution from the ground up, and when the resolution is increased and the aspect ratio changed, it becomes apparently that to save memory, Square devs only partially loaded in models during certain cutscenes, or left models of other characters needed just slightly off screen and out of camera.
The higher quality character models used in close ups, for example, might only load from the chest up to display at 480p. When the game is opened up to 1080p, this becomes noticeable. SE had to go back and fix all of this, turning what should have been a quick cashgrab in to a full on project using a full development team. You can catch a lot of these errors if you emulate the original game and use a widescreen hack.
Eli Jenkins
It's like cooking
you learn a recipe and then learn how to combine recipes into even more recipes
and then you google every problem you have and someone already solved it
Wyatt Richardson
I heard that somewhere, pretty hilarious
Ayden Thomas
That's the definition of precomputation, ie. you generate a lookup table before runtime, and only search through it during runtime, saving precious processing power. Actually, a game that also used precomputation (as binary tables, not text files) was Crash Bandicoot.
Luke Mitchell
It requires a routine and finding the kind of material that doesn't suck ass and paced in a way that you can absorb. But it's mostly about building a routine.
William Bennett
Games are nothing but smoke and mirrors. If it looks like a duck, walks like a duck, then it's probably good enough to be a duck for the user.
This for example is fucking hilarious, but nobody knows until you open up an editor. There's a lot of silly work arounds like this in games.
Daniel Baker
>gen 6 games still have stuff from gen 3 "If it ain't broke, don't fix it" is a big idea in programming. CoD's engine for example still runs of some code that was first made for Quake back, pretty impressive when you consider that the engine is good enough for that rock solid 60FPS it gets even on consoles.
Grayson Miller
every game uses precomputation
Adam Allen
Why is the name of the function censored? There must be a reason that you, or someone else, actually went through the trouble of putting a black box over the function name. I need to know. If you don't reply to this post, I'll come to your house and bang your mom.
Isaiah Campbell
there is no half A press, now fuck right off faghot
Jace Thomas
One neat trick in Metal Gear Solid 1 (PSX) that some of you already seen. When you're in an Alert state and keep killing enemies, more of them appear out of seemingly nowhere. They actually appear just out of the camera, but the game uses a neat trick to not just "teleport" them to where they need to be: if you keep killing enemies and run as fast as possible near walls, you can actually see the enemies coming from the walls! This is very easy to see in the tank hangar.
Chase White
That's my fetish.
Caleb Jackson
MGS2 did the same thing. If you get the Document of MGS2 and use the free camera during cutscenes, you can see all kinds of whacky shit going on, like Ocelots's upper body locked in to the ground during the scene where you meet the President, or Solidus's non-cloaked model peeking up from the sea under the bridge in the scene before the plane fight. I guess Kojipro had the sense to leave the loaded but unneeded models a lot further off screen than the FFX team did
Luis Green
I had to blank it out because my thread would immediately get deleted if I left it on, with a message saying I should. No clue why. Any ideas?
Lucas Bell
Yeah, but this only enhances the effect of emptiness in my opinion. Like, you have this really well done, interesting looking area that just screams "there should be something going on in here" and yet there is nothing, not even a side quest or a random event because the world is so massive that anything actually happens in like 25% of locations at most. This created a lot of places that are just wasted opportunities for something interesting.
Jordan Reed
You can look up the original src code, unless some idiot has implemented this again in their own code in an attempt to be smart even though its highly inefficient these days.
Ayden Long
Now I'm even more confused.
William Martin
Some people are just never happy.
Oliver Gomez
Jumping straight into Unity is fine as long as the game you're making doesn't rely solely on Unity's built in functions. It *can* be a decent way to get someone into C#.
Aiden Lopez
...
Jordan Walker
I think Cred Forums detects some images as spam.
Ian Myers
I thought this is how computers actually performed multiplications and any multiply instructions are there for convince/backwards compatibility when people still did stuff in assembly.
Gabriel Nguyen
Someone post Evaxephon's programming scribbles here.
WE MUST NEST MORE IFS
Chase Powell
How about behind the scenes at ID Software
Aiden Young
I heard that horses were removed from the first Assassin's Creed because everytime they were used, there will be a game breaking bug. So they were relegated to loading screens basically.
Landon Gray
>we
Jayden Watson
if it had merely detected it as spam, how would he know the specific part to blank out She's going down! Down to Chinatown!
Joshua Anderson
so you think if I type 5000000*5000000 it's doing five million additions?
Justin Roberts
Could it have something to do with censoring Facebook profile names?
In a quick glance the image might look like a social media post.
Jack Murphy
It's not really that, I do appreciate the amount of detail they put into their games. I just would personally prefer most open worlds to be smaller, but more densely packed with content and using all its assets. Bigger doesn't really mean better.
Jace Adams
I don't know.
Nathaniel Sanders
>horses were removed from the first Assassin's Creed
They weren't, though. You can even use them while fighting.
World portals in Portal 2, even if they're only used once.
Brody James
Masters of Doom is a pretty great read.
Jacob Davis
>ultimately ended up creating probably the best functioning ladders ever in a video game. That's really sad because they're still pretty fucking shit.
Camden Mitchell
carmack is a terrible person
the more i learn about romero the more he looks like an ok dude on the other hand
Henry Long
fuck dont give modern devs any ideas please.
Grayson Rodriguez
It's fine, but that's it. You're throwing too much shit into your head at once that doesn't make it ideal. That's why a lot of indie games done in Unity run like shit. They don't know programming and don't give a fuck as long as it runs. Which is completely fine for most games, but when they have ambitious projects like every zombie survival then what a surprise.
It also doesn't help that C# and Unity have a lot of things already done for you so many don't question what's inside the black box. Very bad. I get that there's no need to reinvent the wheel, but jesus christ be wary of the performance cost when using X.
Nathan Rivera
I am disappointed. The one who say that worked for Ubisoft a pair of years so I take it for granted.
Not the guy you're talking to, but are there any particular things in Unity that you know of that have huge performance costs that many scrubs do on a regular basis that a real programmer wouldn't?
Nolan Williams
...
Bentley Stewart
It's usually more efficient to reuse a model rather than load in a new one. The engine tells the GPU that this model is also here so draw it there, it doesn't need to have a copy in memory for each copy of the model, just the position data. Granted in this case it wouldn't be a one time use model so the performance hit would be negligeabel either way.
Aiden Cook
You can't ride them in cities, only in countryside, perhaps that what he meant.
Mason Sullivan
No. It said something like q_rsqrt on your image is detected as a spam and I got warned for it
Charles Morgan
You fucking moron. Video games were invented in 2011 by Todd "Bethesda" Howard.
Nolan Miller
romero is a passionate idiot and carmack is a dispassionate genius thats why they worked well together
Gavin Nelson
Don't cache all your assets at once. Many games do this, and it ends up taking 2GB of your RAM memory for a 2D sidescroller. Don't leave free objects scattered around scenes, they tend to cause memory leaks. Don't google "how do I do this in Unity" because 50% of the time, people just copy-paste some 100 lines of unoptimized code that could be trimmed down to 15 by any competent programmer. Actually, just don't copy paste stuff from tutorials. Uililia does it, and he said his code already has more than 5000 lines (or something). It's a nightmare to mantain.
Dylan Anderson
Remember it being mindblowing how even 'simple' collision detection in 2D games requires creative thought.
You just map a box around the player and map a box around objects and if they touch you register a collision right?
You can but the game will run like dogshit because you will be comparing the player against every object in the game every frame so you're doing 100,000s of needless calculations a second.
One workaround is to map every object to a tile on the map, If you know the player can only move a maximum of 1 tile a frame then you only need to check what tile the player is in, then check it against the objects 1 tile away in each direction. You end up doing a few hundred checks a second instead.
Other methods are to do a collision detection 'map' with just black and white pixels that's invisible. If the player hits a white pixel on this map, register a collision.
Simple problems which require creative thinking are one of the things that give me a buzz when coding.
Ryder Peterson
*said
half-asleep today.
I remember seeing a screenshot from the "HD" version that showed how some minor characters are actually part of the background and, therefore, their models could not be improved.
Colton Lewis
carmack is a straight-up sociopath
Grayson Murphy
>Mirrors aren't actually reflections, they do some hackery to recreate the room behind it
That's very common in early 3D engines before they (and the hardware) could do real time reflections.
I used to do mapping for half-life and that was exactly how you did glossy floors. Make it semi transparent and simply build an inverted replica of the room below the floor so it looks like a reflection. Of course you had to take care not to have any models in the room or that would give away the fact it's not a real reflection, though IIRC someone made NPC models for that case where the second model would be inverse under the ground acting as a reflection. I think it was in Blue Shift? Still it was pretty restrictive since decals and such would not mirror.
While we're on the topic of HL, you couldn't have complex entities composed of simpler entities with different properties. For example, you couldn't have a solid door with a semi trasparent (glass) segment, so in those cases the solid part and the glass part are two different doors, and you just make the big one trigger the small one when it is triggered itself so they open in unison. Also you couldn't have composite entities, so for instance no moving elevators with working doors that move along with the elevator. The one elevator with such doors in the game isn't actually a real elevator, you get in, it does a screen shake, then loads a different level where the outside of the elevator is changed.
Daniel Rodriguez
*maintain
Adrian Cox
I can't really say since I don't use Unity, but it's nothing against Unity in particular. It's prebuilt libraries since you personally never implemented them so you have no idea how the performance is.
A good all across the board example would be raycasts. You have no idea how retarded indie devs use this without ever wondering the performance cost until they shove a ton of them in a single frame.
How about a simple one that everyone can understand? String comparisons. Seems innocent, but overtime if you do a bunch beyond parsing then it all starts to pile up. It's not even like string is a complicated to implement or even think how it's implemented.
Ryan Nelson
guy's not human, there's nothing wrong with that good book
Ian Green
there aren't really any major points where you can say 'do this and your game will run better' it's a combination of all the small mistakes you make because you don't know how code runs under the hood
Asher Gomez
>down to chinatown
FUCKING KEK
Owen Phillips
I've gotta ask, was there some sort of fuckery done code wise for Legacy of Kain: Soul Reaver on PS1? It's been on my mind for a little bit now, because i started a new game on the ps1 version.
William Ramirez
I'm a programmer and I don't get what the fuck is happening here.
Elijah Gray
I always wondered why they made the call to make it a female model.
Henry Murphy
It uses streaming. Open the CD cover and it will stop working in a few seconds.
Jayden Murphy
Hacking son.
Julian Mitchell
I doubt it was a deliberate decision, they just made an NPC and it happened to be female.
Camden Ramirez
Didn't Fallout have an NPC wearing a train for a hat?
Cooper Parker
They use an approximation of the the inverse square too algorithm to calculate lighting in the engine. If they used straight calculation, it would take much longer.
Gavin Reyes
epic shitpost
Colton Brooks
This.
Fucking scumbag had a beloved office cat, that id loved, put down randomly one day.
When everyone asked where their favorite cat went, he said "I got rid of it".
Huh. I heard that a lot of the game was scrapped because of deadline limitations but the devs basically "stitched together" the worlds they had finished, is that true?
James Clark
you sound awfully upset about something that has nothing to do with you
Alexander Turner
sociopaths affect us all
Jayden Jenkins
My sister dubbed that the >eyes in the balls effect
Brody James
that happens to a large amount of games
Jayden Reed
Probably. Most finished games have a lot of leftover stuff. I thought you were asking about the open world stuff, because LoK didn't have many loadings. You could even force an error in the PSX version, and the debug would appear onscreen, with a message saying "streaming xxxx sector".
Isaac Bell
the magic of bit shifting for random numbers in super mario 64:
It's partly true. Kojima himself confirmed that Mother Base customization was removed, and the platforms have such gigantic bridges between them, because the 7th gen consoles needed to unload the previous platforms for performance reasons. That's also why vehicles and animals you fulton don't show up there, and weapon emplacements are pre-set.
Jose Cruz
Did these people actually just copy and pasted Scooby Doo game assets in Sponge bob?
Cameron Wilson
I don't understand, built in string compare functions are more costly than creating your own? Isn't it just a compassion of char arrays?
Gabriel Harris
You'd be surprised to know that only 30% of all games reach the retail phase. The rest are either totally scrapped or turned into something else.
Zachary Brown
Used the same engine didn't it? Doesn't the game have a ton of scooby doo assets left in it as well?
Blake Bell
True. I appreciate the answer.
You could? How do you make the debug appear? I apologize for asking, I just love learning about these kinds of "things", you could say.
Jacob Mitchell
Are you actually asking if some generic code got reused for another game? What would be the point of rewriting it specifically for sponge bob?
Parker Taylor
Someone post yanderedev's code, I need a laugh
Dylan Walker
To be honest, I'm not all too surprised.
Henry Flores
w-what?
Luis Thomas
new wheel > old wheel, duh
Elijah Miller
google it nigger
Nathaniel Perez
>or left models of other characters needed just slightly off screen and out of camera. many, many, MANY games do this
Jaxon Jackson
Not only vidya, any kind of software. I remember some kind of malware that opened up your browser outside of your screen, hid it, loaded ads in it and clicked on them. Or maybe it was just a dream.
Jayden Adams
wait until he finds out what studio tv looks like off-screen
Angel Peterson
...
Eli Campbell
fukken saved 5'd subscribed
Anthony Adams
>Or maybe it was just a dream
i have dreams all the time of crazy viruses and malware fucking up my computer
Luis Rodriguez
Vib Ribbon: a game so small in filesize that it can be loaded into the Playstation's RAM, take the disc out and play just fine. They used it to advantage by letting you make and play levels from audio CDs you put in.
Caleb Kelly
they should give the terraria guy his code back
Elijah Rivera
Is what's wrong that he didn't use a case statement?
Benjamin Robinson
I only barely know programming but isn't that the kind of shit you use switch case for?
Luis Bennett
I don't understand what's bad in this as a non-coding idiot. I do know that lots of ifs/ands in a row is bad though.
Connor Murphy
would be perfectly valid in python :^) I don't know the context of the code, but why was Eyecolor a string in the first place?
Michael Murphy
I'm assuming it's an UI string visible to the player, and it's just checking directly against that (like what's currently being shown on a combobox or something).
Camden Diaz
>superfluous string comparisons >magical values >not using a loop >H A R D C O D E D modifying this piece of shit code would be prolix as fuck. don't do this guys. don't be a retard.
Jaxon Thompson
Then write down how you would fix it.
Josiah Rodriguez
>>not using a loop Why would a loop be helpful
Brandon Edwards
>not using a loop
A loop for what?
Jaxson White
...
Jason Lopez
A lot of things are wrong. No switch. Doing comparisons (==) for every single frame. He made EyeColor a string instead of just using an alias or having the stuff on the right in the first place (given that the player won't see the source code anyway). He also nested a bunch of ifs/elsifs in another condition (EyeColor != "") that'll probably be always true.
James Rodriguez
>loop >not just a dictionary why waste time?
Alexander Reed
For each eye. Store the eyes in a list, then iterate through them. Then it won't break when he adds triclops and cyclops girls.
Jackson White
Its the classic. Some software engineers essentially put a bunch of 'waits' in their code for non-gaming programs. When the manager wants a speed increase or you want to upgrade it for the public, just delete some of them
Owen Mitchell
If he attributed a color to a string in the first place, nothing will fix this. It needs to be recoded from the beginning.
Andrew Young
Yes, that's one issue. A switch would be significantly more efficient and easier to read.
Also, you really shouldn't be using hardcoded values for a string comparison like that. If he were to ever make a typo and and set a characters EyeColor to "white" then this function would fail and he would never even know that it failed. Creating some string constants instead would avoid the typo issue (his compiler would point out his typos) and increase runtime efficiency, it's just all around safer to do something like "EyeColor = WhiteColorString" "if (EyeColor == WhiteColorString)"
And of course, the entire concept of using a string just to create a different object is completely absurd. Really, EyeColor should just be an object of type Color. If he did that, he could just be using constants instead so that he could just say "EyeColor = Color.White". If he had done that, then he wouldn't have needed this block of code at all.
Dominic Martinez
The storage and implementation is all irrelevant. Although, the assumption of the implementation should be return once false.
Anyhow an example of retarded use of it would be keep tracking of an object by name. It's called "BoxingtonMcGee," but the problem is you have dozens of objects also starting with "Boxington" What's the problem? A lot of comparisons are going on. If someone does it once, they're bound to do it again.
or see this Now this isn't a big deal if you're parsing data, aside from the ton of elseif. Considering I see "EyeColor" I can assume it's not happening every frame, but you see this also very common to do constantly at runtime for w/e reason. "Black" and "Blue" are the most common words with 2 "Bl" and when looking for Blue you just did 11 checks where worst case Brown at 14.
Overtime those innocent little comparisons will add up, but again for parsing data it really doesn't matter. You do it once in a while then w/e.
Liam Watson
Also the Thermal Visor can see the gas emission of those invisible platforms. Just like how rain drops on top of it instead of through it
Michael Nguyen
>Doing comparisons (==) for every single frame. Was this actually in Update? I assumed it was in Start or Awake, since the renderers wouldn't need to be changed more than once.
Jack Ross
>He also nested a bunch of ifs/elsifs in another condition (EyeColor != "") that'll probably be always true.
Kids, don't listen to this. It's good programming to always check for unexpected values instead of just shrugging and saying "meh, it'll probably always work" then having your shit unceremoniously crash without even as much as an error message.
Wyatt Martinez
Better way would be to define an object containing (among other things) an array of colour values with the string colour as the key so you could just do:
public function getRealEyeColours(eyecolor) { return this->eyeColours[eyecolor]; }
Joshua Ross
I'm discalculic, so I'm useless in answering actual numbers questions.
Alexander Howard
fuuug. true, I was thinking of parallel arrays (which is pretty much what a dictionary is but as a single data struct IIRC). I'm going to be honest, I haven't programmed in awhile because I'm a sack of shit.
>assuming he isn't as stupid, he would define a map, eyeColorDictionary, such that string -> color struct, and initialize it up with the appropriate values... >RightEyeRenderer.material.color = eyeColorDictionary[EyeColor]; >LeftEyeRenderer.material.color = eyeColorDictionary[EyeColor]; I'm sure there's a better way to do it that's faster and cleaner, but I'm not that smart enough
Isaac King
Easier to maintain, but for the most part a loop is worse performance. Hard coded values.. yeah sure it's bad, but they're colors. Realistically I don't see red changing anytime soon.
Nicholas Bailey
What I mean is that he should have made two or more separate cases, not nest a bunch of ifs into the more likely case.
Matthew Collins
fuck that, make an Enum called Eyecolors, make a static extension for it that looks up a dictionary, bam.
public static Color getEyecolor(this Eyecolor color) { if(!dictEyecolors.contains(color) { //should never get in here, but better be safe than sorry eh? return Color.white } return dictEyecolors[color]; }
Colton Hall
the point is you shouldnt be comparing strings in the first place when you could be comparing integer constants
Wyatt King
I assume he's just checking against GUI values, like what the player picked in a character selection screen. I mean, even if you're using a third party GUI solution that automagically sets your variables to the correct thing based on what the user selected, what it's doing behind doors is basically the same as that block of code, isn't it?
Hunter Sanders
Someone explain to me wtf OP is talking about.
David Johnson
performance for this functionality that will be executed on modern PCs is negligible for the most part. better to have cleaner, more robust language than that shit in this instance.
Jeremiah Cook
Metroid Prime had an insanely good design document, it's why it ended up being so good.
Lots of care was put into shit like enforcing minimum size of platforms (generous so you wouldn't overcorrect and fall off the platform) and maximum jump length (well below what you were capable of). Some of the best platforming in an FPS there's ever been.
Bentley James
No one should ever learn C++ under any pretense
Carson Brown
>amateur hour programmer trying to sound smart there is nothing here to use a loop for, you should be using a switch statement or a dictionary, sequential elseifs are basically a switch statement anyway. the only complaint that has any weight is string comparsions
Owen Butler
Well yeah the interesting bit isn't the equation, it's the magic constant that no-one really knew the source of but that was able to make for a nicely accurate result. I agree it's kinda blown out of proportion these days though, like unrolling the loop basically saved postscript at the reveal but no-one's rubbing their dick over Duff's Device today.
Caleb Torres
if it was written by a monkey, sure
Nathan Adams
An associative array is directly addressed though, why do a needless search?
Jacob Turner
Which part? The image, the topic, or the bunnies
Charles Nelson
The "Gandhi as Nuclear Terror" bug will never not be funny.
Isaac Young
Other than the fact that it is one of the faster language since it doesn't assume you're a retard. Considering what board we're on, C++ is still very reasonable to learn. Almost everything else? I completely agree.
Daniel Brooks
what if the pretense is maintaining bad but critical c++ programs for phat stax
Adam Mitchell
By needless search, do you mean the if clause? In case you add another value to the enum but forgot to put the Color in the dict.
Easton Young
Being required to for class is also a valid pretense.
Ryan Gomez
or you know, he could actually use data structures as abstractions of all that and not only would it be simpler to debug and change, but it would also be much less wordy at every step of the code past assignation ?
if you think that pile of shit is acceptable in any way you're not qualified to call people amateurs frankly speaking
Evan King
Everything
William Fisher
.contains searches the elements.
Chase Reyes
Any of you fags have some no bullshit sources of easy to read comp sci shit?
Especially Big Oh and Recursive relations
Daniel Hall
>sequential elseifs are basically a switch statement anyway. One is a binary search the other is a linear comparison. They're not the same.
Ian Collins
>"data structures and abstractions and all that" lol a dictionary is a data structure, which I mentioned in my post, even then it's not strictly neccessary if your data is small and unimportant you can just use a switch statement
Sebastian Perez
>dictionary which I conceded to an earlier user, but you don't think hardcoded isn't a valid complaint? you must be a retarded to think that's not a terrible design decision
what's worse is you have myself and others who aren't making games pointing out how terribly flawed this moron's design is, even for a small part of the whole application.
Christian Parker
Yeah, what else would it do? But like I said, imagine he wants to do DLC that adds Pink and Orange eyecolors, but forgot to put their Color values in the array/dict. This way, something will always show up.
Tyler Jones
depends on the implementation, best case it's a binary search, worst case it's constant. that's why I said "basically"
Benjamin Lopez
>Big Oh All you need to know for compsci Big O = number of loops
Angel Phillips
A few weeks ago the player with the lowest rank in Overwatch managed to have his rank underflow and he ended up as the highest rank player for a few days
>the topic Instances of developers using unconventional or seemingly odd methods to make things work. Also insulting yanderedev and other bugs in games.
>the bunnies Blizzard uses bunnies to trigger stuff in WoW. Here's one that caused earthquakes during the cata pre-patch wowhead.com/npc=37543/dnd-shaker
In Vanilla there two ways for the game to mark a quest as complete >Kill some target >Turn some item in For quests where your objective was just to talk to some dude, they spawned an invisible bunny then had the npc kill it to mark the quest as complete. At least that's my understanding of it
Gavin Cox
It would probably be better to catch the array index exception
Camden Walker
Crazy how Ubisoft do dat
Matthew Sanders
I used to have a snippet of Anachronox's dev tools saved on my computer. Can't be added to find it now, but it might be on Cred Forums's archive assuming the latest one goes back a few years.
One of the devs assigned ID's alone the lines of "CORRINE'S SMELLY CUNT" and "FUCK CORRINE."
Apparently Corrine Yu was not well-liked.
Kevin Rivera
depends. if your data is small and local, there's actually nothing wrong with hardcoding it. We don't know if that's the case just from one snippet of code. In real life, you don't decouple every piece of data even though it may be considered theoretical "best practice"
Michael Foster
Damn. I'd be destroyed during code review sessions if I had pulled shit like that.
Julian Sanchez
You have a point, you could do a try/catch.
Julian Parker
"so... About your pull request..."
Carter Bell
I don't know anything about coding but I've always loooved shit like this, it's insanely interesting. Great thread.
Jayden Nguyen
fuck, i wish they went back to tricking us in the code and stopped fucking full-out jewing us right in the open
Eli Cooper
but why would you use that many comparison statements that wouldn't be flexible in the least if he wanted to add more colors (also it's funny that he has fixed colors anyway but that's not here nor there)? this whole code block just smells of laziness, which is funny because going the data struct route would be much less typing, and shortsightedness.
of course it depends, user. what I'm saying is that in this instance and from what we can deduce from looking at this snippet, the context in which we were discussing hardcoding and dictionaries, his design is poor.
Carter Ortiz
Why does he only define like a dozen colors anyway? Why not just use a color picker and let the player choose his own rgb values? Unless he does something special with them, I guess, like characters with red eyes have an edgy multiplier or something.
Nathan Davis
The best solution is an enum for eye colors and a look-up table mapping enum values to color vectors.
Since that'd take 2 cache lines for the eye colors he has, if you wanted to go nuts you could compress each color down to a 6-bit (3x2-bit elements) vector, and store the whole table in a 64-bit integer.
Carson Diaz
... ... ...
"FUCK CORRINE WITH A CACTUS"
*shits pants and runs out*
Zachary King
because then you have to code a colour picker
Owen Hughes
3 sliders you mean? or even 3 text inputs? that's not a lot of work.
Eli Morgan
if he wanted to add more colors he'd just copy and paste the line, the same way you would modify a data structure. yes the guy is a shit coder, but if you want to analyze that block of code in a vacumn the only thing you can really complain about is he didn't use a switch statement. If this is the only place eye color is referenced in the whole program, there's not really anything wrong with it.
Hunter Nelson
You'll want presets anyways. It makes it easier for people to choose.
Ian Turner
He loves using strings in places they don't belong
Camden Gutierrez
Thats funny, Corrine Yu is practically Carmack tier programmer.
She also got a rockin pair o boobs too.
Gabriel Gutierrez
>talking about cache lines and bit compressions for a gui event in a unity application
Julian Nelson
Someone should really tell him that case statements exist already. Like there's a point where it stops being funny and starts being sad instead.
Brayden Adams
if she's also a carmack-tier asshole that'd explain the ids
Julian Cruz
At this point I'll just assume/hope he's fucking with people for a laugh.
John Cooper
he's not, he's the perfect example of a unity developer, cobbling together premade 3d assets with copied scripts and barely functional programming knowledge
I once worked with a fairly talented programmer. Not Carmack-tier obviously, but still pretty solid. And if your code wasn't up to snuff, he wasn't shy about letting you know it.
It was frustrating as fuck working with him, because I was just some dumbass schlub code monkey.
Levi Hall
He definitely isn't.
Carson Gomez
So for string comparisons I should change the string to an number and do number comparison?
Angel Anderson
it wasnt it wasnt it wasnt
Levi Evans
Actually the rooms that you see in reflections are not separate rooms that have been recreated. As you hinted in your second point, areas in the Build engine do not take place in 3D space, but are actually rooms that exist in their own space and are connected by portals. Mirrors are created by connecting one side of a room to the same side but from the opposite direction.
Gavin Rivera
just throw in a == and save it as .php
Cooper Sanders
You should use the number as an ID on an array or some similar sort of shortcut
Jeremiah Roberts
no if you have a limited number of values you use an enum/constant
like if you have a chess game, you could use the strings "Empty", "Black Pawn", "White Pawn", "White Bishop" etc.. or you could use const BLACK_PAWN = 1, WHITE_PAWN = 2, etc. comparing an integer is much faster than a string and you still have the ability to use the actual meaningful name of the piece, but most lazy/incompetent people will just use the literal string instead
Liam Bennett
Usually good programmers are proportionally lacking in human relations.
Ian Turner
...
Nathaniel Bell
If you're doing something that involves string data, then a string comparison is fine. e.g. a user's text input
However a string comparison is fairly inefficient, so you shouldn't be using it in the manner that YanDev does
Thomas Richardson
Agreed. Then there are guys like me who are jerkasses AND bad programmers.
Asher Sanders
Well that's true I don't usually constants. I'll keep this in mind
David Allen
>not bitshifting the string to make it cool
Jeremiah Morris
Fake it till you make it.
Isaac Hall
If you code for Unity, enums are your friend. Never forget that.
Blake Collins
I'm pretty sure I've seen a post worded exactly like it, with the exact same image like a year ago. Might be pasta.
Benjamin Nelson
Every day, buddy. Every day.
Luis Brown
You still have to write down the strings in the enum tho. Literally only useful if you're going to do comparisons in more than one place, otherwise you're actually writing more to achieve the same.
Evan Williams
>You still have to write down the strings in the enum tho please leave
Joshua Cruz
variable names are not strings
Nicholas White
I don't get why everyone's freaking out. Almost none of you noticed and they saved time/ram so it was a very smart decision. Not lazy at all
Jaxon Bell
yanderedev detected
Landon Evans
>efficiency == number of lines written
Wyatt Brown
Of course, hence "go nuts"; I just think the switch statement solution being proposed isn't much better than the if-else chain (not that it's as terrible as people are saying in the first place).
It's a simple map from one kind of data to another. A look-up table is the way to go. If you wanted to stick with strings, a dictionary (as one user suggested) is fine. If-else chains and switch statements indicate legitimately dynamic behavior, which isn't present here.
James Mitchell
he probably has an app that goes off whenever his name is mentioned in a thread
I wish I was joking
Cameron Collins
The actual fucking string of text, autists. BLACK_PAWNS is a string of text that needs to be written regardless of whether it's treated as a string or a variable name in your code. If your goal is to write less, this is not one way to accomplish it.
Sebastian Morales
>efficiency == number of lines written
Asher Butler
I'm out, this thread is fucked, we had a good time lads
Lucas Nguyen
>months Granted Bethesda are by far the most incompetent and poorly managed studio out there but months? Most of the assets were already there it would take a few hours at most.
Carter Hernandez
i see you've met my boss
Luke Phillips
the goal is not to write less, the goal is to make the program run faster. comparing an integer assigned to a variable name is faster than comparing a whole string at runtime
Evan Jones
He does like string comparisons
Jaxson Walker
>app that goes off whenever his name is mentioned in a thread
How many if statements would it contain?
David Robinson
kek
Jose Ortiz
kek
Hunter Miller
he gets the entire content of the internet in one big string, splits it for ' ' and then has millions of if cases like text[0] == "yanderedev"
Liam Perez
Speed is one thing, but the greatest gain is that you can use the type system to prevent mistakes. Magic strings cause bugs.
Ayden Lopez
>Completely working train system >In a buggy messy shit of a game engine used in FO3 >Not taking up months of work
They'd have to re-write whole engine ground up
Jason Gomez
Stop it.
Sebastian Johnson
only if you're a shitty / corporate programmer
Jose Hall
Some people don't want to waste time time writing shit.
Yeah I got that when I read your post the second time around but fuck it man, now I gotta stick to my argument in order to save face in an anonymous japanese imageboard.
I despise that shit. Valve games are the worst at it. Standing has the camera in your chest, and crouching shifts the camera all the way down to your ass, leaving your upper body still exposed while you can't see or shoot anything behind a wall.
A game that does it sort of right (in regards to the same kind of game) is Call of Duty which accurately shifts the camera to the top of your head in any stance. However it also causes bullets and projectiles to fly out of the top of your head as well.
The only game that does it right is ARMA which affixes the camera to your model's head, and uses vectorized aiming for weapons so bullets appear from the end of the gun rather than out of your face.
Cooper Miller
You're an idiot.
Matthew Davis
>he has a shitload of string arrays manually declared to be able to store every single word on the internet >as the internet grows he has to add more and more arrays
Parker Fisher
>Some people don't want to waste time time writing shit >posts on Cred Forums
Chase Parker
Have you visited www.thelostworlds.net yet? For all I know, this site should have all the answers to LOK-related development questions.
Austin Ross
IT
>trying to defend your shit coding remember anons, this is the guy who got valid critique from a better programmer and then whined about it
Leo Williams
for (int i = 0; i < post.length; i++) if (post[i] == "Y") if (post[i+1] == "a") if (post[i+2] == "n") if (post[i+3] == "d") if (post[i+4] == "e") if (post[i+5] == "r") if (post[i+6] == "e") if (post[i+7] == "D") if (post[i+8] == "e") if (post[i+9] == "v") shitpost();
Josiah Stewart
call myself a dumbass but why not just use 2 cameras? one for the player and the chesteyes one for the wepaons?
Kayden King
It's messy and hilariously lazy but it's doubtful it would have any real negative impact. That said Bethesda's Gamebryo renders everything you're looking towards regardless of whether or not you can actually see it (so if there's a table on the other side of the wall and you're looking at said wall the table will be rendered despite not being visible) so it could potentially have a (negligible) impact on the frame rate.
Matthew Walker
>Using strings instead of integer flags Its like he's never even looked at anything remotely technical. Not even messing around with the console in Source games.
Brayden Powell
>IT ? Performance?
Luke Sullivan
What about lowercase Y and D?
Anthony Taylor
>remember anons, this is the guy who got valid critique from a better programmer and then whined about it
You honor me. I'm just some random nobody.
Christian Campbell
user, you forgot to account for capitals and variations. You need more if statements.
Ryder Nguyen
He has one similar block of code for every single possible combination of lowercase and uppercase chars, of course.
Xavier Bennett
You say that but Bethesda literally do not know how to make ladders to the point where they're actually very self conscious about it.
Sebastian Phillips
>yanderedev >for loops oh come on user, you can do better than that. it should be a huge nested if
it's not 'lazy'. it's bureaucratic. You have artists making the props, and level designers making the levels. the level designers make the best out of the props they're given. In some cases it means using them in ways they aren't intended to be used. Shit like that happens alot in games
Nathan Thompson
if (post.length() == 1)... if (post.length() == 2)...
Oh god
Jack Gonzalez
>mfw working as a system programmer and reading Cred Forums programming threads
Parker Campbell
Ladders in first person games are invariably shit, the best ladders I've seen in a game were MGSV's ladders though that's more to do with the animation quality than anything.
more like >string wordOnInternet1 = >string wordOnInternet2 = >... >string wordOnInternetN = ... >if ("yanderedev" == wordOnInternet1) {goto SHITPOST;} >if ("yanderedev" == wordOnInternet2) {goto SHITPOST;} >... >if ("yanderedev" == wordOnInternetN) {goto SHITPOST;} seems more plausible now
Anthony Cruz
this joke stopped being funny 10 posts ago
Ryan James
it will never stop being funny
Gavin White
if (post.position == "10 posts ago") post.funny = "funny"; else if (post.position < "10 posts ago") post.funny = "not funny";
Benjamin Flores
Nah it's just lazy, takes ten minutes tops to cut the shelves into a table and tweak the textures accordingly if need be especially given the prevalence of quarter and half shelves in the game.
Luke Moore
you missed the point of the post. if the level designers and artists are two different groups with no communication then shit like this happens. sometimes different departments are even forbidden from talking to each other except through managers
Xavier Green
>with a better starting point with that hex shit.
Deriving that hex shit is damn impressive, retard. In the general form, you can derive it for any x^p where |p|
Jose Edwards
That would work just fine. In fact, both engines have existing examples, one unintended, the other deliberate.
In Left4Dead, players could use the command console to change to Third Person, and could adjust the angle and position of the camera for ideal placement. You get the view from this hovering camera, while the camera still stuck in the player character model serves only as where the bullet hitscan comes from. However, this is unintended, and there is no code that automatically aligns the two cameras' focal points. No matter how you tweak the numbers, aiming in third person in L4D had an inaccurate offset. Too close and the shot was to the left of the crosshair. Too far and it would go off to the right.
Modern Warfare 2 had that Third Person game mode in which the camera had both an "over the head" and "over the shoulder" view depending on if you were running or aiming. Given that it was a fully fledged feature, the devs properly aligned the character model camera from where the shots came from and the third person camera you were looking through to the crosshair, accounting for environmental obstructions and distance.
ARMA has the same attention to detail, but you can also switch between first and third person on the fly, and both are perfectly accurate.
For the former two games, it would be perfectly possible to stick a camera on the end of the gun model and use the camera as the emitter for the bullet hitscans. In fact I think that's what the source engine game Insurgency does.
Ryder Gray
How the fuck are developers still making unsigned int errors?
Wyatt Sanchez
Local man getting his sides obliterated.
Jeremiah Turner
I never thought i'd say this, but i got into programming a few months ago and love it.
Brayden Scott
if (posts > "funny"; } else if (posts > 10){ cout >> "unfunny"; }
Joseph Anderson
a multitude of reasons
Jace Cook
it's such an original and hilarious joke someone made it 5 posts ago
Evan Gray
by typing int instead of uint32_t
Noah Bell
oh shit it's the joke-police
Michael White
Today's programmers don't even know what a fucking pointer is, let alone an unsigned
Hudson Anderson
That's not really how Bethesda as a studio works though, granted management is fucking abysmal but because of that the environment is laid back enough that you can just walk up to whoever and ask them to make a thing or what have you. At times this actually leads to some of the more interesting stuff in Bethesda games like the entirety of the Dunwich Building for example.
Carter Long
>stop having fun guys !
Joshua Walker
I understand you'd have that impression after going to a third rate java mill "school", you fucking pajeet
Ayden Ward
More like stop circlejerking over the fact you know what a fucking for loop is
Sebastian Allen
hardly anyone uses c anymore t employed c programmer
Gavin Gray
>simpsons and kevin smith reaction images damn I didnt know I was dealing with the master of comedy
Justin Morales
>What is embedded systems
Nolan Powell
do you lack affection in your life user tell me where the booboo is
Ian Thomas
a field that has much less jobs available than everything else
Nolan Bailey
>Everyone was making fun of Yandere dev >Now they're at each others' throats This just keeps getting better.
Ayden Hill
>You will never get to use the beauty of C in production to create clean, crisp, elegant code >You will be forced to use the visual clusterfuck of Javascript and the hellish resource nightmare of Java and C# I was born about 15 years too late.
Luke Richardson
yeah in 5 years all the electronics in the world are going to be running java and python vms
Grayson Murphy
Remember the Skyrim mannequin bug? They would sometimes move. Turns out they are NPCs that are frozen, but sometimes the script that freezes them loads too late and they move around the room that's loading, and freeze once you get in. It's super creepy desu.
Matthew Sanders
You sure showed me user, I'm sorry that my taste in reaction images is not to your liking. Perhaps crying about it some more will help appease your frustration?
Easton Clark
you can still write C programs right now dumbass it's not like the language isn't supported anymore
Christopher Foster
I blame arduino
Adrian Reyes
Do you not have basic reading comprehension or something? >C in production >in production >p r o d u c t i o n
Isaiah White
C isn't clean, it's a namespace nightmare with zero memory safety and the hackiest error handling you'll ever see in your life
Blake Jackson
To my knowledge, Arduino still uses C?
Eli Brooks
Remember Fallout 3? The physic would sometimes glitch out when entering a new arena. Objects would roll around (sometimes even glitch through the wall or floor) and traps would be activated without anyone there. That mannequin thing sounds creepy though, would make a good horror game.
Caleb Mitchell
WC3 DotA had a tonne of these workarounds. One I remember was, to get flying vision, they spawned a flying unit above the camera level that was tied to your movement and provided the vision for you.
Nicholas Jenkins
It's some sort of bastard child between c c++ and java >The Processing language builds on the Java language, but uses a simplified syntax
Alexander Lewis
>I don't know how to organize my code beforehand >I want a bloated runtime environment to do garbage collection for me >I don't know how to manage errors
Lincoln Allen
yes it's used for production in many places aswell, just because it isn't used in web dev or whatever amateur field you're in doesn't mean its depriecated
also this
Kevin Cruz
What the fuck was going through his head when he wrote this?
Jose Barnes
>C is used in production all over the place! >hardly anyone uses c anymore r e a d i n g
Tyler Bell
Wait, is he checking if the same thing is true twice?
Brody Hughes
that's programmers for you
Hudson Carter
he just wants to be sure, ok?
Ryder Phillips
>>I don't know how to organize my code beforehand
What the fuck are you talking about? Are you literally 13? You've never had to use someone else's code? Name spaces are fucking important, you mongoloid. It's a big part in HOW you organize your code.
>>I want a bloated runtime environment to do garbage collection for me
Yup, you're 13. You don't even know the difference between memory safety and gc.
>>I don't know how to manage errors
Yes, I do. Hence why I know it is fucking hacky in C. It's a fucking global variable, you nigger.
Lincoln Williams
just because he posted it doesn't mean he's right >r e a d i n g are you retarded
Dylan Cooper
C is responsible for pretty much every security vulnerability in the last 30 years. And it set back compilers 20 years or so with its retarded "type system"
Dylan Ward
nerds
David Cooper
Alright Cred Forums, enlighten me: What's the best programming language in the world?
Benjamin Ramirez
lua
Logan Morgan
javascript
Joshua Hill
>hacky in C. It's a fucking global variable, you nigger. Wait, so there's no protected or private variables like in c++?
Jaxon Carter
You would be surprised how big it really is, and how much doesn't use C.
Josiah Brooks
Malbolge
Henry Ortiz
your own
Andrew Martin
R
Parker Moore
unrealscript
Jason Garcia
C isn't an OOP language.
Evan Allen
>afk for a bit >come back to see this nigga. Surely he's just memeing us
Elijah Ward
C++ Son.
>lua
It is crazy what this can be used for now.
Noah Hughes
Python and Rust. Depends on what you're doing
Logan Wright
there is no encapsulation in C
Jacob Cook
A variable can be private to a file or to a function. That's it.
Christian Taylor
Why do you people have this thread when I'm away? I wish these threads happened more often...
Nolan Jenkins
APL
Brayden Parker
because you weren't here to fag it up, cocknut
Dylan James
>7th gen consoles running next gen games you guys don't even know how quality it gets youtu.be/QLFRQNaoguY?t=1459
Owen Evans
Make one?
Zachary Lewis
this is like a Cred Forums thread except with way more shitposting
Ryan Cook
I wouldn't call a scoped variable the same thing
Logan Williams
"The best language" is project dependent, but design patterns and good practices are more generalizable and more important for developing good code.
Oliver Wood
I don't. Just attracts shitposters. I'm glad we didn't have a 200 post discussion of unity vs unreal vs doing everything from scratch
Juan Hall
Ask a professional C++ dev anything
Benjamin Cox
english
Brody Powell
i know basically nothing about coding, can that just be written as
if (x >=y) value_to_return = true; else value_to_return = false
?
Luis Williams
>Cat shits and pisses all over the place and lashes out at people >Woooow how was I supposed to know I was going to get euthanized mewoooooww
Ryan Sanchez
Why is C++ so cute? I want to marry her!
Kevin Brooks
I mean if that's the kind of shit you want you can always learn PHP user.
Asher Wilson
Kill yourself. You're not special and your work isn't important
Alexander Davis
return x>= y;
James Jackson
What does semen taste like?
Chase Martinez
What makes you more interesting than the hundreds of other professional C++ devs on Cred Forums?
Charles Torres
it can be written as return x >= y
Isaiah Torres
Piet.
Jason Perez
tcrf is a good source for this thread. Fun development things in many articles. Classics include The New Tetris. There's others too. People on Cred Forums don't seem to care though.
Cooper Morgan
there's no reason for it to be a function in the first place
Xavier Hill
"Best" doesn't exist. Depends on what you plan on using it for.
>your staff consists of drooling retards java >need shit to go fast C >fast but with class C++ >reasonably fast, but semi retarded C# >making a website back end NodeJS probably and I fucking hate NodeJS. It caught on and nobody bothered to question why use that garbage.
Logan Hughes
These threads die easily though. I'm surprised it is 400+ posts.
Matthew Clark
does your resume include "eats, dreams, and breathes code"
Brody Lopez
are you memeing me?
Matthew Lopez
>fast but with class I appreciate this pun
Ryder Davis
>13 year old detected
I bet you haven't even written 10k LOC in any of those
Anthony Flores
>space ship remains the same speed regardless of how many enemies there are
Unless the game used two CPUs, one for the invaders and one for the logic, I'd post "that's bullshit but I believe it".
Daniel Morales
...
Ethan Edwards
Bullshit, i rarely see dev threads not go into bump limit.
Logan Wood
This is fucking brilliant They keep one model in memory, and they just keep pointer to that model in memory, changing just the scale and coordinate of the one single point in memory. I mean this saves shitload of ram.
Colton Evans
These programming language arguments are all great fun until you realize 110% of the world runs on absolutely-no-fun-allowed enterprise Java with abstractions and layers deeper than the Kola borehole. It sure brings in the money though...
t.cushy javadev
Ayden Rogers
Fuck I forget this returns true or false, I'm dumb.
This can just be an or if statement?
Benjamin Barnes
To make smaller shelves in Skyrim, Bethesda would clip larger shelves through the floor so that only a small portion of the shelf is visible
James Green
but this is Cred Forums and java is no gud for games
except minecraft
Henry Reyes
To make smaller shelves in Skyrim, Bethesda would clip larger shelves through the floor so that only a small portion of the shelf is visible
Owen Morales
...
Leo Gray
>long hair graduate this image triggers me Wu never graduated university, furthermore she was a man during her time in univeristy
Samuel Thomas
68k Assembly
Jaxon Bailey
that's probably a debug option for testing shit.
Joshua Flores
Ook!
Anthony Ross
fucked up if true
William Perry
Yeah people ITT have no idea how flyweight pattern designs work so they think this is bad. A modular furniture system could be better but this is very good.
Kayden Morris
>mfw
how has this remained a secret so long? are you Todd?
Jace Long
have fun putting furniture on the second floor.
Christian Clark
It's a videogames standard really. It's been brilliant once, not exactly anymore.
Gavin Barnes
>This can just be an or if statement? There's too many things wrong with that tweet to list in a single post.
(Tweeter = Gamergater) while always return true, it is an assignment not a comparison. Same for (Tweet=Negative). And all it would do is print "Block" to a terminal output. It wouldn't actually do any blocking.
Matthew Ross
Skyrim doesn't render draw floors at once, saves resources and prevents shit from sticking through the ceiling/floor.
Levi Russell
I have except Java, that's why I listed them.
While Java itself isn't bad, it does assume you are retarded with a lot of behind the scenes checks. Which can be good or bad depending on the situation. C# does the same in debug, much like every other language, but still present in release just slightly less.
Yeah nothing wrong with Java. I didn't mean to imply that. For the most part probably 99% of use, it doesn't matter what language you use.
Robert Jones
ah so it works perfectly then
Adrian Gutierrez
Well Java is good for anything that can run the JVM. So PCs. Not so good for consoles.
Hunter Nelson
*doesn't render multiple floors at once
Unless you can see them both at once, but in a house in Skyrim you'll need to walk up a (usually) closed staircase which acts as a sort of tiny loading zone.
Blake Smith
I don't know anything about coding.
What's wrong with this?
Bentley Morris
...
Andrew Bell
pretty much everything
Samuel Morris
fucking kek, underrated post
Leo Rogers
pretty much nothing
Hunter Perez
tweets can't evaluate code
Evan Nelson
php
Zachary Carter
>(Tweeter = Gamergater) while always return true, it is an assignment not a comparison. If gamegater is 0 or null then it's a false statement.
Aiden Jenkins
There is literally no reason to ever use C# over java. C# is utter shit, and java got many performance enhancements lately. It's the comfiest language ever, and it's not so much of a speed loss anymore.
Joshua Williams
sounds like your sister has her eyes on the balls. your sisters a whore :^)
Dylan Parker
Fuck off, java is garbage.
Jacob Harris
It's awful from top to bottom but the most glaring problems are
>she uses "=" instead of "==", the two are completely functionally different, her program won't work as intended at all >both comparisons could be combined into one because they have the same output anyway >her program only prints the words "Block" and doesn't actually do anything >irritatingly inconsistent spacing >various other retarded things
I honestly think she was drunk when she wrote it, I don't think there is any other explanation, you can not be an actual programmer and make all those ridiculous mistakes in such a simple program unless you are completely fucked out of your mind or you are trolling.