Developer Voices
Developer Voices
  • Видео 137
  • Просмотров 939 014
Architecting a Rust Game Engine (with Alice Cecile)
This week we take a look at Bevy, a new game engine written in Rust. And in particular, we look at a core component of Bevy that has something to teach you even if you never write a game: its Entity Component System, or ECS. An ECS is an approach to managing complex systems with large numbers of moving parts, that takes some inspiration from the Relational Database world, and a little from Functional Programming to build something entirely unique and surprisingly high-performance.
Joining us to explain all is Alice Cecile. She’s part of the Bevy foundation, which is charting a course from data-management and rendering tool to fully-featured game development environment. A journey they’ve m...
Просмотров: 6 234

Видео

Writing a CAD Language in Rust (with Adam Chalmers)
Просмотров 4,8 тыс.День назад
Given how many languages have been written in C over the years, it’s not surprising to see new languages being written in Rust. What is surprising about this week’s guest is the domain he’s writing for: Computer Aided Design (CAD). Could Rust be sneaking its way into the CAD world too? Joining me to discuss the design and implementation of a CAD programming language is Adam Chalmers. He works a...
Text User Interfaces in Rust (with Orhun Parmaksız)
Просмотров 5 тыс.14 дней назад
For some kinds of application, there is no faster or cheaper way to build a user interface than in the terminal. Sure, it’s not going to suit every kind of user out there, but for those of us that are happy on the command line, rich Text User Interfaces (or TUIs) open all the exploration and discoverability benefits of a GUI are a fraction of the development time. This week we’re looking at a R...
Designing The Lustre Web Framework (with Hayleigh Thompson)
Просмотров 6 тыс.21 день назад
Designing The Lustre Web Framework (with Hayleigh Thompson) Lustre is a web framework that takes a lot of inspiration from Elm, some from React, and a surprising amount from Erlang’s actor model, to provide a library that blurs the lines between executing on the client, or on the server. Support Developer Voices on Patreon: patreon.com/DeveloperVoices Support Developer Voices on RUclips: www.yo...
Faust: A Programming Language For Sound (with Romain Michon)
Просмотров 3,6 тыс.Месяц назад
I’m always interested in what factors shape the design of a programming language. This week we’re taking a look at a language that’s wholly shaped by its need to support a very specific kind of program - audio processing. Anything from creating a simple echo sound effect, to building an entire digital instrument based on a 17th-century harpsichord. The language in question is Faust, and this we...
GPUs, from Simulation to Encryption (with Agnès Leroy)
Просмотров 4,2 тыс.Месяц назад
This week we take a look at what you can do with a GPU when you get away from just using it to draw polygons. Agnès Leroy has spent most of her career programming, optimizing and converting programs to run on that oh-so-curious piece of specialised processing hardware, and we go through all the places that journey has taken her. From simulating the flow of fluids in hydroelectric powerstations,...
The State of Full-Stack OCaml (with António Monteiro)
Просмотров 6 тыс.Месяц назад
OCaml has one of the best-loved compilers available, and parts of it are surprisingly pluggable, so it’s not surprising that someone would eventually try to wed OCaml with JavaScript and the web browser. In fact, the ecosystem has gone further, and there are now a bevvy of options for people who want to write OCaml and run it in the browser, or want to write OCaml in the browser, or want to wri...
Multiplatform Maps Built As Layers on Rust (with Ian Wagner)
Просмотров 4,2 тыс.2 месяца назад
Mapping is a hugely complex task to take on. Even if you moved as much of the data-management as you can out to 3rd-party services, you’d still have a tonne of work to do weaving together map tiles, routing information, GPS data, points of interest, search and more. And as if that wasn’t enough, you’d probably want that software to work on a whole range of platforms, so you have to build someth...
Building a New Terminal App (with Zach Lloyd)
Просмотров 7 тыс.2 месяца назад
The terminal might be the most used development tool in history. So it’s a little odd that it hasn’t changed that much in the decades since the terminal first came into being. Is the terminal a “completed” project? Or are there new ways to look at it that might make it even more useful? This week’s guest-Zach Lloyd-is convinced the terminal is ripe for a new approach that’s more than just a new...
Building A Programming Language From Its Core (with Peter Saxton)
Просмотров 6 тыс.2 месяца назад
A language’s AST-it’s abstract syntax tree-is nearly always a hidden implementation detail. It’s not treated as part of the language, but merely the intermediate step between parsing and compiling. But this week’s guest aims to flip that relationship on its head... Peter Saxton joins me to talk about EYG - an AST-first language that defines the fundamental capabilities first, and then stretches...
Practical Applications for DuckDB (with Simon Aubury & Ned Letcher)
Просмотров 8 тыс.2 месяца назад
DuckDB’s become a favourite data-handling tool of mine, simply because it does so many small things well. It can read and write a huge number of data formats; it can infer schemas automatically when you just want to move quickly; and it can interface with most languages, run like lightning on the desktop or be embedded into a webpage. I’m a huge fan. But I’m not nearly as knowledgeable as this ...
Recording and Replaying the Browser (with Justin Halsall)
Просмотров 2,8 тыс.3 месяца назад
RRWeb is based on a simple idea: If you capture all the DOM events in a browser session, and when they happened, you could play it back later. Play it back for diagnosing error conditions, for understanding your user’s journey, or for creating demo videos that can be edited element-by-element instead of frame-by-frame. Unfortunately, the simple idea gets tricky when you try to implement, for a ...
Zig as a Multi-OS Build System (with Loris Cro)
Просмотров 29 тыс.3 месяца назад
Zig as a Multi-OS Build System (with Loris Cro)
Creating and Evolving Elixir (with José Valim)
Просмотров 10 тыс.3 месяца назад
Creating and Evolving Elixir (with José Valim)
PyO3: From Python to Rust and Back Again (with David Hewitt)
Просмотров 11 тыс.3 месяца назад
PyO3: From Python to Rust and Back Again (with David Hewitt)
Inter-System Messaging with NATS & Jetstream (with Jeremy Saenz)
Просмотров 5 тыс.4 месяца назад
Inter-System Messaging with NATS & Jetstream (with Jeremy Saenz)
Cuis Smalltalk and the History of Computing’s Future (with Juan Vuletich)
Просмотров 8 тыс.4 месяца назад
Cuis Smalltalk and the History of Computing’s Future (with Juan Vuletich)
The Inko Programming Language, and Life as a Language Designer (with Yorick Peterse)
Просмотров 3,5 тыс.4 месяца назад
The Inko Programming Language, and Life as a Language Designer (with Yorick Peterse)
Building the Zed Text Editor (with Nathan Sobo)
Просмотров 23 тыс.4 месяца назад
Building the Zed Text Editor (with Nathan Sobo)
Reimplementing Apache Kafka with Golang and S3
Просмотров 8 тыс.5 месяцев назад
Reimplementing Apache Kafka with Golang and S3
Extending Postgres for High Performance Analytics (with Philippe Noël)
Просмотров 6 тыс.5 месяцев назад
Extending Postgres for High Performance Analytics (with Philippe Noël)
Designing Actor-Based Software (with Hugh McKee)
Просмотров 10 тыс.5 месяцев назад
Designing Actor-Based Software (with Hugh McKee)
ByteWax: Rust's Research Meets Python's Practicalities (with Dan Herrera)
Просмотров 4,1 тыс.5 месяцев назад
ByteWax: Rust's Research Meets Python's Practicalities (with Dan Herrera)
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)
Просмотров 52 тыс.5 месяцев назад
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)
Batch Data & Streaming Data in one Atom (with Jove Zhong)
Просмотров 1,8 тыс.6 месяцев назад
Batch Data & Streaming Data in one Atom (with Jove Zhong)
Advanced Memory Management in Vale (with Evan Ovadia)
Просмотров 6 тыс.6 месяцев назад
Advanced Memory Management in Vale (with Evan Ovadia)
Bringing Pure Python to Apache Kafka (with Tomáš Neubauer)
Просмотров 3 тыс.6 месяцев назад
Bringing Pure Python to Apache Kafka (with Tomáš Neubauer)
Developing a Neovim Docker Plugin from Scratch
Просмотров 14 тыс.6 месяцев назад
Developing a Neovim Docker Plugin from Scratch
Taking Erlang to OCaml 5 (with Leandro Ostera)
Просмотров 7 тыс.7 месяцев назад
Taking Erlang to OCaml 5 (with Leandro Ostera)
How Apache Pinot Achieves 200,000 Queries per Second (with Tim Berglund)
Просмотров 5 тыс.7 месяцев назад
How Apache Pinot Achieves 200,000 Queries per Second (with Tim Berglund)

