C++ Game Programmer Tries ZIG for the first time.

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

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

  • @williamclark4143
    @williamclark4143 Год назад +138

    that intro is pure gold! "Where is my static reflection!?" 😂

  • @HeartOfLightning
    @HeartOfLightning Год назад +61

    "i used my brain to come up with a project idea..." 😂
    And thanks for sharing your experiences. I don't generally use C/C++ (nor Zig) but I've definitely learned and been entertained from your channel/discord. Have a good day 🕹️

  • @ForeverZer0
    @ForeverZer0 Год назад +38

    Zig has been slowly growing on me. My biggest gripe from a learning perspective is the LSP they ship is a bit lackluster, and seems a bit slower than most.

    • @lufenmartofilia5804
      @lufenmartofilia5804 Год назад

      Same here, and also package management system

    • @ABHISHEKSINGH-nv1se
      @ABHISHEKSINGH-nv1se Год назад +8

      I am also learning zig and since zig is young so the tools around it is also quite young. I think the environment around it will grow and improve once it hits the stable threshold.

    • @bjorn2625
      @bjorn2625 8 месяцев назад

      Same, I've come to adore the language. My biggest gripe, however, is that there is no notational difference between variables and pointers to variables (pointers to structs still use . for member access, as opposed to ->). This makes it very hard to reason about "ownership" when I'm returned something - in C/C++ I know I'm pointing to something when I have to use -> and thus I have to consider who frees this memory.

    • @bjorn2625
      @bjorn2625 8 месяцев назад

      @@lufenmartofilia5804 With 0.12.0 there is a well functioning package manager, for anybody else reading these comments.

    • @kerch00
      @kerch00 5 месяцев назад

      Biggest issue for me is the lack of debugging support

  • @mel0ndev
    @mel0ndev Год назад +23

    i love zig. once I got up and running in it, it just feels bad to use anything else. Using to build a game rn, and I'm having a great time

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +5

      😂 very nice, I will also build a very big game in the future using zig

  • @ps4star286
    @ps4star286 Год назад +38

    Try Odin next. It is way way simpler than Zig design-wise but still gives you a lot of the features you want. I do all of my gamedev in Odin now after using C before.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +16

      wow it seems like many people here like odin ok if I have time I'll give it a try 💪

    • @stefanstefanov00
      @stefanstefanov00 Год назад +8

      How do you debug Odin programs in Linux? AFAIK Odin has been hashing out their dependencies on glibc and such for their own implementations and causing issues for external tools to debug Odin projects as a result of that.
      Or at least that's what a I read in a post of an engineer working on Embergen (written in Odin).

    • @longiusaescius2537
      @longiusaescius2537 Год назад +1

      Is odin faster?

    • @zulupox
      @zulupox Год назад +3

      @@longiusaescius2537 no, but but the difference is tiny. The syntax is super clean though

    • @Dewd98
      @Dewd98 8 месяцев назад

      ​@@stefanstefanov00Odin can be debugged with any tool you'd use to debug C. gdb, lldb, visual studio, RAD Debugger, RemedyBG, etc

  • @sebula8001
    @sebula8001 Год назад +3

    Thanks for making me laugh out loud 😂

  • @christofferlerno2633
    @christofferlerno2633 Год назад +9

    Do make a comparison with Odin and C3 as well.

  • @leffivanov3127
    @leffivanov3127 Год назад +7

    I don't really like the syntax and passing allocators around, so Nim or D (in betterC mode) feels more pleasant to code in for me.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +14

      I don't like the sintax that much either but features like passing allocators for all the things are exactly the things that are needed in game developement so this is why I might switch to it

    • @homelessrobot
      @homelessrobot Год назад +4

      the syntax and many other features of the language are often like those benches they have with too many arm rests on them so that hobos can't lie down on them to stay off the cold pavement. Sure they are awkward sometimes even if you are sitting in them correctly, but on the plus side, there are no stinking hobos loitering around. Who are the hobos? That's a little too philosophical of a question for the point I am trying to make here.Superficial pleasantness is not generally something zig is trying to do for your. But it is doing things for you. And if you let it, and you actually like the more substantial things its trying to do for you, its kind of pleasant eventually.

    • @_slier
      @_slier Год назад +1

      @@lowlevelgamedev9330 well Odin your best bet then.. you can switch the allocator at will incase you need it.. it always pass explicitly to the current context..

    • @TremereTT
      @TremereTT Год назад

      @@_slierAnd Odin is purposefully written as low level gamedevelopment language.

  • @vitalbuggy6907
    @vitalbuggy6907 Год назад +2

    This is the purest form of art

  • @abeldropdout
    @abeldropdout 6 месяцев назад +1

    The first 10s is crazy 😂

  • @TheMachina42
    @TheMachina42 2 месяца назад +1

    I don't think syntax should be a deciding factor eitheir, sure it's different, but at least it's consistent, simple and readable, you learn how to express this and that and within a week you never even think about this stuff ever again, Zig took me less time to learn than C++, despite me having 3y of background in C, and despite being an absolute nerd of C, I've read countless books on everything in C and yet C++ took me like a year to be comfortable in it while I might have picked Zig in maybe a week or so around 0.11

  • @Br4dButt0wski
    @Br4dButt0wski 21 час назад

    Will you try Odin?

  • @JonasThente-ji5xx
    @JonasThente-ji5xx 2 месяца назад

    great video!

  • @dionnix
    @dionnix Год назад +10

    As a Python and Bash programmer, I don't understand a single thing in Zig 😂

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +3

      😂

    • @rxn7
      @rxn7 Год назад +19

      neither python nor bash is a programming language, so you're not a programmer but a scripter

    • @dionnix
      @dionnix Год назад +7

      @@rxn7 I do rust now.

    • @rxn7
      @rxn7 Год назад +2

      @@dionnix based

    • @stretch8390
      @stretch8390 10 месяцев назад +8

      @@rxn7I can't tell if I'm about to be whooshed, but that is a rubbish take.

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

    I felt that "Where is my static reflection?" :)) It's 2024 and people still have to use weird hacks, codegen or boilerplate-as-macros for that. Apparently it's been proposed for C++ 26

  • @LOC-Ness
    @LOC-Ness Год назад +6

    a lot of actual zig hype... sounds like there's finally a real winner in the c successor race?

  • @kernelpanic9560
    @kernelpanic9560 8 месяцев назад

    What are you using (Languages/Tools/Frameworks)to build your game on Steam?

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

    A M O G U S

  • @FodaseGoogreorio-h7v
    @FodaseGoogreorio-h7v 4 месяца назад

    Zig played gritar?

  • @KelvinatorIsTaken
    @KelvinatorIsTaken Год назад +7

    Idk zig looks kinda sus, so it looks like we have a imposter among us 👀

  • @kiryls1207
    @kiryls1207 Год назад

    zig is love
    zig is life

  • @that404nerd
    @that404nerd Год назад +1

    gus

  • @They0ungTravler
    @They0ungTravler Год назад

    Check out Odin next!

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      many people told me about odin, it has to be a great language

    • @They0ungTravler
      @They0ungTravler Год назад

      @@lowlevelgamedev9330 it’s great for game development. It helped me grasp how memory management works better than C and C++. It’s extremely similar to C. It’s like a Pascal-C baby. It isn’t designed to be a language with a killer feature(s), but a language of simplicity

  • @noid3571
    @noid3571 5 месяцев назад

    You fool. You fipped the pipe sprite vertically but not horizontally and now you have an inconsistent light source, a cataclysmic fumble

  • @tourdesource
    @tourdesource Год назад

    They did say it was nasty.

  • @taskinrits
    @taskinrits Год назад +1

    nice intro 😂

  • @iogilarb
    @iogilarb 10 месяцев назад +2

    iota = i out ah

  • @TheSilverRat1
    @TheSilverRat1 Год назад +3

    if you like zig may be you should try jai. I heard that is nice language

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +3

      yes it will probably the best language for game developement but it is not out yet :((

    • @HobokerDev
      @HobokerDev Год назад +2

      Not like you can just try it

    • @SimGunther
      @SimGunther Год назад +2

      ​@@lowlevelgamedev9330 Just ask that Jai guy

  • @eduardabramovich1216
    @eduardabramovich1216 Год назад

    please try Odin

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      seems like many people want me to. I might try it

    • @eduardabramovich1216
      @eduardabramovich1216 Год назад

      @@lowlevelgamedev9330 you can find a nice project here: ruclips.net/p/PLqN23W-K4Tn2LdgSCJOCFFiPO26mvsXm3

  • @AK-vx4dy
    @AK-vx4dy Год назад +1

    What excatly is wrong about syntax ? That is not like C/C++ ?

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад

      Yeah part of it is that I am not used to it but also that is kinda wordy (I understand that everything is explicit but I don't like typing cast all day)

    • @AK-vx4dy
      @AK-vx4dy Год назад +1

      @@lowlevelgamedev9330 i see.
      Maybe it needs new approach? Maybe by trying to translate what you know form c/c++ you accidentally bring castings? Maybe it can be expressed differently?

    • @ForeverZer0
      @ForeverZer0 Год назад

      I am not without a few minor complaints about some of the syntax, but compared to C++ or Rust, it is fantastic. Naming conventions are a bit odd IMHO; it does make sense and have some "rules" about it, just doesn't fit my personal taste. I write it using the conventions, I just wish they were different.

    • @AK-vx4dy
      @AK-vx4dy Год назад

      @@ForeverZer0 C++ "syntax"...no comments :) What complaints you have to Rust? IMHO one should compare Zig to C and Rust to C++ for mostly fair comparision.

    • @ForeverZer0
      @ForeverZer0 Год назад

      @@AK-vx4dy I completely agree those are more comparable in regard to their practical application, I was just comparing the more general "old vs new" of systems-level languages.
      Rust as absolutely awful syntax, and this comes from someone who thinks it is a great language, just not swept up in the "rewrite everything in Rust" fandom. Things like unclosed single-quotes having lexical significance, every line requiring 8 sets of brackets and chained function calls just to retrieve a wrapped value, etc, etc. are not a good recipe for an aesthetically pleasing syntax IMHO.

  • @canalbomon
    @canalbomon 8 месяцев назад

    premake compile to make

  • @Fittiboy
    @Fittiboy 5 месяцев назад

    AmogOS

  • @zfl1981
    @zfl1981 6 месяцев назад

    So Zig (potentially) has the speed, but doesn't game development just absolutely 'need' that sweet, awful OOP?

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  6 месяцев назад

      no not at all, gamedev industry is moving away from oop 💪

    • @saybrowt
      @saybrowt 21 день назад

      ​@@lowlevelgamedev9330 Yes, no more poop

  • @ShinSpiegel
    @ShinSpiegel 5 месяцев назад

    Amongus!

  • @naranyala_dev
    @naranyala_dev Год назад +1

    tutorial please

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      hm I might make one if many people ask but it is just an idea right now.

  • @RomixalView
    @RomixalView Год назад +1

    Amogus

  • @MrGoMario
    @MrGoMario 7 месяцев назад

    Nice but... Talk a bit slower... What accent is that anyway? 😆

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  7 месяцев назад +1

      I'm from Romania, and yes I'm trying to talk slower it's hard for me 😭😭 but I'll get there

  • @kirillgimranov4943
    @kirillgimranov4943 7 месяцев назад

    show that bot rust

  • @Chiramisudo
    @Chiramisudo 5 месяцев назад +1

    That's gave absolutely zero details!

  • @ozanyasindogan
    @ozanyasindogan Год назад +2

    Zig is giving benchmark results much faster than even Rust

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +3

      I didn't know that nice

    • @ozanyasindogan
      @ozanyasindogan Год назад

      ​@@lowlevelgamedev9330 ruclips.net/video/pSvSXBorw4A/видео.html
      Search for: Top 5 Fastest Programming Languages: Rust, C++, Swift, Java, and 90 more compared!

    • @owdoogames
      @owdoogames Год назад

      @@lowlevelgamedev9330 ​ Yep, it came first in Dave's Garage 'Top 5 Fastest Programming Languages' ruclips.net/video/pSvSXBorw4A/видео.html

  • @daltonyon
    @daltonyon 10 месяцев назад

    amOGUs

  • @solmyr42
    @solmyr42 Год назад

    Funny

  • @malikpaariszaman7899
    @malikpaariszaman7899 Год назад

    amogus

  • @monadstack
    @monadstack Год назад

    amogus

  • @kolosso305
    @kolosso305 Год назад +1

  • @johanngambolputty5351
    @johanngambolputty5351 Год назад

    Bruh, surely you just `pacman -Syyu zig` or `apt get install zig` like with rustup...

  • @Pandanubex
    @Pandanubex Год назад

    amongasss

  • @ohwow2074
    @ohwow2074 Год назад +1

    Too many new languages. C++ is trash but it's high quality trash.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад

      😂😂

    • @devon9374
      @devon9374 Год назад +4

      Building a newer better language is easier said than done for sure. The fact that they were able to add features to C++ and keep backwards compatibility given the rapid growth and change of technology over 40 years is astonishing. Rust is not even 10 years old and it’s self imploding sadly.

    • @ohwow2074
      @ohwow2074 Год назад

      @@devon9374 how is it self imploding? And why?

    • @devon9374
      @devon9374 Год назад +1

      @@ohwow2074 Basically there was some drama within the committee and part of the foundation left and forked Rust into CrabLang. I was kinda of joking about the implosion, however, only time will tell.

    • @ohwow2074
      @ohwow2074 Год назад +1

      @@devon9374 oh I heard about that. The language itself is not bad though. If it keeps evolving we'll see how much flexibility it has.

  • @jaedson-barbosa
    @jaedson-barbosa Год назад +1

    My problem with Zig is that instead of focusing on really important features, they are now trying to remove LLVM from the project, which is something absolutely no one asked for.

    • @longiusaescius2537
      @longiusaescius2537 Год назад

      Why?

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      actually as far as I know that is something for the future so it won't happen very soon but idk

    • @pyyrr
      @pyyrr Год назад +1

      maybe late, but the reason llvm is going (its not going btw), there will be a version that uses llvm, and one that doesnt. the idea behind having a version that doesnt use llvm is that it builds faster, and smaller. easier for debug builds for devs trying to improve the language

    • @stretch8390
      @stretch8390 10 месяцев назад

      I believe it was also the only way they believe they can make incremental compilation viable ( I might have misunderstood that though)@@pyyrr

    • @TheMachina42
      @TheMachina42 2 месяца назад +1

      There’s a solid reason Zig is moving away from LLVM. Zig aims to eventually replace C, and it’s arguably one of the most promising candidates to do so. The project has gained considerable traction, especially given how young it is. Right now, the focus is on delivering a custom backend and linker for debug builds across each Tier 1 target. Instead of relying on the highly optimized but often slow LLVM backends, Zig aims for an integrated pipeline of frontend, backend, and linker.
      This approach brings significant benefits and is a strategic move by the maintainers. First, it makes LLVM an optional package, similar to how Clang doesn’t require clang-format or clang-tidy. With this change, Zig’s compiler size shrinks from 170 MB to just 4 MB.
      Second, the new setup enables Zig to support incremental compilation and linking. Instead of recompiling an entire project or entire files, only the changed parts are recompiled and relinked, which can dramatically accelerate development.
      For example, my current C++ project takes about 30 seconds to compile from scratch, and even a minor change, like an extra space in a header file, forces another 30-second wait. In Zig, I use `zig build --watch --fincremental`, and every modification rebuilds almost instantly. This benefits everyone, maintainers can compile and release features faster, and users see faster development cycles.
      Lastly, this shift is part of a long-term plan to eventually replace LLVM entirely, providing a modern platform for compiler researchers to develop new optimization and safety features. LLVM’s codebase is vast, slow to compile, and written in complex C++, making it challenging to navigate.
      In contrast, Zig’s codebase is compact, readable, and easy to modify, allowing faster iteration and the potential for cutting-edge debugging experiences, safety features, and extremely fast compile times. Long-term, this move gives Zig the flexibility to attract compiler engineers and potentially establish itself as a genuine alternative to C/C++.

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

    Zig,
    The worst of C, C++, Python and Rust.

  • @oglothenerd
    @oglothenerd Год назад +2

    I use Rust. Rust is truly amazing!

  • @daler-qg7sw
    @daler-qg7sw Год назад

    First readable syntax!!!
    ZIG := [~]SHIT!_$SYNTAX
    😂😂😂

  • @_slier
    @_slier Год назад +1

    i tried zig long time ago.. well i can say it have a lot of potential, but god damn, it syntax is god damn ugly.. second place in term of ugliness after rust.. geez, just take a look how many cast syntax it have.. always passing empty anonymous struct when u print something, weird loop syntax, explicit allocator and slew of others.. just yuck.. Odin the best to be honest.. hands down .. and C3 too, but yeah, C3 need a lot of traction

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад

      yeah I don't like the sintax either but in terms of features it is probably the best so :/

  • @Leo0718
    @Leo0718 Год назад

    Oh my god. Please use a better mic stand. The bass rumble with the typing sound is unbearable.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      Thanks for pointing it out. I edited the audio so hopefully this won't be a problem in future videos

    • @Leo0718
      @Leo0718 Год назад +1

      ​​@@lowlevelgamedev9330I didn't meant to be rude. Is just that audio is 80% of the experience in a programming video and plenty of programmer RUclipsrs make the same blunder. Is such an up in quality when it doesnt sound like an earthquake when they type.

  • @sumofat4994
    @sumofat4994 Год назад +2

    Odin is better

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад

      haven't tried it yet

    • @sumofat4994
      @sumofat4994 Год назад +1

      @@lowlevelgamedev9330 My personal opinion it captures the spirit of C without all of the fuss. Just the compiler and you and simple rules that let you go to town. Like you mentioned everything I was doing in C was kind of built in to Odin so I like it. The Pascal style of syntax grows on you fast as well.

    • @danieleccleston7928
      @danieleccleston7928 Год назад

      @@sumofat4994 I feel the same way

  • @ycemilk
    @ycemilk Год назад

    You can use V instead of Zig. Zigs syntax bad as af

  • @rocknowradio
    @rocknowradio 8 месяцев назад

    zig is ... not compelling. Looks like a JS/Swift bastard version of a C++-Go-not-yet-rust.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  8 месяцев назад +2

      hmm that's kinda a wierd comparison, but it has very good features and simplicity (that rust sure doesn't have :))

    • @rocknowradio
      @rocknowradio 8 месяцев назад

      @@lowlevelgamedev9330 For sure rust does not. I'm still confused about zig. On its own might be very good, but I don't see it interfaces easily with others.

    • @raptorate2872
      @raptorate2872 8 месяцев назад +1

      @@rocknowradio it does, it has full interoperability with C/C++, has C ABI and can build all of them using the zig cc compiler and the build system. It is a drop in replacement to C, while still having access to any C libraries you were using before. For example for games, it can work with anything that odin has access to (raylib, sdl, vulkan,etc), and has its own upcoming framework for games but will not be finalized till the 1.0 release which is either 2025 or 2026 according to the creator. (subject to change). The language is kept concise and compact on purpose in order to avoid bloat like c++ and now sadly even rust falling for the same trap. Has better benchmarks than Go for web and Rust for computation. The zig build system and compiler can also build for nearly all platforms without the need for external build tools or dependencies as it's all zig. The route they going for managing packages is also very straightforward in the same vein as the newer GO style. The ONLY downside it suffers is from longer build times due to LLVM but that's something they want to get away from before 1.0 release. Go build times are great but zigs comptime feature is immensely powerful once you understand how to use it. Zig is primarily aimed at being successor to C while removing the limitations of C.

    • @TheMachina42
      @TheMachina42 2 месяца назад

      @@rocknowradio There's few languages that speak the C abi as well as Zig, so you can absolutely use it to interop with C or any other language through FFI

    • @rocknowradio
      @rocknowradio 2 месяца назад

      @@TheMachina42 That much I knew, if even C interop was missing it would have been a fail from start. I guess time will tell about traction. After all, it is always about a big significant project (like Tiger Beetle, but with more visibility).

  • @p2k7777
    @p2k7777 Год назад

    These edits are annoying. Accent is too, but that’s not as bad and is easy to forgive.

    • @lowlevelgamedev9330
      @lowlevelgamedev9330  Год назад +1

      Trying to work at it. Thanks for the feedback 💪

    • @rakaboy1619
      @rakaboy1619 Год назад

      @@lowlevelgamedev9330 i think accent is fine tbh you cant really get rid of that easily

  • @InfiniteCoder01
    @InfiniteCoder01 Год назад

    :cyanAmogus:)

  • @sillysagiri
    @sillysagiri Год назад +1

    amogus

  • @Hakkology
    @Hakkology 5 месяцев назад

    Amogus

  • @zeke4897
    @zeke4897 Год назад

    amogus

  • @Verssales
    @Verssales 10 месяцев назад +1

  • @taylankammer
    @taylankammer Год назад +4

    amogus

  • @gamersvalley9976
    @gamersvalley9976 Год назад

    amogus

  • @arl-t8d
    @arl-t8d Год назад

    amogus