Brett Codes
Brett Codes
  • 46
  • 151 517
Ruby for game development? Is this a joke?
I share what I've been working on the last couple of months-making games with Ruby! Specifically DragonRuby Game Toolkit, a really compelling engine for making 2D games. I've been enjoying it so much so that I wrote a book and started a website dedicated to helping people make games with Ruby.
Read the free book Building Games with DragonRuby: book.dragonriders.community
Check out the tutorials: www.dragonriders.community/recipes
Play my games: brettchalupa.itch.io/
Support my projects by buying me a coffee: www.buymeacoffee.com/brettchalupa
Chapters:
00:00 - Intro
01:00 - Demos
03:46 - The Book
04:50 - Open Source Projects
06:55 - Favorite Parts of DragonRuby
08:09 - Outro
zhlédnutí: 6 416

Video

Using the Browser Developer Tools | The Toolbox
zhlédnutí 192Před rokem
An indispensable tool for web developers is the browser! No matter what vendor, the browsers have a plethora of tools to make improving, debugging, and inspecting web pages and applications a breeze. In this video I walk through the basics and show off my most used functionalities. I'm using Firefox Developer Edition in this video, but all web browsers have comparable tools available.
TDD & Refactoring as a Rust Newbie
zhlédnutí 594Před rokem
Test-Driven Development (TDD) is a methodology where you write tests first and then implement the functionality. TDD is great because it helps you design your program before you write it and better ensure when you make changes that you don't break existing functionality. In this video, I add some new functionality to a simple command line program that counts the number of lines a file. I start ...
Using and_raise when Mocking in RSpec | Additional Behaviors Explained
zhlédnutí 290Před rokem
When testing Ruby code with RSpec, the code under test may do more than just return a value. It could raise an error, throw something, or yield a block. This screencast looks at how to mock those behaviors with Rspec. Source code: github.com/brettchalupa/screencasts/tree/main/rspec-mocks-additional-expectations Dependency versions: - Ruby 3.1.1 - RSpec 3.11.0 RSpec docs: relishapp.com/rspec/rsp...
RSpec Custom Expectation Matchers Explained
zhlédnutí 204Před rokem
When working with RSpec, you can define custom matchers to make your tests more expressive and DRY up your code. In this screencast, I walk through defining `expect(hash).to have_key_with_value(key, value)` to show how to use this advanced RSpec functionality. Source code: github.com/brettchalupa/screencasts/tree/main/rspec-custom-matchers - Ruby 3.1.1 - RSpec 3.10.0 RSpec docs on defining cust...
Requiring Ruby Files in RSpec Dynamically
zhlédnutí 154Před rokem
Are you sick of me using `require_relative` in my episodes? Well, I fix that in this episode! And I talk through the pros and cons of this. Source code for this episode: github.com/brettchalupa/screencasts/tree/main/rspec-dynamic-require Dependency versions: - Ruby 3.1.1 - RSpec 3.10.0
How to Write RSpec Helper Methods
zhlédnutí 333Před rokem
When you find yourself rewriting the same code in RSpec to help make your tests easier to change and manage, it may be worth extracting a helper method. RSpec has an easy way to include those methods in all of your specs. In this screencast, I walk through creating a #json_to_hash method to easily parse response bodies and assert against them in specs. Source code for the episode: github.com/br...
RSpec Shared Contexts Explained
zhlédnutí 294Před rokem
A nice tool in your RSpec toolbox to have is shared contexts. They let you share common set up and functions across specs with the ability to easily override the default values they pull in. In this screenshot I go through an example of how to use them and talk through some common use cases. View the source from this episode: github.com/brettchalupa/screencasts/tree/main/rspec-shared-contexts -...
Conventional Commits CLI, What Ruby Is Great For and Where It Falls Short | Brett Codes Show Ep 3
zhlédnutí 168Před rokem
Low-key episode today. Just sharing some scripting I've been doing with Ruby. Building out a CLI for crafting conventional commits and the graphql-docs gem. And then some thoughts on why I think using Ruby for large scale projects with Rails is challenging. Programming languages are tools, and there are better tools for certain jobs. Chapters: 00:00 - Intro 01:22 - graphql-docs 03:39 - bin scri...
RSpec Shared Example Groups | DRY Up Your Specs
zhlédnutí 572Před rokem
RSpec has a nifty featured called Shared Example Groups that lets you reuse expectations across many specs. This makes your code easier to change, better ensures behavior, and reduces repeated spec code. It's a feature of RSpec that can take a little bit to get the hang of, but it's extremely useful. RSpec docs on shared example groups: relishapp.com/rspec/rspec-core/docs/example-groups/shared-...
How to Level Up as a Developer | A Comprehensive Guide
zhlédnutí 479Před rokem
When working as a software developer, it's not always clear how to level up to intermediate, senior, or beyond. I lay out a comprehensive guide on how to get yourself there by focusing on building your skills, collaborating with your manager, and improving non-technical skills. I'm really passionate about this stuff and want to see everyone thrive. View the slide deck: speakerdeck.com/brettchal...
100+ Ideas of Projects for Becoming a Better Developer - Introducing Projectbook
zhlédnutí 600Před rokem
Projectbook is a totally free and open source collection of project ideas with specifications, mock-ups, and examples to help you grow as a software developer. Figuring out what to build when you're learning a new language or framework can be overwhelming, so I've collected a variety of ideas to help make that easier. Check out Projectbook at projectbook.code.brettchalupa.com/ And contribute on...
Game Demos, One Thing at a Time, graphql-docs Gem | Brett Codes Show Ep 2
zhlédnutí 66Před rokem
The past week has been busy (in a good way)! Lots of variety. But also trying hard to find focus by working on one thing at a time. I share my thoughts on that and talk about the idea of No More Forever Projects. Then I show off the graphql-docs project, an open source Ruby gem I'm now maintaining. From there, it's onto Projectbook updates and showing off some abandoned game projects made in Ha...
The Differences Between Average and Great Developers
zhlédnutí 203Před rokem
Over the course of my career I've worked with some really excellent developers. I try to be like those developers! I reflected on what qualities are in common with all of those people and put them all together into this video. View the slide deck from this video: speakerdeck.com/brettchalupa/the-difference-between-average-and-great-developers
RSpec Argument Matchers Explained
zhlédnutí 257Před rokem
When mocking and stubbing Ruby code with RSpec, it can be helpful to use argument matchers to expect an object to receive a method call with various types of arguments. This is an advanced RSpec feature, but one that is particularly useful when testing conditional method call arguments. View the source for this episode: github.com/brettchalupa/screencasts/tree/master/rspec-arg-matchers-explaine...
You Need a Mentor, More Rust Learning, Projectbook Updates | Brett Codes Show Ep 1
zhlédnutí 96Před rokem
You Need a Mentor, More Rust Learning, Projectbook Updates | Brett Codes Show Ep 1
Productivity for Ambitious Developers | Do Your Best Work
zhlédnutí 173Před rokem
Productivity for Ambitious Developers | Do Your Best Work
RSpec spec_helper vs rails_helper Explained
zhlédnutí 694Před rokem
RSpec spec_helper vs rails_helper Explained
Learning Rust, Projectbook, & Learn Ruby with Specs | Brett Codes Show Ep 0 (The Pilot)
zhlédnutí 230Před rokem
Learning Rust, Projectbook, & Learn Ruby with Specs | Brett Codes Show Ep 0 (The Pilot)
My Favorite Way to Learn Programming | Execute Program Review
zhlédnutí 898Před 2 lety
My Favorite Way to Learn Programming | Execute Program Review
Writing Utility Scripts with Ruby
zhlédnutí 3,3KPřed 2 lety
Writing Utility Scripts with Ruby
Ruby Blocks Explained | Deep Dive with Examples
zhlédnutí 2,6KPřed 2 lety
Ruby Blocks Explained | Deep Dive with Examples
What Changed & Why | How to Craft Great Git Commit Messages
zhlédnutí 708Před 2 lety
What Changed & Why | How to Craft Great Git Commit Messages
Developer Roles, Specialties, and Levels Explained
zhlédnutí 990Před 2 lety
Developer Roles, Specialties, and Levels Explained
Git Rebasing Explained
zhlédnutí 6KPřed 2 lety
Git Rebasing Explained
Ruby Code Linting with RuboCop
zhlédnutí 4,7KPřed 2 lety
Ruby Code Linting with RuboCop
How I Organize My Learning Efforts as a Software Developer
zhlédnutí 860Před 2 lety
How I Organize My Learning Efforts as a Software Developer
Using Webmock with RSpec to Stub HTTP Requests in Tests
zhlédnutí 2,5KPřed 2 lety
Using Webmock with RSpec to Stub HTTP Requests in Tests
Using VCR with RSpec to Record External HTTP Requests
zhlédnutí 3,3KPřed 2 lety
Using VCR with RSpec to Record External HTTP Requests
RSpec Mocking & Stubbing Explained | TDD with a Complex Method w/ Side Effects
zhlédnutí 3,7KPřed 2 lety
RSpec Mocking & Stubbing Explained | TDD with a Complex Method w/ Side Effects

