That's why he said making an engine to learn how and making an engine cause you can't find an engine that will express your ideas properly are both valid reasons to make a game engine. He was saying only a dip decides they are going to waste game creating time on making a new game engine for something that could be dumped out of unity or unreal in a month.
@omerhalitipekci2256 You might not need to make one but making one will teach you a big set of skills. Also there's so many resources available on "how to make a game engine" that simply watching a series through with some popcorn will give you ideas.
Programming a game is already hard enough, but making an own engine for it is a whole another level. Respect to devs who do that, especially Indie devs. Even AAA game Studios nowdays still use 10-20 year old game engines and just update them overtime.
@@OkOkOkIMightKnowYou Unity is still the most technically advance general purpose engine. Unreal is the most *powerful* general purpose engine. You can code basically everything in Unity with basekit or addons, but will falter on performance at times. Unreal has slightly less option with basekit or addons, but can do pretty good on performance with the available options. For a quick example, Unity thrives on 2D, varied lighting, and Rendering just as a quick example, meanwhile Unreal has difficulty on them, making a lot of Unreal Games look the same-y 3d graphics game. Hopefully Godot keeps getting their support and catches up to the years of Upgrades Unity has had.
Teardown is another great example. The ENTIRE engine, from the raytraced voxel rendering to the super advanced physics were written mostly by one guy, Dennis Gustafsson.
Teardown is genuinely one of the few games I'd consider a 10/10. In the sense that there aren't really things I can complain about it. I love everything about it.
I don't sell games or anything, but I used to major in mathematics, so I needed to program software to visualise how different phenomena act, which gets increasingly difficult when working with certain aspects of geometry and topology and such (my field of interest). The way I got my students to understand various concepts (some older students at my University can get employed as part-time tutors for first and second years) was to make it interactive, where you could set the geometry of the world, and then observe how things changed. This was an issue, because I needed to find a way to not only visualise non-euclidean geometries, but also higher dimensional ones at the same time. Because of this, I found it was easiest to make my own engine to run these things on, because most of the functionality had to be programmed from scratch. All those students passed that year, so I'd like to say I had something to do with it :)
Factorio and Teardown are games I adore not just because of their content but because they were able to hyperfocus their game engines and optimize them super well, and I want to be able to do that.
I hear you say that Fez is a 2D platformer in a 3D world, and I can't help but think of this really old NES game Castelian. I know not technically a 3D game, but I'll be damned if that game didn't try its best to make you think it was 3D. Absolutely crazy platformer.
That's the way I feel about it. I don't particularly care about actually making a game, but I've been kicking around the idea as kind of a hobby so if I do I'll probably do the whole thing from scratch just because.
@@Enter_D1scI have a low-end PC and Unity ran on it, but Godot did not. Also, the learning curve for Godot seems harsher than Unity's, imo... idk though, I'm still learning stuff, currently in Love2D and having a much nicer time.
Unity was actually my first thought. I don't know how long ago Fez came out, but I could totally see how you'd accomplish that effect in Unity, surprisingly easily. (To clarify, I'm not saing making the game would be easy, just that building the Unity framework for that kind of effect seems straightforward)
@@fabians7751 Yeah, but just because Unity existed, didn't necessarily mean it was at the state it is now, where it would be straightforward to implement Fez's mechanics. Or it could even be something unrelated that required different features. Or platform support. Or Unity's monetization scheme at the time. I'm not intending to do a deep dive into Unity's capabilities or modifiability at that time. Thanks for the info, though.
@@shauas4224 So Unity didn't have 2D physics support till the 4.3 engine release. This was released in Novemeber 2013. Fez came out in May 2013 on steam. Some places had it in 2012. Unity was adding a lot of 2D after 4.3, but spread over multiple releases to give proper bug testing for new features at that time.
also worth it to learn how exactly many of other engines' native features work, what methods tend to be more performant, how to say extend some of them, etc
I'm not sure if this counts as 2.Features but you could also just modify a game engine like Titanfall and Apex Legends which both use a heavily modified version of the source engine. I remember when apex first came out you could bhop while using consumables and keep a lot of momentum since by default you would get slowed down a significant amount if you were just trying to run on the ground while healing. Shortly after they patched most if not all of it's functionality. And while I was writing this comment I did some more research and they supposedly "buffed" it at one point but at that point it was literally the equivalent of driving a car, taking it's wheels off cause it went to fast and then putting square blocks on it for tires.
@@octoson5944 TL;DR: How to make an engine varies a lot with what you want and how you wanna do it. IMO it's best to learn from using existing engines, using lower level frameworks, experience and practice. I realize this doesn't answer your request for resources, so sorry for that, but I hope it still helps in some way. I believe it would be hard to find some resource that accurately describes the process of making an engine because that is very dependent on the goals and methods of each engine. Of course there's some basic stuff, you probably want a way to render things, manage objects, do physics, etc., but that's about all that you can say that applies to most engines. How exactly you implement each of these can vary wildly, with so many different libraries and methods and techniques for all of them that will all also depend on what you want for your engine in particular. In my opinion, if you want to make an engine or learn how that process would work, you should learn from how other people did it and through practice. If you use one or multiple engines for an extended period of time, you start to get at least a basic feel for how it works under the hood and what an engine even needs to do in the first place. Also, from experience you can learn what you want or don't want for your engine. If you work with lower level graphics, physics, etc. you can understand how you would implement the systems yourself, and also what kind of abstractions the engines have to simplify this process, which you would also have to make for your own engine. What I did and would recommend is to make simple games without an engine, using a lower level framework (raylib is great!). Each time it felt like I was making the starting ground for an engine for each game, building abstractions on top of the framework. It's also always very useful to just look at how existing engines do things, Godot is great since it's free (as in freedom and as in free beer) and open source. Doing all this should give a great idea of how an engine works and what it would take to build one, at least that's how I learned what I needed to start building my own :3
@@octoson5944 Which type of game are you trying to build, 2d or 3d, multiplayer or singleplayer. Then question is why you want write engine, its for learning, curiosity, or you want just make your game?
I'm making an engine because there's many little things that get in my way a lot in any game engine, and I feel like if I make something myself I can make it much more convenient for my own workflow. While part of it is also to learn, I feel like that's also a valid reason.
If you’re looking at it from an opportunity cost perspective, will those inconveniences cost you the same amount of time building the engine will? If so then it makes sense to make your own.
Fez was made using the XNA framework. While most of the code is "custom" C#, XNA does do a lot of the heavy lifting compared to writing a game in C++ from scratch.
True. It does give you a pretty big leg up over starting with hello world, especially if you don't already have a lot of knowledge implementing things that are commonly done with engines these days. Also, XNA is pretty small, and the things it does aren't that complicated. I think Raylib does quite a bit more, for example. I haven't touched it in way over a decade, but from my memory, XNA is something like GLFW + GLM + a very basic rendering and asset management layer. I don't think there's any physics, pathfinding, lighting setup/baking, scene or prefab systems, GUI layer, particle systems, etc.
@@blarghblargh you're absolutely right. It mainly simplified the rendering pipeline without having to do all that DX stuff. I recently saw that the most recent PC release of Fez was built with FNA.
Having worked in XNA, yeah... it helps. But I would not call it a complete engine. It is not like using Unity or Unreal, where you just get in to it. But is a pretty good way to learn things or if you want to have something a bit more basic to start with. Well, was a guess. Since XNA is not supported by Microsoft anymore. Though depending on what project you're making, this may or may not be a problem. (Of course for all you out there with an Ego you of course only work with assembly! Write everything from scratch! Just like Chris Sawyer did with Rollercoaster Tycoon! And even this is a bit of cheating... after all... you did not build the hardware, did you? You lazy hack!)
I love how accurate Thor is on everything. When he mentioned Fez I got a bit scared. I'm an old time gamer and most people don't realize when the revolutionary things in gaming took place. Fez really was revolutionary at the time.
As someone who doesn't know shit about cars or software but who does have an English degree, both types are real engines because an engine is merely the noun form of "ingenious"; *basically the word "engine" can be used to refer to anything manmade that facilitates a specific function.* Your engine uses combustion to make a vehicle run. Thor's engine uses code to make a game run.
This is really true, I've made loads of toy engines in OpenGL for the past year and not only is it really fun to have full control over the way graphics are drawn (for me at least) but it also runs ridiculously fast. I can render a small scene with basic lighting at over 8000fps on a midrange GPU
I used to feel this way, but I got tired of debugging weird graphical glitches, I still wonder if one of them is a driver bug I happened to stumble on.
@@SomeRandomPiggo lol I can't get my laptop's 3060 to push a blank scene at any more than like 1700. maybe it's a resolution thing (I'm at 1440p and maybe it takes a while to update the framebuffer and do all the CPUGPU communication)
The second part I agree, but the first part no. The world is fun and interesting because we are all different you and me. Imagine if everyone was exactly the same. The world will be boring! The world is interesting because YOU are in it. Much love.
@@DuhBla I think it was more about mentality and less about having carbon copies of people. Meaning having this mentality of humility and eagerness for growth would be good if it were more widespread and applied across the innumerable different personalities of the world. Not that everyone should be a 1:1 recreation of this person.
I’ve spent the last few months making a simple game engine and it has been one of the most rewarding things I have ever done, ever. Games are why I wanted to learn to program, and to build something like that from scratch made so much of my journey worth it. Even if I never make a game with it, and even if I do make a game that nobody plays, it will have been worth it.
That's incredible, man. I played fez a couple of years ago and always thought it's such an underrated game. Probably the game with the hardest puzzles ever, and the best part is that you can complete the game without solving even one of them.
Hopefully indie studios do so well in the face of the unparalleled greed and endless evil we suffer from big publishers that they become the most successful studios, hopefully without picking up the amoral practices that made people grow to loathe the likes of EA, Ubisoft, Activision-Blizzard, WB, and all the rest of the industrial diseases.
I remember playing fez on I think the Xbox 360 and I don’t think I ever got far, but I remember it being really fun. I forgot about it until now so thanks for reminding me of its existence!
If anyone want to learn how to make a game engine the youtuber Travis Vroman has a 200 hour long series on making an 3d engine in pure c. Its very good.
To be fair, there is the 4th reason, which is the fact that it is more fun AND more efficent to work in your own engine. It takes a lot of time and effort, so usually it's not worth it, but if you make a game engine it will make game development way more fun
I do it for ego. It feels good to say that the whole codebase of my games is mine and mine alone. I'm happy and proud of it. Saying that ego is just a bad thing is kinda stupid in my opinion, it can be a motivation factor.
"and you only think real game developers make their own engines" - Thor That really separates ego into two groups, and I don't think the mindset of "I can and I will be proud" is bad. Ego is too vague of a term.
Is the whole codebase really all yours? Did you make the gl wrapper? The libraries to interface with the operating system? The programming language itself? Unless you've written everything from the ground up starting with only machine code you can't say that the codebase is yours alone. We stand on the shoulders of giants and it's moronic to disregard that.
@@theairaccumulator7144 The programming language isn't considered to be a part of the codebase. Programming languages tend to come with standard libraries that interface with the OS, and so those aren't a part of the codebase either. In fact most people would consider using of libraries, when used with care and thought, to be okay too and still allow you to claim your codebase is entirely yours. What is really moronic is to get hung up on literal meaning instead of the real meaning behind words and then saying that the meaning you read from the words is moronic.
He didn't even show the real weirdness of the game. If I remember right, on ng+ you unlock a first-person camera and there are hidden secrets on the floors.
Fez was incredibly popular when it came out because of it. Indie Game The Movie is a documentary about this and 2 other games that I highly recommend if you are interested.
I'm currently making a game engine, with features being the reason, and so far it's daunting. On a side note, I see some devs stating that they make their own engines to avoid making payments to the game engine owners.
Avoiding royalties is a valid reason to make your own engine. Just depends if you have the time and resources necessary to actually make an engine. It's a very time-consuming task so paying to use an existing one may be the better option.
Whatever feature you're trying to implement, Unity can probably do it easily with minimal scripting. Nothing falls into the 2nd category nowadays. It's sometimes the 1st but mostly the 3rd.
@@nick15684 it's also kind of dumb. You're assuming that your game is gonna be so big that taking that hit with the royalties will be a net detriment which I think relates neatly to an ego issue. The royalty issue is really only a concern if you're an established studio, your game is revolutionary kinda like Fez was, you have a huge marketing budget or you simply get insanely lucky but your game has to be good either way.
It's crazy to think Ace Combat used to operate on a propreitary engine up until Infinity. Skies Unknown ran on Unreal and I was blown away by the fact that Project Aces no longer had to maintain the old Ace Combat engine.
From what I understand, a lot of solo devs make their own engines because they’re also picky. They don’t like working with code that’s not theirs and would rather their entire environment be something they made so it’s personalized to them specifically. I have a friend like that
A similar reason is why I abandoned any programming in Java. Java forces you to use classes, and I really didn't like that. Now, classes are something I can use at times, but for many simple operations they're overkill and even annoying for me.
Reason number 2 rarely makes sense because in addition to the big, heavy engines, there are lightweight frameworks that only do basic things but you don't have to do everything from scratch and stop halfway through
i want to make an engine for two reasons: 1. im clearly a masochist 2. my game needs to run in 256KB of RAM (excluding backend libraries, code, and const data)
I think every game dev should try writing an engine every now and again. It's good to know in the rare event you actually need to write one, and it's also good to understand why we very seldomly have to.
There's a certain irony to talking about Fez having a unique engine because of pragmatism but the guy who made it being one of the most egocentric people in all of indie gaming lol
@@marcosm1223 A lot of stuff from his twitter being an absolute cornucopia of posturing and arrogance for years to him making some real blanket statements about Japanese games. He's been pretty much out of the industry a long time now, I think he was someone who didn't take criticism well while also loving to give it out in very rude ways. Hoping the time off the internet helped him grow at least, but Phil Fish was up there with Jonathan Blow as two of the biggest blowhards in the trailblazing era of indie games.
@@bmac4 Worth mentioning that the 'criticism' included a lot of 4chan harrassment, he was the Assigned Bully Target for a while. He handled it poorly, but no-one handles that stuff well.
I mean, there are several perfectly valid reasons why you would make your own engine. Not having to deal with royalties or payments, designing it to work exactly to the workflow _you_ want, and implementing features the exact way _you_ want them. You can make a way more streamlined engine that isn't bloated with 20+ years of things you *_don't_* need. Sometimes it is possible to do things in existing engines, but it would be very convoluted to implement, or non-ideal. In such cases, it can be worth it to just start from scratch. Yes, making your own engine is a very time-consuming task, but it's also an incredibly valuable way to learn a lot of skills, and it will give you an amazing top-down view of the whole end-to-end process of game development. You'll be an expert at any engine you make, so there's no learning curve in terms of how to use it once you make it.
I totally agree, designing the game engine from the ground up to suit your game is really valuable. A custom engine gives you control and freedom. You control the limitations of the engine and you control the development workflow. Working with a custom engine really made me realize how often working in Unity just makes things more frustrating, more complicated, because you have to implement things in the 'Unity' way. Especially with indie development I'd still say an off-the-shelf engine is usually the way to go, but custom engines serve a purpose beyond the 3 points mentioned.
@@cophfe starting devs should not be told that making your own engine is valuable. We don’t tell them to make your own assembly language or CPU… sometimes it’s more useful to faff about in Godot first.
@@lucbloom Well obviously, no one is saying a *_beginner_* should make their own engine. No one I've ever watched has ever said that. You have to be already way way beyond that stage to even attempt to make one. For starters, they probably don't even know how to code, or know only the most foundamental concepts, and they probably have no idea how the graphics pipeline works. It's an advanced topic, but very valuable to learn once you're ready for it.
Honestly, the main thing is just none of my games should need to have minimum system requirements a third of what modern game engine suites are asking of it. I'd be incredibly happy if they could run on Windows 95 or Mac OS 9 with 1998 era hardware, and only a future concept is crazy enough I could see a bump up to 2002. But since Godot demands of me Windows 7 and an OpenGL 3 card and all that, I don't have the option. I could try to revive Crystal Space 0.15...
Reason number 4: I'm so stupidly stubborn I'd rather make my own from scratch, know how it works and customise it at the C level whenever I need a new tool than having to learn how someone else decided to make theirs work.
Ok to be fair Fez properly had a good dose of the 3rd reason mixed in there Edit: I have been filled in that Phil fish wasn't the one who actually made the engine. However, as creator and thus the one decided what gets made and how, I believe my comment still applies
"It was a 2D platformer inside a 3D game, no one had ever done that before." Actually Super Paper Mario did that first. Both games fucking rule though, I'm not down playing Fez.
Paper mario is 2d sprite in an 3d envoirment (usually with a fixed camera angle) using billboarding, is a different technique. And in fact a lot of games have done it LONG WAY BEFORE paper mario, a lot of PSX games like the original FF tactics or Suikoden 2 and a lot more.
And now also Animal Well, cuz putting such game with so many cool little features and dynamic surrounding in 38 megabytes feels like it's own kind of miniature art.
There's a 4th reason now, obviously. Because big engine devs can take your s*it through one sided agreements that they can change at any time without a game dev's consent.
If that's a concern for you, there are very capable open source engines like Godot, Flax, etc. So you're still able to make a game with a pre-existing engine. The reasons for making your own are still the 3 he described.
@@enderduck4253 The idea that the open source nature of these engines can't be changed on a dime is unproven. I'm not a lawyer so maybe there's something for it; But it seems unlikely given the nature of the underlying problem.
@@supersmily5811 it absolutely can't be changed on a dime. First off, way too many forks and cloned copies of these repositories exist for the code to suddenly be obfuscated, so it would be hard to stop people from getting around that. Second, if some contributor to a project tried to do that, they'd find themselves in a legal battle they couldn't possibly hope to survive. There are a bunch of reasons for this, such as the fact that the license agreement is tied to the version of the product. So if they changed the licensing agreement, you'd need to use a version of the product that released with or after the creation of the new license, so you could just hold on to your version and never touch the new license. Since devs generally don't update engine versions in the middle of a project, you'd normally be safe for at least the duration of the project you're working on. But the biggest obstacle is that the people you try to steal the engine with aren't the only contributors to it. For popular open source engines like Godot, there are thousands of people all over the world that have written code and built features for it. To try and create an organisation and sell that code would be daylight robbery. I suppose they could track down every contributor and get them to agree to the project being used by a for-profit organisation in exchange for some compensation. But even if they somehow magically accomplished that, they'd be starting their business with thousands of people expecting payment for their work on day 0. And again, we run into the problem of a lot of the users having clones and forks of the repository. You change the license agreement suddenly and run away, making the code private, some people go ahead and publish a version of the code with the previous license. And there is no way, ethical or otherwise, that you could ever stop your old users from doing so. If you were to find a smaller project or one that simply publishes the code without accepting user contributions, then this is absolutely a valid concern. But with the big open source projects like Godot, Blender, etc. It would be a bit paranoid to worry about it. Nobody could ever go "I feel like turning this open source project into a for profit organisation" and hope to get away with it.
It's also good to remember, just because something is dumb doesn't mean you shouldn't do it, if you have time to waste and are not gonna hurt someone, just go ahead and do your own engine! Even if it's to presume to your friends you might use it someday
My reason for making my own is a little bit of all three. But mostly the first two. The only ego thing involved is saying "It can't be _that_ hard to make this feature". Then learn how hard it actually is. (I have made game engines before)
@@natescode Except it is. "I don't wanna deal with that/that company so I make my own engine" is ego. I hate unity, but thats why I playing around with Godot and not creating custom engine.
1 & 2ish. My dream game, and some of the games leading up to it, require a custom engine. Pretty much all the projects I'm currently working on, within reason of success without another required project happening first, can be done in others. Actually been thinking, and may try to build Godot differently, and either use that, or learn from it, or Ship Of Theseus Godot into my engine.
Tell number 3 to Sean Murray. - He worked on the NMS-engine in secret for like a year or whatever, just to make that game, and then they developed that game, the launch-version, in a few years with about 4 people.
There's like many dev teams that small and to why we get zero details or updates for months on end to suddenly *HEY GAMERS UPDATE* or something lol to the just sheer flex of the 3rd point artist have that, we all *WANT THAT* but i just want to learn and share silly know how like thor does to us with these shorts!
Same, I like seeing how every piece of code fits together to make a complete game, most engines abstract what's going on under the hood a bit too much for me
@@manwithnewname YES. Scrolling until I saw it. My game isn't very complex, so I feel comfortable writing it in C using libraries. Some say "just use godot" but I want to code, not learn an engine. Godot has very strange bugs and crashes every few times I use it for basic stuff, but I'd rather make my own engine than have everyone on the internet say I'm the only guy with an issue. I don't want to learn how Unity or Godot use nodes or signals, I don't want to learn c# or gdscript, and I don't want to worry about the engine itself needing updates ON TOP OF my game's versions. Modern engines are good enough for many people, but they still suck. Objectively.
You will never find more weirdass algorithms in one spot than a game engine. Normal trees, quad trees, so mamy graphs, clustering, a bazillion variations of path finding, and all of it needs to be done very very efficiently or everything lags. You even need to use the tools you make very efficiently or everything will lag. Not to even mention graphics magic that I can't even begin to understand.
For me, there's actually a fourth reason (maybe a dumb one) that led me to develop several small games from scratch instead of using another engine: I don't know how to use any game engine, but I do know how to code in {favorite programming language}. So making my game from scratch allowed me to get things done faster without having to learn how to use a game engine. Every time I tried learning how to use Unity or Godot to make the game I have in mind, I gave up after
I remember watching tutorials and learning about game dev a few years ago and it was absurd how many people recomended creating your own game engine to beginners. Its like saying you gotta build your own canvas if you want to paint or make your own guitar if you want to be a guitarist.
I've heard somewhere that making your own engine also means that you know everything that happens, thus making bugs easier to solve, and that the big kicker is that you won't suddenly lose everything from an upsate since you choose when to change it. Plus, optimization is easier when you control what goes in it. I'm not sure where I heard this or how correct any of this is, but for someone being serious about game dev, it sounds like an interesting avenue to take.
I'm helping some friends work on a game engine and we have all 3 reasons. The ego and doing something else we cant do with other engines parts is writing it entirely from scratch, so we can make it public domain. I think we earned our bragging rights, but we're still humble about it and we genuinely want to create a high quality engine for everyone to use.
Instructions unclear, im now running unreal in my toyota prius
But does it play Doom? :D
@@danielodonnell360 Probably not, but I bet it could play Outrun in a Crysis.
You kid, but Rivian vehicles do actually use Unreal Engine 5 for much of their UI
@@VirtualTrucker74 Frames of Doom can be rendered on bacterium, I think he can get the game working on a car.
it can do that sometimes
We might not need to make an engine. But we should learn how it is done.
That's why he said making an engine to learn how and making an engine cause you can't find an engine that will express your ideas properly are both valid reasons to make a game engine. He was saying only a dip decides they are going to waste game creating time on making a new game engine for something that could be dumped out of unity or unreal in a month.
@omerhalitipekci2256 You might not need to make one but making one will teach you a big set of skills. Also there's so many resources available on "how to make a game engine" that simply watching a series through with some popcorn will give you ideas.
you should learn how to make clay bricks so you dont freeze to death in the winter.
@@durden91tyler There's always 1 guy who derails the conversation onto clay bricks. Who is paying you people
So what you are saying is you should make one. 😅
Seriously the guys who made an engine to solve a design they wanted are legends. Long live those crazy devs.
Programming a game is already hard enough, but making an own engine for it is a whole another level. Respect to devs who do that, especially Indie devs. Even AAA game Studios nowdays still use 10-20 year old game engines and just update them overtime.
That's 'cause they mostly make the same/similar sort of games they did 10-20 years ago. Why make a new engine if the mechanics are the same?
Unreal is a 20 year old game engine updated over time. It’s the most technically advanced general purpose game engine rn
@@OkOkOkIMightKnowYou Unity is still the most technically advance general purpose engine. Unreal is the most *powerful* general purpose engine. You can code basically everything in Unity with basekit or addons, but will falter on performance at times. Unreal has slightly less option with basekit or addons, but can do pretty good on performance with the available options.
For a quick example, Unity thrives on 2D, varied lighting, and Rendering just as a quick example, meanwhile Unreal has difficulty on them, making a lot of Unreal Games look the same-y 3d graphics game.
Hopefully Godot keeps getting their support and catches up to the years of Upgrades Unity has had.
Looking at you, Bethesda.
my friend coded a rudimentary physics engine back in high school brother is cracked
Teardown is another great example. The ENTIRE engine, from the raytraced voxel rendering to the super advanced physics were written mostly by one guy, Dennis Gustafsson.
I remember when the game was just a tech demo from the guy all these rears before.
I love Teardown
@@TeardownDestructionClipswho could have thought
i had no idea they done all that too. i probably buy the game just cause that lol.
Teardown is genuinely one of the few games I'd consider a 10/10.
In the sense that there aren't really things I can complain about it. I love everything about it.
I don't sell games or anything, but I used to major in mathematics, so I needed to program software to visualise how different phenomena act, which gets increasingly difficult when working with certain aspects of geometry and topology and such (my field of interest).
The way I got my students to understand various concepts (some older students at my University can get employed as part-time tutors for first and second years) was to make it interactive, where you could set the geometry of the world, and then observe how things changed.
This was an issue, because I needed to find a way to not only visualise non-euclidean geometries, but also higher dimensional ones at the same time. Because of this, I found it was easiest to make my own engine to run these things on, because most of the functionality had to be programmed from scratch. All those students passed that year, so I'd like to say I had something to do with it :)
BASED
holy shit
i get that "higher dimensional space" is an actual concept in mathematics but i got powerscaling brainrot flashbacks when i read that lol
Neat. 👍
@@Vapor817 honestly same lmao
Hearing "falling everything engine" just unlocked a bunch of memories of the falling sand games i played when i was younger
That's basically the pitch of Noita: those sandboxes, but also you're a wizard.
Noita is actually inspired by that exact game. One of the devs talked about it in a presentation about the making of Noita IIRC
Noita: falling sand games if the sand also killed you
@@Dracomancili wizard sandspiel
falling sand, hell of falling sand, powder game, powder game 2
good fuckin times
Factorio and Teardown are games I adore not just because of their content but because they were able to hyperfocus their game engines and optimize them super well, and I want to be able to do that.
Are you subscribed to FFF too?
Who?
@@osrevad factorio Friday facts
@@nobleradical2158 yes, a peek into that game’s development at a level anyone can understand. Lots of game design, audio, UX, and technical topics.
@@nobleradical2158iirc it’s friday fun facts
I hear you say that Fez is a 2D platformer in a 3D world, and I can't help but think of this really old NES game Castelian. I know not technically a 3D game, but I'll be damned if that game didn't try its best to make you think it was 3D. Absolutely crazy platformer.
As a nerd of cars and computers making an engine would be a fun albeit tedious and time consuming learning experience
But it could be fun
I swear these “as a ____” comments could be cut down in half every time lol
@@citiestoashas a reader of comments I agree
That's the way I feel about it. I don't particularly care about actually making a game, but I've been kicking around the idea as kind of a hobby so if I do I'll probably do the whole thing from scratch just because.
@@ShengFinkperfect 😂👏🏻
Don't forget sheer masochism, that is often a factor for programmers too!
Hooray! Suffering :3
@@zackbuildit88real!! :3
I said that too after I completed my first AOT compiler. Fun times
@@conanbdetective why did my brain read this as “attack on titan compiler”
Me making 3d graphics with no trig because "It will be a fun challenge"
Reason 4: No predatory charges from the engine companies.
Reason 5: We can finally stop "killing _stop killing games_ " with our engines!
Godot pretty much makes this reason invalid unless you don't like the physics that much
@@Enter_D1sc but then you could be rewriting just that part instead of rewriting everything
@@Enter_D1scI have a low-end PC and Unity ran on it, but Godot did not.
Also, the learning curve for Godot seems harsher than Unity's, imo... idk though, I'm still learning stuff, currently in Love2D and having a much nicer time.
@@gaetanodepaola2ndchannel179 That seems impossible since Unity is way more resource heavy than Godot
That "Falling Everything" engine really takes me back to LIERO
Just here to say the same, but you beat me to it
Both are Finnish. I also used to play that as a toddler
@@YamiZee lieroo ja quakee
Thankyou soooo much, could never remember its name but yesss thankyou
Liero, minebombers, tapankaikki 👍
“Now it’s possible in unity” Thor took all of his might to say that
Unity was actually my first thought. I don't know how long ago Fez came out, but I could totally see how you'd accomplish that effect in Unity, surprisingly easily. (To clarify, I'm not saing making the game would be easy, just that building the Unity framework for that kind of effect seems straightforward)
@@darksunrise957 Looking it up, Fez came out April 2012. Unity was in version 3.5.1 at that time
@@fabians7751 oh man that is ancient. I'm curious though, what was the limitation in old versions that made fex-like world impossible to achieve? (
@@fabians7751 Yeah, but just because Unity existed, didn't necessarily mean it was at the state it is now, where it would be straightforward to implement Fez's mechanics. Or it could even be something unrelated that required different features. Or platform support. Or Unity's monetization scheme at the time. I'm not intending to do a deep dive into Unity's capabilities or modifiability at that time.
Thanks for the info, though.
@@shauas4224 So Unity didn't have 2D physics support till the 4.3 engine release. This was released in Novemeber 2013. Fez came out in May 2013 on steam. Some places had it in 2012. Unity was adding a lot of 2D after 4.3, but spread over multiple releases to give proper bug testing for new features at that time.
also worth it to learn how exactly many of other engines' native features work, what methods tend to be more performant, how to say extend some of them, etc
I'm not sure if this counts as 2.Features but you could also just modify a game engine like Titanfall and Apex Legends which both use a heavily modified version of the source engine.
I remember when apex first came out you could bhop while using consumables and keep a lot of momentum since by default you would get slowed down a significant amount if you were just trying to run on the ground while healing. Shortly after they patched most if not all of it's functionality. And while I was writing this comment I did some more research and they supposedly "buffed" it at one point but at that point it was literally the equivalent of driving a car, taking it's wheels off cause it went to fast and then putting square blocks on it for tires.
My reasons:
1. I like doing things from scratch.
2. I like learning.
3. Because I can.
based!
Building top down 2d mmorpg game from scratch working alone will take you few years :)
do u have any resources for making a game engine? ive been wanting to at least learn how it works but i havent been able to find many good resources.
@@octoson5944 TL;DR: How to make an engine varies a lot with what you want and how you wanna do it. IMO it's best to learn from using existing engines, using lower level frameworks, experience and practice.
I realize this doesn't answer your request for resources, so sorry for that, but I hope it still helps in some way.
I believe it would be hard to find some resource that accurately describes the process of making an engine because that is very dependent on the goals and methods of each engine. Of course there's some basic stuff, you probably want a way to render things, manage objects, do physics, etc., but that's about all that you can say that applies to most engines. How exactly you implement each of these can vary wildly, with so many different libraries and methods and techniques for all of them that will all also depend on what you want for your engine in particular. In my opinion, if you want to make an engine or learn how that process would work, you should learn from how other people did it and through practice. If you use one or multiple engines for an extended period of time, you start to get at least a basic feel for how it works under the hood and what an engine even needs to do in the first place. Also, from experience you can learn what you want or don't want for your engine. If you work with lower level graphics, physics, etc. you can understand how you would implement the systems yourself, and also what kind of abstractions the engines have to simplify this process, which you would also have to make for your own engine. What I did and would recommend is to make simple games without an engine, using a lower level framework (raylib is great!). Each time it felt like I was making the starting ground for an engine for each game, building abstractions on top of the framework. It's also always very useful to just look at how existing engines do things, Godot is great since it's free (as in freedom and as in free beer) and open source. Doing all this should give a great idea of how an engine works and what it would take to build one, at least that's how I learned what I needed to start building my own :3
@@octoson5944 Which type of game are you trying to build, 2d or 3d, multiplayer or singleplayer. Then question is why you want write engine, its for learning, curiosity, or you want just make your game?
#2 is 70% the reason when there’s a #1
#3 ties it all together 😂
Yeah, halfway through #2 you'll there's a good chance you'll probably realize it would have been easier to fit it into an existing engine, somehow...
I'm making an engine because there's many little things that get in my way a lot in any game engine, and I feel like if I make something myself I can make it much more convenient for my own workflow. While part of it is also to learn, I feel like that's also a valid reason.
If you’re looking at it from an opportunity cost perspective, will those inconveniences cost you the same amount of time building the engine will? If so then it makes sense to make your own.
Instructions unclear, I have build a V8 in a cave with a box of scraps
You'll do great in the mad max universe
Our Tony Stark at home: lvl 100 Mad Max
"TONY STARK WAS ABLE TO BUILD THIS IN A CAVE, WITH A BOX OF SCRAPS"
Tony Stark would be proud. Obadiah Stane not so much.
They got JavaScript in there?
Fez was made using the XNA framework. While most of the code is "custom" C#, XNA does do a lot of the heavy lifting compared to writing a game in C++ from scratch.
True. It does give you a pretty big leg up over starting with hello world, especially if you don't already have a lot of knowledge implementing things that are commonly done with engines these days.
Also, XNA is pretty small, and the things it does aren't that complicated. I think Raylib does quite a bit more, for example.
I haven't touched it in way over a decade, but from my memory, XNA is something like GLFW + GLM + a very basic rendering and asset management layer.
I don't think there's any physics, pathfinding, lighting setup/baking, scene or prefab systems, GUI layer, particle systems, etc.
@@blarghblargh you're absolutely right. It mainly simplified the rendering pipeline without having to do all that DX stuff. I recently saw that the most recent PC release of Fez was built with FNA.
Having worked in XNA, yeah... it helps. But I would not call it a complete engine. It is not like using Unity or Unreal, where you just get in to it. But is a pretty good way to learn things or if you want to have something a bit more basic to start with.
Well, was a guess. Since XNA is not supported by Microsoft anymore. Though depending on what project you're making, this may or may not be a problem.
(Of course for all you out there with an Ego you of course only work with assembly! Write everything from scratch! Just like Chris Sawyer did with Rollercoaster Tycoon! And even this is a bit of cheating... after all... you did not build the hardware, did you? You lazy hack!)
@Cythil for those taking notes, this is how you make a comment. Dayum
Still XNA is not a Game Engine.
Your content is very amazing and wholesome. Thank you! 🙏🏻
I love how accurate Thor is on everything. When he mentioned Fez I got a bit scared. I'm an old time gamer and most people don't realize when the revolutionary things in gaming took place. Fez really was revolutionary at the time.
Old time? 2012 is old in the gaming mythos? I'm fucking ancient then.
Fez was, and remains, a work of art. PF went a bit nutso but the game is dope
Knowing Phil Schneiders statements, i see the strong paper Mario vibes in Fez
@@andrewclastic2835 yeah i was legit worried hearing fez because of phil fish
Me forgetting this is DEVELOPER OF GAMES talking, so I was casually listening to this thinking about REAL ENGINES💀👍
Well, it's a sign that you need to learn how to build an engine, plop that sucker in 96 miata, and smoke the competition with it. Create a sleeper.
@@joshuareed8243 Miata like the boxer? 😮
You can also build your own engine using cans and stuff. I had a thermodynamics professor that did that because he really liked cars.
Get the tooling ready for that VR30 😂
As someone who doesn't know shit about cars or software but who does have an English degree, both types are real engines because an engine is merely the noun form of "ingenious"; *basically the word "engine" can be used to refer to anything manmade that facilitates a specific function.* Your engine uses combustion to make a vehicle run. Thor's engine uses code to make a game run.
Thanks!
Also control, if you make your game fully from scratch you have complete control over how it all works and have less bloat you don't need
This is really true, I've made loads of toy engines in OpenGL for the past year and not only is it really fun to have full control over the way graphics are drawn (for me at least) but it also runs ridiculously fast. I can render a small scene with basic lighting at over 8000fps on a midrange GPU
I used to feel this way, but I got tired of debugging weird graphical glitches, I still wonder if one of them is a driver bug I happened to stumble on.
*cough* xray engine *cough* *cough* frostbite *cough* creation engine
And in the same vein as control, you don't have to worry about the ToS changing suddenly
@@SomeRandomPiggo lol I can't get my laptop's 3060 to push a blank scene at any more than like 1700. maybe it's a resolution thing (I'm at 1440p and maybe it takes a while to update the framebuffer and do all the CPUGPU communication)
Thor we need 7 billion more of you. Every damn time I watch your shorts I just feel fucking better, THANK YOU
The second part I agree, but the first part no. The world is fun and interesting because we are all different you and me. Imagine if everyone was exactly the same. The world will be boring! The world is interesting because YOU are in it. Much love.
@@DuhBla I don't think it was that deep, but you do you.
@@DuhBla I think it was more about mentality and less about having carbon copies of people.
Meaning having this mentality of humility and eagerness for growth would be good if it were more widespread and applied across the innumerable different personalities of the world. Not that everyone should be a 1:1 recreation of this person.
I’ve spent the last few months making a simple game engine and it has been one of the most rewarding things I have ever done, ever. Games are why I wanted to learn to program, and to build something like that from scratch made so much of my journey worth it. Even if I never make a game with it, and even if I do make a game that nobody plays, it will have been worth it.
Fez was one of the first games to inspire me to be a game developer. Literally changed the course of my life.
That's incredible, man. I played fez a couple of years ago and always thought it's such an underrated game. Probably the game with the hardest puzzles ever, and the best part is that you can complete the game without solving even one of them.
Great game, too bad Phil Fish is a wreck of a human being. Was looking forward to the sequel. Not saying anything further.
@@joseph1150 watch This Is Phil Fish by Innuendo Studios
@@joseph1150 yeah, I completely understand and also feel your pain. It is tragic and sad, and I will also not say anything further.
it is using XNA game engine, not its own engine. And it is easily decompiled, nothing extra in that game code to learn from
Crazy how far indie game development has come in a decade since Fez. Crazier to think about where it'll be in a decade
Hopefully indie studios do so well in the face of the unparalleled greed and endless evil we suffer from big publishers that they become the most successful studios, hopefully without picking up the amoral practices that made people grow to loathe the likes of EA, Ubisoft, Activision-Blizzard, WB, and all the rest of the industrial diseases.
@@Voltaic_Fire Jesus Christ, we get it, big companies are bad. You don't need to bring it up every five seconds.
I am grateful for people who make the games I love
I was surprised at how good that pronunciation of noita was
@@glorpri 🇫🇮🇫🇮🇫🇮🇫🇮🇫🇮🇫🇮🇫🇮🇫🇮LETS GOOOOOO
Now let’s try ”Uuno Turhapuro muuttaa maalle”… ;)
I remember playing fez on I think the Xbox 360 and I don’t think I ever got far, but I remember it being really fun. I forgot about it until now so thanks for reminding me of its existence!
Learned so much from You thanks
Hop on shorts first video is pirate leave shorts immediately after:mission accomplished
If anyone want to learn how to make a game engine the youtuber Travis Vroman has a 200 hour long series on making an 3d engine in pure c. Its very good.
Also there are handmade hero and the cherno
if you're a linux guy, pick up sdl2. It is pretty much a very very steep learning curve. I'm one month in, and the peak is pretty much invisible
To be fair, there is the 4th reason, which is the fact that it is more fun AND more efficent to work in your own engine.
It takes a lot of time and effort, so usually it's not worth it, but if you make a game engine it will make game development way more fun
Damn. I didn't know that about Fez, even if I couldn't finish it, makes me respect the game even more.
I do it for ego. It feels good to say that the whole codebase of my games is mine and mine alone. I'm happy and proud of it. Saying that ego is just a bad thing is kinda stupid in my opinion, it can be a motivation factor.
"and you only think real game developers make their own engines" - Thor
That really separates ego into two groups, and I don't think the mindset of "I can and I will be proud" is bad. Ego is too vague of a term.
Is the whole codebase really all yours? Did you make the gl wrapper? The libraries to interface with the operating system? The programming language itself? Unless you've written everything from the ground up starting with only machine code you can't say that the codebase is yours alone. We stand on the shoulders of giants and it's moronic to disregard that.
@@theairaccumulator7144 The programming language isn't considered to be a part of the codebase. Programming languages tend to come with standard libraries that interface with the OS, and so those aren't a part of the codebase either.
In fact most people would consider using of libraries, when used with care and thought, to be okay too and still allow you to claim your codebase is entirely yours.
What is really moronic is to get hung up on literal meaning instead of the real meaning behind words and then saying that the meaning you read from the words is moronic.
That 2d platform in a 3d world is actually insane. That is so cool
He didn't even show the real weirdness of the game. If I remember right, on ng+ you unlock a first-person camera and there are hidden secrets on the floors.
Fez was incredibly popular when it came out because of it. Indie Game The Movie is a documentary about this and 2 other games that I highly recommend if you are interested.
@@Jime1214Fez is so great, which is why it makes me so unnecessarily mad that it's solo-developer is such a giant bellend and mean AsHo.
If you have not played it, I HIGHLY recommend FEZ. Probably the best puzzle platformer out there.
It's a good game. People hate to admit it but Phil Fish was pretty brilliant. He is also one of the best examples of why Twitter makes you insane.
I'm currently making a game engine, with features being the reason, and so far it's daunting. On a side note, I see some devs stating that they make their own engines to avoid making payments to the game engine owners.
Avoiding royalties is a valid reason to make your own engine. Just depends if you have the time and resources necessary to actually make an engine. It's a very time-consuming task so paying to use an existing one may be the better option.
@@nick15684 Or using engines that don't ask your payment? Open source is an option yknow
Whatever feature you're trying to implement, Unity can probably do it easily with minimal scripting. Nothing falls into the 2nd category nowadays. It's sometimes the 1st but mostly the 3rd.
@@nick15684 it's also kind of dumb. You're assuming that your game is gonna be so big that taking that hit with the royalties will be a net detriment which I think relates neatly to an ego issue. The royalty issue is really only a concern if you're an established studio, your game is revolutionary kinda like Fez was, you have a huge marketing budget or you simply get insanely lucky but your game has to be good either way.
Fez mentioned! I absolutely loved that game, and it totally felt revolutionary when it came out. Such a good game
It's crazy to think Ace Combat used to operate on a propreitary engine up until Infinity.
Skies Unknown ran on Unreal and I was blown away by the fact that Project Aces no longer had to maintain the old Ace Combat engine.
As I came to joke:
"What do Tropico, Ace Combat, and XCOM all have in common? The Unreal Engine."
So glad I found this guy. I'm finding games I've never heard of and my child like gaming experience has been brought back after years of jaded gaming
From what I understand, a lot of solo devs make their own engines because they’re also picky. They don’t like working with code that’s not theirs and would rather their entire environment be something they made so it’s personalized to them specifically. I have a friend like that
A similar reason is why I abandoned any programming in Java. Java forces you to use classes, and I really didn't like that.
Now, classes are something I can use at times, but for many simple operations they're overkill and even annoying for me.
Reason number 2 rarely makes sense because in addition to the big, heavy engines, there are lightweight frameworks that only do basic things but you don't have to do everything from scratch and stop halfway through
Yeah but a lightweight framework doesn't count as an engine
i want to make an engine for two reasons:
1. im clearly a masochist
2. my game needs to run in 256KB of RAM (excluding backend libraries, code, and const data)
You might just want to code your game in Assembly at that point 😂
@@louisrobitaille5810Hell yeah, channel your inner Chris Sawyer
Are you building for the Sega Genesis?
just use assembly then
@@louisrobitaille5810hey you never know maybe this is Chris Sawyer talking!
I think every game dev should try writing an engine every now and again. It's good to know in the rare event you actually need to write one, and it's also good to understand why we very seldomly have to.
There's a certain irony to talking about Fez having a unique engine because of pragmatism but the guy who made it being one of the most egocentric people in all of indie gaming lol
Never heard of this, did he say some dumb stuff or something?
@@marcosm1223 A lot of stuff from his twitter being an absolute cornucopia of posturing and arrogance for years to him making some real blanket statements about Japanese games.
He's been pretty much out of the industry a long time now, I think he was someone who didn't take criticism well while also loving to give it out in very rude ways. Hoping the time off the internet helped him grow at least, but Phil Fish was up there with Jonathan Blow as two of the biggest blowhards in the trailblazing era of indie games.
@@bmac4 Worth mentioning that the 'criticism' included a lot of 4chan harrassment, he was the Assigned Bully Target for a while. He handled it poorly, but no-one handles that stuff well.
Phil did not make an engine....
@@marcosm1223 He ragequit the industry cus people made fun of him
I mean, there are several perfectly valid reasons why you would make your own engine. Not having to deal with royalties or payments, designing it to work exactly to the workflow _you_ want, and implementing features the exact way _you_ want them. You can make a way more streamlined engine that isn't bloated with 20+ years of things you *_don't_* need. Sometimes it is possible to do things in existing engines, but it would be very convoluted to implement, or non-ideal. In such cases, it can be worth it to just start from scratch.
Yes, making your own engine is a very time-consuming task, but it's also an incredibly valuable way to learn a lot of skills, and it will give you an amazing top-down view of the whole end-to-end process of game development. You'll be an expert at any engine you make, so there's no learning curve in terms of how to use it once you make it.
Open source engine. Boom, you don't pay royalties. So its about choosing engine that fits you instead of making own.
I totally agree, designing the game engine from the ground up to suit your game is really valuable.
A custom engine gives you control and freedom. You control the limitations of the engine and you control the development workflow. Working with a custom engine really made me realize how often working in Unity just makes things more frustrating, more complicated, because you have to implement things in the 'Unity' way.
Especially with indie development I'd still say an off-the-shelf engine is usually the way to go, but custom engines serve a purpose beyond the 3 points mentioned.
@@cophfe starting devs should not be told that making your own engine is valuable. We don’t tell them to make your own assembly language or CPU… sometimes it’s more useful to faff about in Godot first.
@@lucbloom Well obviously, no one is saying a *_beginner_* should make their own engine. No one I've ever watched has ever said that. You have to be already way way beyond that stage to even attempt to make one. For starters, they probably don't even know how to code, or know only the most foundamental concepts, and they probably have no idea how the graphics pipeline works. It's an advanced topic, but very valuable to learn once you're ready for it.
Honestly, the main thing is just none of my games should need to have minimum system requirements a third of what modern game engine suites are asking of it. I'd be incredibly happy if they could run on Windows 95 or Mac OS 9 with 1998 era hardware, and only a future concept is crazy enough I could see a bump up to 2002. But since Godot demands of me Windows 7 and an OpenGL 3 card and all that, I don't have the option.
I could try to revive Crystal Space 0.15...
Reason number 4: I'm so stupidly stubborn I'd rather make my own from scratch, know how it works and customise it at the C level whenever I need a new tool than having to learn how someone else decided to make theirs work.
Number 4, you don't want other companies who rely on developers who use their engine to start demanding an abussive cut of your work.
Ok to be fair
Fez properly had a good dose of the 3rd reason mixed in there
Edit: I have been filled in that Phil fish wasn't the one who actually made the engine. However, as creator and thus the one decided what gets made and how, I believe my comment still applies
RIP fez 2
Well, he deserves to have a big ego for making that game.
Does he though?
Didn't know making a game was a pass to be a thin skinned manchild
@@Tasorius didnt know making a game gave ya pass to be a thin skinned manchild making jokes about how people should end themselves
I know the programmer who did it and he is the most chill and no ego prog you can find.
"It was a 2D platformer inside a 3D game, no one had ever done that before."
Actually Super Paper Mario did that first. Both games fucking rule though, I'm not down playing Fez.
Paper mario is 2d sprite in an 3d envoirment (usually with a fixed camera angle) using billboarding, is a different technique. And in fact a lot of games have done it LONG WAY BEFORE paper mario, a lot of PSX games like the original FF tactics or Suikoden 2 and a lot more.
Instructions unclear am now riding the rails on my own engine
And now also Animal Well, cuz putting such game with so many cool little features and dynamic surrounding in 38 megabytes feels like it's own kind of miniature art.
Animal Well is absolutely brilliant
Fez was absolutely groundbreaking sir. No doubt. I remember seeing it for the first time. Its beautiful
There's a 4th reason now, obviously. Because big engine devs can take your s*it through one sided agreements that they can change at any time without a game dev's consent.
If that's a concern for you, there are very capable open source engines like Godot, Flax, etc. So you're still able to make a game with a pre-existing engine. The reasons for making your own are still the 3 he described.
it's very early times for those
@@enderduck4253 The idea that the open source nature of these engines can't be changed on a dime is unproven. I'm not a lawyer so maybe there's something for it; But it seems unlikely given the nature of the underlying problem.
@@supersmily5811 it absolutely can't be changed on a dime. First off, way too many forks and cloned copies of these repositories exist for the code to suddenly be obfuscated, so it would be hard to stop people from getting around that.
Second, if some contributor to a project tried to do that, they'd find themselves in a legal battle they couldn't possibly hope to survive. There are a bunch of reasons for this, such as the fact that the license agreement is tied to the version of the product. So if they changed the licensing agreement, you'd need to use a version of the product that released with or after the creation of the new license, so you could just hold on to your version and never touch the new license. Since devs generally don't update engine versions in the middle of a project, you'd normally be safe for at least the duration of the project you're working on.
But the biggest obstacle is that the people you try to steal the engine with aren't the only contributors to it.
For popular open source engines like Godot, there are thousands of people all over the world that have written code and built features for it. To try and create an organisation and sell that code would be daylight robbery.
I suppose they could track down every contributor and get them to agree to the project being used by a for-profit organisation in exchange for some compensation. But even if they somehow magically accomplished that, they'd be starting their business with thousands of people expecting payment for their work on day 0.
And again, we run into the problem of a lot of the users having clones and forks of the repository. You change the license agreement suddenly and run away, making the code private, some people go ahead and publish a version of the code with the previous license. And there is no way, ethical or otherwise, that you could ever stop your old users from doing so.
If you were to find a smaller project or one that simply publishes the code without accepting user contributions, then this is absolutely a valid concern. But with the big open source projects like Godot, Blender, etc. It would be a bit paranoid to worry about it. Nobody could ever go "I feel like turning this open source project into a for profit organisation" and hope to get away with it.
@@supersmily5811when open source projects stop being open source for whatever reason, people just fork and maintain an open source version
It's also good to remember, just because something is dumb doesn't mean you shouldn't do it, if you have time to waste and are not gonna hurt someone, just go ahead and do your own engine! Even if it's to presume to your friends you might use it someday
I love this. Couldn't have said it better myself!
Fez is such a mind blowing game. Conceptually, visually, and mechanically brilliant!
My reason for making my own is a little bit of all three. But mostly the first two. The only ego thing involved is saying "It can't be _that_ hard to make this feature". Then learn how hard it actually is.
(I have made game engines before)
me finding out understanding fonts and rendering text without a library requires PhD level math 💀
Perfect pronunciation of Noita, 5/5 /no sarcasm
I was just about to come say this.
This guy is a real genius when it comes to material things/games respect
There's a fourth reason
Your ideologically opposed to the ideal of someone else owning the engine your game runs on
That would classify as ego
Then just use godot, will save you a couple hundred hours
@@natescode Except it is. "I don't wanna deal with that/that company so I make my own engine" is ego. I hate unity, but thats why I playing around with Godot and not creating custom engine.
@@WalrusComradthe problem is the royalties
@@barry5 Until the inevitably do something stupid and shady.
4 Writing code is far more satisfying than learning how other peoples code works
Yeah, that's just 3.
@@BittermanAndy Nope, that's just having fun
@@franciscofarias6385 No, you didn't look at the paint program, there is ONLY 3. Thor said so.,
which is fine as long it never goes beyond a solo project
1 & 2ish. My dream game, and some of the games leading up to it, require a custom engine. Pretty much all the projects I'm currently working on, within reason of success without another required project happening first, can be done in others.
Actually been thinking, and may try to build Godot differently, and either use that, or learn from it, or Ship Of Theseus Godot into my engine.
I fairly sure number 3 was also big part of Fez, knowing Phil Fish
yep, simply amazing game, but biggest cunty developer of all time.
Tell number 3 to Sean Murray. - He worked on the NMS-engine in secret for like a year or whatever, just to make that game, and then they developed that game, the launch-version, in a few years with about 4 people.
There's like many dev teams that small and to why we get zero details or updates for months on end to suddenly *HEY GAMERS UPDATE* or something lol
to the just sheer flex of the 3rd point artist have that, we all *WANT THAT* but i just want to learn and share silly know how like thor does to us with these shorts!
I loved Fez because of how different it looked and played. It is a brilliant game.
You forgot "fun", and "enjoyment" as reasons to make your own engine.
I think you forgot my favorite reason to make an engine for fun Sometimes I think having fun is the journey.
Noita was the first game to pop in my mind when you said #2
Nebulus was made the other way round: "Hey, we have a cool rotation engine here, what can we do with it?" :D
Thanks, I was trying to remember the name.
You never know if your idea for a game is bat shit crazy enough to require the birth of a new custom engine.
This man has taught me so many things in so many categories. It is incredible. Appreciate it, man.
What about "I didn't want to make a game, I want to make an engine"
reason 4: you have ocd, and it makes you an absolute purist...
Same, I like seeing how every piece of code fits together to make a complete game, most engines abstract what's going on under the hood a bit too much for me
@@manwithnewname same
@@manwithnewname YES. Scrolling until I saw it. My game isn't very complex, so I feel comfortable writing it in C using libraries. Some say "just use godot" but I want to code, not learn an engine. Godot has very strange bugs and crashes every few times I use it for basic stuff, but I'd rather make my own engine than have everyone on the internet say I'm the only guy with an issue. I don't want to learn how Unity or Godot use nodes or signals, I don't want to learn c# or gdscript, and I don't want to worry about the engine itself needing updates ON TOP OF my game's versions. Modern engines are good enough for many people, but they still suck. Objectively.
Both Fez and Noita are incredible games. If you haven’t played them I can’t recommend them enough
"No-one had ever seen anything like this"
Super Paper Mario:
SPM isn't a puzzle platformer, it's an ARPG. And it's not like Fish could just ask Nintendo for their code so he could break it to make Fez, anyways.
They're very different
That's wasn't their point. SPM is still 2D in a 3D world.
@@deadseveredheads SPM only rotates between two states, though.
I'm just saying it's similar. Cool concept. I liked both games.
Reason 4, you don't want to pay 30% to some other company when you can do it yourself
I think the biggest reason most people make custom engines is b/c they wanna just have fun building things from scratch
Downloaded Fez when I was on dialysis, it's so immersive and compelling. The puzzles are wild.
Im surprised that Thor didn't mention Hyper Demon, because it's one of the best examples of "Any other engine simply cant do that"
looks like a custom projection and postFX
I've done both in Unity and I'm pretty sure Unreal can handle that as well
@@MadsterVcan you do that in GDevelop? 🤔
4th reason is that you simply want your own engine for the game so you can tweak it to perform exactly how you want it
@@owenduffy5745 it is easier to work on your own code than that of others
That would fall under 2 I believe
Thats basically the 2nd point from the video... Make what other engines can't for your purposes.
Fez was absolutely bonkers when it came out
"no one had ever seen anything like this"
super paper Mario:
Super Paper Mario was very cool
Notification squad here! xD
I don't have notifications turned on...
Same lol
@@Succulentquarter well, too bad! Whatever can you do about it, right?
You will never find more weirdass algorithms in one spot than a game engine. Normal trees, quad trees, so mamy graphs, clustering, a bazillion variations of path finding, and all of it needs to be done very very efficiently or everything lags. You even need to use the tools you make very efficiently or everything will lag. Not to even mention graphics magic that I can't even begin to understand.
Super paper Mario (2007) was a 2d platformer inside of a 3D environment so I wouldn’t say it was never heard of.
Guys I am touching grass while watching GTlive!
For me, there's actually a fourth reason (maybe a dumb one) that led me to develop several small games from scratch instead of using another engine:
I don't know how to use any game engine, but I do know how to code in {favorite programming language}. So making my game from scratch allowed me to get things done faster without having to learn how to use a game engine.
Every time I tried learning how to use Unity or Godot to make the game I have in mind, I gave up after
You forgot number 4. Existing engines make stuff you are going to do often complicated for no reason.
Because i hate myself and don't feel complete without suffering
nah the 2d in a 3d is actually sick the ideas people come up with is so cool
I remember watching tutorials and learning about game dev a few years ago and it was absurd how many people recomended creating your own game engine to beginners. Its like saying you gotta build your own canvas if you want to paint or make your own guitar if you want to be a guitarist.
I've heard somewhere that making your own engine also means that you know everything that happens, thus making bugs easier to solve, and that the big kicker is that you won't suddenly lose everything from an upsate since you choose when to change it. Plus, optimization is easier when you control what goes in it.
I'm not sure where I heard this or how correct any of this is, but for someone being serious about game dev, it sounds like an interesting avenue to take.
the reason i love bevy/rust is you can just add new plugins to the bevy engine so easily instead of starting from scratch
Love you dude, your content is amazing and eye opening, as well as inspiring. I love learning from your vids, and always inspired by your shorts
I'm helping some friends work on a game engine and we have all 3 reasons.
The ego and doing something else we cant do with other engines parts is writing it entirely from scratch, so we can make it public domain. I think we earned our bragging rights, but we're still humble about it and we genuinely want to create a high quality engine for everyone to use.
Fez absolutely blew my mind and I love it to bits ❤
You are cool mate, I know nothing about this stuff and you make it fun and interesting. You rock mate