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'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.
Another example of a game that is well known that wasn't made in any "real" programming language would be Undertale, that was made in Gamemaker Studio. It really shows that you don't necessarily need to be writing in a "real" programming language to make a good game.
undertale is full of "if" sentences and is a mess, but it works fine, wich mostly the tools you use to develop a game are for the creation and maintenance of the game, not for the ones who are going to play it XD, i want to make a game like 3on3 but roblox engine is only for windows, i want to use lua but i use linux because my computer is a toaster, i think i will wait until i got a pc with a gpu or a mini pc with oculink and a double boot, windows burn me 2 toaster computers so my most recent computer has just keep alive because it runs kali linux or linux mint, i most of times use python, C/C++ and lua, i am trying to learn javascript and typescript just because every computer has a javascript interpeter and in ethical hacking we use that XD (i use more python for ethical hacking but know how to mess with javascript is a good tool). i was reading the comments and looks like there is a 3D engine called "defold" and run linux, so i maybe start that game.
@@BabySisZ_VR yeah, I was referring to the fact that a lot of people consider things like lua, gamemaker, or scratch not a real programming language. LUA was actually my first programming language and I still love/use it to this day
"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
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.
@@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
@@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.
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.
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).
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
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
@@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.
Lua is like c++ interop javascript for desktop. Javascript is like... c++ ffi.. wasm interop javascript for desktop and web. Guys, I think I know where I'll start.
@@_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.
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.
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
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.
hi annas love2d aren't comparable to godot. you should probably know it's more akin to stuff like raylib, sfml, fna, and other 'code only' game framework/engines
Unless you need copius amounts of optimization (like Factorio) or extensive modding support (like Terraria), I really recommend using a game engine instead.
I disagree. The clip made him seem like a gatekeeping elitist and game development is such a big field with tons of resources all differing in use case and difficulty. Asking where to begin doesn't say anything about your ability to make games.
The game is heavy on fragment shaders, it does many complex calculations for every single one of the millions of pixels of your screen, for every frame that is drawn. I really doubt the CPU running a couple thousand lines of Lua code makes up a significant portion of the battery drain.
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.
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.
Another example of a game that is well known that wasn't made in any "real" programming language would be Undertale, that was made in Gamemaker Studio. It really shows that you don't necessarily need to be writing in a "real" programming language to make a good game.
Also Hotline Miami. xd
undertale is full of "if" sentences and is a mess, but it works fine, wich mostly the tools you use to develop a game are for the creation and maintenance of the game, not for the ones who are going to play it XD, i want to make a game like 3on3 but roblox engine is only for windows, i want to use lua but i use linux because my computer is a toaster, i think i will wait until i got a pc with a gpu or a mini pc with oculink and a double boot, windows burn me 2 toaster computers so my most recent computer has just keep alive because it runs kali linux or linux mint, i most of times use python, C/C++ and lua, i am trying to learn javascript and typescript just because every computer has a javascript interpeter and in ethical hacking we use that XD (i use more python for ethical hacking but know how to mess with javascript is a good tool).
i was reading the comments and looks like there is a 3D engine called "defold" and run linux, so i maybe start that game.
Lua is a real programming language what are you on about
@@atiedebee1020 I suspect they weren't directly referring to Lua as a real or unreal programming language
@@BabySisZ_VR yeah, I was referring to the fact that a lot of people consider things like lua, gamemaker, or scratch not a real programming language. LUA was actually my first programming language and I still love/use it to this day
"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
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.
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
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.
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.
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.
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).
a short and sweet video essay. Amazing format you have
The whole of Noita is written in Lua
Really????????
I'm pretty sure the physics engine is in C++ though
Lua is a good language, programmers cannot appreciate *anything*.
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
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)
Great upload sir! Beautiful game!
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
Don't starve together is also developed in lua
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.
Objection: 1 indexing
I fucking love 1 indexing it's one of the reasons I love Lua and I mean that with no hint of irony
That beginning clip was funny as fuck lol
Lua is like c++ interop javascript for desktop.
Javascript is like... c++ ffi.. wasm interop javascript for desktop and web.
Guys, I think I know where I'll start.
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
Damn, this video is amazing!
Loved this video
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.
The game awards itself is a joke, but *this* was pretty cool
YOU are awesome! keep it up😇
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.
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
and thank you for that great video
you can use raylib if you already know another language, its awesome and support pretty much any language (even python!!)
Didn't John Romero recommend Lua for early gamedev
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 would like this twice if i could
Quality video.
LOVE2D REP!!
Brazil mentionned !
Lua is a Jojo character, C++ is its stand
... that vid is awesome...., too.
LUA MENTIONED
best language honestly
Balatro is the same game loop as slay the spire!!!
This is called a Roguelite game. Enjoy the genre!
how did he get it onto switch :O
i would like to code in gdscript more than lua
but languages for the end user doesn't at the end anyways
hi annas
love2d aren't comparable to godot. you should probably know it's more akin to stuff like raylib, sfml, fna, and other 'code only' game framework/engines
a card game GOTY? wtf
MonoGame , FNA, Defold (review) please
Unless you need copius amounts of optimization (like Factorio) or extensive modding support (like Terraria), I really recommend using a game engine instead.
Jblow such overrated developer
Im starting love2d and want some tutos, will you be making one???
nice vid
made in brazil ;)
🎉🎉🎉🎉
Godot for beginner's
Totally agreed with Jonathan though, most ppl who asked the question shouldn't even try to be a game dev to begin with..
I disagree. The clip made him seem like a gatekeeping elitist and game development is such a big field with tons of resources all differing in use case and difficulty. Asking where to begin doesn't say anything about your ability to make games.
The only way to learn is to ask questions. If johnny doesn't want people asking questions, maybe don't do a live stream in which you write code lol
dont pronounce "deck" like that 😔
How he pronounces "deck" was just fine. It's a bit dickish to criticise people's accents.
@@talideon you mean deck-ish?
@@skpcboyI see what you did there
Johnathan blow has never made a fun game
Braid is a masterpiece.
@ braid sucks
the CRT shader ruins the game, i'd say your animation lacks some easing
This is literally the first time I've heard of this game lol. That developer is way too aggro about this mid ass game 😂
Typical middle aged "game" dev
Great game but it drains your battery like crazy for a 2D game. Probably because it's written in Lua I guess
The game is heavy on fragment shaders, it does many complex calculations for every single one of the millions of pixels of your screen, for every frame that is drawn.
I really doubt the CPU running a couple thousand lines of Lua code makes up a significant portion of the battery drain.
Battery?
what game of the year? its just some trash gambling sim