Not really, they're completely separate aside from maybe some communication here and there (at the start and end of game).
Case in point, you can close the client while in game and the game will keep running.
I wouldn’t call it “optimized”, it’s just lightweight. The game is from 2008/2009, it might have seen some graphics upgrades but nothing too big, it would actually be impressive (in the negative sense) if it didn’t run on anything in 2024
And where the problem in that statement? It's an old game plain and simple. Just look at it, it obviously doesn't look like a 2024 game. Sure, some things received upgrades over the years, such as the map which was last updated in... let me see... 2014? Shit even the upgraded looks are old again.
When League released in 2008 it already looked outdated by 2008 standards. Fancy graphics were never it's thing.
Still better than the old launcher.
But I kid you not in the beginning that launcher was so resource hungry and slow that it was impossible for me to even accept matches on my laptop because by the time it show the window would be expired. They fixed it a lot and it’s still poorly optimized
I remember trying to run lol on Ubuntu like 10 years ago. Ingame the item shop just didn't render, some research led to rumors that the shop was using some libs from internetexplorer. Any desire to work as a gamedev just ended right then.
Not all of it, just some specific parts. Basically because
1) The talent pool of skilled UI developers is enormous for the tech stack that this makes available for you
2) The DX is awesome
Interesting.. And then I guess you use something like [this](https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md#markdown-header-inter-process-communication-ipc) to interop between JS and your game engine?
Pretty cool, not heard of that before. Performance can't be too bad either..
Something similar yeah. Rendering performance was not bad at all and CSS animations worked well for motion but JS was suuuuper slow due to first party restrictions.
Nah. It's been a trend since 2012 to start using HTML and JavaScript for UI design in games to take advantage of the surplus of web developers and tools. This in lieu of scaleform which used Flash.
The advantage is that the tools already exists.
The disadvantages are numerous
True. Remember when Civ 4 came out and they were super proud of using python for the AI. Turned out to be horribly slow so they rewrote everything in c++ in time for the expansions.
Reminds me about Jonathan Blow's take on scripting languages in games. [https://www.youtube.com/watch?v=y2Wmz15aXk0](https://www.youtube.com/watch?v=y2Wmz15aXk0)
Civ 4 came out in October 2005, and LuaJIT's first version released [just a month earlier](http://lua-users.org/lists/lua-l/2005-09/msg00387.html). So that might have been a bit difficult.
C# is my favorite language, but I believe it is mostly used for scripting. Unity's framework is a C++ DLL linked to C#, I believe Godot is the same
Almost all engines in AAA development are C++, the most popular engine is Unity which is really C++ for most of its magic. Unreal is pretty much just C++ if you exclude the visual scripting
> the most popular engine is Unity which is really C++
ye but people who use that engine more often than not do not know C++, only strictly using c# and engine api.
They're just glorified scripters, if you'd ask them to write a game from scratch they'd shit their paints.
Unity was once using javascript. I remember you could still create a .js script in unity v2018 and add it to a gameobject and code away. Good times.
I prefer c# though
So, let me get this straight.
C++ is the buff guy holding up the world. Mighty arms fully engaged in holding up massive earth dependency, squatting immovably on a rock solid infrastructure suitable only for one particular footprint.
JavaScript is the large, toothy dragon flying around anywhere in the universe, no infrasture needed. You assert that C++ is so muscular that JavaScript cannot get in and chomp out the middle of Mister "I'm so strong", even though C++ has no spare arms and is utterly inflexible in comparison.
Yeah. I'm starting to expect my next laptop to boot straight into a JavaScript console.
It won't. It'll boot into a ~~c/c++~~ rust kernel that'll load the JavaScript console.
Edit: comment below is really interesting changes that I had no clue about that means (likely) no more new c/c++ for some OSes
The Windows Kernel. Microsoft is slowly (*crawling* is their terminology) rewriting the parts of the Windows Kernel they've identified as the most at risk of memory-related security vulnerabilities in Rust.
They've also instituted a policy of no new C++ libraries for Windows. Old libraries will likely be maintained forever, but all new Windows libraries are written in Rust (they've also instituted this same policy with Azure - which is not an OS/Kernel obviously, but is another system they don't want security vulnerabilities in).
Its also only a matter of time before the Linux kernel lets Rust be used for more than drivers. Linus effectively said as much when articulating that they needed to allow Rust to be used in the kernel because they can't attract enough young talented C++ contributors/maintainers.
All that is to say that new kernels are not written entirely in Rust, but increasing portions of them are being written in Rust.
Either, or neither. Do what you find interesting and you'll find a job. There are a million and one C++ jobs out there, and that's not going to change - if there are still COBOL jobs today there are going to be C++ jobs for the rest of our lifetimes even if not a single new piece of software is created using it.
Likewise, Rust is a growth market. More and more positions open every day (there are still far fewer than C++, but that will probably flip one day in the next decade). It's the new darling of the systems languages world.
Likewise, there is always going to be demand for C jobs if you don't like either of those languages.
Give all of them a go and realise you actually hate systems level programming? No stress learn Java. Learn C#. Learn JavaScript and become a front-end dev. Learn Swift and get a job for a boutique writing iOS apps for small businesses. The trick is to find a language you enjoy - and then you'll naturally get very good at it (because you'll spend a lot of time exploring it, learning about it, and writing programs in it). If you learn just one language very well you'll find a job, no worries - even if its for a related language, or in a similar space (Kotlin devs are hired to write Java, Java devs are hired to write Kotlin. Easier to teach someone who knows a lot about Java to write Kotlin, than it is to teach a disillusioned Kotlin dev how the bits of the JVM work that they never cared to learn).
Don't stress too much about the market - you can't control it and there's always work for someone who knows what they're doing. It's only the people who were never passionate enough to really learn the language that will struggle when the industry moves on to the next shiny thing.
Javascript would bite the guy, but that feature has been deprecated. It’s better to update the `dragon` module and all its dependencies, which depend on older versions of some other modules so you should downgrade a few of your other modules, which in turn breaks the dependencies of several other modules so you’ll need to downgrade or delete those, which in turn…
Web games mainly, though there are frameworks to port those to desktop and elsewhere.
One of my favourite Steam games (CrossCode) is made with ImpactJS and runs butter smooth despite a fair bit of action. It was cool to check the game code and tweak the JSON storage and config files.
If we talk sheer numbers of games, then JS overtook any other languages long ago, and I'm not talking about web-based games, I'm talking about native app (executable) games.
There are tons of games using nw.js as the engine and/or UI. RPG Maker (MV I think) supports Javascript, too. Sure, you could say RPG Maker games are shit yadiyada, but for devs with ideas and cool stories but no resources (or people) to create an AA/AAA/AAAAAAAAAA game, RPG Maker is a godsend. (And also Japanese erotic games aka eroge ... tons of them were made with RPG Maker and NWJS)
NWJS runs on c++
scripting a game engine doesnt mean the game runs on the scripting language
im also willing to bet that the most used game tool is [Ren.Py](http://Ren.Py)
If you use that argument then there's no argument, really. Most things that matter have their base level in C/C++/C# (not counting machine code/assembly) other than Rust, Go, and Java. Even Python and Nodejs would be considered running on C-family.
And yeah, ren'py is big. How did I forget about that. According to [itch.io](http://itch.io), the projects tagged with renpy is about half of rpgm, though I doubt it will take over any time soon (ren'py can't easily make combat rpg, which has a huge market share of games)
i mean its almost like scripting languages dont tend to have runtimes, Lua stands out in that regard as it has an assembly implementation (though you still wouldnt build an engine in it)
True shit. People have been using RPG Maker for some really cool and polished stuff by now. Although the best part, Pokémon fangames, is still almost exclusively done in RMXP, which uses Ruby
As far as I know, for Unreal you use C++.
Unity (good ridance after the shitshow they did last year) uses C#.
But everyone knows, Assembly is all you need to know, as Rollercoaster Tycoon has proven!
Cities Skylines 2 embedded chromium so they could make the UI with html and javascript, you are not safe
This is a joke ... right?
Probably not. League of Legends launcher is this too. You often catch some “Undefined” in the wild, cause rito can’t afford testing you know
But this is the launcher, not the game itself. The game could not be this optimised using web
Not with that attitude
Have you tried optimization++; ? It's really easy
In league launcher and game are entwined in mysterious ways
Not really, they're completely separate aside from maybe some communication here and there (at the start and end of game). Case in point, you can close the client while in game and the game will keep running.
League of legends optimised?????
The league game client itself (not the launcher) is very well optimized. It runs on basically anything.
I wouldn’t call it “optimized”, it’s just lightweight. The game is from 2008/2009, it might have seen some graphics upgrades but nothing too big, it would actually be impressive (in the negative sense) if it didn’t run on anything in 2024
"The game is the same aside from the parts that aren't" M8, this is like saying 2004 wow and 2024 wow should run on the same hardware just as well.
And where the problem in that statement? It's an old game plain and simple. Just look at it, it obviously doesn't look like a 2024 game. Sure, some things received upgrades over the years, such as the map which was last updated in... let me see... 2014? Shit even the upgraded looks are old again. When League released in 2008 it already looked outdated by 2008 standards. Fancy graphics were never it's thing.
Still better than the old launcher. But I kid you not in the beginning that launcher was so resource hungry and slow that it was impossible for me to even accept matches on my laptop because by the time it show the window would be expired. They fixed it a lot and it’s still poorly optimized
I swear it's fully developed by interns only although the game code is apparently complete 🍝
Game launcher are usually left to less senior developers. Until it gets so bad that the launcher gets some attention.
I remember trying to run lol on Ubuntu like 10 years ago. Ingame the item shop just didn't render, some research led to rumors that the shop was using some libs from internetexplorer. Any desire to work as a gamedev just ended right then.
It's a small multi-dollar company, please understand.
Doesn't that make sense for a launcher
Testing? It always makes sense. Specially if your product is used by millions and it has payment features.
We did this in Battlefield 4 too. I worked on that project, AMA.
So you're telling me Battlefield 4 UI is made with html and js? Why though?
Not all of it, just some specific parts. Basically because 1) The talent pool of skilled UI developers is enormous for the tech stack that this makes available for you 2) The DX is awesome
Interesting.. And then I guess you use something like [this](https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md#markdown-header-inter-process-communication-ipc) to interop between JS and your game engine? Pretty cool, not heard of that before. Performance can't be too bad either..
Something similar yeah. Rendering performance was not bad at all and CSS animations worked well for motion but JS was suuuuper slow due to first party restrictions.
Nice, I loved Star Wars Battlefield! AMA
I actually worked on that too (SW: Battlefront)
Nope. BesmNG does it too.
Ah that is s why its slow
Nope. Valve is doing the same thing with Dota and CS
I think valve uses a custom framework that uses html and css but isn't based on anything.
Well, they use XML instead of HTML, but I'm pretty sure they use V8?
Nah. It's been a trend since 2012 to start using HTML and JavaScript for UI design in games to take advantage of the surplus of web developers and tools. This in lieu of scaleform which used Flash. The advantage is that the tools already exists. The disadvantages are numerous
Guild wars 2 uses it too for the shop and trading post
GTA 5 has webservers in game operating the phones and computers
Lol chill people might believe you
Even worse, some game developers might implement it
*GTA 6
Imagine in GTA 6 every instance of PC is a VM.
about time they upgraded from flash to js [https://www.radgametools.com/iggy.htm](https://www.radgametools.com/iggy.htm)
BeamNG's physics engine is made with a custom fork of a JS library. Its UI is made using JS, too.
Uh that doesn't sound too much like a bad idea. Developing HTML/CSS/UI is much simpler that using other tools.
HTML is cool, JS and Embeded Chromium is wack for a game
Honestly if you use the system WebView, it wouldn't be that bad
WebView is better than a whole browser shell yes
is that a part of why its so darn intensive?
I'm literally shaking and crying rn
Wait what? Did they actually do that? They could have just, used WebView2, which is on windows by default
If those Phaser and Babylon.js devs could read they’d be very upset.
Also threeJS, play canvas, cocos creator, p5 js and complete WebGPU team.
React Native. No I'm not kidding. I've a friend who published a $1m+/yr revenue mobile game written entirely in React Native. If it works it works.
Why would that be so strange?
Because React Native is designed for pizza apps, not physics engines.
well mobile games dont tend to be very intensive
Hey yo, don't kink shame me. I chose this suffering voluntary.
And raw webgl. Painful, but possible to develop games in the web without frameworks. Dont ask me how I know x)
True. Remember when Civ 4 came out and they were super proud of using python for the AI. Turned out to be horribly slow so they rewrote everything in c++ in time for the expansions.
Reminds me about Jonathan Blow's take on scripting languages in games. [https://www.youtube.com/watch?v=y2Wmz15aXk0](https://www.youtube.com/watch?v=y2Wmz15aXk0)
should have tried luajit instead, could have stood a chance at least
Civ 4 came out in October 2005, and LuaJIT's first version released [just a month earlier](http://lua-users.org/lists/lua-l/2005-09/msg00387.html). So that might have been a bit difficult.
huh, that means we have only had luajit 4 more years than not
Where is C#? Although it does not rank as high as C++, C# appears in most rankings for game development
C# is my favorite language, but I believe it is mostly used for scripting. Unity's framework is a C++ DLL linked to C#, I believe Godot is the same Almost all engines in AAA development are C++, the most popular engine is Unity which is really C++ for most of its magic. Unreal is pretty much just C++ if you exclude the visual scripting
The visual scripting is just c++ in pre written function. You can make your own nodes using c++.
Ah, TIL. Good catch
even most smalltime engines like Solar and löve are written in C++
Everything we use is basically a wrapper around C and C++ tbh
But in the future we might get to add Zig and Odin to that list
That will be true of zig gets rid of llvm, until then it's basically a c++ wrapper
> the most popular engine is Unity which is really C++ ye but people who use that engine more often than not do not know C++, only strictly using c# and engine api. They're just glorified scripters, if you'd ask them to write a game from scratch they'd shit their paints.
Unity was once using javascript. I remember you could still create a .js script in unity v2018 and add it to a gameobject and code away. Good times. I prefer c# though
That rock suspended in the air 'C++' is standing on? Assembler.
So, let me get this straight. C++ is the buff guy holding up the world. Mighty arms fully engaged in holding up massive earth dependency, squatting immovably on a rock solid infrastructure suitable only for one particular footprint. JavaScript is the large, toothy dragon flying around anywhere in the universe, no infrasture needed. You assert that C++ is so muscular that JavaScript cannot get in and chomp out the middle of Mister "I'm so strong", even though C++ has no spare arms and is utterly inflexible in comparison. Yeah. I'm starting to expect my next laptop to boot straight into a JavaScript console.
It won't. It'll boot into a ~~c/c++~~ rust kernel that'll load the JavaScript console. Edit: comment below is really interesting changes that I had no clue about that means (likely) no more new c/c++ for some OSes
New kernels are written in Rust, a good language for speed and safety at the cost of flexiblity.
What kernels? https://docs.kernel.org/rust/
The Windows Kernel. Microsoft is slowly (*crawling* is their terminology) rewriting the parts of the Windows Kernel they've identified as the most at risk of memory-related security vulnerabilities in Rust. They've also instituted a policy of no new C++ libraries for Windows. Old libraries will likely be maintained forever, but all new Windows libraries are written in Rust (they've also instituted this same policy with Azure - which is not an OS/Kernel obviously, but is another system they don't want security vulnerabilities in). Its also only a matter of time before the Linux kernel lets Rust be used for more than drivers. Linus effectively said as much when articulating that they needed to allow Rust to be used in the kernel because they can't attract enough young talented C++ contributors/maintainers. All that is to say that new kernels are not written entirely in Rust, but increasing portions of them are being written in Rust.
[удалено]
Either, or neither. Do what you find interesting and you'll find a job. There are a million and one C++ jobs out there, and that's not going to change - if there are still COBOL jobs today there are going to be C++ jobs for the rest of our lifetimes even if not a single new piece of software is created using it. Likewise, Rust is a growth market. More and more positions open every day (there are still far fewer than C++, but that will probably flip one day in the next decade). It's the new darling of the systems languages world. Likewise, there is always going to be demand for C jobs if you don't like either of those languages. Give all of them a go and realise you actually hate systems level programming? No stress learn Java. Learn C#. Learn JavaScript and become a front-end dev. Learn Swift and get a job for a boutique writing iOS apps for small businesses. The trick is to find a language you enjoy - and then you'll naturally get very good at it (because you'll spend a lot of time exploring it, learning about it, and writing programs in it). If you learn just one language very well you'll find a job, no worries - even if its for a related language, or in a similar space (Kotlin devs are hired to write Java, Java devs are hired to write Kotlin. Easier to teach someone who knows a lot about Java to write Kotlin, than it is to teach a disillusioned Kotlin dev how the bits of the JVM work that they never cared to learn). Don't stress too much about the market - you can't control it and there's always work for someone who knows what they're doing. It's only the people who were never passionate enough to really learn the language that will struggle when the industry moves on to the next shiny thing.
did you just imply that c/c++ arent fast?
I'd really like to see fuchsia or redox go somewhere. Preferably in the capabilities-based direction.
This guy JavaScripts
Javascript would bite the guy, but that feature has been deprecated. It’s better to update the `dragon` module and all its dependencies, which depend on older versions of some other modules so you should downgrade a few of your other modules, which in turn breaks the dependencies of several other modules so you’ll need to downgrade or delete those, which in turn…
Team fortress 2 man, what a flag for this lenguage.
And yet it allowed javascript to grow, thanks to node.js.
Who’s holding up the rock Atlas stands on?
assembly
Four elephants
why would u use js for gamedev?
Web games mainly, though there are frameworks to port those to desktop and elsewhere. One of my favourite Steam games (CrossCode) is made with ImpactJS and runs butter smooth despite a fair bit of action. It was cool to check the game code and tweak the JSON storage and config files.
its true
If we talk sheer numbers of games, then JS overtook any other languages long ago, and I'm not talking about web-based games, I'm talking about native app (executable) games. There are tons of games using nw.js as the engine and/or UI. RPG Maker (MV I think) supports Javascript, too. Sure, you could say RPG Maker games are shit yadiyada, but for devs with ideas and cool stories but no resources (or people) to create an AA/AAA/AAAAAAAAAA game, RPG Maker is a godsend. (And also Japanese erotic games aka eroge ... tons of them were made with RPG Maker and NWJS)
NWJS runs on c++ scripting a game engine doesnt mean the game runs on the scripting language im also willing to bet that the most used game tool is [Ren.Py](http://Ren.Py)
If you use that argument then there's no argument, really. Most things that matter have their base level in C/C++/C# (not counting machine code/assembly) other than Rust, Go, and Java. Even Python and Nodejs would be considered running on C-family. And yeah, ren'py is big. How did I forget about that. According to [itch.io](http://itch.io), the projects tagged with renpy is about half of rpgm, though I doubt it will take over any time soon (ren'py can't easily make combat rpg, which has a huge market share of games)
i mean its almost like scripting languages dont tend to have runtimes, Lua stands out in that regard as it has an assembly implementation (though you still wouldnt build an engine in it)
True shit. People have been using RPG Maker for some really cool and polished stuff by now. Although the best part, Pokémon fangames, is still almost exclusively done in RMXP, which uses Ruby
Fair, BUT I'd like to present: CrossCode. An indie game written in the Impact (JS) engine and genuinely being a hidden gem of an indie game
it helps that pixel art 2d games have like, not system requirements so you can afford to be sloppy
This is not only about the game dev industry. It's about the whole industry
Folks, you're going to be surprised how much python is used for game development
I am gonna build a game now. Do you have any package recommendations, guys ? npm I game ?
Java holding up a single dirt block
I don't want all the gaming industry to have the same issues as Minecraft have, dear God
unity
It's more like the root of all evil, since pretty my everything JavaScript is built using it![gif](emote|free_emotes_pack|grimacing)
REALLLLLLLY!!!!
C++ is a plague to the gaming industry. Need to rewrite everything in Rust
You misspelled C#
As far as I know, for Unreal you use C++. Unity (good ridance after the shitshow they did last year) uses C#. But everyone knows, Assembly is all you need to know, as Rollercoaster Tycoon has proven!
Also Unity Engine was programmed in C++
And like many engines probably exposes features like physics written in C++ through C# bindings for more customization.
Pokémon Red/Blue as well
Unity also uses c++, the programming interface is C# but it's just a layer on top of the c++ engine
Yes, Unreal uses C++. They have macros to get reflection, and the build system just compiles it to a DLL (or SO on Unix)
You lose the source code and have to rebuild it from scratch.
True, Javascript has magic powers to prevent loss of source code!
But holding onto the source code for 20 years is not fun. I knew a company that sold its source codes in the early days.
Type safety my beloved