Amazing games were written in assembly, C++ and JavaScript. Horrible games were written in assembly, C++ and JavaScript. It is not about the tools, it is about the idea, gameplay, storytelling, performance, accessibility, user experience and other metrics players actually care about. Programming language is just one of the tools. The best way to tell if the language fits your needs is through experience. Start with small playable prototypes, see what works and what doesn't.
I love Jonathan Blow's games, but he tends to gatekeep and discourage talented people from game development just because they don’t enjoy working with pointers in C++. Take Undertale, for example-a game I enjoyed even more than Braid. Its code may be a total mess, but it’s still incredible and does a fantastic job of breaking RPG tropes. I worry about people that have may have great ideas but get discourage by people like him.
I've been to the university where Lua was created when I was 14 and didn't even know about it. Now I'm getting into programming and I'm so glad I got to be there. Awesome place.
@@tiranito3715 he’s transphobic for entirely different reasons (him saying dumb shit about “biological women” on Twitter), but more importantly he complained about a six sided die being rigged
@@lancesmith8298 like, I assume the dice thing is related to his rigged RNG in Games talk, but what does it have to do with trans people? you said "but more importantly" so I assume that it somehow is the thing that has the biggest impact on his transphobia... how?
iirc, FromSoftware's (devs of Dark Souls and Elden Ring) in-house engine uses LUA as bindings to code the logic in the game. The engine itself is written in C++, but the code for things like player, enemies and NPCs were written in LUA (or HavokScript which is some alternative version of LUA).
In the end it can't do anything without the underlying engine built with a real program language that can actually accomplish stuff. Its just a layer of abstraction to onboard outsourced developers to do mule work like scripting dialogue options or path coordinates meanwhile all the real work was done by the devs who built the foundation.
@@Sammysapphira Wildly inaccurate. Lua's just another turing complete language, can be compiled or interpreted, and due to it being a very sparse language stripped down to providing necessity without a bunch of unnecessary syntactic sugar is often seen by outsiders as somehow less than a "real" programming language. The idea that it can't do anything without a "real" programming language and reducing it to a "layer of abstraction" is just absurd. These are the typical kinds of statements inexperienced programmers eagerly spew at every opportunity, as if they have any idea what they're talking about. Haven't we outgrown this silly tribalistic nonsense as developers yet?
"There's this guy", references IQ (Inigo Quilez), one of the most referenced researchers in graphics and the primary authority on SDF. Yeah, no big deal, just "this guy" :D
Had to come back to this and say that it's so fucking cool to have a software engineering UA-cam channel that's about engineering software and not about quitting your software engineering job while you make avocado toast talking about how "it just feels like time". Tom Delalande 🐐
I've always admired Jonathan Blow's ability to say something that's generally true, or even wise, in the most abrasive way possible such that you end up missing his point
@kobzelfn9588 This one was particularly harsh. If I were to look for a better piece of advice, I might say, "games are written in lots of different languages, so asking which to use is the wrong question. Think about the mechanics and design of your game first, then consider whether you want to use an engine, and if you want to build your own engine, _then_ consider what language you might write it in."
@@Robin_Goodfellow you got all that from what he said? This is the mother of all stretches. I really admire Johnathan blow, but in his particular instance he was just dismissive and judgemental.
@@Robin_Goodfellow Fair! And I agree. He really should have said what you described. It's one thing to tell someone "you're going the wrong way". Hearing "You're not cut out to make games" coming from someone you admire is just going to crush your ambitions.
Pretty sure the engine itself is written in another language. The LUA scripts you see in the files are bindings to code things like the player and enemies.
@@PinkyMannot fully from scratch. it's a fork of an existing cross-platform framework (The Forge) written in C++, has bindings for a bunch of other languages and has Lua for scripting.
@@brycea5452 to be honest, I just started learning with the little free time that I have, but my impresion is that the engine has a little bit more features, like support for 3d stuff as well as compiling into multiple platforms and consoles.
@@brycea5452 A couple of reasons, Defold comes with an editor, comes with more features packaged. Defold is an engine like Unity, Godot and Gamemaker, while Love2D is a framework so it is pure code and comes with less pre-packaged features but its really easy to get started because of the lessened bloat. Personally I prefer to use love2d cause I like to get into the nitty-gritty and for the feature stuff there are lots of libraries. Defold is probably harder as well because of the extra stuff you have to learn (because of the extra features), while love2D is easier to get started.
Use the tool you feel most comfortable with. Notch used Java, the crazy roller coaster tycoon guy used assembly. For the end user there's no difference
I learned how to program in Lua using the Computercraft mod for Minecraft. My only gripe with it (because otherwise I love it), is how indices start at 1 not 0. It may feel more natural to start at 1, but there are a grand many reasons why starting at 0 is better, and doesn't take long to get used to as a new programmer IMO. Good video, also. I like showing the code and explaining what it does without being bogged down with the detail. Leaving a viewer to pause if they so desire, but not required to.
When I used to make custom maps for Warcraft 3, the map editor supported a scripting language called Jass, which is similar to Lua. In the 2010s, OOP was unofficially added to Jass via vJass. Neovim is actually how I initially got in touch with Lua. and was unable to ignore the resemblance.
@@ImNotSimon_totally its the same case with JS being a "bad language" - it was never intended to be used in such a large industry like gamedev (and others). I think Lua was made to be a data-processing and math-oriented language at first, and since mathematicians start counting from 1, they thought they should also count from 1.
I love frameworks, allows me to do the way I want. But it can also be a problem. I always struggle with the organization, OOP, components, design patterns. Game engines provide a fixed way to them, and help me a lot.
extending this: you'll find it packaged as a .love file, which is essentially just a .zip file you can rename it back to .zip and extract it to access the source code
From The Depths is another amazing game (especially for its release year) written in lua that allows you to create weapon systems and code them in-game with LUA as well
"...runs are relatively short..." whenever I sit down and play I spend over 2+ hours or until when the sun suddenly appear/disappear depending the time
@@tsob5111 I ain't gonna lie tho I partially do agree with him. Anyone asking that question shows that they lack the knowledge and skill to do the most basic of research (search engines have been existing for quite a while), and when you can't do that, you're basically gonna be making it super hard on yourself to actually make a game.
@@tsob5111tbh that Indie Game documentary didn't do him any favors; that shot with him sitting in a dark room brooding while Soulja Boy reviews his game on UA-cam was fucking funny
I absolutely LOVE (no pun intended) the fact that balatro is a lua based game, made it so much easier for me to get into modding it and prodding around in the code which was fun!
@@hedwig7s I definetely agree, the cool thing though is that you can totally write c object files, and interface to them with LuaJIT like Love2D is doing with SDL (in Cpp I think?) for example to expand it's capabilities. The base lang is pretty standard, it just needs more support from more people to really start growing. I know the potential is there
Completely agree with all of this. I started prototyping 2D games in love 2D over 15 years ago at the very start of my game dev career. But I have spent much of my career developing in unity since then. I was surprised to see such a successful commercial game made in that framework. Mostly because there's absolutely no source protection or DRM. If you own a copy of balatro you can easily unpack the source code, read and edit it. So pirate copies must be rife. But I guess it doesn't matter. The game made such a big splash right out the gates that it's certainly made big profits already. Love 2d is a fantastic framework, and frameworks in general are too overlooked these days, especially for relatively simple games. And yes, shader programming is an essential game dev skill in my opinion too.
Would that matter for a multiplayer game? I guess someone can easily pirate it but if you ask for account / key validation to join official servers then players would be left with the choice of either making their own unofficial servers or simpler, buy the game.
@@alexale5488Not really but if the multiplayer code is so easily avaliable, I guess people would have no trouble making hacks or exploiting the online system in some way (though code being "protected" doesn't really stop people, only slows them down, but I mean it also slows you down in coding so dunno)
"runs relatively short" Meanwhile me spending 30min just to get beaten by ante 8
29 днів тому+3
I had no idea what game was this, but then you showed it and I was like "Wait, isn't this the mini-game from Dave The Diver??" and then I found out they added it as a collab before I bought the game 😅
I had no clue about that Jonathan Blow quote and burst out laughing. I am struggling with developing right now and its like hes the devil on my shoulder haha
@@_Lumiere_ It’s better to read the license on the site. The engine is source-available, because it does not meet the OSI definition of “open source.” This is because Defold has a clause preventing anyone, including the Defold developers, from selling the engine. This guarantees that the engine will always remain free for everyone.
My first game was made with html canvas and i think that made me appreciate and understand engines like godot now. Coz now i understand which parts of the development cycle are the same and which can be sped up, even for a 2d game.
The first index of a Lua array can be either 1 or 0. You get to decide at runtime. Isn't that a wonderful language feature that somebody wanted for some reason somewhere?
Yes, I agree with the fact that if you're asking about making games and you haven't even attempted to create a game, you're probably not gonna be a game maker. That's not to say you can't be part of larger game development, on the graphics or soudn side, but if you're failing so hard at the start, you won't have the perseverance to drive through this degree of difficult development.
Not really but yeah, it's close. I'm also a dev using Love and what I love the most is the simplicity combined with the power to build anything you want with the base blocks, kinda like Lego. The Lua language also has the same principle, it's simple but powerful enough that you can build your own library of reusable code over time.
I'm kind of the similar point where I know engineering but i don't have enough time to master anything else. Like I prefer to go on to these easy way outs like Balatro or Vampire Survivors to start making games. Plus I didn't knew you could those impressive shaders that easily. Sometimes that's all you need...
@@colbyboucher6391 Yeah like love2d and unity it has a c++ backend to handle the graphics, but from what I've heard the coding itself for the game is Lua like how C# is for Unity and Lua is for love2d
@@colbyboucher6391 Yeah, like Unity, Godot and Love2D the backend is C++ (for graphics etc). The "scripting" layer for unity is C#, Lua for Love2D and Lua for Bitsquid as well.
"Most popular to mod games like Roblox", I don't wanna be that guy but... Roblox is not a game, it's a game engine with a self-hosted platform. Roblox isn't modded, you actually make games on it, which are then published to the platform, which acts as it's own appstore/metaverse.
i know i shouldn't, but deep down i get infuriated everytime someone misrepresents and/or misunderstands roblox. i don't know why. i know it doesn't matter. nonetheless i feel my brows furrowing, my body straining, my blood getting boiling hot, and my skin turning a saturated pinkish red hue.
@glue-eater300 you're not alone... when people put down roblox I think they are just jealous and insecure. Roblox is literally one of if not the biggest and most profitable gaming platforms in the world.
You are describing Roblox itself. It is designed for this to be possible, ergo, part of its normal operation. It was made moddable, the act of using it properly is an act of modification (of the allowed codepoints). Don't get so hung up on your classical definition of a "game mod". @@imran_huseyn
I want people to understand that everyone can be a developer. No such thing as not being cutout at making games. There are so many comprehensive tools to make developing a game easier, granted at the cost of limitation and flexibility. But this is no prob considering how vast your skills would have to be to actually make a game by scratch. I hate developers saying you need to do this and that. Everything is a tool, use accordingly, there is no pride in coding, only how long it will take and how good it will be. Nobody will every look at your game and think "This guy must use x-pattern" . Remember, all good games are made by great devs, but not all Savant Devs make great games.
jblow's take is because of bad programmers causing horrific malpractices on games which leads to a simple game performing way worse than it should be and it does happing so he's right although, with performance of nowday's computers its fine on smaller games, but the problem is when game studios do the same and you end up with a game that performs like ARK or just any unreal engine game but imo, nowadays game development isn't that much about coding if you're using a game engine, but if you're working from scratch that's a different story
@@luvzware I don't think JB would be too happy about the source code of Balatro if he took a look at it. (I have. It's not too pretty.) But LocalThunk got his game out and it's a great game. Meanwhile we're still waiting for the Sokoban clone. The Witness came out in 2016. It's been eight years. It turns out technical excellence is not a mandatory requirement for a great game. Striving for it might sometimes even be counterproductive. Getting shit done is important.
@@FINALLYQQQQAVAILABLE yea thats pretty much what i said. good games dont mean good code, take an example undertale or minecraft, but does that make them worse games? ofc not, they're 2 different matters but his takes arent wrong either because if you were to make a complex game with these and horrible games god wonder the issues itll have, yandere simulator is a great example and how horrible it performed there's a balance but yes jb likes good code, but good code isnt a synonim of a good game
My only problem with Lua is its complete lack of shorthand operators. I got my start in programming with languages that were syntactically similar to the C family, and it honestly amazes me how Lua *makes* you have a variable refer to itself if you want to operate on it. Say I want to increment a variable called x by 1. In pretty much any other language, I can just do either of these two: x += 1 x++ But what about Lua? Nope. Not possible. Instead, you have to do this: x = x + 1 For what reason does Lua make me write such unnecessary boilerplate just to increment a variable by 1? Why can I not use one of the other two methods? If I could, the resulting code would be immensely more readable to me.
I'm guessing they wanted to keep the language as small as possible so shorthand operators didn't make it because they don't really empower you to do anything you couldn't without them. Luckily Lua is very hackable so you could probably just implement them yourself in an hour or two if you really wanted to
Amazing games were written in assembly, C++ and JavaScript. Horrible games were written in assembly, C++ and JavaScript. It is not about the tools, it is about the idea, gameplay, storytelling, performance, accessibility, user experience and other metrics players actually care about. Programming language is just one of the tools. The best way to tell if the language fits your needs is through experience. Start with small playable prototypes, see what works and what doesn't.
you're not supposed to think for yourself!
game design >>> programming skill
@@xlretard I admit that gamedev is hard to get into, there's some truth in Blow's opinion.
starting my journey in game programming with intercal
I wanna do games in js, but for the kind of games I wanna do I need the new struct propsal, otherwise perf will be abysmal.
"If you ask Jonathan Blow..."
Let's not.
I love Jonathan Blow's games, but he tends to gatekeep and discourage talented people from game development just because they don’t enjoy working with pointers in C++.
Take Undertale, for example-a game I enjoyed even more than Braid. Its code may be a total mess, but it’s still incredible and does a fantastic job of breaking RPG tropes. I worry about people that have may have great ideas but get discourage by people like him.
he wasn't wrong in that particular clip. if you can't get off your ass and google a simple question like that you need to update your mentality.
I dont trust someone named BJ in reverse
More like Jonathan "Blows" am i right???
its kind of funny how he acts so high and mighty about game development when he made 2 modest games at best
Balatro is a great example of how much sound design matters for games.
I don't understand how everyone forgets this every few years. Satisfying design is killer.
Jonathan Blow is still mad from the time that Soulja Boy said that Braid sucks
He didn't even say that it sucks, he just didn't get how ~d e e p~ it was and Jonathan Blew a gasket
@@ngwoo It’s a great game for people who drink and smoke
He don't run out of the time juice or nothin
I've been to the university where Lua was created when I was 14 and didn't even know about it. Now I'm getting into programming and I'm so glad I got to be there. Awesome place.
Brazil mentioned
I've worked with some members from that team (LabLua).
Amazing people!
You know who else loves Lua? John Romero. I'm serious, he thinks writing games in Lua is as fun as writing games in the 80s.
Yep, watched some talks he did and he mentioned that lua is his favorite.
I thought you were going to say "MY MOM!", à Muscle Man (from Regular Show).
@@g.r.4372 Yep. I had that brainrot too 🤣 god that show was pretty good
It's fun but for my experience large code can be unreadable (more than Python)
@@DragoSpiro98 not unless you make it unreadable
Jonathan blow can blow. making games is easier than it's ever been. I love seeing more and more creative indie projects come out.
And he’s transphobic. And he doesn’t know how Dicey Dungeons works at all and made an entire conference talk about it
@@lancesmith8298 he's transphobic... because he makes his own games from scratch? uh... what?
@@tiranito3715 he’s transphobic for entirely different reasons (him saying dumb shit about “biological women” on Twitter), but more importantly he complained about a six sided die being rigged
@@lancesmith8298 what does the 6 sided die being rigged have to do with trans people? am I missing something or what?
@@lancesmith8298 like, I assume the dice thing is related to his rigged RNG in Games talk, but what does it have to do with trans people? you said "but more importantly" so I assume that it somehow is the thing that has the biggest impact on his transphobia... how?
iirc, FromSoftware's (devs of Dark Souls and Elden Ring) in-house engine uses LUA as bindings to code the logic in the game. The engine itself is written in C++, but the code for things like player, enemies and NPCs were written in LUA (or HavokScript which is some alternative version of LUA).
In the end it can't do anything without the underlying engine built with a real program language that can actually accomplish stuff. Its just a layer of abstraction to onboard outsourced developers to do mule work like scripting dialogue options or path coordinates meanwhile all the real work was done by the devs who built the foundation.
Lua are created for it. Initially, Lua is designed to be embedded in one other software application only.
Many games use Lua like that, Grim Fandango is one of the oldest examples
@@Sammysapphira Wildly inaccurate. Lua's just another turing complete language, can be compiled or interpreted, and due to it being a very sparse language stripped down to providing necessity without a bunch of unnecessary syntactic sugar is often seen by outsiders as somehow less than a "real" programming language. The idea that it can't do anything without a "real" programming language and reducing it to a "layer of abstraction" is just absurd. These are the typical kinds of statements inexperienced programmers eagerly spew at every opportunity, as if they have any idea what they're talking about.
Haven't we outgrown this silly tribalistic nonsense as developers yet?
@@Sammysapphirabuddy you've got to chill out
"There's this guy", references IQ (Inigo Quilez), one of the most referenced researchers in graphics and the primary authority on SDF. Yeah, no big deal, just "this guy" :D
Had to come back to this and say that it's so fucking cool to have a software engineering UA-cam channel that's about engineering software and not about quitting your software engineering job while you make avocado toast talking about how "it just feels like time". Tom Delalande 🐐
Jonathan is right. If you want to make a game - you make a game. It's not a matter of what language you use. It's about how you use it.
a short and sweet video essay. Amazing format you have
I've always admired Jonathan Blow's ability to say something that's generally true, or even wise, in the most abrasive way possible such that you end up missing his point
Do you mind translating what he said.
Cause from my POV, what he said was funny, but harsh.
@kobzelfn9588 This one was particularly harsh. If I were to look for a better piece of advice, I might say, "games are written in lots of different languages, so asking which to use is the wrong question. Think about the mechanics and design of your game first, then consider whether you want to use an engine, and if you want to build your own engine, _then_ consider what language you might write it in."
@@Robin_Goodfellow you got all that from what he said? This is the mother of all stretches. I really admire Johnathan blow, but in his particular instance he was just dismissive and judgemental.
@marcosdiogenes9380 I agree, it's a stretch. Maybe I should have framed it as "what he _should_ have said."
@@Robin_Goodfellow Fair! And I agree. He really should have said what you described. It's one thing to tell someone "you're going the wrong way".
Hearing "You're not cut out to make games" coming from someone you admire is just going to crush your ambitions.
Hades and Hades 2 are also written in lua.
I read the title before I saw the thumbnail and my mind immediately went to the two Hades games.
Pretty sure the engine itself is written in another language. The LUA scripts you see in the files are bindings to code things like the player and enemies.
@awfyboy Yeah, that completely crossed my mind at the time.
@@awfyboy Yeah it's an in-house engine made in C++
@@PinkyMannot fully from scratch. it's a fork of an existing cross-platform framework (The Forge) written in C++, has bindings for a bunch of other languages and has Lua for scripting.
@@awfyboy still, pretty much the whole game logic is Lua. The engine itself for rendering, etc... is C++
Lua is by far my favorite language ever since I discovered it in Garry's Mod
The great time void....
Great video! 👍 There's also another not so little game engine that uses Lua called defold that i've been learning, very good as well
Can I ask why you would use Defold over Love2D and vice-versa?
@@brycea5452 to be honest, I just started learning with the little free time that I have, but my impresion is that the engine has a little bit more features, like support for 3d stuff as well as compiling into multiple platforms and consoles.
@@brycea5452 A couple of reasons, Defold comes with an editor, comes with more features packaged. Defold is an engine like Unity, Godot and Gamemaker, while Love2D is a framework so it is pure code and comes with less pre-packaged features but its really easy to get started because of the lessened bloat. Personally I prefer to use love2d cause I like to get into the nitty-gritty and for the feature stuff there are lots of libraries. Defold is probably harder as well because of the extra stuff you have to learn (because of the extra features), while love2D is easier to get started.
defold exports to anything
Jonathan Blow is a tool and Soulja Boy was right to laugh at his Mario in a suit game.
still waiting for soulja boy for his game, to have something to laugh at
Mario in the future
Use the tool you feel most comfortable with. Notch used Java, the crazy roller coaster tycoon guy used assembly. For the end user there's no difference
Everything about this game makes me love game development even more
they need to have a HUD telling me which vouchers I've collected this run.
There is a tab under the Run Info button which shows this
I learned how to program in Lua using the Computercraft mod for Minecraft.
My only gripe with it (because otherwise I love it), is how indices start at 1 not 0. It may feel more natural to start at 1, but there are a grand many reasons why starting at 0 is better, and doesn't take long to get used to as a new programmer IMO.
Good video, also. I like showing the code and explaining what it does without being bogged down with the detail. Leaving a viewer to pause if they so desire, but not required to.
Thanks for sharing, Love2D looks like a great beginner framework to get started with.
If you call writing your own shaders "beginner", sure. 😄
Don't starve together is also developed in lua
wait, so one of my favorite game right now was made in one of my favorite languages, which im currently learning? nice
i learned like entire lua syntax in 4 hrs
When I used to make custom maps for Warcraft 3, the map editor supported a scripting language called Jass, which is similar to Lua. In the 2010s, OOP was unofficially added to Jass via vJass. Neovim is actually how I initially got in touch with Lua. and was unable to ignore the resemblance.
Man, Lua is such an underrated language. You know I'm pretty sure mods for Garry's Mod are written in Lua. Unbelievably powerful stuff!
People don't like Lua because Lua arrays(tables) start at 1 instead of 0. This is blasphemy 😂
@@MathGoOli I mean tbf it is a bit of a weak language, but it is quite flexible so it's kinda the C of scripting languages
@@MathGoOli .. instead of + for concatenating strings is just dumb imo
one of the main reasons i consider lua "C++ as a rebellious teen"
@@ImNotSimon_totally its the same case with JS being a "bad language" - it was never intended to be used in such a large industry like gamedev (and others). I think Lua was made to be a data-processing and math-oriented language at first, and since mathematicians start counting from 1, they thought they should also count from 1.
I love frameworks, allows me to do the way I want.
But it can also be a problem. I always struggle with the organization, OOP, components, design patterns.
Game engines provide a fixed way to them, and help me a lot.
Yes, you still need to develop programming skill (the art of expressing your thoughts in code).
Damn, so you can just access the source code of Balatro since it's in Love2D??
i haven’t personally tested it, but it should just be appended the game’s executable somewhere
@@hri7566 the exe is actually an archive you can open with 7zip. The source code is inside it
extending this: you'll find it packaged as a .love file, which is essentially just a .zip file
you can rename it back to .zip and extract it to access the source code
@@aadenboy @hri7566 thank you!
Yes. Earlier this year people on twitter were complaining about how bad the code was because there are very long if statements chains (they're wrong)
Love is great, it was a pretty big stepping stone in my learning of programming.
LUA is not very practical but it is probably one of the most fun coding langauges I have ever used. If you're a developer please consider trying it =)
not very practical? those are fighting words
LUA is practical, it has a couple oddities but nothing anymore impractical than say JavaScript's oddities.
From The Depths is another amazing game (especially for its release year) written in lua that allows you to create weapon systems and code them in-game with LUA as well
"...runs are relatively short..."
whenever I sit down and play I spend over 2+ hours or until when the sun suddenly appear/disappear depending the time
this guy made this video just so he could say “I use vim btw” at 1:39. Don't lie to us!
I will subscribe now. Thanks.
No idea why people think vim is cool, Primogen created a generation of cringe programmers it seems 😂🎉
Jonathan blow is angry cus he's bald smh
Midlife crisis didn't spare him 😂
jon blow will say some dumb shit like go away you can't gamedev and then cry cuz someone enjoyed his game in a way that he felt was incorrect
@@tsob5111 I ain't gonna lie tho I partially do agree with him. Anyone asking that question shows that they lack the knowledge and skill to do the most basic of research (search engines have been existing for quite a while), and when you can't do that, you're basically gonna be making it super hard on yourself to actually make a game.
😂😂
@@tsob5111tbh that Indie Game documentary didn't do him any favors; that shot with him sitting in a dark room brooding while Soulja Boy reviews his game on UA-cam was fucking funny
"Despite being small, it's still fast and powerful" That's what she said.
I absolutely LOVE (no pun intended) the fact that balatro is a lua based game, made it so much easier for me to get into modding it and prodding around in the code which was fun!
Super cool! I've done a few rough games in Love2D but had no idea some big name stuff was made with it
That beginning clip was funny as fuck lol
one of jonblows few good personality traits is that he is unintentionally funny when mad
Me when I enter a competition for being extremely unlikeable and snobby and Jonathan Blow and Phil Fish enter the room
me when I enter the washed up malder competition and jonblow enters the room
@@okie9025 Keep in mind you'll never measure up to the same level lol
@@9hoot789 ill never reach the same level of malding? thank god
I truly adore Lua. It feels like python's good twin
To me it feels more like javascript's saner and faster, but far weaker cousin
@@hedwig7s I definetely agree, the cool thing though is that you can totally write c object files, and interface to them with LuaJIT like Love2D is doing with SDL (in Cpp I think?) for example to expand it's capabilities. The base lang is pretty standard, it just needs more support from more people to really start growing. I know the potential is there
@@fabimawn LuaJIT + SDL is by itself an interesting toolset, even without Love2D.
I feel like Lua is more like..
a super elegant, higher level younger brother of C
@@oli_dev this
Completely agree with all of this. I started prototyping 2D games in love 2D over 15 years ago at the very start of my game dev career. But I have spent much of my career developing in unity since then.
I was surprised to see such a successful commercial game made in that framework. Mostly because there's absolutely no source protection or DRM. If you own a copy of balatro you can easily unpack the source code, read and edit it. So pirate copies must be rife. But I guess it doesn't matter. The game made such a big splash right out the gates that it's certainly made big profits already.
Love 2d is a fantastic framework, and frameworks in general are too overlooked these days, especially for relatively simple games.
And yes, shader programming is an essential game dev skill in my opinion too.
Would that matter for a multiplayer game?
I guess someone can easily pirate it but if you ask for account / key validation to join official servers then players would be left with the choice of either making their own unofficial servers or simpler, buy the game.
Lmao worrying someone is gonna pirate your game in 2024 is wild, you're lucky if people care enough about your game to pirate it these days
@@alexale5488Not really but if the multiplayer code is so easily avaliable, I guess people would have no trouble making hacks or exploiting the online system in some way (though code being "protected" doesn't really stop people, only slows them down, but I mean it also slows you down in coding so dunno)
Oh, this has been great and inspiring! I could watch a whole series of this!
fun fact: mari0 (aka. mario portal) is a fangame that is made entirely on love 2d. It also have its own modding community
Great upload sir! Beautiful game!
I like the concept that Lua is embedded instead of stand alone.
Running this on the PlayStation 3 Lua Player would be the craziest thing to happen
this is a very good video, very concise
Wow, I'd never guess Balatro was made in Lua. Live the game, loved the video.
"runs relatively short"
Meanwhile me spending 30min just to get beaten by ante 8
I had no idea what game was this, but then you showed it and I was like "Wait, isn't this the mini-game from Dave The Diver??" and then I found out they added it as a collab before I bought the game 😅
This is a fantastic video, TY ❤
imagine not configuring your editor in lisp.
emacs enjoyer spotted
that’s what Fennel is for
Ahh, Lisp, the languages which exist only to describe themselves
Imagine configuring your editor
imagine using the only editor that doesn't support semantic LSP highlighting in 2024
I had no clue about that Jonathan Blow quote and burst out laughing. I am struggling with developing right now and its like hes the devil on my shoulder haha
Didn't John Romero recommend Lua for early gamedev
If I'm not wrong, Hades 1 and Hades 2 are also both written in Lua, which is kinda wild lol
Check Defold as well, we use Lua as the main script language as well.
Is Defold open source? Or was it source available?
@@_Lumiere_ It’s better to read the license on the site. The engine is source-available, because it does not meet the OSI definition of “open source.” This is because Defold has a clause preventing anyone, including the Defold developers, from selling the engine. This guarantees that the engine will always remain free for everyone.
@@_Lumiere_source available
Funny how I knew about each topic, but I didn't know they where all connected!
I want to try to make a game now!
excellent video. keep these coming
It's not about its complexity, it's about how you use it.
Super informative video, thank you!!
My first game was made with html canvas and i think that made me appreciate and understand engines like godot now. Coz now i understand which parts of the development cycle are the same and which can be sped up, even for a 2d game.
I was astonished by this when i looked up the engine. I was thinking godot, LÖVE would have never been on my radar
The first index of a Lua array can be either 1 or 0. You get to decide at runtime. Isn't that a wonderful language feature that somebody wanted for some reason somewhere?
you can use raylib if you already know another language, its awesome and support pretty much any language (even python!!)
Damn, this video is amazing!
Awesome video, my friend.
Yes, I agree with the fact that if you're asking about making games and you haven't even attempted to create a game, you're probably not gonna be a game maker. That's not to say you can't be part of larger game development, on the graphics or soudn side, but if you're failing so hard at the start, you won't have the perseverance to drive through this degree of difficult development.
Is LÖVE the new, better, processing?
Not really but yeah, it's close.
I'm also a dev using Love and what I love the most is the simplicity combined with the power to build anything you want with the base blocks, kinda like Lego.
The Lua language also has the same principle, it's simple but powerful enough that you can build your own library of reusable code over time.
I'm kind of the similar point where I know engineering but i don't have enough time to master anything else. Like I prefer to go on to these easy way outs like Balatro or Vampire Survivors to start making games. Plus I didn't knew you could those impressive shaders that easily. Sometimes that's all you need...
balatro is awesome. love2d is awesome. shaders are awesome.
hell yeah
Helldivers 2 is also mostly Lua! (Bitsquid is a Lua based game engine)
I hadn't heard this! That's super cool.
WHAT?! That's crazy! I remember when they said C# wasn't fast enough for real-time video games!
...You sure it isn't just that Bitsquad uses Lua for scripting? Surely it wasn't written _in_ Lua...
@@colbyboucher6391 Yeah like love2d and unity it has a c++ backend to handle the graphics, but from what I've heard the coding itself for the game is Lua like how C# is for Unity and Lua is for love2d
@@colbyboucher6391 Yeah, like Unity, Godot and Love2D the backend is C++ (for graphics etc). The "scripting" layer for unity is C#, Lua for Love2D and Lua for Bitsquid as well.
At 4:16 you talk about drawing to a canvas first rather than drawing straight to the screen - why do you do this? What is the benefit?
Lua getting famous is amazing ❤
Go and build it, start somewhere. Said it all
"Most popular to mod games like Roblox", I don't wanna be that guy but... Roblox is not a game, it's a game engine with a self-hosted platform.
Roblox isn't modded, you actually make games on it, which are then published to the platform, which acts as it's own appstore/metaverse.
i would say roblox is more of a platform
roblox studio is the engine
Astrobot was written on Lua? No I don't think that's right
Lua isn't used to mod roblox, it is used to develop games in Roblox (Well its Luau, a fork of Lua). Roblox is a platform not a game.
i know i shouldn't, but deep down i get infuriated everytime someone misrepresents and/or misunderstands roblox. i don't know why. i know it doesn't matter. nonetheless i feel my brows furrowing, my body straining, my blood getting boiling hot, and my skin turning a saturated pinkish red hue.
@glue-eater300 you're not alone... when people put down roblox I think they are just jealous and insecure. Roblox is literally one of if not the biggest and most profitable gaming platforms in the world.
You're still using Lua to mod Roblox. That is a factual statement.
@@hyperteleXii No. You are using Luau to develop games FOR Roblox using the Roblox Studio engine. You aren"t modding anything about Roblox itself.
You are describing Roblox itself. It is designed for this to be possible, ergo, part of its normal operation. It was made moddable, the act of using it properly is an act of modification (of the allowed codepoints). Don't get so hung up on your classical definition of a "game mod". @@imran_huseyn
I want people to understand that everyone can be a developer. No such thing as not being cutout at making games. There are so many comprehensive tools to make developing a game easier, granted at the cost of limitation and flexibility. But this is no prob considering how vast your skills would have to be to actually make a game by scratch. I hate developers saying you need to do this and that. Everything is a tool, use accordingly, there is no pride in coding, only how long it will take and how good it will be. Nobody will every look at your game and think "This guy must use x-pattern" . Remember, all good games are made by great devs, but not all Savant Devs make great games.
damn, jblow catching strays
definitely not a stray, jon blow is notoriously an asshole
Jon Blow is always catching strays
jblow's take is because of bad programmers causing horrific malpractices on games which leads to a simple game performing way worse than it should be and it does happing so he's right
although, with performance of nowday's computers its fine on smaller games, but the problem is when game studios do the same and you end up with a game that performs like ARK or just any unreal engine game
but imo, nowadays game development isn't that much about coding if you're using a game engine, but if you're working from scratch that's a different story
@@luvzware I don't think JB would be too happy about the source code of Balatro if he took a look at it. (I have. It's not too pretty.) But LocalThunk got his game out and it's a great game. Meanwhile we're still waiting for the Sokoban clone. The Witness came out in 2016. It's been eight years.
It turns out technical excellence is not a mandatory requirement for a great game. Striving for it might sometimes even be counterproductive. Getting shit done is important.
@@FINALLYQQQQAVAILABLE yea thats pretty much what i said.
good games dont mean good code, take an example undertale or minecraft, but does that make them worse games? ofc not, they're 2 different matters
but his takes arent wrong either because if you were to make a complex game with these and horrible games god wonder the issues itll have, yandere simulator is a great example and how horrible it performed
there's a balance but yes jb likes good code, but good code isnt a synonim of a good game
Hades 2 is also part Lua which will make it easy to mod
Lua is a good language, programmers cannot appreciate *anything*.
LuaJIT makes it truly powerful because you can escape to C for performance
The reply above can confuse people. LuaJIT's performance by itself is close to C's, and you can already access ("escape" to) C just with Lua.
What are you talking about? How do you call an external C interface from Lua? In LuaJIT I'd use the FFI extension. @@ultimaxkom8728
Loved this video
Nice video, thank you
- "Famous as a tool to mod games like rockbox and factorio",
- me who know it as a language for games an scipts from psp era
i would like this twice if i could
Lua? BRAZIL MENTIONED
Lua is based. LÖVE engine sweep
I did all my PSP homebrews using Lua
YOU are awesome! keep it up😇
will this do for lua what undertale did for game maker?
Never heard of this game, crazy😢
Thanks now I’m going to spend 90 hours making an internet slop game
Bro I just so happen to be playing this game right now, I just picked it up about less than a week ago, lol. What an odd coincidence
Love2d is terribly underrated... :(
BRASIL MENCIONADO VAMO PORRA AQUI É LUA BRBRBRBRBRBRBRBRBRBR
My only problem with Lua is its complete lack of shorthand operators. I got my start in programming with languages that were syntactically similar to the C family, and it honestly amazes me how Lua *makes* you have a variable refer to itself if you want to operate on it.
Say I want to increment a variable called x by 1. In pretty much any other language, I can just do either of these two:
x += 1
x++
But what about Lua? Nope. Not possible. Instead, you have to do this:
x = x + 1
For what reason does Lua make me write such unnecessary boilerplate just to increment a variable by 1? Why can I not use one of the other two methods? If I could, the resulting code would be immensely more readable to me.
I'm guessing they wanted to keep the language as small as possible so shorthand operators didn't make it because they don't really empower you to do anything you couldn't without them.
Luckily Lua is very hackable so you could probably just implement them yourself in an hour or two if you really wanted to
Lua was intended for embedded so it was made to be easily parsed and as small as possible.
Imagine crying over typing a few characters 🤦
holy shit i feel so fucking empowered as a lua programmer (thank you roblox, you might just have given me a future)
odin + raylib, here you go
The game awards itself is a joke, but *this* was pretty cool