Tools to make a Game Engine in C++

  Рет қаралды 59,586

pikuma

pikuma

Күн бұрын

Пікірлер: 77
@godzil42
@godzil42 2 жыл бұрын
I like the fact that albeit having your own lessons about all the topic you talk about in this video, you don't push them until the end, and yet, you are really cautious into saying, this is just the start of a journey, if you want to compete with X or Y, you are probably thinking it wrong. This is really honest from you and quite wholesome actually!
@blackcitadel37
@blackcitadel37 Жыл бұрын
Very cool. One of my biggest mistakes when I tried to create a game engine with c++ in the past (in all 2 or 3 attempts iirc) was the endless "feature creep". I always got stuck implementing more and more systems and overcomplicating things instead of focusing on what was really important and forgetting what the end goal was in first place (make a simple space shooter).
@fernandogoncalves7297
@fernandogoncalves7297 9 ай бұрын
Cara pulei de ponta nesse "rabbit hole" já faz 2 meses e nunca me senti mais motivado pra continuar, muito bom finalmente sentir que encontrei a área que quero trabalhar/estudar. Canal sensacional, parabéns pelo trabalho!
@playerzero5388
@playerzero5388 11 ай бұрын
Cool video. I would like to point out that a game engine is actually "the part of a games code that can be shared with other similar games". It is often called the 'Engine' or 'Core' library. This is why certain games from studios will use a particular engine over others - depending on which gameplay aspects and features they are trying to achieve (and other decision making, such as ease of use and capability for streamlined collaboration of its editor). Some studios (who may release different unique type of games) may own and manage more than a single engine. Next up, you will have your game code. This code (project) will extend/implement the core/engine library (which often contains the majority of functionality). It will then extend upon the engine code with features and functionality that will be unique to the particular game. Lastly, you will have the editor. The editor does not need to be written in the same programming language as the engine is. After all, it will be mostly managing asset files. It therefor needs to understand how to create and modify the proper file formats for assets, as the code (engine + game code) will need to read into memory. This program will contain the majority of tool necessary for the creatives (and programmers alike, inc. others) to create and manage project assets, visualize and place items into the scene, and much more. Post lastly, sometimes a studio will create one or more specialized tools for particular tasks. The editor will have many bells and whistles in regard to what it can do and how it does it. Sometimes, a simple tool (could even be created in a webpage) can be used for specific complex tasks.
@__hannibaal__
@__hannibaal__ Жыл бұрын
Don’t try to understand every thing, just forward till hit wall, hit it again and your mind start moving and work.
@badgerdash
@badgerdash Жыл бұрын
Wow! You talk with so much passion that I almost want to start writing my own game engine! Thanks for great lecture!
@felipelopes3171
@felipelopes3171 Жыл бұрын
Nice to see a fellow Brazilian here! In any case, maybe I'm being too honest, but for me the answer to "Should you write a game engine?" is a simple no. There's a very simple way to see this. First, pick any game and try to implement something similar to a very small part of it, like a menu to select the items. Try to implement just that from scratch. You will see that you'll struggle a lot, it will look very bad. Now try the same with an engine and you'll see that it will take you just a couple of days. Now pick the tool you used in the engine and try to implement it. With a few months of work and some knowledge you might be able to do it, but at least this is a problem you can attack. If you succeed then you can wonder if you have enough time in your life to actually implement the rest. In any case, you're right that it teaches a lot of programming concepts, but there are much more efficient ways to understand them...
@yolowex6876
@yolowex6876 2 жыл бұрын
I watched it all and finally realised its past one hour. Great video i learned a lot! Thank you !
@jorik170
@jorik170 10 ай бұрын
very underrated video, literally cleared everything that i was having hard time with
@ThatBigDon
@ThatBigDon Жыл бұрын
This is a fabulous explanation of what and why. Thank you sir!
@GaryChike
@GaryChike 3 жыл бұрын
Great overview Gustavo! So your preference would be 'unmanaged' languages like C/C++/Object Pascal vs 'managed' languages such as Java and C# which have a layer of abstraction.
@pikuma
@pikuma 3 жыл бұрын
I have no real preference. Different problems require different tools. I just think that in this case, since the goal is to learn something, most students will benefit from using a language that forces them to think lower-level. Different people might disagree, and that's fine.
@mr_noodler
@mr_noodler 2 жыл бұрын
Awesome video, I watched it all the way until the end and I’m looking forward to taking all of your courses!
@JafarDashti
@JafarDashti 4 ай бұрын
Thanks for this informative video. It’s the best video about how to start game engine dev journey.
@eduardoprasniewski
@eduardoprasniewski 2 жыл бұрын
Muito bom! Aproveitar as férias da faculdade para fazer uma game engine como side project
@vimy-hh8uz
@vimy-hh8uz 2 ай бұрын
Amazing video , very suitable for this minimalist programmer and developer 😊 are you also going to share some idea about building an emulator too?
@blyatpitt7030
@blyatpitt7030 2 жыл бұрын
wow..i found you on youtube after you respond me on quora..nice tutorials man
@vinnyhorgan7186
@vinnyhorgan7186 2 жыл бұрын
Really nice video! Thanks Gustavo
@pikuma
@pikuma 2 жыл бұрын
Thank you! :)
@wkvvkw
@wkvvkw Жыл бұрын
Hi, what font did you use at 40:59(lua code)?
@pikuma
@pikuma Жыл бұрын
Hermit
@DiegoBreeg352
@DiegoBreeg352 4 ай бұрын
Cara, sei que você é brazileiro só pelo sotaque rsrsrs, muito bom! continue nesta jornada, me ajudou muito a entender essa caixa preta.
@pikuma
@pikuma 4 ай бұрын
@@DiegoBreeg352 Tem que ser... Se eu perder o sotaque eles vencem. 😅🤘
@moeenkamali1288
@moeenkamali1288 2 жыл бұрын
well done. that is one of the topics that like to follow more as a unity/unreal developer!
@fedotov2d
@fedotov2d Жыл бұрын
Awesome and very valuable content. Thank you!
@4KINDUSTRY
@4KINDUSTRY Жыл бұрын
Yes, thank you I want to make a game engine. You have helped!
@NonTwinBrothers
@NonTwinBrothers 3 жыл бұрын
13:02 Ayyyy shoutouts to Ken Silverman
@techbytefrontier
@techbytefrontier 2 жыл бұрын
Imgino que seja Brasileiro, valeu pelo video é um baita começo, estou escrevendo uma engine em c++ usando sfml e tentando utilizar o ECS na mão.. vamos ver no que dá kkk obrigado pelas dicas abraço!
@pikuma
@pikuma 2 жыл бұрын
Opa Tauan, que legal. 😉
@techbytefrontier
@techbytefrontier 2 жыл бұрын
@@pikuma acabei comprando seu curso por que tinha tudo que precisava, sensacional parabéns por reunir tudo que um iniciante precisava, muito legal mesmo..
@leonardo01570
@leonardo01570 2 ай бұрын
@@techbytefrontiero q vc achou do curso?
@specterent
@specterent 10 ай бұрын
Love this video and bookmarked the engine course you have so I can buy it should I ever have the expendable income to get it.
@AyoubFrihaoui
@AyoubFrihaoui 3 жыл бұрын
Very informative, thank you !
@lehisluguer9300
@lehisluguer9300 2 ай бұрын
Nice video.. I would also suggest Raylib as an alternative since its a simple way to create a game with no game engine..
@mehmetakifgol1707
@mehmetakifgol1707 Жыл бұрын
do AAA games use the physics library or they implement it from scratch?
@pikuma
@pikuma Жыл бұрын
Good question. Most AAA studios use some *tested* library (purchased 3rd party or something they have been working for a long time). The only real reason to write one from scratch is if your "physics problem" is very unique/niche or simple enough that you can get away by writing yourself. But again, most studios use something complex and heavily tested, meaning that they don't really need to understand all the math that goes behind every physics computation, and they can be productive only by using the library and its API as a black-box.
@alexandremsferreira1998
@alexandremsferreira1998 Ай бұрын
Canal incrível amigo! Eu vim pela indicação do Fábio Akita. Para quem está iniciando na programação, qual dos cursos do seu site você indica? Tem algum vídeo que fala qual ordem dos cursos fazer? O valor do cursos é em Dolar ou Real?
@CCV334
@CCV334 2 жыл бұрын
I noticed at 18:22 you mentioned SDL, GLFW, and SFML. What are your thoughts on Raylib?
@pikuma
@pikuma 2 жыл бұрын
Raylib is a super cool library. I just saw that the author published a comparison: gist.github.com/raysan5/17392498d40e2cb281f5d09c0a4bf798
@CCV334
@CCV334 2 жыл бұрын
@@pikuma oh wow this was posted just an hour ago!
@a740g
@a740g Жыл бұрын
You forgot to mention audio - a seriously overlooked part of game development.
@pikuma
@pikuma Жыл бұрын
Ah, so true. 🙂 Thanks for tge heads up.
@joaquimjesus6134
@joaquimjesus6134 2 жыл бұрын
GDI and GDIPlus is good for graphics or too much slow?
@mteo6391
@mteo6391 Жыл бұрын
I was really helped by your tutorial Good lucky Bro
@All-of0
@All-of0 2 жыл бұрын
Thank you 👍
@gbant
@gbant 2 жыл бұрын
Gustavo, apesar de falar um inglês perfeito eu suspeitei de ser compatriota e escrevo esse comentário em português mesmo kkkk. Muito bacana seus videos! +1 inscrito.
@pikuma
@pikuma 2 жыл бұрын
Grande Gabriel. 👍🙂
@guilherne1771
@guilherne1771 2 жыл бұрын
o 'tchoo' ao invés de 'too' sempre entrega um brasileiro, não tem jeito kkkkkkkk
@pikuma
@pikuma 2 жыл бұрын
@@guilherne1771 Ou "fink" ao onvés de think, e "tings" ao invés de things. Mas lembrem... se eu falar inglês perfeito, eles ganham. 😅
@guilherne1771
@guilherne1771 2 жыл бұрын
@@pikuma kkkkkkkk não sei se ja viu um canal chamado Bisqwit. Zoaram tanto o sotaque norueguês dele que ele decidiu fazer uma aplicação text-to-speech do 0 que fala com sotaque igual o dele
@pikuma
@pikuma 2 жыл бұрын
@@guilherne1771 Claro. Bisqwit é clássico.
@Ismoh0815
@Ismoh0815 2 жыл бұрын
Is there a udemy course about this, I can buy? Do you know ENTT and ever used it?
@Ismoh0815
@Ismoh0815 2 жыл бұрын
Ah, found it in your video description! Nice, I am a huge fan of your stuff. Already did your Lua course!
@pikuma
@pikuma 2 жыл бұрын
Yes! EnTT is great. I like Flecs as well with my C projects. They are really good ECS frameworks.
@yanmoenaing118
@yanmoenaing118 Жыл бұрын
Can I use SDL for 3D rendering instead of choosing OpenGL or Vulkan or DirectX. Also thanks for this great video explanation.
@pikuma
@pikuma Жыл бұрын
That's a good question. It's one that many beginners get confused. You'll see many people use SDL to open an operating system window, read mouse, keyboard, etc. But when it comes to rendering 3D content, you still need a graphics API to communicate with the GPU. OpenGL, Vulkan, Direct3D, etc. are these graphics APIs. One interesting thing is that SDL itself will sometimes recognize that you have a graphics card and it will open a window and display graphics using OpenGL or Vulkan behind the scenes. But you still need OpenGL or Direct3D to create a proper hardware-accelerated 3D game. I hope this helps.
@Leorium
@Leorium 5 ай бұрын
What about BGFX as a rendering library? Would it be efficient? Nice video btw❤
@GonziHere
@GonziHere 3 жыл бұрын
tldw: engines are hard, use whole of computer science and are build up from important parts. Since you want to make an engine and not an renderer (for example), you should use libraries for pretty much all the parts and "just" wire them together. There are a few libraries mentioned throughout the video, but I'll just add that I would go with BGFX for the rendering (instead of using dx/vulkan directly).
@astroid-ws4py
@astroid-ws4py 2 жыл бұрын
Or WGPU for doing the same thing as BGFX
@jacquesb8774
@jacquesb8774 2 жыл бұрын
Do you plan to make more courses? If it's the case, what topic will these courses cover?
@pikuma
@pikuma 2 жыл бұрын
Of course. I have lots of ideas. But I'm focusing on retro programming, since there's a lack of good content on it oht there. Maybe PS1? 🙂
@mikedabeast5601
@mikedabeast5601 2 жыл бұрын
Im 15 and trying to make a 3d runners vs trappers game. Never used unity or unreal just now learning c++. Seems out of my scope to make a game engine. I should probably just use an existing one first.
@cweasegaming2692
@cweasegaming2692 Жыл бұрын
Oh for sure. Really, if somebody just wants to make games then you most likely don’t have to make an engine. BUT, if you’re interested at all, it will never hurt you to take a swing at it
@Alexander07211
@Alexander07211 Жыл бұрын
Thanks
@darkzeroprojects4245
@darkzeroprojects4245 2 жыл бұрын
First several games I want to make their custom engines more akin between classic Id software engines with a few of modern stuff like the ECS and such.
@pikuma
@pikuma 2 жыл бұрын
I think more than ECS, which I agree should not be treated as a one-size-fits-all, is the idea of data-oriented programming and really thinking about data locality and data layout for performance. Lots of fancy words but all these ideas were there back in the day when every CPU cycle counted.
@darkzeroprojects4245
@darkzeroprojects4245 2 жыл бұрын
@@pikuma Indeed. The classic engines and the modding and source ports communities done for them fascinate me so much more than most modern engines in honesty.
@pikuma
@pikuma 2 жыл бұрын
@@darkzeroprojects4245 I like them a lot as well. 🙂
@kekkler
@kekkler 2 жыл бұрын
I’m going for this with Rust
@pikuma
@pikuma 2 жыл бұрын
I like this idea a lot! 💪🏻🙂
@kekkler
@kekkler 2 жыл бұрын
Thank you! Your video is a good resource.
@astroid-ws4py
@astroid-ws4py 2 жыл бұрын
The check WGPU, It is a cross platform Rust rendering abstraction layer on top of many platform specific rendering APIs.
@jasminaashkar6176
@jasminaashkar6176 3 жыл бұрын
44🥰4
@mikebeats3281
@mikebeats3281 2 жыл бұрын
This is Clickbait😂
@mythillian
@mythillian Жыл бұрын
...How?
@MigratedToHatManMusic
@MigratedToHatManMusic Жыл бұрын
I DID NOT MEAN TO CLICK THE DISLIKE I'M SORRY.
Why do we use SDL with C & C++?
16:26
pikuma
Рет қаралды 48 М.
So you want to make a Game Engine!? (WATCH THIS before you start)
14:39
Giant Sloth Games
Рет қаралды 348 М.
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
I built my own 3D Game Engine with Open-Source Tools
15:00
Modern Vintage Gamer
Рет қаралды 118 М.
Emulating a CPU in C++ (6502)
52:28
Dave Poo
Рет қаралды 1 МЛН
C++ 3D MULTIPLAYER GAME FROM SCRATCH // LIVE TUTORIAL
2:28:10
The Cherno
Рет қаралды 51 М.
Why Can't We Make Simple Software? - Peter van Hardenberg
41:34
Handmade Cities
Рет қаралды 201 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,7 МЛН
Creating a Game Loop with C & SDL (Tutorial)
1:50:46
pikuma
Рет қаралды 62 М.
How does a custom game engine work? // Code Walkthrough
52:47
Dear Game Developers, Stop Messing This Up!
22:19
Jonas Tyroller
Рет қаралды 794 М.