Years ago my GPU failed and I was left with Intel's iGPU. The only modern and interesting game that run well was The Witness. The game performed way beyond what it had but it did.
The key thing Jonathan says at the beginning; do you enjoy writing a game engine? But in the end you will learn quite a lot, and plus you don't have to worry about subscription fees/royalties, but it will require lots of time obviously for most programmers.
It's a big undertaking - but worth it. But it's also worth noting that an engine can go from something you write in a weekend, to something you spend the best part of a decade on. So it really depends on your requirements, patience, and interest.
You really don't have to worry about subscriptions/royalties unless you make 1 million + a year. 99% of people making games will not have this happen, and if they do they are gunna be set to make their own engine next time if they really cared about what they had to pay.
Currently building my own now. I dont know if i will ever use it commercially and im not banking on the project financially but it is a very interesting project to work on and i have learned so much already
The scariest part of this to me is that the knowledge gaps only grow over time as engines further reduce the barrier of entry and more devs are totally lacking in fundamentals. Silly anecdote, but my wife suffers from motion sickness while playing some games. She turns off all forms of view bobbing in every game that she can. We tried to play one of the more popular first person proximity chat games, but it made her violently ill because the camera was directly attached to the character's head. I found a thread where others had asked for settings that would help folks with motion sickness and the devs claimed that it would be "impossible" because that's unfortunately just how things work. After my initial rage at calling something fairly simple "impossible" I honestly just felt sad. It's possible it was just a flippant dismissal rather than being a genuine response, but the fact that I couldn't tell was depressing. I think it's easy for people to view graphics, physics, audio, and all of the various "engine-y" subsystems as solved problems that they don't need to worry about, and maybe that's right in most cases. However it seems like the further we shift in that direction the more game dev is cheapened as an art form.
With a lower entrance barrier there are more products and, consequently, more bad and good products. I think the knowledge gap is actually diminishing as there are more people making games and, consequently, more information being available. The bad developers of today will, probably, become much better in the future.
@@LucasOliveira-dw4zh That's like saying that with more Python programmers, programmers in general will become better at Assembly. The barrier of entry for using technology is getting lower, but the barrier of entry for creating technology is getting higher. As a consequence, there are fewer competing companies and fewer avenues and incentives for talented people to engage in the increasingly steeper and costlier learning curve. Like, most talented people would choose to build a higher-level system for 3 times the pay as opposed to spending 5 years learning low-level details and get paid peanuts in comparison.
Yes, if it's specialized. Why do you think RPGMaker still has so much traction? Because it's designed with top-down rpg games in mind and it's incredibly easy to get something that just works in very little time.
People tend to overcomplicate everything, A. If you’re smart and a half decent programmer likely over 90% of 2d indie games could be written with a custom game engine if people just wrote the damn code to make the game and stopped trying to make generic reusable engines with overly complex ECSs etc, just write it, make it work, then optimize it, then move on. Sadly most people just get stuck on even getting started when in reality most of the graphics and simple physics are the least of your headaches.
What you just said, is easily a year worth of work, if not more. And once it's done, you're either tied to it for the foreseeable future or you throw it into the trash. So, making an effort to make things reusable, replaceable and portable is the smart thing to do. It's an investment that pays you back over-time (although it may be hard to notice when compared with competition that has been doing that for literally decades).
@@msmeraglia You clearly have no idea how long game development actually takes. Cuphead, a 2D indie game, took 7 years to make. And that was while using an existing game engine. Writing a custom game engine, even for a completely trivial game, could take months if you have to write all the low-level stuff for all target platforms, by yourself. And the more features you need, the more time it takes. For any non-trivial game, it may take many iterations over game systems and game design until a game reaches a satisfactory state. For many games you'd need to write some kind of a level editor too. Optimizing, polishing, platform integrations and testing also take considerable amount of time.
Cuphead took that long to make because of the 2D hand drawn art style. That’s a different topic. The bottom line is that a lot of people without any programming experience try to build an engine and that very well might take several years because they need to teach themselves basic programming while developing and restart the project over and over. But an experienced software engineer can build a simple 2D engine in less than a week, or a simple 3D engine in less than a month. It’s really not rocket science anymore, especially with AI to help with planning and debugging.
Sure, there can be a charm to writing your own engine. Potentially you could get things setup and work just the way you like it. It's kind of like designing and then living in your own apartment compared to living in a hotel room. I believe in doing things on your own, and not using too many assets or "shortcuts", but I think making your own game engine is only necessary if you really have to, for example if you think no other game engines are good enough for your game. There is value in outsourcing work, because it saves you time. There is a reason Jonathan Blow has only released like 2 games in 10 years.
Oh man, shout out for leaving as a lower third the full podcast name and episode where it comes from. Sometimes so many shorter excerpts and shorts have nothing available to easily track the main even it came from.
I'm developing a top-down 2D shooter/platformer hybrid, inspired by the Metroidvania genre, with unique hierarchical gravity and color-based gameplay mechanics taking place on a spherical world with a simple solid-color low-polygon type art style, all built entirely from ‘scratch’. Admittedly, I'm not deeply familiar with engines like Godot, Unity, or Unreal, but I feared they would require significant arm twisting to accommodate such a unique concept. I think an interest in doing this is what really drove my decision, however. Working on this project has been a joy-a blend of nostalgia for creating my own games in the 90s, the engineering challenge it provides, and the satisfaction of having such a unique creative outlet.
What I love about godot is that I don't have to rewrite the whole thing if I decide to change game mechanics later on. Plus all of the points about proprietary code and being at the mercy of companies are moot.
I'm working on a little something with the intention of learning the ins and out of GPUs, and it's illuminating. I definitely see the benefit of "reinventing the wheel" for certain people looking to learn specific topics. If you just wanna make a game? Go with a pre-built engine. Personally I'd go with something lighter than Unreal or Unity if you are making a tiny/simple game.
There are more game engines now than ever before but practically speaking, the reasons not to use a 'general purpose' game engine are dwindling all the time. The main reason to build a purpose-built engine for a game is efficiency, but that demands that you actually know what you're doing enough to outperform the general-purpose engines. Most programmers today are simply not capable of that. Another reason is good old fashioned novelty of seeing how 'low resource' you can go, but again, that becomes a matter of being interested in the game engine itself, which most are not.
I would say the main reason to build a purpose-built engine is control. Efficiency gains are certainly likely, but that's sort of a side effect of having more control. I've been frustrated many times with general purpose game engines forcing me to do things in ways that work well for the engine rather than how I'd prefer to do them. Or even worse, painstakingly imposing my will on the engine only for it to create massive headaches down the line because I've chosen to go off the beaten path. Jon's comment about them being more trouble than they're worth beyond a certain complexity really resonates. To your point, though, the vast majority of game devs who became programmers by necessity aren't likely to build something better or even care enough to try. In those cases the general purpose engines are incredibly enabling because they create opportunities for cool things to exist that never would have otherwise.
You can outperform the general-purpose engines using the general-purpose engines. For example, in Unreal there's an unlit mode and 150 rendering flags that aren't "normally" available. When I enable all that, I get 300% performance increase compared to the default lowest t settings. You can do it Unity, too: Unity allows you to make your own game loop completely, so you can disable all the features that you don't want like shadows, lighting and normal physics if that's what you want. But realistically, even bigger companies probably won't be able to beat Unreal Making your own engine is crazy, unless you're a big company and you don't want to pay royalties. Then it's fine. Get 50 people working on it and you'll have it in 5-10 years, for the current years just use existing engines. One of the companies that's doing that right now is Bandai Namco, I think. But I don't know what's the current state of their engine, but there were news a few years ago where they said they'd make their own universe like Marvel but for games and they'd use their own engine for that. But right now they're using Unreal Engine for their products.
Economically it doesn't make sense to write your own game engine. The knowledge of how to write a game engine was never meant to be widespread, kinda like literacy and numeracy during the Bronze Age Collapse. Only a few people know how to do that and that's fine. As our civilization slowly collapses because of the primacy of the short term economic incentive to not "reinvent the wheel", the knowledge of how to write your own game engine will be lost and new devs will not be able to maintain the massive amount of complexity accumulated by past generations.
Here’s the thing. I can get it if it’s for educational purposes to see how it works. Would it not be just doing math others have already done before otherwise?
@@brahillms1374 Sure you might have to do some math others have done before you but it's not a crazy amount of it and you will typically use a math library, as a plus you get an engine you can customize however you want
@TheExtremeCube an engine like Godot is an interesting middle ground, where it's a complete engine, but also open source and free to modify any way you want.
@@beandob While this is true, maintaining a fork of a massive, general purpose engine sounds far less fun than building your own from scratch. That's going to be entirely subjective though
Writing your own engine also brings the benefits that you have way better opportunities in the industry. Someone has to write and maintain Unreal, Unity, Frostbite, Source, CryEngine and the others. And it's always good to know lower level stuff to write fast code and avoid bottlenecks.
Im making an engine to learn and for a portfolio piece to get a job after uni. If in the future, i want to make a game then ive already got something which is completely free and isnt bulked down by things i dont need.
If I were to have the option to write my own game engine, I would. We need the knowledge that is equivalent to 3 college courses of calculus physics though, which I don't think many people have.
Most of 3D graphics math is freshman year linear algebra, i.e. something former schoolchildren manage just fine. And the simplest collisions do not require even that.
There's a trade-off with this. If you are just doing things that an engine supports then it is cheaper and easier to use that engine. If you need something not supported by that engine then you either need to implement it in that engine, use a different engine, or write your own. Sometimes extending an engine can be easier than writing your own, sometimes it can be harder. It is also harder to make a change late into development as you are already tied to the way the engine does things. Thus, it is a good idea to have a high-level idea of the features you want in a game so you can quickly prototype and evaluate various engines.
I would love to write a simple 3D game engine and maybe someday to create LIVE interactive 3D game engine so game developers, animators, sounds engineers, etc. can collaborate in REAL TIME, since computer performance has increased, and everyone have high network bandwidth there is a possibility to make LIVE interactive 3D Game Engine for Team Collaboration and integrated version control system like Perforce into the game engine.
and here we are today with unity&unreal used by so called developers that can't comprehend advanced engine techniques, yet these engines are providing them... and what we as end users/consumers gets, awesomely bugged experience with fps drop
Skip video: answer is no. You have enough to do in gamedev. Nope nope nope. Go get unity, unreal, gadot, gamemaker(or in less used cases construct / rpg maker).
@soggy_dev yeah well adding nuance does not make the argument any wiser. This is a simple one. You have too many things to do in game dev as an indie. There are a million potholes. Other people who are probably more talented than you have spent hundreds of thousands of man hours building a game engine. You have other things to worry about. Pick a game engine and move on. The number one thing I see stall out indie games is analysis paralysis that theb turns unto someone either giving up or just focusing on systems where they feel safe. If you want it finish you need to focus down. You need to learn to say no to scope creep and utilize resources to help you wherever you can. The literal easiest decision you can make is "use a game engine". If you can't even make that decision you probably won't ever finish your game. The list of modern indies on their own game engine is so low we know most of them. Even triple a now predominantly uses third party engines. If you want to make a game engine make one. But if you want to make a game, using a pre-existing game engine is a no brainer.
When a dev is writing a highly specific game engine for their own game, they aren't competing with Unreal or Unity, which are very generic, designed to meet the needs of many kinds of games, with stricter handling of edge cases, etc. When you know exactly what you need, you can skip implementing everything else. The Unreal and Unity suppliers, on the other hand, don't have the luxury of assuming the things: they have to strive to please everyone, which is a nearly impossible job to do.
This is a great cut. I watched the full episode but the fact that you provide the link to it is great. I love these kind of channels. Thank you!
Years ago my GPU failed and I was left with Intel's iGPU. The only modern and interesting game that run well was The Witness. The game performed way beyond what it had but it did.
The key thing Jonathan says at the beginning; do you enjoy writing a game engine? But in the end you will learn quite a lot, and plus you don't have to worry about subscription fees/royalties, but it will require lots of time obviously for most programmers.
It's a big undertaking - but worth it. But it's also worth noting that an engine can go from something you write in a weekend, to something you spend the best part of a decade on. So it really depends on your requirements, patience, and interest.
You really don't have to worry about subscriptions/royalties unless you make 1 million + a year. 99% of people making games will not have this happen, and if they do they are gunna be set to make their own engine next time if they really cared about what they had to pay.
Currently building my own now. I dont know if i will ever use it commercially and im not banking on the project financially but it is a very interesting project to work on and i have learned so much already
The scariest part of this to me is that the knowledge gaps only grow over time as engines further reduce the barrier of entry and more devs are totally lacking in fundamentals. Silly anecdote, but my wife suffers from motion sickness while playing some games. She turns off all forms of view bobbing in every game that she can. We tried to play one of the more popular first person proximity chat games, but it made her violently ill because the camera was directly attached to the character's head. I found a thread where others had asked for settings that would help folks with motion sickness and the devs claimed that it would be "impossible" because that's unfortunately just how things work. After my initial rage at calling something fairly simple "impossible" I honestly just felt sad. It's possible it was just a flippant dismissal rather than being a genuine response, but the fact that I couldn't tell was depressing.
I think it's easy for people to view graphics, physics, audio, and all of the various "engine-y" subsystems as solved problems that they don't need to worry about, and maybe that's right in most cases. However it seems like the further we shift in that direction the more game dev is cheapened as an art form.
With a lower entrance barrier there are more products and, consequently, more bad and good products. I think the knowledge gap is actually diminishing as there are more people making games and, consequently, more information being available. The bad developers of today will, probably, become much better in the future.
@@LucasOliveira-dw4zh That's like saying that with more Python programmers, programmers in general will become better at Assembly.
The barrier of entry for using technology is getting lower, but the barrier of entry for creating technology is getting higher.
As a consequence, there are fewer competing companies and fewer avenues and incentives for talented people to engage in the increasingly steeper and costlier learning curve.
Like, most talented people would choose to build a higher-level system for 3 times the pay as opposed to spending 5 years learning low-level details and get paid peanuts in comparison.
Yes, if it's specialized. Why do you think RPGMaker still has so much traction? Because it's designed with top-down rpg games in mind and it's incredibly easy to get something that just works in very little time.
People tend to overcomplicate everything, A. If you’re smart and a half decent programmer likely over 90% of 2d indie games could be written with a custom game engine if people just wrote the damn code to make the game and stopped trying to make generic reusable engines with overly complex ECSs etc, just write it, make it work, then optimize it, then move on. Sadly most people just get stuck on even getting started when in reality most of the graphics and simple physics are the least of your headaches.
What you just said, is easily a year worth of work, if not more. And once it's done, you're either tied to it for the foreseeable future or you throw it into the trash.
So, making an effort to make things reusable, replaceable and portable is the smart thing to do.
It's an investment that pays you back over-time (although it may be hard to notice when compared with competition that has been doing that for literally decades).
@@tonig2757 if it takes you a year, you're doing something wrong...
@@msmeraglia You clearly have no idea how long game development actually takes.
Cuphead, a 2D indie game, took 7 years to make. And that was while using an existing game engine.
Writing a custom game engine, even for a completely trivial game, could take months if you have to write all the low-level stuff for all target platforms, by yourself.
And the more features you need, the more time it takes.
For any non-trivial game, it may take many iterations over game systems and game design until a game reaches a satisfactory state.
For many games you'd need to write some kind of a level editor too.
Optimizing, polishing, platform integrations and testing also take considerable amount of time.
@@tonig2757 right... sure buddy lol log off and go program some more maybe then you'll be able to get the basics done in less than a year 🤣
Cuphead took that long to make because of the 2D hand drawn art style. That’s a different topic.
The bottom line is that a lot of people without any programming experience try to build an engine and that very well might take several years because they need to teach themselves basic programming while developing and restart the project over and over. But an experienced software engineer can build a simple 2D engine in less than a week, or a simple 3D engine in less than a month. It’s really not rocket science anymore, especially with AI to help with planning and debugging.
Sure, there can be a charm to writing your own engine. Potentially you could get things setup and work just the way you like it. It's kind of like designing and then living in your own apartment compared to living in a hotel room. I believe in doing things on your own, and not using too many assets or "shortcuts", but I think making your own game engine is only necessary if you really have to, for example if you think no other game engines are good enough for your game. There is value in outsourcing work, because it saves you time. There is a reason Jonathan Blow has only released like 2 games in 10 years.
Oh man, shout out for leaving as a lower third the full podcast name and episode where it comes from.
Sometimes so many shorter excerpts and shorts have nothing available to easily track the main even it came from.
I'm developing a top-down 2D shooter/platformer hybrid, inspired by the Metroidvania genre, with unique hierarchical gravity and color-based gameplay mechanics taking place on a spherical world with a simple solid-color low-polygon type art style, all built entirely from ‘scratch’. Admittedly, I'm not deeply familiar with engines like Godot, Unity, or Unreal, but I feared they would require significant arm twisting to accommodate such a unique concept. I think an interest in doing this is what really drove my decision, however. Working on this project has been a joy-a blend of nostalgia for creating my own games in the 90s, the engineering challenge it provides, and the satisfaction of having such a unique creative outlet.
What I love about godot is that I don't have to rewrite the whole thing if I decide to change game mechanics later on.
Plus all of the points about proprietary code and being at the mercy of companies are moot.
I'm working on a little something with the intention of learning the ins and out of GPUs, and it's illuminating. I definitely see the benefit of "reinventing the wheel" for certain people looking to learn specific topics.
If you just wanna make a game? Go with a pre-built engine. Personally I'd go with something lighter than Unreal or Unity if you are making a tiny/simple game.
How about Godot?
Everyone's a "perfectionist" at what they love... till they have to do it for money on a deadline.
There are more game engines now than ever before but practically speaking, the reasons not to use a 'general purpose' game engine are dwindling all the time. The main reason to build a purpose-built engine for a game is efficiency, but that demands that you actually know what you're doing enough to outperform the general-purpose engines. Most programmers today are simply not capable of that. Another reason is good old fashioned novelty of seeing how 'low resource' you can go, but again, that becomes a matter of being interested in the game engine itself, which most are not.
I would say the main reason to build a purpose-built engine is control. Efficiency gains are certainly likely, but that's sort of a side effect of having more control. I've been frustrated many times with general purpose game engines forcing me to do things in ways that work well for the engine rather than how I'd prefer to do them. Or even worse, painstakingly imposing my will on the engine only for it to create massive headaches down the line because I've chosen to go off the beaten path. Jon's comment about them being more trouble than they're worth beyond a certain complexity really resonates.
To your point, though, the vast majority of game devs who became programmers by necessity aren't likely to build something better or even care enough to try. In those cases the general purpose engines are incredibly enabling because they create opportunities for cool things to exist that never would have otherwise.
You can outperform the general-purpose engines using the general-purpose engines. For example, in Unreal there's an unlit mode and 150 rendering flags that aren't "normally" available. When I enable all that, I get 300% performance increase compared to the default lowest t settings.
You can do it Unity, too: Unity allows you to make your own game loop completely, so you can disable all the features that you don't want like shadows, lighting and normal physics if that's what you want.
But realistically, even bigger companies probably won't be able to beat Unreal
Making your own engine is crazy, unless you're a big company and you don't want to pay royalties. Then it's fine. Get 50 people working on it and you'll have it in 5-10 years, for the current years just use existing engines. One of the companies that's doing that right now is Bandai Namco, I think. But I don't know what's the current state of their engine, but there were news a few years ago where they said they'd make their own universe like Marvel but for games and they'd use their own engine for that. But right now they're using Unreal Engine for their products.
Economically it doesn't make sense to write your own game engine. The knowledge of how to write a game engine was never meant to be widespread, kinda like literacy and numeracy during the Bronze Age Collapse. Only a few people know how to do that and that's fine. As our civilization slowly collapses because of the primacy of the short term economic incentive to not "reinvent the wheel", the knowledge of how to write your own game engine will be lost and new devs will not be able to maintain the massive amount of complexity accumulated by past generations.
We truly are living in lucky times :')
The informations out there, you just need to find it but most people don't want to cos it's a lot of work which is understandable.
depends on how you define game engine, but sure. modern commercial engines can accommodate almost any game.
I love the hyperbole. It’s not that serious
I only can assume that nowadays you have to work and on the side make an engine because making the engine aint gonna put food on my table.
Here’s the thing. I can get it if it’s for educational purposes to see how it works. Would it not be just doing math others have already done before otherwise?
@@brahillms1374 Sure you might have to do some math others have done before you but it's not a crazy amount of it and you will typically use a math library, as a plus you get an engine you can customize however you want
@TheExtremeCube an engine like Godot is an interesting middle ground, where it's a complete engine, but also open source and free to modify any way you want.
@@beandob While this is true, maintaining a fork of a massive, general purpose engine sounds far less fun than building your own from scratch. That's going to be entirely subjective though
Writing your own engine also brings the benefits that you have way better opportunities in the industry.
Someone has to write and maintain Unreal, Unity, Frostbite, Source, CryEngine and the others.
And it's always good to know lower level stuff to write fast code and avoid bottlenecks.
Im making an engine to learn and for a portfolio piece to get a job after uni. If in the future, i want to make a game then ive already got something which is completely free and isnt bulked down by things i dont need.
If I were to have the option to write my own game engine, I would. We need the knowledge that is equivalent to 3 college courses of calculus physics though, which I don't think many people have.
Not really, people usually don't write their own physics today, just integrate an existing physics engine like physx or jolt
Most of 3D graphics math is freshman year linear algebra, i.e. something former schoolchildren manage just fine. And the simplest collisions do not require even that.
making a physics engine is still pretty fun though, even if it's not going to as powerful as the large engines
@@TheExtremeCube first game "Crysis" have own physics engine. One programmer make ☝
There's a trade-off with this. If you are just doing things that an engine supports then it is cheaper and easier to use that engine. If you need something not supported by that engine then you either need to implement it in that engine, use a different engine, or write your own. Sometimes extending an engine can be easier than writing your own, sometimes it can be harder.
It is also harder to make a change late into development as you are already tied to the way the engine does things. Thus, it is a good idea to have a high-level idea of the features you want in a game so you can quickly prototype and evaluate various engines.
Joanathan always reminds me of Marcus from the Detroit game.
I would love to write a simple 3D game engine and maybe someday to create LIVE interactive 3D game engine so game developers, animators, sounds engineers, etc. can collaborate in REAL TIME, since computer performance has increased, and everyone have high network bandwidth there is a possibility to make LIVE interactive 3D Game Engine for Team Collaboration and integrated version control system like Perforce into the game engine.
Probably not but I do think a lot of solodevs could get away with using a framework instead of a full blown engine
and here we are today with unity&unreal used by so called developers that can't comprehend advanced engine techniques, yet these engines are
providing them... and what we as end users/consumers gets, awesomely bugged experience with fps drop
Skip video: answer is no. You have enough to do in gamedev. Nope nope nope. Go get unity, unreal, gadot, gamemaker(or in less used cases construct / rpg maker).
This is the lack of nuance I expect to see in the youtube comments, I was almost worried I wasn't going to find it
@soggy_dev yeah well adding nuance does not make the argument any wiser. This is a simple one. You have too many things to do in game dev as an indie. There are a million potholes. Other people who are probably more talented than you have spent hundreds of thousands of man hours building a game engine. You have other things to worry about. Pick a game engine and move on. The number one thing I see stall out indie games is analysis paralysis that theb turns unto someone either giving up or just focusing on systems where they feel safe. If you want it finish you need to focus down. You need to learn to say no to scope creep and utilize resources to help you wherever you can. The literal easiest decision you can make is "use a game engine". If you can't even make that decision you probably won't ever finish your game. The list of modern indies on their own game engine is so low we know most of them. Even triple a now predominantly uses third party engines. If you want to make a game engine make one. But if you want to make a game, using a pre-existing game engine is a no brainer.
yes, i got $0 and no one cared but yes
No, why compete with things like unreal or unity. Waste of time and effort.
When a dev is writing a highly specific game engine for their own game, they aren't competing with Unreal or Unity, which are very generic, designed to meet the needs of many kinds of games, with stricter handling of edge cases, etc. When you know exactly what you need, you can skip implementing everything else. The Unreal and Unity suppliers, on the other hand, don't have the luxury of assuming the things: they have to strive to please everyone, which is a nearly impossible job to do.