Komentáře

  • @1Mandacaru
    @1Mandacaru Před 17 dny

    This is gold content, thank you so much for bringing this to existence. Makes me want to translate to my mother language, Portuguese. Would you mind if I did? All credits given, of course! _Also I would do it in my free time, so I have no idea when this would come out, haha._

  • @user-jb7hc5nm5j
    @user-jb7hc5nm5j Před 17 dny

    man what is that keyboard, i love the sound. asmr

  • @Doogo2
    @Doogo2 Před měsícem

    Cool

  • @alexmac2724
    @alexmac2724 Před 2 měsíci

    great stuff Brett!🤟

  • @ArcWeltraumpert
    @ArcWeltraumpert Před 2 měsíci

    unfortunately, dragonruby doesn't have a free version for gamedev to use

  • @comfortablemoss
    @comfortablemoss Před 2 měsíci

    As a newbie to game development and coding this is a treasure trove of information! thank you!

  • @aparnagopal5201
    @aparnagopal5201 Před 2 měsíci

    You are a GEM!

  • @laughingvampire7555
    @laughingvampire7555 Před 3 měsíci

    well, Ruby is indeed one of the slowest programming languages out there, in the web framework benchmarks and the algorithms' benchmarks is usually at the bottom, however a program in Ruby in today's hardware can run pretty fast compared to C in computers of the 1990s So you can make games of that age in Ruby, no problem. And if you add the Ruby DragonRuby kit that compiles to LLVM bitcode is just amazing.

  • @pynimp
    @pynimp Před 4 měsíci

    What I know is that python is the slowest but it can be used for game development, ruby's speed is better than python.

  • @AutMouseLabs
    @AutMouseLabs Před 4 měsíci

    Love the book and dragon ruby. Cheers

  • @rnxrx
    @rnxrx Před 4 měsíci

    с первой секунды видно, что нормальный человек

  • @TrustedGG
    @TrustedGG Před 4 měsíci

    First Comment From Me ❤ Wishing you the best sir 🙏🙏

  • @usmanahmad1310
    @usmanahmad1310 Před 4 měsíci

    Great work Brett! I was searching for optimal Rubocop usage and not overuse and your work is spot on. Additionally your refactoring and ABC management was a bonus for me as I was not searching or but really wanted that.

  • @kaisersakhi4239
    @kaisersakhi4239 Před 6 měsíci

    Very helpful, thank you!

  • @trillakr2582
    @trillakr2582 Před 6 měsíci

    Thanks Brett - nicely explained

  • @yegorlevankov6115
    @yegorlevankov6115 Před 6 měsíci

    Hell, man, it's a treasure 🔥🔥

  • @herrberg8962
    @herrberg8962 Před 6 měsíci

    DragonRuby looks promising! By the way: I'm learning Ruby for text analysis. Somehow, the CZcams algorithm led me to your video. 🙂 It's great that you're making your book available for free.

  • @kingofichigo
    @kingofichigo Před 7 měsíci

    If one does need something faster there's crystal, but not every game needs a ton of speed

  • @isaeviv
    @isaeviv Před 7 měsíci

    Руби ебашит💪💪💪

    • @isaeviv
      @isaeviv Před 7 měsíci

      Согласен с тобой

    • @kingofichigo
      @kingofichigo Před 7 měsíci

      You forgot to switch accounts lol

    • @isaeviv
      @isaeviv Před 7 měsíci

      ​@@kingofichigoнет! я всегда пишу так!😊

  • @heitian_boyi
    @heitian_boyi Před 8 měsíci

    Very interesting. Thanks 😊

  • @SamLoser2
    @SamLoser2 Před 8 měsíci

    It’s funny I just made the same “JSON parse ruby hash” mistake trying to figure this out.

  • @bernard2560
    @bernard2560 Před 9 měsíci

    Amazing video. Very clean style which is visually pleasing. Interesting topic. Subscribed.

  • @michaelsydenham2918
    @michaelsydenham2918 Před 9 měsíci

    Well done! Your enthusiasm is palpable and inspiring.

  • @user-fh9rc3sy8c
    @user-fh9rc3sy8c Před 9 měsíci

    This was cool seeing the process of actually how you write your scripts and all the details of what to lookup.

  • @blessochampion
    @blessochampion Před 10 měsíci

    Great work. Thank you!

  • @damndamnd
    @damndamnd Před 10 měsíci

    bonus of keyboard asmr bless mechanical keyboard clacky clack

  • @livelymissh
    @livelymissh Před 10 měsíci

    Thank you! Really clear explanation and perfect level of detail

  • @DanladiFrazier
    @DanladiFrazier Před 11 měsíci

    This looks awesome

  • @almokhtarcode
    @almokhtarcode Před 11 měsíci

    Hello again, where do you despair ? Hope you doing well and maybe learning something new ?

  • @twenty-fifth420
    @twenty-fifth420 Před rokem

    Huh, this is the strange mood upon seeing this. So, full disclaimer. In school, once and only once, I was taught in Java. This like, in 2013 so most modern languages that people would use nowadays are still in its infancy. Heck back then, we probably use more Rails then we did Python, but I digress. I hated it, and I quit programming for a long while after. Of course, software changes. I think you can build anything with anytool, so long as you know what the ‘tool’ is used for. It is kind of like the difference of using a power saw vs a table saw. C++ is the power saw, C# is the table saw. But there is other game development languages out there, not just those two. And now my story. I used to actually make games in RPG Maker VX/Ace. It was based on Ruby, I believe 1.8 iirc. It was mostly a GUI based game engine with specialized used cases. Fuck it was so cool. Of course, I ended up ditching it after I graduated high school. Then, I took up writing to make my stories better and I have gone farther in writing stories. Now, I dont think Ruby is perfect, but it works. Why complain about a tool that works? Are you the table saw, or the power saw user? Or maybe you don’t use a saw, maybe you just use a fancy machine/CDN. Or maybe you use a hand saw? Or perhaps no saw at all, you are just a chad somehow who cuts wood with a katana. (okay maybe not, but point stands). Point is, just code. If you are the type who makes a loaded statement be it for humor, sarcasm or humiliation just to knock against a language, you are probably not expressive as a programmer and are kind of toxic. I said my piece. Good luck on your Ruby Library!🎉

  • @SreeramVenkitesh
    @SreeramVenkitesh Před rokem

    This was great, thanks a lot!

    • @brettcodes
      @brettcodes Před rokem

      So glad to hear it, you're welcome!

  • @kheprago
    @kheprago Před rokem

    Hi, is DRGTK suitable for making game like Catacomb 3-D: Armageddon or Wolfenstein 3D? What about Doom, that uses BSP?

    • @brettcodes
      @brettcodes Před rokem

      I know some folks have built games of that nature with DRGTK! Rudimentary 3D of that nature should run pretty well and be okay.

  • @shufflepack
    @shufflepack Před rokem

    its always good to include link to the previous episode. I would like to find it and watch, but cannot find it - so that watch minutes lost

    • @brettcodes
      @brettcodes Před rokem

      Thanks for the feedback, will try to do better in the future!

  • @darchankaen1307
    @darchankaen1307 Před rokem

    Thanks, nice ideas!

  • @benjamin-lieb
    @benjamin-lieb Před rokem

    Nice tut! How are you using your keyboard in the terminal like that? Some zsh vim magic?

    • @brettcodes
      @brettcodes Před rokem

      It's tmux! Let's me open up panes for vim and then the shell and can even send commands between them. Takes a little time to learn, but it's quite nice!

  • @mattkuras3550
    @mattkuras3550 Před rokem

    Giving a talk at work on dragon ruby next week and just started learning. Definitely gonna check out the book! And those were some pretty awesome games you built

    • @brettcodes
      @brettcodes Před rokem

      That's awesome, hope it goes well! Thanks for the kind words.

  • @erinclaudio9211
    @erinclaudio9211 Před rokem

    Thank you

  • @erinclaudio9211
    @erinclaudio9211 Před rokem

    Thank you

  • @cruzej2228
    @cruzej2228 Před rokem

    Hello my friend, I wanted to know what is causing an error that I have when executing some tests since the problem started after installing the gem as a super user and previously I had it with my normal user in fedora and it tells me index out of range

  • @skallet
    @skallet Před rokem

    Very good man, I like how you solve problems, just like me. Keep up the studies

    • @brettcodes
      @brettcodes Před rokem

      Thanks! It's been a lot of fun continuing to learn Rust.

  • @tttyyy949
    @tttyyy949 Před rokem

    can you make an example with classes and methods?

    • @brettcodes
      @brettcodes Před rokem

      This may seem kind of strange given Ruby is an OO language, but I've been intentionally coding all of my games to just be class functions in modules and using data structures, so no classes. So I'm probably not a useful person on that front. I know others who use DragonRuby GTK do use classes and OO though. 🙂 I'm sure they'd be able to help more in the Discord.

  • @DavidslvPT
    @DavidslvPT Před rokem

    I honestly don't understand those comments, there is always one. We know that Ruby is slower than some other languages, but the power of understandability, maintainability etc.. (all coming down to developer happiness and productivity) is so much better than some other languages... I think most people when they hear the word "Game" are immediately thinking of Triple-A games. I'm mostly an enthusiast when it comes to game development, I have also heard about Gosu for Ruby and someone has also build a Gameboy emulator that can actually play the ROMs - not sure where that is now but I remember reading that some games were playing too slowly - that's part of the limitations of the language but hey, it is possible. What I find fascinating about Game development is the architecture of the code, it really can teaches you a lot of concepts. I've been writing my own Roguelike game in Ruby, without any toolkits or engines and even though it has been about 4 years long (I'm not in a rush) I've learned a ton. I think it's fantastic that tools like DragonRuby are emerging and enabling people to just get their ideas out there without needing to learn everything from scratch. Keep up, very good stuff here!

    • @brettcodes
      @brettcodes Před rokem

      That's awesome about your Roguelike and you sticking with it for so long, super cool!

  • @96codes
    @96codes Před rokem

    Keep it up, don't let haters discourage you

  • @Giga1337
    @Giga1337 Před rokem

    Nice man, I just repaid my yearly subscription to dragonruby and thinking about starting back up soon. Scale should help a lot just for boilerplat, thanks!

  • @manuela.guilamo4939

    Beautiful!

  • @njaff6104
    @njaff6104 Před rokem

    you have really really benefited me with these video. As a gesture of appreciation I just purchased the series which i know is priceless. Thank you!

    • @brettcodes
      @brettcodes Před rokem

      I am so glad to hear it, and I appreciate your support. Thank you!

  • @sadielestrada5732
    @sadielestrada5732 Před rokem

    Is there any game toolkit like this for Crystal? For who doesn't know Crystal is a compiled language with Ruby's sintax and C performance.

    • @brettcodes
      @brettcodes Před rokem

      It's funny you mention this, as I was wondering the same thing. While there are no engines or libraries specifically for it, there are bindings to popular C libraries. It should, then, in theory be possible: github.com/veelenga/awesome-crystal#game-development

    • @kingofichigo
      @kingofichigo Před 7 měsíci

      I've been trying crystal, I like it fine

  • @brettpeters8248
    @brettpeters8248 Před rokem

    Your own DSL! A new framework!? You are a machine!

    • @brettcodes
      @brettcodes Před rokem

      Thanks! It's all early days, but it's coming along nicely. I'm having fun!

  • @MrJackRegen
    @MrJackRegen Před rokem

    You wrote a book for the usage of the ide with ruby. That's dedication right there and a like and sub from me

  • @netrunningnow
    @netrunningnow Před rokem

    I'm pretty sure rpgmaker uses ruby as well but I've never used it.

    • @brettcodes
      @brettcodes Před rokem

      That's right, some older versions did use Ruby! I think that's since changed, but pretty neat. 😎