The Best Games Are Made Of Spaghetti

  Рет қаралды 2,943

Tez Fraser

Tez Fraser

Ай бұрын

The best selling indie games are made of spaghetti! Let's talk about what that means.
My Demon Academia Dev Logs: www.malachitestudios.com/game...
Follow Me on TikTok: / tezfraser
Follow Me on Instagram: / tezfraser​
Follow Me On Twitter: / tezfraser​
Game Studio Accounts:
www.faceboook.com/malachitest...
/ malachitestudios
/ studiomalachite​
Intro Music:
MagSafe by Johnathan & Friends - • Cat Vibing to MagSafe ...
Development Setup -
Macbook - amzn.to/3vJitcL
Ipad - amzn.to/4264QQV
Apple Pencil - amzn.to/3O7XtTq
Monitor - amzn.to/421jxop
Keyboard - amzn.to/3S2djQI
Mouse - amzn.to/3S2djQI
USB Dock - amzn.to/426rrg5
KZbin Setup -
Camera - amzn.to/3O8fe4Y
Microphone - amzn.to/3U527W4
Sd Card - amzn.to/47IdXIT
Tripod - amzn.to/3O3Lp5l
Light Bars - amzn.to/3HqP0H0
SoftBoxes - amzn.to/3U6nFlg
Smart Bulb 1 - amzn.to/3tNrp0g
Smart Bulb 2 - amzn.to/3U6lgGZ
Capture Card - amzn.to/3HpmHsz
#balatro #undertale #GameDev #IndieDev #lua #programming #gamedevelopment #indiegame #gamemaker #love2d

