Making a Desktop App with a Game Library

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 113

  • @gorudonu
    @gorudonu Месяц назад +127

    windows with nvim and tiling window manager, I'm scared of you

  • @CodeCupboard
    @CodeCupboard Месяц назад +51

    Cool stuff! it's quite cool to see something unconventional like this! I hope the RPG in go series will continue. It was very useful.

    • @codingwithsphere
      @codingwithsphere  Месяц назад +13

      It will ! I havent had a big enough block of time as I just moved back to college. I want to record a video this week for it

  • @gammyhorse
    @gammyhorse Месяц назад +20

    Very cool vim + lsp setup. Please make a video about it, because it's difficult to set it up on windows.
    PS: I just found you already did a video about it. LOL. You're great man, thank you.

  • @SophiaWoessner
    @SophiaWoessner Месяц назад +37

    I fully thought you were using linux until your said c:/ directory lol

  • @DrNabeel20
    @DrNabeel20 Месяц назад +7

    Great video as usual!. I developed GUI library in lua for this purpose, now I can use love2d to make a desktop app :D

  • @hamzarashid7579
    @hamzarashid7579 Месяц назад +29

    The keyboard sound is so good

    • @vlc-cosplayer
      @vlc-cosplayer Месяц назад +4

      Nah, they sound like goofy ahh skeleton SFX from a 30's cartoon 💀💀

  • @KrisStruble
    @KrisStruble Месяц назад +5

    You sir are living my dream.

  • @GuildOfCalamity
    @GuildOfCalamity Месяц назад +1

    Great 1st vid on RL, this could be a cool series!

  • @sledgex9
    @sledgex9 Месяц назад +8

    FYI, the warnings you got at 8:00 about the strings which you made out to explicit variables were due to you writing them in the wrong order as parameters to GuiTextInputBox. You were giving a value to the parameter named "text" which has a type of char* (aka writable string) while a string literal is of type const char* (aka immutable string).

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      Yeah i realized that after recording, it's been a minute since Ive used C/C++ lol

  • @bashbarash1148
    @bashbarash1148 Месяц назад +33

    raylib is a perfect tool for this stuff. Especially if you combine it with imgui. This combo destroys any QT-like juggernaut

    • @amirrezaghorbani2715
      @amirrezaghorbani2715 Месяц назад +13

      Untill you get to i18n and RTL Font rendering.

    • @tommasobonvicini7114
      @tommasobonvicini7114 Месяц назад

      I don't know, it's definitely lightweight, but looks and feels like shit

    • @SianaGearz
      @SianaGearz Месяц назад

      @@amirrezaghorbani2715 Accessibility (screen reader support e.g.) is another disaster. Most of the classic (non-webtech-based) UI framework bloat is there for a reason.

    • @doBobro
      @doBobro Месяц назад

      If you look into "real" apps using raygui it's incomprehensive mess of attempts to reimplement layout engines to make it somewhat usable for end user.

    • @perfectionbox
      @perfectionbox Месяц назад

      Is there a visual form designer? Because laying every widget out in code gets old fast.

  • @blvckbytes7329
    @blvckbytes7329 Месяц назад

    19:20 I was actually surprised by how nicely you've read out all other tokens, :). That one little caut is nothing compared to other peoples' stud, putter, eiostr, endler, and "studio", lol. Really enjoyed the video, and could totally follow your thoughts! :)

  • @zombiezoo1384
    @zombiezoo1384 Месяц назад +2

    That is nice, i will try the same in golang raylib

  • @chxnt4202
    @chxnt4202 Месяц назад +3

    you can combine this very easily with a html renderer like ultralight aswell to get a very customizable ui

  • @lifelover69
    @lifelover69 Месяц назад

    cool video, raylib and raygui are really exciting alternatives compared to shipping chromium with every app :) thanks

  • @elektronischermeister
    @elektronischermeister Месяц назад +1

    Please do a tour video on your terminal and text editor configuration!
    It looks awesome!
    I didn't knew you could do that in Windows.

    • @codingwithsphere
      @codingwithsphere  Месяц назад

      Hi, I made a video on it!
      ruclips.net/video/ZqPpBfiX9ws/видео.html

  • @CarlSenior-ru8dx
    @CarlSenior-ru8dx Месяц назад

    BTW you could remove the while loop and get rid of the bug when you click all the ones below get removed by doing two passes when first rendering the tasks you store indices of the tasks that had their buttons pressed and then removing them so that you don't remove as you render not needing the offset

  • @AnimeGeek32
    @AnimeGeek32 Месяц назад

    I’ve used Qt 6 before for a well-known sculpting software. I found it to be broken. I regret not downgrading it to Qt 5.15 when Apple Silicon support was eventually added there. Now, I’m considering alternatives to Qt. ImGUI was one of them.

    • @agentotten
      @agentotten 3 дня назад

      I agree, I also find it complicated and messy.

  • @neto3641
    @neto3641 Месяц назад

    Wasn't aware of this, very cool stuff

  • @Bleb1k_irl
    @Bleb1k_irl Месяц назад +2

    Hi!
    What a fancy terminal you have 😊
    I haven't watched the video yet, just wanted to point out!
    Do you mind sharing configs?
    And is your `ls` a macro to another program, or some magic theme thingy?

    • @codingwithsphere
      @codingwithsphere  Месяц назад

      It's just a slightly modified wezterm ! Ill post a config video soon. I aliased a program called "lsd" that adds icons to ls

  • @Ben-rc9br
    @Ben-rc9br Месяц назад

    I see developer use Vim, I subscribe.

  • @alexdefoc6919
    @alexdefoc6919 27 дней назад

    Dear sir please tell me what terminal you are using and what you are using to have separate tiles/panels. I use wezterm with the powershell shell but it starts slooow like 2 seconds with my powershell profile which is basically none.

    • @codingwithsphere
      @codingwithsphere  26 дней назад

      I also use wezterm with powershell. the slow startup might be due to windows defender. as for tiling, I use GlazeWM for that.

  • @LernerLuis2005
    @LernerLuis2005 5 дней назад

    I love those configs of your nvim, can i see the plugins or configs you got there?

    • @codingwithsphere
      @codingwithsphere  2 дня назад +1

      Yes, I made a video on it not too long ago. It's also on my github

    • @LernerLuis2005
      @LernerLuis2005 2 дня назад

      @@codingwithsphere amazing comrade

  • @Bhanukamax
    @Bhanukamax Месяц назад +2

    I didn’t realize you were using windows until I notice powershell and clang.exe like halfway through the video.
    What’s this setup? Is it windows terminal? How do you rice windows like that? It’d be a great subject for a RUclips video

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      @@Bhanukamax I definitely plan on making a video on it soon ! It's wezterm with GlazeWM and zebar and a few other small tweaks

  • @ahmadfatayerji8102
    @ahmadfatayerji8102 Месяц назад

    Hey dude great video here i was kind of interested in your windows setup and how do you do the search thing? Like the way you open the browser

    • @codingwithsphere
      @codingwithsphere  Месяц назад

      I made a video on it ! ruclips.net/video/G0_wVLhI-Ds/видео.html

  • @vorenxiii
    @vorenxiii Месяц назад +2

    Believe it or not, I was just searching if there is a way to make GUI apps without using XML for UI or something similar yesterday XD.
    for context: I am 3rd year, and the prof. announced we're gonna have a year project using C++ for a GUI app.

    • @sledgex9
      @sledgex9 Месяц назад +1

      You don't have to use XML for UI with Qt (aka .ui files). You can hardcode the window-widgets-layout in code. But that will make your life extremely hard when you want to design or update or tweak your GUI.

    • @vorenxiii
      @vorenxiii Месяц назад +1

      @@sledgex9 I didn't know that, I'll try to play with both and see what works best for my skill level. Thanks for the info boss.

    • @ArnabJhaYT
      @ArnabJhaYT Месяц назад

      Try Qt, it's easy and fun to learn.

    • @vorenxiii
      @vorenxiii Месяц назад

      Sure thing boss.

  • @Kiro1900k
    @Kiro1900k Месяц назад +2

    What font are you using, And the theme?

    • @codingwithsphere
      @codingwithsphere  Месяц назад

      @@Kiro1900k iosevka and base16-black-metal-gorgoroth

  • @kairu_b
    @kairu_b Месяц назад

    Satisfying

  • @sampleee
    @sampleee Месяц назад +3

    i have no idea what your text editor is but i NEED IT please tell me what that beautiful piece of software is called

    • @sampleee
      @sampleee Месяц назад

      clearly its vim but how do you have intellisense

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      @@sampleee neovim with a lot of plugins for lsp support and autocompletion. The config is on my github

    • @sampleee
      @sampleee Месяц назад

      @@codingwithsphere

    • @GiovanniCKC
      @GiovanniCKC Месяц назад +2

      Was looking for this lol. The completions with all the argument descriptions is very nice.

  • @tokisuno
    @tokisuno Месяц назад

    this is super interesting

  • @AliErtugay
    @AliErtugay Месяц назад

    When can we get a continuation to the Minecraft series please

  • @ashtonkusmaul6907
    @ashtonkusmaul6907 Месяц назад +1

    Also is rust worth using or do you just know c++ better?

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      Rust is great, I like both

    • @-marin4332
      @-marin4332 Месяц назад

      @@codingwithspheremaybe you could take a look at macroquad which is a raylib inspired game framework for rust

    • @emptycode1782
      @emptycode1782 Месяц назад

      Almost all languages are worth using if you know what you are doing :D

  • @ayoubelmhamdi7920
    @ayoubelmhamdi7920 Месяц назад

    The short video is great, but the fast video lost concentration, the auto formatting in a video and snippet and lsp is so annoying,
    the pure vim with compiler (jumplist) is enough to produce a cool video, i try to flow video because i want to know if the application re_render again and again every fps: 60 times in a second.

  • @mehmeh8883
    @mehmeh8883 Месяц назад

    More Raylib content!

  • @ovi1326
    @ovi1326 Месяц назад

    What's the font called? Also people mentioned this already but never seen such a r/unixp*rn windows setup, giant props

  • @Sir.Aymoon
    @Sir.Aymoon Месяц назад +3

    How does LSP diagnostics look like this?

  • @yogxoth1959
    @yogxoth1959 28 дней назад

    Which terminal is that? Not Windows Terminal, or?

  • @mr.shredder5430
    @mr.shredder5430 Месяц назад

    im a beginner, im curious to know if a normal desktop or any app runs on a loop like a game does

    • @codingwithsphere
      @codingwithsphere  Месяц назад

      @@mr.shredder5430 technically there is a loop for waiting for events, but most traditional apps are rendered in retained mode. The app is rendered, and only portions are rerendered when needed. This approach rerendered the entire screen every frame. This is more cpu intensive, but can be good for highly dynamic ui

  • @NextMomentOnEarth
    @NextMomentOnEarth 23 дня назад

    How do you make your cat look like that

  • @thundertastic896
    @thundertastic896 Месяц назад +3

    Kinda off topic but what plugin are you using for the errors in your buffer? First time seeing such neat errors in the buffer.

  • @catfan5618
    @catfan5618 Месяц назад

    What is the color scheme? Looks clean.

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      Base-16-black-metal-gorgoroth with some minor tweaks

    • @catfan5618
      @catfan5618 Месяц назад

      @@codingwithsphere Thanks!

  • @RemainingAxis565
    @RemainingAxis565 Месяц назад +2

    Anyone here looking for the wendy's kraby patty

  • @vendingmachine208
    @vendingmachine208 Месяц назад +1

    What terminal is this?

  • @metamud8686
    @metamud8686 Месяц назад +5

    Funny to see how you go back to the way UIs were built in the 90s, throwing out all advancement that was made since and go back to calculating offsets and doing all the crap that you can abstract from using modern day libraries, just to go back to doing e-ve-ry-thing using pixel coordinates. Including all the bugs associated with that.

  • @primalaspid7197
    @primalaspid7197 Месяц назад

    What kind of cat command is that?

  • @spoonikle
    @spoonikle Месяц назад

    Gezz… Would rather just make a single page vanilla javascript app

  • @xtan-io
    @xtan-io Месяц назад

    Keyboard?

  • @fsocietytrading
    @fsocietytrading Месяц назад

    pls your starship cfg

  • @user-sb5vt8iy5q
    @user-sb5vt8iy5q Месяц назад

    I don't even care about the video I care about how you got those tiny language icons in front of every filename

    • @codingwithsphere
      @codingwithsphere  Месяц назад +1

      If you're talking about my "ls", im using a program called "lsd" and aliased it to override the default

    • @user-sb5vt8iy5q
      @user-sb5vt8iy5q Месяц назад

      @@codingwithsphere yeah that was it thanks

  • @balodoc
    @balodoc 2 дня назад

    tsoding? haha

  • @joa-p2m
    @joa-p2m Месяц назад

    Vi 🗿

  • @tezkalow
    @tezkalow Месяц назад

    thats the way
    i hate qt for being gigabytes bloated

    • @SianaGearz
      @SianaGearz Месяц назад +1

      Unless you put QtQuick in, it's really absolutely not. There's still a fair few megabytes there, but i mean it also handles internationalisation and accessibility and various other advanced system interfacing, something none of ad-hoc game-framework based UI ever does.

    • @tezkalow
      @tezkalow Месяц назад

      ​@@SianaGearz qt-everywhere-src-6 8 0 zip is 1.5G. its that bloated already without design tools. ofc compiled binary size is much smaller but the overhead to setup qt is huge and is an overkill for simple GUI usage. Commercial apps may need features like i18n and accessibility, but many open-source projects don't.

  • @m4rt_
    @m4rt_ Месяц назад

    Why... what is this mess of a shell.
    I see Linux static libraries. You have a Linux homefolder... I think.
    But then you have a C:\ directory inside that.
    WHY!

  • @-iIIiiiiiIiiiiIIIiiIi-
    @-iIIiiiiiIiiiiIIIiiIi- Месяц назад

    There's a special place in hell for people who make TODO apps.

  • @yooyo3d
    @yooyo3d Месяц назад

    So, your todo app spin cpu core at 100% doing nothing unless you turn on vsync.
    Imgui is just bad.

    • @chxnt4202
      @chxnt4202 Месяц назад

      this is not imgui its raygui imgui is a great library just not designed for desktop apps since its an intermediate mode library

    • @Bobbias
      @Bobbias Месяц назад +2

      ​​@@chxnt4202to be fair, it's still an immediate mode GUI, which still has the downside of having to fully layout and render the entire GUI every frame. Immediate mode has its place, but there's a good reason most desktop GUIs use retained mode.

    • @GiovanniCKC
      @GiovanniCKC Месяц назад

      @@Bobbias serious question-- couldn't you just not call all the drawing functions with an immediate mode GUI sometimes or something along those lines?

    • @Bobbias
      @Bobbias Месяц назад +4

      @@GiovanniCKC the direction of your question (ie optimizing drawing the UI) is literally the line of inquiry that leads to retained mode UI design. Retained mode is basically an optimization to avoid having to relayout/redraw your UI every frame.
      Sure, you could come up with some sort of in between version using an immediate mode library, but the resulting code would be too complex for what it provides and you'd be better off just using retained mode.
      The benefit of immediate mode GUI is that it's easier to write and debug, because the UI state is intrinsically linked to the code state, where retained mode loses that property (it has to decouple the UI state from the code state to work).
      This the choice is a tradeoff: better performance at the cost of more complex and difficult to debug code vs simpler and easier to debug, but slower.
      This tradeoff is honestly largely irrelevant on modern systems as the time spent drawing an immediate mode GUI will be extremely short unless you're just flat out doing it wrong anyway. The solution to OP's bad take is simply cap your app at vsync.

    • @GiovanniCKC
      @GiovanniCKC Месяц назад

      @@Bobbias
      > direction of your question (ie optimizing drawing the UI) is literally the line of inquiry that leads to retained mode UI design
      💀 ah... good to know lol.

  • @MykolaTheVaultDweller
    @MykolaTheVaultDweller Месяц назад

    Thanks for you video, now so called gamedevs will begin writing even more laggy GUI. Re-inventing entire GUI stack will lead to some bugs, and often times developers dont have that much resources to fix everything. In such case, for example, I remember that ImHex (which is written using ImGui and whatever else) is using 100% CPU at background... just because someone didn't implemented proper GL sleep routine. We really dont need gamedevs writing GUI in OpenGL, so please, take this kindly and take down your video for good.