The Best Frameworks For Game Development

preview_player
Показать описание
Let me start this by saying, there are no "best" game development frameworks. The value and use of a framework varies massively from project to project and developer to developer. That said, according to YouTube "Best Game Development Framework" is one of the most common questions and it's not being answered. So today we are going to look at "some of the best" or at least, some of the most popular game development frameworks out there. We will look at both 2D and 3D and for a variety of programming languages. This video does not discuss game engines, such as Unity, Unreal, Godot, Flax or Defold.

Key Links

If you miss the 48 hour Flash sale, you can still use the code GAMEFROMSCRATCH for 15% off Camtasia at checkout
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
Рекомендации по теме
Комментарии
Автор

Key Links

If you miss the 48 hour Flash sale, you can still use the code GAMEFROMSCRATCH for 15% off Camtasia at checkout


gamefromscratch
Автор

Timestamps:

2d frameworks:
1:28 SDL (C and C++)
2:12 SFML (C++)
2:47 Allegro (C++)
3:30 Raylib (C and multiple other languages)
4:27 Cocos2d-x (C++)
5:04 Löve2D (Lua)
5:53 libGDX (Java)
6:47 Phaser (JavaScript or TypeScript)
7:18 HaxeFlixel (Haxe)
7:46 MonoGame (C#)
8:57 FNA (C#)

3d frameworks:
9:41 Babylon.js (JavaScript)
10:39 Three.js (JavaScript)
11:11 OGRE (C++)
11:41 Panda3D (Python)
12:20 bgfx (C and C++)
12:41 Bevy (Rust)

Your welcome

CodeaDeveloper
Автор

Also worth mentioning is LÖVR. Sounds similar to LÖVE2D because it borrows almost the same API, but it's more suitable for 3D (powered by a Vulkan renderer) and especially VR. It can do 2D as well of course and is extremely easy to use. To put things into perspective, you can do a VR "Hello World" in 3 lines of code.

immortalxgr
Автор

I massively appreciate you. Wish I had this a few years ago. Spent a month or two figuring out the frameworks I want to use. They are still subject to change, and I have everything saved on a spreadsheet, just made the bad ones(for my purposes) red or black.

Unfortunately it's too late for this to be much help, but I watched it all the way through, liked, and am commenting. YouTube should think I was ecstatic about it, as I would have been if I saw this when I first found you.

Keep up the good work.

rmt
Автор

I want add a "correction" about SDL, it's not really a "framework" much less a "2D framework" as depicted here. It's more of a simple set of "write once, run everywhere" functions that abstract away the pain of writing the platform specific code by hand, or worse writing all the specific ways each of your supported platforms wants it. I call it "The jQuery of Game Development".
What SDL provides is more akin to "platform normalization", it normalzies input (if you want it), it normalizes image loading (if you want it), it normalizes audio (if you want it), but most importantly it normalizes "context creation" (as part of it's base kit). What does "context creation" mean? It creates the OpenGL or Direct3D rendering context in a very straight forward way through one interface, just one time, and setting them up with a ton of sensible defaults; where otherwise creating these rendering contexts by hand is a lengthy and involved process. Also part of it's base kit is a normalization of window creation, so whether your on windows, linux, mac, whatever, it knows how to create a window for that platform, and slap that rendering context inside of it.
Without any further tinkering, it does also provide a very rudamentry sprite blitting api to do extremely simple 2d stuff using OpenGL's "Fixed Function Compatibility Mode" but no one's really using that. You're using SDL to get up and running with a window and a context within a minute or two to then start writing OpenGL or DIrect3D low level api calls directly to it to then start your shader based rendering pipeline (usually).

**EDIT:** I appreciate that people took the time to read my comment, because I didn’t even mention Direct3D until way below the Read More button. But there seems to be a lot of confusion over what Direct3D even is, and whether I meant DirectX or not. First of all: No, I didn’t. “DirectX” itself is a brand name referring to a specific collection of SDK’s that all tie together and work together to make Real Time applications on Windows powered platforms easier. There’s DirectInput to deal with user input (keyboard, mouse, joypads, etc), there’s DirectSound for audio, etc. The “X” literally just means “Insert SDK Name Here”, and yes that includes Direct3D which is as the name suggests; the 3D Rendering API. There used to be a Direct2D at one point but that has since been retired as D3D setup with an Ortho camera can pretty much handle that.
D3D is both old, and new. The current API level is D3D12, and most of the API calls and macros and functions are named that way (eg: But you’ll still see older D3D api’s in there, slowly being phased out with each new iteration.
Popular engines like Unreal and Unity have OGL, D3D11, D3D12, and Vk rendering paths for maximum compatibility across platforms. And unless explicitly told not too, when you play one of these games, it’ll use the rendering path most appropriate for that platform automatically.
DirectX is kind of like SDL but just for Windows powered platforms like your PC, Xbox, and Windows Phone (remember those?). SDL is a bit higher level, and includes other contexts like OpenGL.

KyleHarrisonRedacted
Автор

I'm passionate about Love2D, and I'm learning a lot about programming logic with this framework and the Lua language.
There are several ways to get the desired result, and it's easy to change something to include new features in your code.

SandroSashz
Автор

I like the simplicity of love2d and lua, everything is pure and concise

DrNabeel
Автор

I was actually looking for this and I got your video like a minute after it went public, thanks!

bior
Автор

I'm ashamed by how much time it took me to understand that it's "Mike here, at GameFromScratch", and that your name is NOT "Miker"

algorev
Автор

Today, on "Mike screams to everyone who will listen 'You have more than three options for game development'" We'll be featuring more than three frameworks and Mike's Herculian self control.

FireFox
Автор

I did some coding using SDL and SFML when I was younger and had no clues about coding overall.
Doing alot in C++ was a challenge but surely helped me understand how a game was built.

Thankfully with the amount I looked into it, I managed to acquire some basic knowledge of gamedev and how things work behind some Game Engines.

xXEnigmaXx
Автор

THANKS MIKE ...
Did not know that YouTube Studio had an "Inspiration" section.
I'll need to start looking at that section from now on.

Supreme-Emperor-Mittens
Автор

raylib can be used for 3d too, theres side step legends to show.

paraxodondev
Автор

SDL... how many memories.... I've used it for my breakout clone something like 25 years ago or so, and then as my output lib for my path tracer. Sometimes it is nice to see that not everything turns into dust...

alessandrocaviola
Автор

Surprised to find out that you didn't include Pygame.
Love your content btw!

krishnadas_
Автор

8:18 Terraria was originally made with XNA.

kron
Автор

I don't think I'll ever use a framework for game development, but it's amazing the tools we have completely free to make amazing stuff

BombAtomically_
Автор

I've mostly only worked with game engines like Unity and Godot. I was a CS major, but I barely ever touched C++ or C programming after my first year. I'm sort of interested in really understanding game programming on a deeper level. Do you recommend trying Raylib to get more into C programming based on my case?

Specifically, I want to make 2D games.

TayoEXE
Автор

XNA was my first introduction to "oh I can make games?!" to the world I had 0 knowledge of what coding even was, but their slogan said you could, so I my life mission in that point became to learn how. EDIT: oh and feedback Camtasia looks amazing, but subscription software is dead to me, shame... I would rent but if there is a permanent option available

AirmanCS
Автор

I would say that this definition is pretty new. Before game engine was code features that could stand alone from the game itself and be used to create another game. Framework was usually the term for “engines” outside of gamedev. Say like Flutter.

That a game engine should incorporate and editor is actually a bit to opposite. A framework usually had some tooling like swift for iOS dev. While a game engine if one listen to the name. Was the engine, the motor that the game was running on.

While the editor was well editor of data files that the engine might use at runtime. But not always that either.

I would say it’s more down to angle and where you come from but for sure a game engine do not need to have any direct advanced tooling.

Also several what is here references as framework I would more name as “libs” as purpose is to include them into other frameworks etc.

litjellyfish
welcome to shbcf.ru