Пікірлер: 44
@CaladriusTV
@CaladriusTV Ай бұрын
Like anything, there's a balance. If you're making a one-and-done solo project, sure, write what works. If you're planning for the codebase to be maintained for a long time and for systems to scale up later with regular new content, and the team is going to be quite large, you need to be architecting that shit beautifully from day 1 or the technical debt will ramp up exponentially.
@DefaultFlame
@DefaultFlame 22 күн бұрын
Yup. Different solutions for different use cases. There's always outliers, like if a game or program intended to be a quick one off becomes incredibly loved or widely used. If it's a game writing a sequel might get harder with spaghetti code, and a program that get widely adopted might face issues for future updates or scaling if it can't be easily maintained, but the exception isn't the rule.
@CinderellaCostallas
@CinderellaCostallas Ай бұрын
I'm programming my own game right now and it's my very first, this video motivated me to not get hung up on how to code in "the most efficient way" and rather focus on readability. That's such an eye opener for me as a new programmer
@TezFraser
@TezFraser Ай бұрын
There is always time to improve later! Iteration is the name of the game and if you're gonna struggle to understand what you did, do it the easy way first and then go back and improve when you have the time. I'm glad I could help!
@Tiogar60
@Tiogar60 Ай бұрын
As a unreal engine game designer, my code is literally spaghetti
@ThePlayerOfGames
@ThePlayerOfGames Ай бұрын
Is it called "graph" programming? It's so cool, I wish more engines had it
@logixindie
@logixindie Ай бұрын
Does that mean your code is edible
@Tiogar60
@Tiogar60 Ай бұрын
@@ThePlayerOfGames Yeah i use blueprint primarily. i dabbled with C++ but it's just too dense and i just want to make games.
@WMan37
@WMan37 Ай бұрын
The fact that Balatro is "inefficiently made" never even crossed my mind as an end user because I remember remarking at how little space it took on my drive compared to like, most of my other most enjoyed games except for classic Doom. They crammed that entire thing into 62 megabytes. As an end user I'm not thinking "oh no, if else statements", I'm thinking "Why can't more games I play have that low of a footprint on my drives?" yeah yeah I know, asset sizes and all that, but still, I have picture folders on my PC that take more space than Balatro does. I can literally install that game in one second. When you're used to games you play being like 50+ GB that's really something.
@AndreiShulgach
@AndreiShulgach 5 күн бұрын
Love this content. There's a ton of effort put into this video and it shows. Keep it up! 100K subs is right around the corner 🤘
@Yeyito05
@Yeyito05 Ай бұрын
Art is art
@Akronymus_
@Akronymus_ Ай бұрын
The balatro code doesn't even really strike me as spaghetti. Sure, storing the functions (as lambdas) in a table would be nicer for a lookup. But as there are additional conditions, even that is a questionable benefit. The whole trying to ridicule the balatro code just screams "not knowing what actual constraints lua has and thinking you know you do" to me. It also is extremely easy to extend with more jokers as compared to the "better" way most people seem to propose.
@blahblahblah118
@blahblahblah118 Ай бұрын
The most optimized code is something you should strive for in the long term, but definitely not something you need to ship a game. A little jank can add character. Trying to work around jank can lead to discoveries and new things. And maintaining jank is how you learn for the next game.
@corinnebrown6152
@corinnebrown6152 Ай бұрын
always a strong supporter of it doesn’t matter how you get there if you have the end result you want!
@DefaultFlame
@DefaultFlame 22 күн бұрын
I thought you said "this is a real term that we use in the worm of computers."
@TezFraser
@TezFraser 22 күн бұрын
😂
@Skeffles
@Skeffles Ай бұрын
Interesting video. I tend to think people focus too much on optimisation or functionality, forgetting about maintainability. This is what leads to spaghetti code. Of course, you can publish a game quickly without it, but for longer-term projects, it is crucial. I rarely see it discussed in the game dev space.
@Jumpah94-yv7ns
@Jumpah94-yv7ns Ай бұрын
I 100% agree. Furthermore, regardless if its game dev or other software development, chances are that people "overenigneer" their project, making it difficult to focus on the really interesting things. Often I've heard stories of co-workers and friends, that started a project, but set it aside, because they ramped up their expectations (which they never met). I can respect that block of if-else of the Balatro Developer, because they created a great game and they focused on functionalities, game logic etc.. The code may not be very maintainable in the long term, but they already succeeded by selling over a million times. I don't think they need to worry much about the code
@Orbitdecay
@Orbitdecay Ай бұрын
100% agree! Haven't done game dev programming in ~17 years (moved on to enterprise/web services a time ago), but it was true back then as well. Optimize the hell out of what needs to be optimized, everything else is on a critical deadline so hack it/prototype it as much as possible. Where this really hurts game development is forward porting onto new systems/maintaining it. My Steam library is old enough to drink at this point and aside from the whole live service/kill games discussion, we have to start worrying about how ABI/library compatibility is also going to start/is killing games over time. Games will always be written as one off prototypes over and over again, because they don't *need* to be maintained like other types of software, but once they do need to be maintained, they choices can become problematic. It's also why game engines are a thing.
@chadyways8750
@chadyways8750 26 күн бұрын
Inefficient code is such a misnomer, because if you notice that your performance suddenly went to shit, you aren't just going to go "oh well, computers are fast enough", what people consider inefficient is code design most of the time. I have yet to see anyone shit on any other "shit game code" other than if else chains or long switch case statements at which point it's both a design and architecture problem not an efficiency problem, modern compilers will 9/10 times optimize your yanky shit away.
@SleepingFumos
@SleepingFumos 27 күн бұрын
there is a double standard. if a game runs poorly / don't like the creator: people will clown on the developer constantly mentioning their code (Yandere Dev is a good example) if the game runs well or the developer is likable: people will praise them for managing to make a good game despite "bad code" balastro is a 2D game with no physics so there is a lot of room for poorly optimized code. also, like any programmer will tell you (including myself): readability is very important, but so is flexibility. "else if" chains is objectively bad code practices (hashmaps and early-return are just some techniques to eliminate them).
@thedrunkmonkshow
@thedrunkmonkshow 28 күн бұрын
I've never played Undertale but for a classic style RPG of that size it's not unusual or unreasonable to use a giant switch statement like that and I bet it's for the different states or state machines for the characters to act out in scenes or telling of the story. Technically switch statements are faster than if statements or functions anyway because the CPU can jump to the line of code that's needed instead of swimming through and testing a bunch of if statements. Appreciate the video!
@thedrunkmonkshow
@thedrunkmonkshow 25 күн бұрын
@@_I-OvO-I_ that's the word I was looking for... Dialogue! Thank you! 😊
@swozzlesticks3068
@swozzlesticks3068 Ай бұрын
"The best games are made of spaghetti" Allow me to introduce you to factorio my good sir. It is, truly, the opposite of spaghetti... though to be fair it is imperative that the game not be spaghetti because performance is paramount due to the nature of the game.
@TezFraser
@TezFraser Ай бұрын
Sure, I bet it went through iterations though. Very rarely do devs get it right the first time around first try haha, speaking from experience 😂
@guard13007
@guard13007 Ай бұрын
@@TezFraser Take a look at their Friday Facts blog posts. Over a hundred posts showing all the decisions they made, redid things, screwed up, tried things, failed, and failed, and failed, and succeeded.
@rot456
@rot456 Ай бұрын
nah, i hate my job because of the whole readability thing
@AnonAdderlan
@AnonAdderlan 19 күн бұрын
While all you can eat pasta is fine when it comes to a single dev project, it becomes an exponentially growing nightmare the minute you add even one more dev to the project. And at some point you're not going to get anywhere further without establishing work cultures, coding styles, and higher order models, which arguably are even more important than the language chosen at that stage. So the real question is: What's the maximum _scale_ for projects coded in this style?
@NoviumGames
@NoviumGames Ай бұрын
Honestly efficiency is what i get hung up on every time, especially since I feel like I can't just do a mockup that may have visual bugs, but I have to get it right on the first try
@meroubignoles9822
@meroubignoles9822 20 күн бұрын
Someone have to do a Shift extended (psp minis game) for the playdate, it's just THE game made for this
@valcaron
@valcaron 21 күн бұрын
"Who cares?" is not an argument.
@Eichro
@Eichro 27 күн бұрын
The end user does not care about how efficient is the code, as long as the game runs well enough. The DEVELOPER cares. Bad code can be a nightmare to maintain. We might have seen a completed Yandere Simulator otherwise. ...But if you know how to navigate the mess then all power to you. Seems like it worked for Balatro.
@holleey
@holleey Ай бұрын
spaghetti code is not just about efficiency though. you cannot really defend spaghetti code and then highlight the importance of readability at the same time. spaghetti code -> poor readability. also spaghetti code -> harder to maintain and more bug prone. I think the point you should be trying to make is that code style is not the most important thing in getting a game shipped. games with spaghetti code may get shipped because their devs did other more important things well, while games with clean code might get shelved because their devs did other more important things poorly. still, of course you'll ultimately be in a better position with well structured code. just don't waste time on premature optimization. :)
@SleepingFumos
@SleepingFumos 27 күн бұрын
rant 👿: it always annoys me to see people who want to make games start with a game engine and not spending time learning a programming language first. they want quick results, instant gratification. every time i watch a Unity tutorial i feel angered seeing people misuse keywords and structuring things in a disgusting manner. and of course they use NO PATTERNS OR PRINCIPLES, because those are things you learn with experience, which they do not have.
@hstubbs3
@hstubbs3 Ай бұрын
It isn't just game dev. Any code base that is large enough and that has insufficient 'tribal knowledge' or documentation about the implementation details will end up spaghetti-fied as features are added... Just having programmers come and go from the project over the course of years can lead to that lack of knowledge... And then some new feature is implemented by making minimal localized changes to patch it in, potentially resulting in odd logic paths that may go unnoticed for months or years until _something_ inevitably causes the odd bug because fates aligned that weren't in alignment when the feature was implemented... But, the users don't know that... all that matters is how the release build feels, how it functions.. is it stable _enough_ ? Design it. Code it. Test it. Ship it.
@NoOne-fe3gc
@NoOne-fe3gc Ай бұрын
it is all fine and danddy until you need to fix something, or take other people into your game....
@sir0herrbatka
@sir0herrbatka Ай бұрын
The only selected few make games out of actually good code. Carmack is one of those guys, but you aint Carcmack.
@mintx1720
@mintx1720 Ай бұрын
As a member of the rust-gamedev community, I strongly disagree. (we currently have 50 game engines and 5 games btw)
@tmthyha
@tmthyha Ай бұрын
I hate to say it but Balatro, although fun, is painfully slow. Going from blind to blind can take up to 10 seconds it feels like. It's long enough to take me out of the game, for sure.
@AtaGunZ
@AtaGunZ Ай бұрын
Balatro code ain't that bad
@AtaGunZ
@AtaGunZ Ай бұрын
Long switch chains are what most high efficiency low level coders do lol. I do HPC and while it's important to do stuff in branchless ways, if you are gonna have a branch you gotta let it count :P
@alexandrepv
@alexandrepv Ай бұрын
I'm sorry but a gargantuan if/else stack is not good design and it is not that easier to read. We shouldn't encourage bad practices just because the "CPU can handle it". Switch to declarative over imperative in these cases. It's easier to test and maintain.
@cloud-wr1hs
@cloud-wr1hs Ай бұрын
As a League of Legends player, I strongly disagree.
@wanderingturtle1705
@wanderingturtle1705 Ай бұрын
And Vanguard did NOT help.
I Made a Neural Network with just Redstone!
17:23
mattbatwings
Рет қаралды 537 М.
I Don't Feel Creative Today #Shorts
0:29
Tez Fraser
Рет қаралды 25
Would you like a delicious big mooncake? #shorts#Mooncake #China #Chinesefood
00:30
She ruined my dominos! 😭 Cool train tool helps me #gadget
00:40
Go Gizmo!
Рет қаралды 17 МЛН
How to bring sweets anywhere 😋🍰🍫
00:32
TooTool
Рет қаралды 34 МЛН
A pack of chips with a surprise 🤣😍❤️ #demariki
00:14
Demariki
Рет қаралды 32 МЛН
Myths About Godot! #Shorts #GameDev
1:00
Tez Fraser
Рет қаралды 423
Gleam for Impatient Devs
8:46
Isaac Harris-Holt
Рет қаралды 51 М.
Hollow Knight Has Been Recreated in Minecraft
17:27
fireb0rn
Рет қаралды 118 М.
NIX OS: the BEST package manager on the MOST SOLID Linux distribution
17:08
The Linux Experiment
Рет қаралды 300 М.
Can you make a living off of roblox?
0:50
Rickety Code
Рет қаралды 447 М.
Game Development Caution
13:48
Timothy Cain
Рет қаралды 284 М.
How Much Money Did My MOBILE GAME Make?
5:55
Tez Fraser
Рет қаралды 1 М.
Black Samurai?!?! #Shorts
0:42
Tez Fraser
Рет қаралды 862
The Future of Game Development
8:58
Brackeys
Рет қаралды 1,1 МЛН
Он пропал без вести😱
1:00
Следы времени
Рет қаралды 1,7 МЛН
ЗНАКОМСТВА С ЛУЧШИМ ЗЯТЕМ 😂😂 #копы
0:42
Creepy Teacher Kidnapped My Girlfriend?!
0:42
Alan Chikin Chow
Рет қаралды 16 МЛН