Independent Games Summit: A Case for Making Your Own Engine

  Рет қаралды 34,388

GDC 2025

GDC 2025

Күн бұрын

Пікірлер: 129
@yksnimus
@yksnimus Ай бұрын
I have my own engine and do all my personal projects on it. As a growth experience its the best thing ever, but I dont have the balls to recommend it business wise. The productivity is definitely not the same. Everything else is better (control, performance, pleasure of coding, no cost/royalties) but productivity is a huge thing, games are big projects. I dont doubt ppl like jonathan blow can get the same or more productivity from it, but these guys are the top of a very hard to climb mountain. The important thing is to enjoy the journey, dont "sacrifice" anything for the end result, the result is not guaranteed.
@marcelslofstra2157
@marcelslofstra2157 Ай бұрын
That’s really cool. However, why would your engine be more performant than, say, Godot? (Which is just as free and doesn’t carry royalties)? Genuinely curious, not trying to bash you and your work.
@schrottiyhd6776
@schrottiyhd6776 Ай бұрын
​@@marcelslofstra2157 an custom engine is always more performant(given you have the expertise and time) because it allows you to fine tune every aspect of code, and construct your game perfectly matching what you need. the solutions that game engines like godot/unity or unreal bring often bring some sort of overhead/limitation for what you want, which you may not have with your own solution. in general the lower level you go in terms of programming, the higher the amount of optimization you can do.
@KaiHydra
@KaiHydra Ай бұрын
@@marcelslofstra2157 Yeah I was about to say, despite the control you have, anyone starting an engine from scratch especially without any experience would need to educate themselves on the common optimization techniques and beyond. I think the uplift just comes from the overhead being removed when it to moving from an off the shelf engine. In the end all that overhead being removed can essentially just take the fall for all the optimizations that aren't present, not to mention some of the optimization techniques that only kick in when it comes to certain scenarios.
@WizardofWestmarch
@WizardofWestmarch Ай бұрын
@@marcelslofstra2157 The issue Godot/Unity/Unreal/etc run into is their code base is written to be very generic/flexible. There is a runtime cost to enabling the breadth of stuff they do. If you custom build an engine for your specific use case, it allows you to optimize for that. Simple example, if you know exactly how many megs/gigs of textures you will always need, you could just pre allocate that space and do shenanigans to use that without needing to regularly reallocate the memory.
@peterino2
@peterino2 Ай бұрын
tbh though jonathan's output rate for games is incredibly slow. Compare that to someone like jonas tyroller who heavily leverages unity and spends a lot of time researching and designing games.
@rayecast
@rayecast 10 күн бұрын
People on the internet greatly overestimate how difficult it is to write an engine. When they hear "engine," they're thinking a large generalized engine like Unity and Unreal. Writing a large generalized engine like that is insanely harder than writing the underlying engine for a specific game that is intimately connected to that game. Is it hard? Yeah, especially if you've never written something systemic like that before. But it's not the impossible Herculean feat that people on the internet pretend it is. I mean, I'm sure it's impossible for them, but that's because learning and applying yourself is blasphemy to them. If there's not a very specific youtube tutorial for every single thing they need to do, they become helpless and lost.
@paryonix3d6657
@paryonix3d6657 Ай бұрын
I went from professionally building custom engines to professionally using unity for a longtime to building a custom engine again 🙂. Couldn't be any happier.
@michaelmaguire4147
@michaelmaguire4147 8 күн бұрын
I'm so happy to see a talk like this. I keep finding myself thinking back to when I was young and everyone HAD to make their own engine. They'd make a whole multiplayer mode as a side project and just throw it in there. Now you got games like Cyberpunk2077, that made promises of "multiplayer at a later date" but then backpedaled because "they couldn't figure out how to do it in their engine" and I'm like "but you built it tho." I know it's more nuanced than all that, and everything is more complicated, and multiplayer requiring a network component makes it harder, but I can't help but think that our reliance of pre-packaged "so easy to use you don't need to understand how it works" things coupled with the trend of programmers being more specialized, has lead to some pretty significant knowledge/skill gaps.
@What-he5pr
@What-he5pr Ай бұрын
I have more fun rolling my own. But when I collaborate, I use whatever the team wants to use.
@w花b
@w花b Ай бұрын
That's the way
@Whatthetrash
@Whatthetrash Ай бұрын
It's interesting how aggressively hostile some people are to some people choosing to write their own tech. >_
@Argletrough
@Argletrough Ай бұрын
Insecurity that they don't have the skills to do it? ;)
@advillan8280
@advillan8280 Ай бұрын
Jealousy is a powerful emotion lol
@zazzler1
@zazzler1 Ай бұрын
They are the same people who will never release a game.
@Noneofyourbusiness2000
@Noneofyourbusiness2000 Ай бұрын
​@@Argletroughdo you or anyone in history have the skills to write something as capable as UE on your own in less than a decade? Maybe these people are more interested in making games people want to play than trying to convince others of their superiority? Wow, you know how to code. No one cares. In 5 years a high schooler and AI will be more capable than you are now.
@mattmurphy7030
@mattmurphy7030 Ай бұрын
You get that way after 30 years of listening to newbies exclaim they’re going to write their own engine and then make no progress and never make a game
@TheExtremeCube
@TheExtremeCube Ай бұрын
I've been making a game with a custom engine for almost two years now and no regrets, it made me realise I definitely want to not only finish my game but further pursue engine and graphics programming. It also seems to have been the right choice as my game relies heavily on physics simulation and lots of joints so having direct access to the physics engine proved useful.
@soggy_dev
@soggy_dev 29 күн бұрын
4:25 he means "RenPy" here when he says "pygame" just in case anyone misunderstands
@ViRiXDreamcore
@ViRiXDreamcore Ай бұрын
The first guy asking his question sounds like Acerolla. He does a bunch of game dev explanations.
@TripDerve
@TripDerve Ай бұрын
I've been to WASD and Pocketgamer connect and heard a lot of the talks and the panel by large has pushed for not working on your own tech when there are engines to use and it left me scratching my head because how can that be a consensus in an industry that has programming at it's core? leaving all the innovation and knowledge on systems to the game engine companies just feels strange. I'm currently doing a thesis on ML and making my own C++ game environment for training so this this talk has been a nice boost, it's really reaffirming thanks Rez
@ferinzz
@ferinzz Ай бұрын
And now those engines are pushing for tech that sacrifices real optimisations for blurry smears to hide the frame gen and low framerate Because they have no idea what game you're making. How could they ever optimise for you?
@boccobadz
@boccobadz Ай бұрын
Most junior devs can't code and create whole games via blueprints - that's why most AAA Unreal games are slops that run like sh*t.
@victorvautrin6765
@victorvautrin6765 7 күн бұрын
what baffles me is that so many people see Unity and Unreal as *the* standards, when in reality... No? Stardew valley uses monogame, Balatro and Hades uses Lua, most big studios use proprietary tools and engines. Some engines don't allow certain types of games. For instance, Unity can export to HTML5 but online casino game devs couldn't make gambling games with Unity. So they went with web game frameworks (like Phaser) Certain games are too hard/complicated to make with Unity or Unreal such as terraria. Unreal is hell to make like a simple 2D Game for mobile. There's literally no single perfect engine but somehow, people want to make you think Unity & Unreal is enough to do every single type of game. And that's just on the game themselves. Different teams/game types need special tools or workflows and thus need custom tools to make things work properly and fast.
@Littlefighter1911
@Littlefighter1911 Ай бұрын
I started creating my own "engine" many years ago (I think it was 2015). Now I've worked 2 years full-time professionally on another project (not a game) and I come back at look at the forcefully separated code, basically exaggerating with inheritance, interfaces and stuff. (Like, just the physics part was a mess, because it was NOT coupled with the animation system. Something I did by design. However that lead to having to do weird workarounds to determine if the character is now actually standing this frame or not. Just checking y velocity == 0 isn't the way to go) I ported the same "engine" to the GBA using a framework, no portability intended, just straight-up limiting myself to only that platform (over the old engine, that used to work with Wii, PSP and PC). And I've been able to create a somewhat playable game within 1 week. (Granted, using the old code to copy and paste parts) I've learned, that it's more important to find the path of least resistance and if that means cutting out-code and copy&pasting it when necessary, then I do so now. What matters is, if the result is stable and achieves it's goal, anything else at how clean it is only matters if someone else is working with you. While back then I used to want and create a foundation of modules that can be tied together in an understandable way, I now want to create utility functions, that are self-explanatory and that encourages re-use. (Reusable code portions over reusable modules, because the complexity of the modules will increase, while reusable functions will unlikely increase in complexity) I can copy&paste them to other projects that way and not worry about them fitting together (or not), plus I know very well what they do. That's why I think that frameworks are the way to go, however I haven't heard of any decent frameworks in regard to game development. (I knew back then XNA was a thing, that is now having a replacement with MonoGame, but I really really don't like the performance. For simple 2D games I'd rather prefer just SDL). I've heard of bevy, if you want Rust, however I really don't feel productive with Rust. And I've heard of Panda3D, which I haven't tried out yet. For the GBA, there's butano, which is exactly what I mean, with how it should be done. (It calls itself an engine, but it's really not, it's something better, which is a framework). Just give me all of this stuff 11:25 please, without making it a requirement to use all of them together.
@ferinzz
@ferinzz Ай бұрын
Check out the vendor library that Odin supports. Tons of stuff.
@MacCarell
@MacCarell 26 күн бұрын
Im just saying... pretty much all my favorite games run on their own engines.
@TravisBerthelot
@TravisBerthelot 28 күн бұрын
I have my own game engine. Speaking on technical innovation I support Android without native libraries. This allows my deployments to be smaller and/or have less builds since I don't need to worry about CPU architecture. I do this while still supporting Windows and the Browser.
@thundermobgames8142
@thundermobgames8142 25 күн бұрын
I use Unity, also familiar with raylib little bit. But most of the time I used to think that people who make engines mostly use graphic APIs like opengl, directx, vulkan etc? I think these are the hardest stuff to learn. He didn't mention any of that.
@BobNoobin
@BobNoobin Ай бұрын
20:34 Using "your own tech" is not the same as using "your own custom engine" and not one game from Jon Blow lol 24:52 cost savings comes from lifetime sales and 3rd party engines may receive royalties from selling the business/IP, as it's generated income.
@Optimus6128
@Optimus6128 Ай бұрын
And Don't Starve was twice in the list by accident :)
@TurtleKwitty
@TurtleKwitty Ай бұрын
Part of the cost savings is if you have to redo a system in an existing engine becasue it doesnt fit your needs then you essentially make it twice as hard as if you had a custom engine that you can just integrate directly without the work of ripping out the other one and replacing it everywhere etc.
@paradox8425
@paradox8425 Ай бұрын
"Cost" is not only money tho. Cost includes a lot of things like productivity, etc
@wiktorwektor123
@wiktorwektor123 27 күн бұрын
X series of games from Egosoft are all rolled on custom built engine, made especially for their game series.
@LionKimbro
@LionKimbro 29 күн бұрын
4:00 - hunh- I always thought what distinguished a framework from a library, is that a framework generates a prescribed code base that you start from, but a library is something you write all the connector code to, in your own way. I’ve been coding since the early 80’s. I’d never call tkinter a “framework,” but Django certainly is.
4 күн бұрын
Yes, a framework will inpose some sort of limitations, rules or "layout" for your code imo.
@benhickson6149
@benhickson6149 Ай бұрын
Always worth watching him speak!
@nicholaskong1673
@nicholaskong1673 4 күн бұрын
I spent 7 straight weeks writing the engine for a simple rpg. While its fun in the beginning, unfortunately there is not much game to show. And I burnt myself out for accomplishing so much...without resting enough. This was 10 years ago during winter break
@zabean
@zabean 12 күн бұрын
i needed to hear this. I always have much less friction developing on my own tech than using an engine
@sleepymushroom9403
@sleepymushroom9403 Ай бұрын
I wasn't expecting this in my recommendations but a welcome surprise
@igorgiuseppe1862
@igorgiuseppe1862 Ай бұрын
4:08 loved this chart
@tanama84
@tanama84 Ай бұрын
Thank you so much for this video! This is awesome! I hope one day I could make a living doing programming with C/C++ tweaking the game engine
@insidiousmaximus
@insidiousmaximus 8 күн бұрын
our problem is not unambitious or stupid newcomers it is the fact that 90% of people are struggling to pay the bills, nobody has the time to invest in these things. Even if you are making a game out of the passion of it, the bills need paying.
@GregoryDixon-bp8lt
@GregoryDixon-bp8lt Ай бұрын
to build to all platforms and avoid using unreal or unity use haxe or castle engine
@ferinzz
@ferinzz Ай бұрын
Most jams are requiring versions that work in browser... I'm not at the point i can build something with Webgl so I'm stuck with the design paradigms enforced by engines.
@HumanityAsCode
@HumanityAsCode Ай бұрын
I've had issues with that as well because I wrote my engine for Vulkan. I have used WebGL but I'm not willing to port to that just for jams.
@jackding5963
@jackding5963 28 күн бұрын
You can use HTML canvas for a quick prototype if you don't require fancy shader effects.
@PomuLeafEveryday
@PomuLeafEveryday 12 күн бұрын
If you use frameworks like SDL or Raylib, there are ways to set up a build to use emscription to compile to web assembly, which runs in browser.
@ferinzz
@ferinzz 12 күн бұрын
@PomuLeafEveryday apparently it's not easy to do with Odin because of reasons. Importing the core library is an issue or something.
@rayecast
@rayecast 10 күн бұрын
That's way I dislike "game jam" culture. It's all about making quick and disposable experiences, rather than making something good. What do you mean, I have to make a web browser version to participate? I don't want to participate! I'm better than that! Lol.
@scottcastle9119
@scottcastle9119 Ай бұрын
Creating your own tech will be huge in the future.
@SnakeEngine
@SnakeEngine 12 күн бұрын
How so? Is Unreal and Unity going down or what?
@scottcastle9119
@scottcastle9119 12 күн бұрын
@SnakeEngine people don't like using products from big tech let's be real. We tolerate it because these programs are good.
@SnakeEngine
@SnakeEngine 12 күн бұрын
@@scottcastle9119 Can't have it all. Free stuff = low quality. corporate stuff = good quality. People prefer quality and the average gamer doesnt't care what technology you used to achieve the end goal.
@scottcastle9119
@scottcastle9119 12 күн бұрын
@SnakeEngine that's just a black and white take. If you can develop your own software with ease then why would you use unity or unreal. You just build an engine that works for your game without the other bloat. No license, no fees other than AI which is like 20 bucks a month.
@SnakeEngine
@SnakeEngine 12 күн бұрын
@@scottcastle9119 Unity better because you don't want to write dozen of backends for multiplat support and so on, and you want to release more than 2 games within 50 years. Essentially, you don't want to repeat the mistake that Jonathan Blow is making.
@nxxxxzn
@nxxxxzn 21 күн бұрын
add *O3DE* under generic 4:03
@deniskushnirenko7600
@deniskushnirenko7600 Ай бұрын
14:25 can anyone post a link to this talk? Thanks!
@supertaurus2008
@supertaurus2008 28 күн бұрын
Personally you can have your own engine, if you know how to manage it and develop it and use it for your own needs. The point where you sell it is when you use it for your projects, you will know it's drawbacks if there is any and what area it needs more effort to be put on more code to be written, so as you progress throwing at it different scenarios. The. You reach a point where it ticks all the boxes. Also none of the game engines we have in the market currently, comes with a 100 percent everything works well banner. There are bugs and some flaws, but that's managed by Regular updates and patches to it. So why no if one is interested, then one must pursue development of an engine.
@jacobkirkbride1581
@jacobkirkbride1581 Ай бұрын
I build my own engines. So I agree with this before watching. Also I was an XNA enjoyer and still a user of frameworks based on it like MonoGame, FNA, and Raylib.
@arushford
@arushford Ай бұрын
He's right btw... tokyospliff and sudo love me baby both made pseudo engines, slmb works for egosoft now apparently, tokyo has a game he likes... I made a full engine so nobody need bother again
@samuelschwager
@samuelschwager Күн бұрын
XNA is officially dead since 2013, but there is MonoGame and FNA :P
@SnakeEngine
@SnakeEngine 11 күн бұрын
So the case is: you have simple engine demands that fit your game. Nothing else was actually said. Saved you 30 min.
@Entropy67
@Entropy67 Ай бұрын
funny I get this video, I just started making my own game engine.
@abdulshabazz8597
@abdulshabazz8597 25 күн бұрын
It is unfair for this disgruntled insider to give false hope to the hapless and uninitiated yet to enter the industry... Morpheus: "Everyone, everyone who has confronted the father of the API developers has died, Neo!! You are The One! Unlike us, however, they are bound by rules we are free to ignore...!"
@lenargilmanov7893
@lenargilmanov7893 26 күн бұрын
I have my own engine, but not because I don't want to rely on another company like Unity or Epic, but because I'm a control freak.
@pajeetsingh
@pajeetsingh 29 күн бұрын
My game engine don't even have an UI. You don't need that.
@AllanSavolainen
@AllanSavolainen 28 күн бұрын
How does the user interact with the game if there is no user interface? Command line arguments?
@pajeetsingh
@pajeetsingh 28 күн бұрын
@AllanSavolainen Yes I pass in arguments. Although after I load the rendered world into I display certain parameters which can be tuned from the rendered world, can be changed from cmd as well.
@rayecast
@rayecast 10 күн бұрын
How do you handle editing levels without a UI?
@AllanSavolainen
@AllanSavolainen 10 күн бұрын
@@rayecast Why do you need levels? :)
@pajeetsingh
@pajeetsingh 10 күн бұрын
@rayecast I use Blender obj.
@9thCrusade
@9thCrusade 5 күн бұрын
all the lumen and nanite apologists should see this talk 🤣
@heller-games
@heller-games Ай бұрын
Shoutout to Raylib for Android/other mobile exports.
@RamonChiNangWong078
@RamonChiNangWong078 28 күн бұрын
lol, I'm currently working on it and my code is like old, based C and uses Milkshape3d for 3d models and animation. But I think it's doable, For some reasons I utterly HATE Engines, it doesn't give freedom I want in a game project
@djee02
@djee02 26 күн бұрын
I would rather rewrite the network layer of Unreal and get all the other modules than start an engine from scratch. Unless you are an established AAA studio with deep pockets, it makes no sense to build a game engine.
@nathanwhite704
@nathanwhite704 21 күн бұрын
What? You can build an engine for free.
@SnakeEngine
@SnakeEngine 12 күн бұрын
Depends if you want to compete with the big AAA boys. Then even Carmack cannot compete anymore. But for a 2D game or a 3D game that doesn't need a cutting edge renderer and stuff, you can roll your engine just fine, using some helper libs here and there.
@thepolyglotprogrammer
@thepolyglotprogrammer Ай бұрын
Sacrifice a chicken… 😂😂😂
@msmeraglia
@msmeraglia Ай бұрын
my own tech ✋
@byteyourownteeth2100
@byteyourownteeth2100 Ай бұрын
Hugely representative thumbnail....
@arushford
@arushford Ай бұрын
AlmondEngine
@HumanityAsCode
@HumanityAsCode Ай бұрын
28:25 😂
@MrFox5113
@MrFox5113 Ай бұрын
There’s also a talk on designing your own chipset for your next game engine for your next game if you don’t want to use x86.
@BobNoobin
@BobNoobin Ай бұрын
are you familiar with the term, bigotry of low expectations?
@Capewearer
@Capewearer Ай бұрын
Unironically good idea if idea is very difficult to implement in nowadays hardware.
@mtgpleb6299
@mtgpleb6299 Ай бұрын
If there's one thing to take away from this talk it's that the major "build your own engine" success stories of the last decade fit on a single slide
@zekenebel
@zekenebel Ай бұрын
I feel like a lot of it has been rooted in ego and many points contradict themselves. Don't use X game engine because of bloat and unnecessary features, but don't forget to import all of those library's your going to need to get a level editor working and not use 90% of it. Your not trying to build the next best game engine but its definitely going to be more performant. There's no monopoly on the market but tread as if there was one. Personally I feel the best argument ever put across for this is. Take the steps necessary to achieve whatever you set out to achieve. If you want to make a game, use an engine like unity, godot etc. If you want to build an engine, build an engine. Don't just build an engine for the sake of it. If the game demands its own engine then go for it.
@Capewearer
@Capewearer Ай бұрын
The Witness, The Talos Principle, Minecraft, No Man's Sky, Space Engineers, Elite:Dangerous, Total War series, Dreams, Teardown. These all use custom engines.
@mtgpleb6299
@mtgpleb6299 Ай бұрын
@@Capewearer This is a talk given at the independent games summit. I'm not sure the Total War series (EA/Activision/Sega) or Dreams (Sony) are development models that indies should be looking to emulate.
@nathanwhite704
@nathanwhite704 21 күн бұрын
30+ minutes and said nothing. Now I remember why I quit watching gdc talks.
@abiram3394
@abiram3394 9 күн бұрын
he did not make a good argument for not using a game engine this is just babbling
@interxyz
@interxyz 27 күн бұрын
Who made the thumb of this vid? Can you take this seriously?
@FrancoSciaraffia
@FrancoSciaraffia Ай бұрын
On the other hand. Is building your engine easier than fighting/extending unreal/unity for what you need? The cases where building your own engine makes sense are extremely scarse. All the games on his list of custom engines could have 100% been made on unreal/unity... If you're tempted to build your own engine, really really think about if you really need to.
@boccobadz
@boccobadz Ай бұрын
If you have a game like Noita, yeah, you pretty much save time by writing an engine from scratch. Otherwise, there's no need, just go with UE and Cpp.
@nathanfranck5822
@nathanfranck5822 Ай бұрын
Definitely depends on what you are trying to sell and what your team is, if it's an art-heavy narrative experience where there's more than 1 artist, an engine would help. If you are building new tech that needs to run fast with no gotchas, a custom engine is a place to start. Ideally a custom engine can be abstracted from the rendering and input into a new framework, even if it needs to be plugged into Unity at the last minute for cross compatibility
@djtomoy
@djtomoy Ай бұрын
unless it will increase my profits i don’t see the point
@gnatinator
@gnatinator Ай бұрын
Misleading. Fine for 2D games but for anything beyond basic 3D: the renderer, platform support and physics are things which will kill you.
@pepeien
@pepeien Ай бұрын
Vulkan is a serial killer for sure
@TheExtremeCube
@TheExtremeCube Ай бұрын
@@gnatinator physics will definitely not kill you, you just integrate a physics engine like Physx or jolt, rendering is more complex and can't say much about platform support especially consoles
@panampace
@panampace Ай бұрын
Missed the point. Nobody is making their own renderer/physics engine - that’s what libraries are for.
@rayecast
@rayecast 10 күн бұрын
Lol, 3D rendering technology has been around long before Unity and Unreal. It has never been easier to get into graphics programming. All the resources are available for free, you do NOT need to reinvent the wheel, and so the only one who would make this claim that "IT WILL KILL YOU TO MAKE ANYTHING BEYOND BASIC 3D" has never even tried and is only speaking from a place of personal insecurity and incompetence.
@gnatinator
@gnatinator 10 күн бұрын
@@rayecast It's the stuff associated with the 3D stack, not the actual 3D. Been doing 3D games in OpenGL/SDL since you were in your mums womb.
How to Make and Self-Publish a Game in 12 Months
29:58
GDC 2025
Рет қаралды 743 М.
Stop Getting Lost: Make Cognitive Maps, Not Levels
26:27
GDC 2025
Рет қаралды 206 М.
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
How Strong Is Tape?
00:24
Stokes Twins
Рет қаралды 96 МЛН
choosing a game engine is easy, actually
15:08
samyam
Рет қаралды 623 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 1,1 МЛН
Why I Ditched Godot For Unreal Engine
9:04
AueSip
Рет қаралды 15 М.
Why You Shouldn't Make A Game Engine
25:39
Theodore Bendixson
Рет қаралды 17 М.
Practical Creativity
1:04:25
GDC 2025
Рет қаралды 314 М.
Microservices are Technical Debt
31:59
NeetCodeIO
Рет қаралды 690 М.
Optimizing my Game so it Runs on a Potato
19:02
Blargis
Рет қаралды 681 М.
Game Design Documents - a Minimalist Approach 🧘🏽
37:44
Indie Game Clinic
Рет қаралды 49 М.
Cursed Problems in Game Design
52:00
GDC 2025
Рет қаралды 786 М.
Designing Radically Non-Linear Single Player Levels
27:41
GDC 2025
Рет қаралды 158 М.