Why I Don't Use Game Engines
HTML-код
- Опубликовано: 24 сен 2022
- Why I Don't Use Game Engines
Main Channel - / polymars
→ Twitter: / polymarsyt
→ Twitch: / polymars
→ Instagram - / polymarsdev
→ Discord - / discord
-If you liked this video, here are similar ones you might enjoy!-
DaFluffyPotato - Learning Gamedev and Why I'm Glad I Didn't Start with Unity
• Why I'm Glad I Didn't ...
Daniel Dionysus - I stopped using Unity and so should you
• Video
Randy, the Sequel - "why don't you REALLY use a game engine?"
• "why don't you REALLY ...
PolyMars++ - I Became a Scratch Developer for a Day
• I Became a Scratch Dev...
PolyMars++ - I Became a Roblox Developer for a Day
• I Became a Roblox Deve...
PolyMars++ - I Remade Super Mario Bros From Memory
• I Remade Super Mario B...
PolyMars - C++ Developer Learns Python
• C++ Developer Learns P...
PolyMars - My Worst Game Dev Job
• My Worst Game Dev Job
PolyMars - Making a Game With Discord's Bot API
• Making a Game With Dis...
PolyMars - Making a Game With C++ and SDL2
• Making a Game With C++...
PolyMars - Learning SDL2 in 48 Hours - GMTK Game Jam 2020
• Learning SDL2 in 48 Ho...
PolyMars - Best Python Game Wins $1000 - Game Making Challenge
• 2 Python Developers VS...
Not using a game engine is not like driving manual, it's more like building the car from scratch and then try driving it.
My opinion.
Well said
mysummercar moment
actually, sometimes you just need a simple lightweight bicycle but you spend a lot of time learning how to drive and fix the car.
Making a game without a game engine as one person is closer to building an e-bike from scratch tbh
exactly
It's definitely up to personal opinion! I've made a couple games without a game engine, but really, I'd rather have a game engine by my side. Not because I'm lazy, but because it lets me work on what I actually care about, implementing design, levels and iterating fast. Back-end code doesn't interest me much outside of a "Oh, that's really cool!" thing. Much respect to people who do that back-end stuff! Y'all are awesome!
How do you even make games without a game engine? Could you give me a brief rundown on what you would do for your projects?
@@Tarnest At the time I was using GLUT (a version of the OpenGL graphics API). So I would be working directly in a script interface (whatever they're called, I forgot) to write C++ code that would get things to display and such. Then I'd have to create objects, each as separate files, with their own behaviours and such that would be called from other objects in other separate files until the master file that runs everything calls it all. Basically, you're doing everything a game engine does, and having fancy UI for it is optional. I think there's a youtube here that does a lot of "making my own game in my own game engine" type stuff, I've forgotten the channel name.
@@JanbluTheDerg thank you! Very interesting stuff
Could not agree more, It's fun and satisfying to challenge yourself to make something without a game engine. If you were to make a steam game, what kind of game would it be?
he make trash with his big head, he thinks he is better than a full team of developer
it's 90% about that challenge and pride feeling. It's impractical
I just made a game engine in Python with ASCII graphics. You can create infinite worlds. I also added support for networking and multiplayer
@@knut-olaihelgesen3608 thats cool! whats the game called?
@@cattkin6732 developing skills too
I was in a game dev discord where I posted a video of my own navmesh and path finding algorithm I made for the fun of it. I was really surprised that there were people that felt the need to interject with 'why would u waste your time, it already exists'. As if enjoyment was not enough of a reason to learn and create something.
So basically I appreciate this video and it's sentiments.
Unreal?
The people who make those comments are insecure because they suck at programming and literally could not do it themselves. They want everyone to use an engine in order to validate their own lack of skills.
@@Fricasso79 I think using an engine is fine, I'm using UE and learning how to go deeper and deeper into the internals little by little. But yeah those aggressive poorly skilled programmers who want to tear you down for doing unconventional low level (fun) things are really annoying.
@@Fricasso79 I don't know, as someone who's integrated external libraries into programs and handcrafted algorithms. Often integrating the library takes so long and is so annoying because they do things in a way I wouldn't have expected or they implemented some stupid new type or I'm just not smart enough to understand their documentation. It would sometimes be quicker to do it from scratch at my current level of skill. I have a lot of respect for people who can just grab 4 or 5 libraries or frameworks and just push out a working-ish program in a an hour.
@@Fricasso79 Additionally, Having a form of understanding of the fundamentals behind it all can help greatly in the future, Even with a game engine.
There is also a very big performance benefit if you know what you're doing. A general purpose engine will always have way more shit going on than a finely tuned handcrafted engine. Of course, to make that engine you have to be really good, have a lot of time, or both.
So, How can we make a game without a game engine?
Could you please make a video about that topic ,some thing like introduction and roadmap.
Thanks❤️🤞🙋
@@aamirboroumand There is an Open Source Game Engine called Godot, because it is is open source you can copy the code and in a C++ program you can make a game engine.
@@aamirboroumand take a look at Handmade Hero series. It explains making a game without a game engine in depth.
and another thing: If you have a problem, you can just code it yourself, rather than swim through tutorials to find a button that does the thing you're trying to do
@@aamirboroumand You can make a game without a game engine, the same way you can make a phone app without an app engine. Just make the fucking program and don't worry about engines.
I recently started making a game in C++ with no engine, after having experimented with Unity a bit. I think it's a really useful educational experience, because you know what everything is for and how it works, whereas going into a complex game engine blind, while it can be easy to make projects with little experience, you don't necessarily know how it all fits together.
I am currently running with Unity for my game prototype but as the time pass I think my own rendering tech will be required for my current project since Unity is slow and Unreal won't support things I need.
That assumes you aren't looking at an open source game engine, like Godot is a C++ game engine that's open source, modular (so you can segment it to only what you need or want to investigate) and if you really feel the need to you can control whatever you want in C++. (even modifying the engine in disregard of the engine's purpose, while not recommended as that can make it a hassle, you can do that if you want, screw with it and see how it works in C++)
@@Spartan322You can also do that in Unreal.
Can you tell me about your game, what have you used like sdl2 or something else?
Will you recommend using sdl2, or you found something else? Thanks in advance for sharing the experience.
When you write your own engines you have a deeper understanding of what engines such as Unity actually do behind those abstractions. It makes you a better programmer and will probably enable you to write more efficient or higher quality code.
I definitely agree though that most people, if they don't care about being that low level and just want to have fun making a game, existing engines will work very well for them.
For me though, making stuff from scratch is fun :)
You could also just examine open source game engines for the understanding part, there's a good number of easy to read or modular game engines that enable this, most prominent one that sticks out to me is Godot, you don't have to build it to understand it, messing with engines that actually give you their source code is just as capable to teach you that.
@@Spartan322 I suppose, but there's a difference between examining at code and thinking you understand it and actually understanding how the windows API for example works, how it sends data to the GPU, how shaders are compiled and run. I highly doubt someone can get a decent understanding of how OpenGL works by looking at finished production quality code, without writing some code yourself.
My original point was that, if one wants to become a programmer that knows things at a lower level and can use their knowledge to make code even in existing game engines faster, or write your own plugins or whatever, I doubt you can just look at source code and understand how the APIs work, or how to optimise your code better. A part of that comes from actually programming and testing things out.
@@spiritwolf448
"actually understanding how the windows API for example works"
You're never gonna understand it because a lot of it is hacked together, esoteric fixes, or outright broken functionality that you'll only find in C. Not to mention there are a hell of a lot of things you should not try to understand with it honestly.
"how it sends data to the GPU"
I don't recall that being much significant anywhere in the Windows API specifically and it most certainly is not gonna teach you much. (least of all anything good) The Windows API has a lot of problems amongst it and learning from it is not something anyone should recommend to you for sending data to the GPU, if you want to do that just investigate the open source projects to figure out how they do it, in a lot of cases they handle it more elegantly anyway. (even when using the Windows API)
"how shaders are compiled and run."
Outside of DirectX that's all open source stuff and has nothing to do with the Windows API, and in DirectX it still doesn't have much to do with the Windows API. And knowing that information isn't all that practical unless you plan to build a GPU, as knowing how they are compiled and run doesn't actually give you an advantage in building them nor on managing them, its not like you can optimize them with that info nor modify them in that state.
"I highly doubt someone can get a decent understanding of how OpenGL works by looking at finished production quality code"
That's not an argument nor is it a reasonable expectation, if you can mess with the code, can read it, and can experience it, its not actually any practically different from building it yourself, this is entirely an assumption that you can't even prove false so its not even a hypothesis. All that's necessary to learn anything is to see and experience, it is not necessary to build it from scratch, most mechanics will never build their own engine, its not a requirement to be a mechanic and it doesn't actually give them all that useful info, what they are required to do is mess with the engine, read about the engine, look into the engine, and thus they understand it, sometimes as good as those who built the thing, maybe even better because they have practical experience of its existence. Those people might be capable to build the engine even, but the question stands what benefit does it give them? Outside of doing it for fun, there is no practical justification for doing it. Its the same with games and game engines, you don't ever need to build something to understand. If you will allow even a personal anecdote, (not an argument but a refutation of yours) I've done that too, I've understood how a parser, lexer, compiler, and interpreter all work inherently and intrinsically before I ever built them, I've explained it to friends using analogies and stories that told me it helped them with computer science classes despite my lack of build experience in doing so.
"can use their knowledge to make code even in existing game engines faster"
This is rarely the case, usually its from studying, investigating, or devising methods which don't much come from understanding purely from building. Optimizations don't have to and usually don't come from understanding, you may not even understand the method, but so long as you know well enough that which you put the method into, be it a game engine or not, which does not require intrinsic knowledge, it doesn't all that matter. There are plenty of examples of this in Godot from contributors, its part of the reason the repo members of Godot are more so specialized so to ensure something like that would work and its much to difficult to expect all the members to know that information.
"I doubt you can just look at source code and understand how the APIs work, or how to optimise your code better"
Again, Godot disproves this, there are plenty demonstrations with that engine to say the least, and as I've demonstrated already, building something isn't required for understanding, and neither does building it make you capable or knowledgeable of optimizations, nor does it even mean you do understand what you're doing.
"A part of that comes from actually programming and testing things out."
Which you can do by having access to the source, there is literally no difference here if you have the source, whether you build it yourself or not, its having and being able to mess with the source that's the big deal.
@@Spartan322 Definitely chose some odd examples for things that you might learn at a low level when programming. That's what I meant by things like "how data is sent to the GPU" (I mean programmatically, not the hardware required for that) or "how shaders are compiled and run".
I think the main point you've said here is essentially "you don't need to build your own engine to understand it" which I totally agree with.
[
"A part of that comes from actually programming and testing things out."
Which you can do by having access to the source, there is literally no difference here if you have the source, whether you build it yourself or not, its having and being able to mess with the source that's the big deal.
(and this part too:)
"if you can mess with the code, can read it, and can experience it, its not actually any practically different from building it yourself"
]
I'm not familiar with Godot or its APIs, so you may be correct when you say you can examine source code and understand how it works, but for someone who may not be familiar with graphics programming, or is a newbie when it comes to programming, writing their own simple engines / programs can be easier to understand since it doesn't rely on other pieces of code in a large codebase in existing engines.
I do not doubt, from the way you've explained to me, that you can gain understanding by opening up Godot's source code and playing around with its codebase, understanding functions used, code structure etc. But understanding that codebase would require some basic knowledge of the APIs that you'd usually get by playing around in an empty project with some basic stuff at the very least, along with documentation from for eg. OpenGL/DirectX documentation/tutorials.
You mentioned that most people don't really benefit from this low level knowledge. That's definitely correct, and I don't deny that. My original point was "I definitely agree though that most people, if they don't care about being that low level and just want to have fun making a game, existing engines will work very well for them."
You can develop a good game, with optimization, without knowledge of low-level graphics APIs or whatever. I'd imagine however that one's programming expertise would increase (especially ones who wants to and are interested in these aspects or perhaps wants to contribute to existing engines in the future) after creating medium sized game engines / projects in terms of code style, structure etc. coming from a background of scripting langauges or something.
Have a nice night :)
Well, a little story from my side about the thing, idk why i write it here, it just fits.
Long story short, i was writing a game in unity named Qwerty's Planet, unity started crashing and had problems everywhere with the engine itself, so i decided to leave it for good and switch to c++. Well, it is muuuuch harder, but the enjoyment when something finnally works is big asf. If you did read it all, thanks for listening.
try godot game engine :D
@@stan7132 Godot fanboys ASSEMBLE!!
Anyways, BambukoDev it's a great thing that you love using what you like and it's your choice if you wanna use godot. Also, do you use a custom library or just pure opengl or sdl for your games?
Also, it doesn't have to be harder. It is only harder for two reasons:
1. Your lack of experience, moving over to something you have less experience with will always be harder because you have LESS EXPERIENCE. After you get the same amount of experience in this new way of doing things, it will be easier.
2. You chose a shit ass language. You can make an engine in any language that you want and you literally chose the worst one. For example, you could have made your engine in c# and it would worked all the same.
@@cybeartron Sorry for the late response, i use SDL for drawing and input, but im planning to switch into bgfx
@@bambukodev oh cool!! Will you make an engine I the future?
As a person who is making his own game engine, I totally agree with you, don't let people tell you what to do, if it's more exciting for you to make a game engine, just do it.
Do you look at parrotx2 , lifesteal, or minecraft videos in general? this is super random lol just curious :D
Unity is the extreme of doing everything under the hood and out of sight, but there are other game engines that don't, most often the ones made for use without an editor will do this, and I'd say even open source engines like Godot are a lot closer to a usable middle ground for this.
If we're comparing cars, unity feels like you're training to build a train, and Unreal is a Plane, can you do impressive shit with them yes, but it's on a whole other scale from what you want, which is having a gameplay loop that works.
Godot sucks
Unity is mid
Gamemaker studio 2 bad cuz when WE load engines it crashes and be unresponsive
Scratch us terrible
Clickteam fusion IS a overrated expensive piece of garage
PowerPoint IS better
I think game engines nowadays are more about Design than actual coding.
I am a Java gamedev. I do use libGDX for most of my games. I used the standard JFrame with AWT Graphics method before, but that used the processor for graphics and the game was very slow because of that. I use libGDX just for me to use the graphics card for graphics. I write my game and its engine from scratch and it's way more satisfying and fun to do so.
Would you ever make your own game engine or programming language for fun?
if he ever makes a programming language, he better call it poly#
Why do it if it weren't fun?
I love the manual/automatic analogy. I drive automatic, love the efficiency and ease, but I code in a game framework (Love2d) where I get some basic stuff, like primitives. But l love making it as efficient as I can. I feel I learn way more computer science by doing it myself and iterating my knowledge more and more.
Hey man what inspired to make games?
Good video. I've always enjoyed the technical challenge of programming games without an existing engine. I'm also very interested in how engines work under the hood. For those that want to focus on other aspects of game development, existing engines are probably the way to go. For my own goals, I also considered that learning an existing engine would be a lot of work already, so I decided I may as well put that effort into programming games from scratch.
"technical challenge of programming games without an existing engine." Why do morons need to renivent the wheel
Cruise Control keeps your car at your set speed which is mainly used for highway driving only it helps your foot rest from the gas pedal but you can relax your foot it’s just you have to make sure it’s near the brake pedal at all times because you never know if you will ever have to slow down from traffic up ahead anything can happen at high rate of speed on a highway or freeway.
Favorite programming language to use in general? Like how much you enjoy using it etc
0:15 I DID THE SAME THING IN MY FIRST DRIVING TEST
Quite often, people use premade tools to do stuff they could reimplement in minutes or hours
not sure if the time spent reading the docs, waiting for stuff to install/compile, researching the various quirks and bugs of the thing etc. is less than the time saved on crafting your own solution most of the time
of course for projects with large teams it's different, since most developpers will have to use someone else's framework anyway, might as well make it something they might have encountered elsewhere before
I have a question
How long have you been programming for?
Im always a little bit surprised when I hear how common is the automatic gearshift in the us.
what advice and tips you would give to a person who is starting to learn game development
There are people out here who like building their own engines and I am all for it. Those people are the ones who will create or maintain game engines in the future.
For me, however, I want to make a game rather than build an engine. Therefore, game engines that do the job are for me.
Good luck to you.
What is your favorite/the most fun part of game development?
Coming up with a solution yourself without a tutorial
Playing with a game design idea that sounds fun -- ideally I wouldn't need to know a thing about programming.
what happened with your main channel? so long since last upload...
Yea i agree! It is just more fun to make things from scratch like tbh i get some kind of satisfaction when i complete a game from scratch than using a game engine
what inspired you to start making games and cool videos?
polymars do you know
how you setup sdl in vscode ?
Best explanation ever!
What first sparked you game dev passion?
My opinion is that making a game from scratch with no game engine or a custom self made game engine is good😊
Brilliant analogy 👏
I tried making a car game in JavaScript I just couldn’t get the physics right
So far I've found physics to be the most challenging aspect of game programming. =\
I use Godot which is FOSS, and if any low level feature is failing I can just go down there and fix it myself, or add whatever I need.
I get a lot of work cut out from me since other people have already developed most of the common stuff and I like to focus on making the game itself.
Edit: Oh I also made a small engine using a few libraries in C++, and got to the conclusion that it was pointless to reinvent the wheel if all I wanted was to get a game done.
But yeah, making your engine or game from scratch is a brilliant experience, definetly recommended, but completely optional imo.
i know you dont uploada anymore or check ure vids but pls help me find a way to open a window with lua
So first of all hello so I am a person who is basically a water strider in the ocean of coding and was wondering what are your golden rules of beginners coding for new people. Secondly what coding software or more importantly what is a good example of a coding software like for general stuff. There be more questions I will probably ask it’s just I don’t know how to ask the right questions.
And shifting at the wrong time is like a memory leak, it doesn't happen if its auto, and it breaks everything if its manual.
my first game was made from scratch. I don't think I'll ever use game engine for my own games. Like, I want to make my programs have own structure (game files, physics and all other). And yes, it's way more fun thing to do and it can be smaller and faster game.
what game you playing in the background?
The choice of a car for an analogy was a smart one
People, he finds joy in not using a game engine. He likes the background coding stuff. Entirely up to preference. Nice video man.
As a manual transmission driver and never seen any automatic transmission irl ever I didn't understand the metaphore
How do you get ideas for the games?
Whats the game in the background?
How did you learn c++?
I didn't believe it when I tried it. Thank you for sharing
2:14 poly mars really loves SCRATCH
How are you going to do a 3d game though?
*0:26* **Manual gear shift*
Will you join or make a game studio?
Advice for starting a gamedev channel?
From a purely professional viewpoint you may roll your own all you want. Kudos for having the time to indulge yourself.
could you link which gta race this is?
what do you think about unreal engine
i personally don't use game engines because the games i make in them just don't feel "made by me"... Also, i have no idea why but unreal games do feel like my own creation... I'm just weird...
As someone that's worked in the industry on both engines and my own tech, I think it's more than the fun of it, although that's true. It's also about not being handcuffed to a massive legacy of decisions you don't agree with. The design tools in Unreal for example are good afaik, but I hate dealing with their code layers as an engineer.
That thumbnail trowing unity to the trash aged like a fine 🍷
How does one even get started making your own game engine though?
This analogy is perfect.
It's more of a limitation and not a challenge. You also wouldn't rewrite every single library you use just so you only have what you need.
Not using proper game engines work for small 2D games with no special mechanics, but once you actually do wanna make something slightly more polished, try to add a small actually complex thing or anything in 3D, it's just gonna fail..
Like a wise man once said,
"don't use a broom if you have a vacuum"
- Discord
Same, although recently I started to use Godot
What game is that?
What game is this?
Manual cars also have cruise control
Is there a correlation between u saying u dont know anything about cars and the car game in the background?
Edit: i observed it and found out its gta online hehe
How did you discover game development?
I started in webdev, and I had a colleague that worked in gamedev before moving to web. He was a really good programming, and his stories of working in gamedev got me very interested in the creativity of it.
what do you think about python
Love the video.
What is that game?
If people like me
Who always use game engine and try to make our own that would be too frustrating and we stop making game lol
So what do yu use in making your games?
He does it from scratch. Not the game engine.
I also don't use game engines most of the time because I like to create it from scratch and when I have a complex project that i have to make really fast I sometimes use game engines to make it easier.
question: how do you stay motivated to work on a certain game and not bounce around?
I have trick for that. If I have motivation to make game I just thought, I use that motivation to make current game knowing that I'll maybe make it, but after current game is finnished
I stick to schedules and when I'm hyped I try to calm down to not lose it too quickly.
Lol the thumbnail is now relatable to everyone
How did you get so popular so fast on youtube?
I make my game engine,yes i hate using other engines because i have to learn a ton of abstract languages and stuffs that i can't control for the best performance.But i still like to make a true game engine that include editor because it is more efficient to have an scene orientated system.
yea that makes a lot sense
If you want to write unity games the way unity wants you to write them using unity assets then use unity and the same goes for any other game engine. If you want to write your games the way you want to write them and you can create your own assets then do it!
Aren’t you just using a simple graphics library like sfml so your analogy about the car would be more like driving a automatic car but with Paddel shifters. Driving a Manuel car would be to use Vulkan, openGL or any other graphics API
and what do you use?
I am not really into game dev right now, but I have been into it in the past and I used to use game engines but I just feel that they're not reliable enough for big projects, ya know?
Creating a game engine from scratch by yourself makes you learn how graphics work in detail and the fundamentals of every game. And with an engine like Godot or Unity you only learn where to click and copy and paste code without really knowing what's going on under the hood.
i thoght that this video is about why you dont use game engines not about what type of car is simpler to drive
NGL, i didn't heard any single letter you said, i was enjoying the gameplay 😂😂
How can you make it without. What do you mean?? With what then you create them?
Editor?
Libraries and custom code. Like, directly interacting with win32, Linux, directx, xaudio. Or Vulkan and openal etc.
Instead of having everything set up for you and just writing logic that controls characters and so on you can do all that from scratch by yourself.
So far I only managed to draw a triangle using opengl, but I did it completely from scratch, no glad, no sdl, sfml or whatever, all in pure C 😅
True, unless if its for a really complex game with, very detailed backgrounds needing assets. Background that have many objects and a whole lot of a separate environment, i would find using game engines pretty boring.
Maybe I'm just old and set in my ways, but I never liked using an engine because it doesn't feel like making a game to me, it just feels like customising a game someone else already made.
How do I make my own engine?? I need to know this
C++
Make a game instead of a game engine.
Do you want to go high level or low level. High level is easier but less customization. Low level give you more customization. If you want to create a hotel you can go buy a bunch of beds from local store or you can go chop down some trees and make your own bed based exactly on your needs.
Personally I'd like to make stuff without a game engine. You get a lot more control.
real chads use godot
Learning to use games engines is a waste of time, because you have the illusion to learn something, but you are just learning only where to click.
Does "not using a game engine" and "building a game from scratch" mean building it from assembly language or C?
funnily enought i thought the same stuff, engines just feel like not coding for me
This guy literally stole my thoughts...
i dont make games without game engines because of any control bs, i just enjoy making them from scratch
Same i don't use unity a lot i use like pygame, raylib python and cs raylib.
Some say don't reinvent the well, but what if we reinvent the wheel to learn it's fundamental!
Basically why people use much lower abstraction to create their game.
If you are wanted game dev as jobs then use industry standard game engine, but if you game dev as a hobby you can try to create your own game engine just for the sake of it
Slightly confused since driving a manual is so easy..
But I guess I get your point :)