Dear ImGui -- C++ GUI Framework For AAA Games and Game Engines

  Рет қаралды 104,366

Gamefromscratch

Gamefromscratch

Күн бұрын

Пікірлер: 125
@gamefromscratch
@gamefromscratch 3 жыл бұрын
Link: gamefromscratch.com/dear-imgui-1-80-released/ ----------------------------------------------------------------------------------------------------------- *GameDev News* : gamefromscratch.com *GameDev Tutorials* : devga.me *Support* : www.patreon.com/gamefromscratch *Discord* : discord.com/invite/R7tUVbD *Twitter* : twitter.com/gamefromscratch -----------------------------------------------------------------------------------------------------------
@PolygonHive
@PolygonHive 3 жыл бұрын
We used this a lot in the AAA industry, probably the best debug UI ever. And the remote functionality is awesome 😉👍
@supremeleaderkimjongun
@supremeleaderkimjongun 3 жыл бұрын
Doesn't look too much good though. But on performance side it's very efficient.
@darkzeroprojects4245
@darkzeroprojects4245 2 жыл бұрын
@@supremeleaderkimjongun something I am fine with. Thoug if one can make it more stylish on tp of it it be Good
@clintonreisig
@clintonreisig 2 жыл бұрын
I want to write source in only C, but do not mind the GUI being in CPP. My applications will be OS cross platform. The information seems to say that the GUI made from Dear IMGui should look typically the same regardless of OS implementation with no need to tweak it. Am I correct on this?
@bronzekoala9141
@bronzekoala9141 2 жыл бұрын
@@supremeleaderkimjongun It can be themed to look exactly how you like it.
@alexs2195
@alexs2195 6 ай бұрын
@@supremeleaderkimjongun this is why he called the best debug UI lol
@apollolux
@apollolux 3 жыл бұрын
Two things to note that aren't covered in this video: 1. While for some reason not listed in the users, Adobe also uses Dear ImGui and with the Dear ImGui implementation of their "Spectrum Design Language" (basically a glorified style guide, but still useful nonetheless) they plan on making their future app GUIs more visually consistent and unified, and the rendering more platform-agnostic. My personal assumption is they're going to double down on their existing use of Chromium Embedded Framework. 2. The design methodologies and the overall history and progress of the Dear ImGui project are more apparent once you realize that the dev, Omar Cornut, is also known as Bock, the dev of the Sega emulator Meka. Using, even just looking at, Meka you will see this is a dev who eats his own dogfood.
@seppukun208
@seppukun208 3 жыл бұрын
ooof, I remember IMGUI. I used it in my first year of uni. It moves so fast and gets updated so often it's hard to keep up. But it certainly made my project way better looking than the rest of my classmates.
@joshmadscientist5338
@joshmadscientist5338 3 жыл бұрын
Damn it. When telling my friend about the ui toolset I was writing for my engine, he mentioned imgui. I shoulda listened and saved myself a month.
@kylegaijin
@kylegaijin 3 жыл бұрын
but, that was still good experience for you.
@mazimadu
@mazimadu 3 жыл бұрын
"It run on your toaster probably ..." (Sees Qt) HE'S NOT LYING!!
@ucmRich
@ucmRich 3 жыл бұрын
check out The Cherno he build his own engine "Hazel Game Engine" and he uses ImGui.
@0tiii
@0tiii 3 жыл бұрын
On the real though, he is lots of show little substance
@novaria
@novaria 3 жыл бұрын
@@0tiii wdym he did some pretty good tutorials and went in-depth compared to other tutorials found on youtube. Also he seems to know his stuff. Where does this come from? Just curious, maybe I'm missing something.
@utilityy
@utilityy 3 жыл бұрын
Yeah cherno is awesome
@MrDarkoiV
@MrDarkoiV 3 жыл бұрын
@@novaria I am not sure, I had found myself always underwhelmed in his tutorials. IDK how it is now, but his past tutorials were mostly basics that could be shown in 1/3 of time that he used, and any useful followups with more advanced usages were often promised but not delivered.
@alexs2195
@alexs2195 6 ай бұрын
@@MrDarkoiV his tutorials are slow, but he did focus on the basics and explanation. Is a really good tutorial if you want to spend time and learn, but if you just want to copy code is pretty annoying.
@legend4646
@legend4646 3 жыл бұрын
dang, ive seen this kind of thing in games and never realized it was open source!
@darkaaaaaaa
@darkaaaaaaa 3 жыл бұрын
How simple to implement backend for ImGUI? I've got it all running, inlcuding input, on N3DS under 8 hours.
@MichaelProstka
@MichaelProstka 3 жыл бұрын
Been looking to replace Qt for our in-house tools, this might be just the right fit.
@UnidayStudio
@UnidayStudio 3 жыл бұрын
I use this in my game engine, it's awesome!
@mihajlosreckovic8404
@mihajlosreckovic8404 3 жыл бұрын
Is the source code available? Curious to see how it looks. I am learning about game engine development (DirectX currently), and would like to see how other projects look
@bhaveshtiwari5783
@bhaveshtiwari5783 3 жыл бұрын
@@mihajlosreckovic8404 just check out his channel he already have a lot of videos on his game engine
@softwave1662
@softwave1662 3 жыл бұрын
ImGui is wonderful.
@tomtawadros
@tomtawadros 3 жыл бұрын
Interesting, seen star citizen use this. Always thought it was just a feature of their engine.
@HereIsZane
@HereIsZane 3 жыл бұрын
Nope it seems they are using imgui instead of the standard CE UI for new stuff, probably cause new LY versions have a different UI framework so in case they want to upgrade in the future they won't have to redo all the tools.
@cykboy3254
@cykboy3254 3 жыл бұрын
imgui is awesome but not so much for most actual game UI, tooling and such however its brilliant for
@michaelbitzer7295
@michaelbitzer7295 3 жыл бұрын
I have been using it for years and it is amazing!
@akshayazariah
@akshayazariah 3 жыл бұрын
Dear ImGUI is a Godsend.
@MastermindAtWork
@MastermindAtWork 3 жыл бұрын
I seen Game Freak's Pokemon Sword and Shield engine used ImGUI from the Beta images shown of the game.
@earthlingsunite1405
@earthlingsunite1405 3 жыл бұрын
1:55 UHOOOOOHH back to dark back to dark
@VertegrezNox
@VertegrezNox 3 жыл бұрын
Thank you. been looking for more info on creating 'tools' & this looks pretty nice so ill do some more digging and probably give it a shot
@redox5373
@redox5373 3 жыл бұрын
Waited for a long time for this video
@sharkinahat
@sharkinahat 3 жыл бұрын
I only played a bit with the Python bidings and it worked fine. I like its no nonsense style, you don't get 55 types of Button classes.
@morfy2581
@morfy2581 3 жыл бұрын
Flashbang 1:52
@moe4b
@moe4b 3 жыл бұрын
The real flash bang is at 2:09
@IElial
@IElial 3 жыл бұрын
Thx ! Strangely I was completely bling on this side. And just understand what Im mean in ImGui ^^. So to be clear, this is mainly devoted to Dev UI (like tool) but not for end user (player) interface (like creating game menu, inventory, ...)
@herrdingenz6295
@herrdingenz6295 3 жыл бұрын
3:00 Dear ImGui has drag'n'drop and cut'n'paste .. it even has docking and viewports
@mnajim7538
@mnajim7538 3 жыл бұрын
Can you make a tutorial about it?.
@SophiaWoessner
@SophiaWoessner 4 ай бұрын
Light theme genuinely fucking hurt, and then the second lighttheme jumpscare of github also hurt
@Kitsune_Dev
@Kitsune_Dev 6 ай бұрын
can you talk more about Lua and Luau and tools? i currently made my tools outside of Roblox for automating tasks using Lune but I can’t really find libraries that work with it as Lune is written in RUST and I need libraries for audio manipulation and GUI stuff
@Murderface666
@Murderface666 3 жыл бұрын
I remember the days when people would say "why reinvent the wheel? There's already Unreal and Unity!" Where are they now?
@cholushkin
@cholushkin 3 жыл бұрын
it depends on particular purposes and requirements. You don't need imgui if you're creating simple unity game. But you may consider using it if you have a big team and custom engine with a complex gui. So answer to your question is they are right here now.
@Murderface666
@Murderface666 3 жыл бұрын
@@cholushkin You are just trying to be contrary for the sake of being contrary. People been wanting to understand how to create their own engines + editors for years. The problem is, when such a question is asked, everyone is quick to shoot it down. Fast forward to today, there is no shortage of such examples and is steadily decoupling from the mainstream, meaning a handful of companies wont be able to retain a monopolizing strangle hold on the market. More engines + editors is a good thing. It means more money in the creator's (of a game) pocket by eliminating as many middlemen with their hands out as possible.
@yolamontalvan9502
@yolamontalvan9502 11 ай бұрын
But this video is two years old. Is it still good?
@SianaGearz
@SianaGearz 3 жыл бұрын
Would you consider making a roundup/comparison of all the different similar libs? There's also Nuklear and Google FlatUI.
@yadav-r
@yadav-r 3 жыл бұрын
interesting, really appreciate the time & effort you put into your content.
@rootwayder77
@rootwayder77 3 жыл бұрын
iam gonna use this in my game engine. this looks sooooo awsome i love it ❤️
@BrainSlugs83
@BrainSlugs83 3 жыл бұрын
The Unity port doesn't work. At least it didn't a few months ago when you did your last ImGui video. It's like for Unity 2017 or something and didn't function in 2019/2020. I filed a bug and forgot about it. Might be worth looking back into it now.
@adityachoubey935
@adityachoubey935 3 жыл бұрын
I have been using Unity and Unreal to make games. I wanted to start working on a game engine that uses D3D 11 as a project. How and where should I start?
@gamefromscratch
@gamefromscratch 3 жыл бұрын
Generally you start with a renderer, then a scene graph, then asset loaders, then tools and go from there. Every single game engine starts with a single triangle on screen.
@fabricebalan
@fabricebalan 3 жыл бұрын
@@gamefromscratch what if i start with a square
@ilieschamkar6767
@ilieschamkar6767 3 жыл бұрын
@@fabricebalan 2 triangles then!
@kubolor1234
@kubolor1234 Жыл бұрын
​@@gamefromscratchstarted with a pyramid, felt like Hideo Kojima 😎
@roxonogueira
@roxonogueira 3 жыл бұрын
Hi Gui, I'm Pedro
@tuatarian6591
@tuatarian6591 3 жыл бұрын
Nim port of this (part of nimgl) is super good
@NavyaVedachala
@NavyaVedachala 3 жыл бұрын
Hello! This was great. I need to make time plot inside my game screen. Are there any video resources that explain how to set up graphs using IMGUI? Thank you!
@KoMaHu3aM
@KoMaHu3aM 3 жыл бұрын
keeping those algorithms happy...
@kanteranrhodan6032
@kanteranrhodan6032 3 жыл бұрын
Please show the docking branch!
@bocktiful
@bocktiful 3 жыл бұрын
I second this comment you should show the docking branch (merging/split window, extracting them out of the main viewport) Also, about your comment on "lacks certain features normally found in more high-level libraries": it does support drag and drop and clipboard, many more things :)
@WeskerPower
@WeskerPower 3 жыл бұрын
This is very old ma dude, i was wondering if you ever talk about it
@wjrasmussen666
@wjrasmussen666 Жыл бұрын
Is there a github for the example at the start of this video with the examples
@watercat1248
@watercat1248 3 жыл бұрын
Html is one of my fevorit Languages
@ChrisLeeW00
@ChrisLeeW00 3 жыл бұрын
hmm, this might help make that retroarch core I've been thinking about...
@GameUnion
@GameUnion 3 жыл бұрын
Back to DARK! YEAH! 🌑
@msec7188
@msec7188 3 жыл бұрын
is this the same as dearpygui? because I love love love dearpygui!!
@Nexus-rt1bm
@Nexus-rt1bm 3 жыл бұрын
I think dearpygui is just python bindings for dear ImGui
@robotustra
@robotustra 3 жыл бұрын
"ImGui has no third party dependency"... Except that your own project will have a dependency of ImGui itself...
@9paradox
@9paradox 3 жыл бұрын
Hmm 🤔 interesting. I was about to start with Kotlin compose for desktop.
@stuartdriedger9989
@stuartdriedger9989 3 жыл бұрын
which prescription drugs are you using?
@mohamedamine-vx6mb
@mohamedamine-vx6mb 3 жыл бұрын
Good work
@FPChris
@FPChris 2 жыл бұрын
Does it work in straight C?
@kubolor1234
@kubolor1234 Жыл бұрын
Saw imGui in the GTA 6 leak
@jaysistar2711
@jaysistar2711 Жыл бұрын
Please look at egui. It's like Dear IMGUI in that it's immediate mode, and it generates vertex buffers to be rendered by the engine API or low level API, but it's written in Rust, and easily works on native and the Web (it has prewritten backends for common platforms).
@chickeninabox
@chickeninabox 3 жыл бұрын
Are you an engineer?
@gamefromscratch
@gamefromscratch 3 жыл бұрын
That is a word with a VERY defined meaning in Canada. I do not have an engineering degree. I have had titles with Engineer in them, but again, they probably shouldn't.
@chickeninabox
@chickeninabox 3 жыл бұрын
@@gamefromscratch I said that because you were speaking words that you didn't speak before.
@drew230
@drew230 3 жыл бұрын
This looks interesting
@cannahacker9637
@cannahacker9637 3 жыл бұрын
very friendly project!
@ChronoWrinkle
@ChronoWrinkle 3 ай бұрын
i wonder, why do you not scream at white github page..
@StiekemeHenk
@StiekemeHenk 3 жыл бұрын
ImGUI, perfect for making hacks
@taddeustentakel8598
@taddeustentakel8598 3 жыл бұрын
how u mean that ?
@StiekemeHenk
@StiekemeHenk 3 жыл бұрын
@@taddeustentakel8598 Its common to use ImGUI when making cheats for games quickly.
@bls7879
@bls7879 3 жыл бұрын
just came here to say that xD
@cazz
@cazz 2 жыл бұрын
hahaha, yeah...
@sabriath
@sabriath 3 жыл бұрын
Somewhat sad that they forced developers to keep calling all of the functions at every step...majority of gui can be rendered to a surface and then use callback functions if an area needs a redraw. I've done these things for years, it's much faster that way. Better still if you thread it and leave it completely automated, handling only through requests and callbacks.
@jocamar15
@jocamar15 3 жыл бұрын
You're just describing retained mode UI frameworks. The idea of immediate mode frameworks is simplicity and ease of use, allowing programmers to make UI in a way more similar to how they would program other things.
@sabriath
@sabriath 3 жыл бұрын
@@jocamar15 I am not seeing how it is "easier" to program each and every draw call and having to worry about depth, focus, input, etc., instead of simply "here's a window, manage it for me, if something happens let me know." Simplicity to me is: main = frame_new(-1, [10,10], [100,100]); button = button_new(main, [0,0], main.innersize, [clickme]); I guess I'm old school, just call me a boomer...but in my eyes, it is easier to separate out the code that is UI specific from the game code. In this way, technically, you could have all the UI loaded at the beginning and just ".hide" it until it is needed....rather than instance create/destroy and have a bunch of objects intertwined in the mess. To each their own, I just don't see the appeal.
@bocktiful
@bocktiful 3 жыл бұрын
@@sabriath Why do you suggest you'd have to care about "depth, focus, inputs" in dear imgui? Your example in dear imgui would be ImGui::Begin("Main"); if (ImGui::Button("mybutton")) clickme(); ImGui::End(); Which arguably is simpler already. And - You have a window which you can move, collapse, docking, even extract out of your primary viewport with the docking branch. - It works anywhere in your code EVEN in a deep call-stack for quick debugging. - The fact that it doesn't require storage of ui artifacts on your end means it also makes it much easier to use in dynamically recompiled/reloaded code. - Your example is completely omitting the MOST problematic aspect of retained ui is that when anything needs to be dynamic then suddenly you are in a world of pain. Synchronizing UI with live data is extra code as well as lots of bugs and those retained framework are not handling it efficiently. All those problems are going away with Dear ImGui. - Making DYNAMIC ui magnitude faster to create has a HUGE impact on development style. Everyone can suddenly create tools in a few minutes. Instead of calling yourself old school or a boomer and making claims about performance try to spend a day in Dear ImGui examples and make measurement. github.com/ocornut/imgui/wiki/Quotes
@rrnum7
@rrnum7 2 жыл бұрын
Very late to the party, but I'd add something more. Immediate mode GUIs are nothing new; game developers have been implementing them for their in-house tools for ages, so the "I'guess I'm old school" just sounds ignorant. And yes, it would be much better to try to actually use it (and not just write toy examples, by the way) so that one can have an informed opinion. As Casey Muratori (the person who coined the term Immediate Mode GUI) wrote almost 20 years ago: "I think this has something to do with how simple the IMGUI concept is, as it leads people to think they understand it, and then they proceed to get into heated arguments as if they actually know what they’re talking about".
@sabriath
@sabriath 2 жыл бұрын
@@rrnum7 Yeah, you are a year off of my original comment, and I still believe in my concepts that I stated. You can call it or coin it or whatever way you want, but I've always programmed backend systems to be as much "hands off" as possible for frontend programming. I actually just created an animation suite for gms2 using time sources....you literally tell it to move an object from one location to another and give it an interpolation function (like a lambda) so that it steps at specific rates, everything is handled in the background from there. You can overlay the animations with other things as well, like rotations, scales, etc.....you tell it, it goes, all encapsulated. If I wasn't currently in the process of making a video game, I'd be happy to program a proper gui backend that literally would take care of everything. Yes, I'm old school; yes, it's arrogant attitude, but more so built from decades of experience with many languages (including some that I've designed myself). It's funny because I actually hate other people's libraries because they are built so bloated, but I build many libraries for others, lol. I'm an asshole like that, but I like the pride it gives me for completing such tasks, don't really care about making friends.
@Awwe12675
@Awwe12675 11 ай бұрын
شكراً
@kasper7203
@kasper7203 3 жыл бұрын
Lol I have no clue what this is.. Really starting to doubt I will ever make a game
@Bozemoto
@Bozemoto 3 жыл бұрын
Figure out what your goal is, is it to make a AAA game then you're better off trying to get into the industry. There are hundreds of people working at big studios, can't really match it with just one person. If it's a hobby then just grab an engine, maybe even RPG maker and get going. Do what you enjoy. Happy to offer advice if you need it.
@MarcV_IndieGameDev
@MarcV_IndieGameDev 3 жыл бұрын
I'm new myself dude, it's exciting and confusing, looking into things can be mind boggling or inspiring. Take it slowly, and just dabble with stuff. See what you enjoy and see where your strengths and weaknesses lie. But above all, enjoy yourself - have fun.
@kasper7203
@kasper7203 3 жыл бұрын
@@Bozemoto thanks mate.. Currently messing around in Unreal 4. I will try.. I am just easily intimidated when I see how much I ought to know before releasing anything.
@kasper7203
@kasper7203 3 жыл бұрын
@@MarcV_IndieGameDev thanks bud I will try. Maybe in the end what I make (if I ever finish it) will not be worthy of publishing but you are right, the process of trying is reward enough. At least if it is just me working on it then I can't dissapoint anyone lol.
@SeraphixD3
@SeraphixD3 3 жыл бұрын
Instead of working with some complicated framework in ImGui you just call a function and maybe give it some pointer to your data. A bool when clicking a checkbox for instance. It generates some data that can be used in a shader to display the gui. Or you just use the example implementation for your graphics API and your window framework / library. I just did the later for a simpel OpenGL renderer. -- You don't really need to know all the low level details to get into game programming, if you don't want to; you could just use an engine. Unless you really want to go do low level programming. Like I said, ImGui is just a bunch of functions that are almost self-explanatory. If you want to do graphics programming, I recommend the OpenGL API + glfw for window creation and input handling, because it is the simplest possible way (that I know of) to do that.
@sebastianbusch6905
@sebastianbusch6905 2 жыл бұрын
So you basically read us github
@itsME-dc4vm
@itsME-dc4vm 3 жыл бұрын
Nice ;O
@alperenince3157
@alperenince3157 3 жыл бұрын
says "white theme, shield your eyes ugghhh" uses white theme github lol
@2002budokan
@2002budokan 2 жыл бұрын
I recommend this speaker to read the book "Uncommon Sense Teaching", which also has a course on Coursera, or watch the course videos. Maybe then he'll stop talking like he's in a hurry and produce more useful videos. Ok, I can slow down the speed, but what's the point of explaining like a racehorse?
@vaishnav_mallya
@vaishnav_mallya 3 жыл бұрын
1:52 😂
@nogagoesbrrr1275
@nogagoesbrrr1275 3 жыл бұрын
microsoft flight simulator uses this
@KennethWilson-z8i
@KennethWilson-z8i 2 ай бұрын
Schultz Fort
@LuizAntonio_Gameplay
@LuizAntonio_Gameplay 3 жыл бұрын
Create a tutorial ImGui.Net thanks
@CodingWorm
@CodingWorm 3 жыл бұрын
can i get a shoutout
@Т1000-м1и
@Т1000-м1и 3 жыл бұрын
35 minutes ago
@stewdean
@stewdean 3 жыл бұрын
So many GUI toolkits look terrible. This is no exception.
@michaelbitzer7295
@michaelbitzer7295 3 жыл бұрын
The looks can be changed however you want. It it just the default imgui style. Might take some time to have a nice style but once you do nobody will think it is imgui.
Quixel Megascans and Bridge are Back!!! -- Fab Haters Rejoice!
9:09
Gamefromscratch
Рет қаралды 16 М.
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 34 МЛН
ТВОИ РОДИТЕЛИ И ЧЕЛОВЕК ПАУК 😂#shorts
00:59
BATEK_OFFICIAL
Рет қаралды 6 МЛН
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 3,4 МЛН
快乐总是短暂的!😂 #搞笑夫妻 #爱美食爱生活 #搞笑达人
00:14
朱大帅and依美姐
Рет қаралды 12 МЛН
Why I removed Components from my Game Engine
13:07
Joshua Manton
Рет қаралды 43 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,6 МЛН
Why Are Open Source Alternatives So Bad?
13:06
Eric Murphy
Рет қаралды 698 М.
Why I Cant Stand IDE's After Using VIM | Prime Reacts
17:51
ThePrimeTime
Рет қаралды 377 М.
The New Slang Language is a Game Changer for Game Developers!
9:29
Gamefromscratch
Рет қаралды 35 М.
I Made the Same Game in 8 Engines
12:34
Emeral
Рет қаралды 4,2 МЛН
I made my own UI library in C++, How to design a complicated system?
13:09
Low Level Game Dev
Рет қаралды 33 М.
ImGui | Game Engine series
27:57
The Cherno
Рет қаралды 117 М.
Introduction to Dear ImGui
46:52
Bill Kerney
Рет қаралды 8 М.
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 34 МЛН