Комментарии

  • @CTimmerman
    @CTimmerman День назад

    Thank Gates for shielding us from market fragmentation in the '90s.

  • @Aleamanic
    @Aleamanic День назад

    Some LOGO heritage? ;-)

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

    I simply don't get RUST. I was learning it but gave up in the middle. GO suits me the best and I am happy with it.

    • @empathy_monster
      @empathy_monster День назад

      It really depends on what you're trying to do. I personally don't see a need to write games in Rust, although I welcome a game engine written in Rust. Go is perfect for things like CLIs and backend services. Where Rust really shines is at the low level. The embedded space is maturing, and I personally look forward to a UNIX/Linux clone with a monolithic kernel (yes, I'm aware of Redox). I do, however, absolutely think it's possible to over-engineer software by using Rust when another simpler language would do.

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

    You should bring on Joscha Bach and have him actually talk about programming instead of cognition and consciousness, or maybe as it relates to cognition and consciousness

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

    Yay! My favorite programming podcast ever 🎉

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

    Let's not kid ourselves. The real reason companies want to run the rendering on their servers is so they can charge you money each time you use it.

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

    Lineux

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

    I love how Alice's mind works! Bevy speaks to me on a deeply spiritual level. The whole system dynamics, complexity, emergence theme.

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

    If it can only build into an android binary...

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

    TLDW: Zig is what you use if you want: to use Rust but don't want to deal with Unsafe Rust, convenient cross-compilation convenient C interoperability convenient control over compile-time code

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

    A very good real manager.

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

      She’s on to something that a lot of managers have missed, that’s for sure. 🙂

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

    The best software engineering podcast!

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

    That was very interesting. Many projects would benefit from having someone like Alice Cecile

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

    great to see Brazil represented ❤️

  • @stupidburp
    @stupidburp 4 дня назад

    I think that Linux related projects in particular should gradually dump C in favor of Zig. Smooth transition with some rewards both in the middle and at the end.

  • @johanmaasing
    @johanmaasing 4 дня назад

    This conversation was a delight to listen to.

  • @vram288
    @vram288 4 дня назад

    at 21.0 good

  • @oscbit
    @oscbit 4 дня назад

    Pls invite some MLIR people

    • @DeveloperVoices
      @DeveloperVoices 4 дня назад

      Ooh yes, good idea. The closest we have so far is the Mojo episode with Chris Lattner. It's definitely worth going down into MLIR itself. 🙂

  • @Burgo361
    @Burgo361 4 дня назад

    I really like that structure of ad-hoc teams, I can imagine it brings some of its own issues but it sounds like a great idea

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

      What's interesting to me is that this is a nearly anarchistic way of organizing, what was being described as systems and incentives and a lack of authority to make people do things, the focus on concensus, it's all very closely aligned with leftist socio-economic theory. If anyone's interested in more I suggest looking up A Modern Anarchism here on RUclips by a creator known as Anark.

  • @iceX33
    @iceX33 4 дня назад

    I went the ECS rabbit hole in 2012 which resulted in a few projects and a few conference talks. For non game developers this talks is probably the best one. ruclips.net/video/lt4eL4RSx7k/видео.htmlsi=PYflbWLGtP2S8OQr my ultimative goal would be to create a programming language based on ECS idioms.

    • @Maximetinu117
      @Maximetinu117 12 часов назад

      > my ultimative goal would be to create a programming language based on ECS idioms hey, do you know if such a thing exists? I have thought the same: in the same way that OOP idioms got into the popular languages, it feels like ECS idioms can end up built-in a language in the same way as well

  • @lcssbr
    @lcssbr 4 дня назад

    The video definitely helped me understand Bevy a little better as I just started using it for curiosity. Thanks for the content!

  • @TheHubra
    @TheHubra 4 дня назад

    Having used this engine over the last six months, this video felt very meaningful to me and i was very excited to have learned it was about Bevy. Ty for doing this! And as always you both nailed this interview 👍

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

    This video has made me want to get into Rust and Bevy. Alice's passion and knowledge is inspiring!

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

    Ha this was the perfect pace and level of detail for me and really helped me grok ESC better, thank you both!

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

    I'm fascinated by the first ~2 min intros you do at the beginning of each episode, always feels like the start of an exciting upcoming adventure. Great episode as usual

    • @DeveloperVoices
      @DeveloperVoices 4 дня назад

      Thanks! It takes me a ridiculously large amount of time to figure out what I'm going to say each week. I'm glad it's worth it. 😅

    • @dpx4029
      @dpx4029 4 дня назад

      Agreed. This is probably the highest quality podcast ever in terms of intro and questions.

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

    Bevy? Why thank you, I would love one!

    • @DeveloperVoices
      @DeveloperVoices 4 дня назад

      I so nearly dropped that pun into the intro, but I figured it wouldn't i18n well. 😁

    • @alst4817
      @alst4817 4 дня назад

      @@DeveloperVoices gaming on Linux has become really popular: you need to talk to the developers behind Wine!

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

    GEORGE: She's a fast talker, Jerry! JERRY: [palms up, head tilted] What's the rush?

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

    yaaay alice is the best, she makes contributing to bevy so much fun ❤

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

    Great channel.

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

    I like Bevy, but they really need to prioritize a stable release. At least for bevy_ecs. Right now I have the impression that they'll never "finish" and there will be a fork or something. Or that some other rust game engine will overshadow.

    • @laundmo
      @laundmo 4 дня назад

      I mean, each release is stable, and while new major versions every 4 months is fast its also expected for a project like this. game engines are, as is mentioned in the video, enormous endeavours. Theres just too many things to add, issues to fix, and apis to polish for a more long term release to be worth it at the current stage. If you actually go through one or two releases cycles with bevy, you'll see that most changes are relatively minor and you can update even bigger projects simply using search and replace and the migration guides pretty quickly.

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

      ​​@@laundmo sure. But it's still very hard to convince your manager that we should use Bevy for our new medium sized project if the Bevy project explicitly states that "this is not production ready, don't use it" on their website. And it's been like that for years now. I know it has already been suggested, but a great approach would be to mark parts of Bevy as stable. Like the ECS and core types. It just gives much more cred to the Bevy project and makes it a great deal easier to use in real world commercial applications.

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

      @@snikta564 i mean, maybe then don't try to convince your manager? but also, the ECS is still being worked on like all other parts. there's no way to make it stable without either enormous limitations on what the devs can change (bad) or just releasing new major versions every few months instead of pre-1.0 versions every few months (which makes the stable release pointless). what part of "game engines are enormous projects" makes you think a stable release after 4 years of development is viable? Every game engine which has stable releases has been in development for way longer than that. And that's often with tons of fulltime paid developers working on it - bevy has 2.

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

    I need this for AGI work

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

    Interview Richard Stallman

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

    For low level audio nerdery Sam Aaron creator of Sonic pi or Andrew Kelly from the zig Software foundation migth be good guests

    • @DeveloperVoices
      @DeveloperVoices 4 дня назад

      Sam has been on my list for over a year now. He's promised to join me as soon as his home studio stabilises. 😁 As for Zig, Loris Cro's said he'll send me a signal flare as soon as Andrew emerges from the Development Mines. 🤞

    • @MrTheSmoon
      @MrTheSmoon 4 дня назад

      @@DeveloperVoices looking forward to both

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

    My hot take is that if you want to do OOP polymorphism(call the same function on different types of objects), what you really want is an ECS.

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

      @@MagpieMcGraw it's kind of the same philosophy rust has overall. Instead of a deeply nested structure with a billion overrides, it's a flat structure with only functionality you need.. And if you really need all the functionality of another object, just store the "parent" inside the struct (and deref is amazing in combination with this!). Don't get me wrong, OOP does work decently well for games, but ECS leads to more organised and dynamic systems in my experience

    • @avwie132
      @avwie132 4 дня назад

      That is not really a hot take and literally just composition over inheritance

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

    Understanding abstractions in code is harder for those not being able to abstract matters, indeed.

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

    The expression “foot gun” has become quite popular among non-English-speaking geeks. Feels awkward

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

      Programmers have been using the term footgun for decades. It’s not exclusive to people intelligent enough to speak more than one language. 🙂

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

      @@DeveloperVoices What I meant is that the term is unusually colloquial for non-native speakers. Just an observation of surprise without judgment -- from a geek who does speak four natural and 45 unnatural languages natively.

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

    Bevy is so great, and much of the work they do is compartmentalized and useful in other areas of the Rust ecosystem!

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

    "Bevy! Bevy Bevy Bevy Bevy Bevy!" - tantan

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

    Kris, you ask the best questions! Thanks for another great one!

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

      I do my best. Glad you're enjoying them. 😁

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

    Cool, thanks. Always wanted to see Alice live!

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

    Happy to see Alice on this! Love her dedication to bevy and the community around it. It means alot!

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

    Gotta play this one at 0.5x speed 😅

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

      If only playback speed could be applied dynamically, based on the speaker.

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

    First 😂. Never miss these myself. 😊

  • @xXx-lfg
    @xXx-lfg 5 дней назад

    Facinating

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

    Awesome show Kris! Also been following Jeremy's content for a bit

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

    Erlang processes are not actors. Erlang isn't the actor model. Read the papers by Carl Hewitt

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

    It would be painful to do git merge with such json files

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

    In my opinion, the opening monologue/intro to this episode is a gold-standard for programming podcasts. The questions raised by the topic, especially the technical ones, as well as the delivery of said questions was superb. Very compelling, and really got me excited about the episode, because I knew from the intro that all my burning questions were going to be addressed. Awesome job, Kris. This podcast is fantastic.

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

    Enjoyed the intro, as usual. The topic and guest were super interesting. I'm very interested in Gleam, so this was quite enjoyable.

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

    Super interesting. I do cad every day, so was really interested to see how others are developing new ways of doing things. I REALLY wish to do cad with less mouse work. I've followed Adam's boss, Jess Frazelle, for a while. Would be really great to get her on this podcast sometime to talk about all her great experiences! Plus people from the Oxide team would be awesome too! Bryan Cantrill and Adam Leventhal, even to talk about DTrace. That would be a great episode!