Why I use Odin for Game and Engine Development | Solar Storm Devlog 0

Поделиться
HTML-код
  • Опубликовано: 14 май 2024
  • A short video essay about why I enjoy using Odin and custom game engines.
    Check out my upcoming game Solar Storm, there is a free demo on Steam. The game is written from scratch in Odin and uses Sokol.
    store.steampowered.com/app/27...
    Discord Server:
    / discord
    You can also follow me on twitter, that's where I'm the most active
    / jakubtomsu_
    My Rendering Article:
    jakubtomsu.github.io/posts/so...
    Timestamps:
    0:00 Intro
    0:23 Solar Storm
    1:32 Custom Engines
    2:09 Libraries can help
    2:52 Shipping vs Learning
    3:31 What is Odin?
    4:47 Simplicity
    5:41 Odin in Gamedev
    6:29 Math
    7:14 Datatypes
    9:09 Data-oriented features
    10:09 Potential Drawbacks
    10:29 Odin Resources
    10:50 Outro
    Odin Resources:
    Odin overview page: odin-lang.org/docs/overview/
    Karl Zylinski has many interesting videos about Odin and Gamedev
    Raylib + Odin tutorial series: • Make games using Odin ...
    5 reasons why Odinlang is great for gamedev: • 5 reasons why Odinlang...
    Rickard Andersson makes videos about Odin and programming: / @mccgonzooo
    #gamedev #odin #odinlang #programming

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

  • @tedbendixson
    @tedbendixson Месяц назад +25

    Congrats on launching your game! I'm seeing so many more people actually launching games using Odin than pretty much any of the other new languages.

  • @Marco-pz5dx
    @Marco-pz5dx Месяц назад +15

    Really impressive, it's not easy to pull off a game and custom engine even with the amazing sokol library for the heavy lifting when it comes to platform layer things. Would love to see more and learn!

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

      Thank you! I would definitely like to make more videos and write some articles!

  • @perkele1989
    @perkele1989 Месяц назад +10

    This video is the start of a great new channel.

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

    Thanks for this! It would be pretty cool a video about how you structure data for your game or an example project, especially enum arrays and bit sets since I haven't quite grasped those yet

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

      Yeah for sure, I didn't explain them in depth in this video, but they are super useful features. I could write a blog post or make a video about it...
      In the meantime, the odin docs should be good enough to understand the basics usage

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

    Gigabrain man.
    Love and blessings!

  • @tsunamio7750
    @tsunamio7750 12 дней назад

    It looks super nice!

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

    Wow Odin is super cool!!!

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

    Nice video bro

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

    This looks awesome! Mega original worms vibes.

  • @actualFix
    @actualFix Месяц назад +12

    Odin + Custom Engine gang rise up!

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

    Amazing video! I've been creating a game in unreal and plan on continuing, but eventually I want to try to create a game engine so I can really get the understanding of how everything works. One think I would say, is that if you could try to speak a bit louder and clearer that would really be great!

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

    Cool game. Odin looks interesting and has some nice ideas. I personally want to wait for version 1.0.

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

    Interesting. More and more people seem to be using odin, its definitily on my list.

  • @imJeNaiKe
    @imJeNaiKe 22 дня назад +1

    Loved the presentation
    I'll try to copy rimworld as first project to learn, what can go wrong

  • @pedrolucas-fx6oz
    @pedrolucas-fx6oz Месяц назад +1

    Super cool video

  • @MagnusNemo-xc5nx
    @MagnusNemo-xc5nx Месяц назад +1

    Love me some Odin

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

    LET'S GOOOOO

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

    Would love to see some tutorials on how to create a simple game engine in Odin

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

      For sure! I could write an article or make a video about something like that. But probably not anytime soon, I'm already super busy :)

    • @geeksuperstar8564
      @geeksuperstar8564 6 дней назад

      @@jakubtomsu Great, don't worry, take your time. Do you think the language is ready to create a game engine from scratch (maybe port some cpp engine)

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

    Ahoj, hustá hra, hustý engine, taky mám rád odin, je nejlepší!

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

      Díky! Jsem rád že jsou i další Češi co používají Odin

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

      ​@@jakubtomsuuž o něm vím nějakou dobu, momentálně nestíhám pracovat na projektech v odinu a místo toho píšu go, ale kontext alokátory a chytrý defer mi pěkně chybí...

  • @DaxSudo
    @DaxSudo 12 дней назад

    Obligatory Rust comment: Should have used Bevy, did u try rewriting it in Rust?

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

    Oh! It's Qbasic Gorillas, I remember plaing this in the 90s. Will it include hotseat?

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

      Yep, there is local multiplayer:)

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

    I personally would be very interested in a getting started video on how to use Sokol with Odin to the point where I have a sprite displayed and can move it around using mouse / cursor keys.
    Also, is it possible to compile to usable WASM with Odin and Sokol?

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

      I could do something like that once I release my game and have more free time.
      I don't have much experience with WASM, but IIRC some people in the Odin discord server got Raylib and Odin working, so it should be possible. But it's not trivial.

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

      @@jakubtomsu Re: Sokol-Odin-Video: Awesome! Good luck with your game launch next month! Is this your first game release?
      Re: WASM: That's what I thought, thanks for the info!

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

      @@grafgrantula6100 yep, it's my first commercial game!

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

    First

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

    I wish it supported exporting natively wasm games, instead of relying on emscriptem and stupidness required for that to work.

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

      It does support WASM natively! I think you only need emscripten when using certain libraries

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

    I'm just getting started with non OOP-languages, would you recommend starting out with C and then switching to Odin to get better appreciation, or to perhaps just commit to say Odin, Zig etc. ?

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

      I think it's probably better to start out with a modern language. That said, you should have a good understanding of C/C++ to be considered a good "systems programmer", since it's the most common language. But most of the concepts you will learn with Odin carry over to other languages like C/Zig/Rust

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

      @rytif, @@jakubtomsu thank you both for your replies :) I'll be getting started with Odin then

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

    What is ISPC ?

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

      It's a very high-performance language focused on SPMD programming, which makes it trivial to write good SIMD code
      Read more here: ispc.github.io/ispc.html

  • @pushqrdx
    @pushqrdx 22 дня назад +1

    This looks like Pocket Tanks

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

    The game u have made feels almost same like a android game i cant remeber the exact name but i think its tank stars

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

    Hi, I have some questions.
    Isn't Odin an unsafe language? I think it's not garbage collected and it offers control over memory.

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

      Odin doesn't have a garbage collector, however it's not as unsafe as some other languages with manual memory management - it has bounds checking for arrays and slices, special allocators which report memory leaks and bad frees, and built-in memory sanitization tools. Also the "idiomatic" style of odin tends to use safer constructs like slices, instead of pointer arithmetic etc.
      So basically odin is much more "safe" than something like C. That said, it's still possible to make mistakes just like in any other language.

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

      @@jakubtomsu Sounds pretty interesting! I should give it a try! However it seems it doesn't support object oriented programming, which is a bit disturbing.

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

      @@system64_MC that's the point, keep it simple and procedural. OOP has many issues Odin is trying to stay away from

  • @SadeghMirzaee-fd8lg
    @SadeghMirzaee-fd8lg 25 дней назад +7

    apart from the content, I really believe that the quality matters.
    So as feedback:
    - increase the volume
    - increase the music volume a bit or choose some more engaging
    - try to speak more dynamic (than monotone) with more energy
    I love the content btw.
    good luck bro! :)

    • @jakubtomsu
      @jakubtomsu  22 дня назад +2

      Thanks, I'll definitely make sure the audio is better next time haha

    • @Kevinsterkilde
      @Kevinsterkilde 17 дней назад +1

      Absolutely, good audio goes a long way!

  • @J.B_alpharius
    @J.B_alpharius Месяц назад +1

    Firstier

  • @UcheOgbiti
    @UcheOgbiti 12 дней назад

    I can barely hear you man

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

    first

  • @gordonfreimann
    @gordonfreimann Месяц назад +19

    you mumble too much man. It’s difficult for a non native english speaker to understand everything you say.😢 However, you got me interested in Odin, for that thank you and i wish you success with your game.

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

      Thanks! Yeah I know the audio isn't the best... some people already reached out and gave me tips on how to improve it, so it should be better in future videos

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

      The (auto) captions help me a lot

    • @Urien.
      @Urien. 3 дня назад

      @@jakubtomsu its not the audio. Speak up.

  • @user-ek2jc1xf3y
    @user-ek2jc1xf3y Месяц назад +1

    haven't seen anything about mobile support either and wasm is a pain in the a$$ to setup.
    better off with anything else for now, it looks good but reality is that it is not production ready.

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

    it's a great language rhat unfortunatwly suffers in performance with it's competition.

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

      Means

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

      Of these new languages, what has the fastest compile & run time then? Any better language design than Odin for your needs?

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

      @@SimGunther odin has fast compile times, among the fastest I've seen, but lags behind in runtime. even Java beats it in some computation heavy benchmarks.
      in the language design category, it's hard to beat odin. only Jon's imaginary language comes close.
      my needs in performance aren't stellar but my needs don't matter for language adoption.

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

      This isn't really true at all - Odin is on par with all other systems programming languages like C/C++/Rust/Zig etc. All of these are based on LLVM so the compiler differences are minimal. The way you write your code is much more important.
      The benchmarks you can find on the internet are just really bad and don't actually tell you anything. They often use a wrong language version, or are just straight up comparing apples to oranges. Almost no benchmarks are a 1:1 comparison.

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

      @@jakubtomsu the benchmarks give a rough idea. when you constantly see the usual suspects in the top tier; c/cpp/rust (and increasingly zig), and the ones you expect to be a close followup; zig, odin, ada, chapel...
      but odin is not there! odin is further below, in many cases below java, c#, go and the like.
      the benchmarks are fairly accurate for what they are meant to convey.

  • @cubingfun_
    @cubingfun_ 17 дней назад

    Game and engine ? 💀

  • @tsunamio7750
    @tsunamio7750 12 дней назад

    Even if you speak broken english, or french or any other language... you need to articulate.
    Let your imperfections show and have no fear. Speak forth and brightly dangle your wisdom in your face with you naggingly broken English.
    no-really... I can barely get what you say.
    Just AR-TI-CU-LA-TU!
    Stop caring about what people might think of it. Be proud and loud

  • @slaction
    @slaction 8 дней назад

    Can't understand a thing you're saying

  • @user-zq8bt6hv9k
    @user-zq8bt6hv9k Месяц назад +2

    Too difficult to understand what you say, invest in a microphone.

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

      I know the audio quality isn't the best, I'll improve it the next time

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