Object-Oriented Programming in Roblox Studio!

Sdílet
Vložit
  • čas přidán 27. 08. 2024

Komentáře • 45

  • @AlteFore
    @AlteFore Před 6 měsíci +29

    OOP can be useful but there are cases where it might not be necessary, and luau OOP can be particularly hacky or hard to read. Be sure you know when and where to use it!

    • @Spez_art
      @Spez_art Před 5 měsíci +3

      I'm making a game that needs to instantiate TONS of physics parts and NPCs that have slight variations on each client and replicate its whereabouts and activities to other players as quickly as possible without creating any physical objects on the server, so it'd be easier to explain where NOT to use it in my case lmao

    • @workindad
      @workindad Před 5 měsíci +1

      I've been trying to learn OOP for about 3 months now and while I can most of the time follow along I just can't seem to recreate it with my own projects.

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

      ​@@workindadI have the opposite proble.I just naturally use OOP

  • @Captan40000
    @Captan40000 Před 6 měsíci +20

    didnt want to buy your course (costs for me about 9x more than this dono) because i already know scripting, but never knew this type of stuff. keep up the work, you never know what you can learn daily.

    • @crusherfire1
      @crusherfire1  Před 6 měsíci +4

      Thanks for the support! Much appreciated.

  • @Not_Flood
    @Not_Flood Před 6 měsíci +3

    I'm already familiar with classes in general and OOP in roblox, tho this video really made me understand the concepts more and learn few new stuff. I really appreciate the work u put in these vids.

  • @Sir_Pixelated
    @Sir_Pixelated Před 6 měsíci +3

    Finally I understand just what the difference between . And : and what self is, thank you so much!

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

    W channel bro. Idk what I would do without u fr❤

  • @Raphealt
    @Raphealt Před 4 měsíci +1

    11:55 I usually require the clone of the module, or delete and repaste the module.

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

    Dude i love your videos, please make more! ❤🎉

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

    Object-Class in a Module script allow's you to reuse that Object anywhere if you require it in a ServerScript

  • @user-ck4md8xf6l
    @user-ck4md8xf6l Před 5 měsíci +1

    how would I make a property of an object like color that would for example change the color of a model. In this video you only read the value of the properties.

  • @snicker2619
    @snicker2619 Před 6 měsíci +1

    Have you ever thought of going into components?

  • @luke123-fk9ul
    @luke123-fk9ul Před 6 měsíci +1

    if i made an OOP gun and i detect input on client and fire a remote event to the server, how do I know which object to fire to so i can do my gun object's ":Fire()" function?

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

    Can you do a video on Functional programming next for the Functional Bros?

  • @corruptghxst
    @corruptghxst Před 5 měsíci

    Amazing, out of every tutorial I've tried it has always confused the crap out of me. You made Lua OOP and metatables nice and easy to understand!
    I have one question, is it possible to make the indexed metatable methods show up in autocomplete?
    Edit: Realized my studio was just bugged, ignore that!
    Really helpful tutorial though, got my module working :)

    • @crusherfire1
      @crusherfire1  Před 5 měsíci

      Yes, you would have to use the Vect2 table as the metatable itself instead of having two separate tables. Though, I'm not sure exactly why you would want to access the metamethods from objects created by the class?
      The purpose of having the two separate tables was to uphold the OOP principle of abstraction, where you hide unnecessary implementation details (like the metamethods) from the person who is using the class & objects.

    • @corruptghxst
      @corruptghxst Před 5 měsíci

      @@crusherfire1 Oh sorry I may have mislabeled what I was trying to convey. I mean when I create an object, its methods won't show up in autocomplete.
      So for example if I used Vect2.new(), the :Dot() needs to be manually typed out and it will not show up in autocomplete as it does in your video.
      Edit: Realized my studio was just bugged, ignore that!
      Really helpful tutorial though, got my module working :)

  • @RedstonePotion
    @RedstonePotion Před 6 měsíci +1

    OOP is amazing! But how do you actually see tables properly in the output please tell mee

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

      there should be a setting in the output
      In the output, Click the 3 dots in the top right, then disable "Show memory address for expandable tables"

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

    Can you talk about Test driven development and TestEz?

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

    Hi, this is a odd questions but im currently in amidst of making a combat system, and I've been looking for the best method for handling client knockback, with minimal delay. If you could hint me towards the right direction it would be very helpful. I've tried using body velocity via server side, but it isnt quite as smooth as id like it to be

  • @Collman_fff
    @Collman_fff Před 6 měsíci +1

    How u setup your modules? i saw alot of devs make one script named start and multiple modules?. (I hope u see my comment)

    • @crusherfire1
      @crusherfire1  Před 6 měsíci +1

      Yeah, they usually have 1 script that goes through and requires a bunch of modules. After it requires all the modules, then the modules typically have an :Init() function to initialize them, then a :Start() function to execute any code after the initialization of the modules

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

      thanks for helping

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

    I have a question, is there a problem with directly attaching a function to the table instead of using metatables? Because I usally just do somthing like function Object:Explode() or somthing like that and I wanted to know if I should go back and fix all of my modules.

    • @crusherfire1
      @crusherfire1  Před 6 měsíci +4

      If you create the functions within the objects themselves, you'll end up using more memory with the more objects you create. With metatables, all of your object functions refer back to the one place they were declared, which saves on memory.

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

    Can you explain what the difference between "typeof" and "type" is? I have always used type because its less letters.

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

      type() is the built-in type checking function for Lua, while typeof() was specifically made for Luau. It helps you check for non-native data types in the game engine like CFrames, Vectors, Color3s, etc.

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

      @@crusherfire1Oh right, so typeof should be used most of the time?

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

      @@Noon1263 Yup, because it also allows you to check for those custom data types. If you used type() on Vectors, CFrames, etc, it would only return "userdata"

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

      @@crusherfire1 i wish i knew this, thank you

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

      @@Noon1263 if you want to do a completely unneeded micro-optimization you can do type() for things that arent native to the engine and save micro-seconds

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

    I love you

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

    can't understand anything

    • @lem0ndadedcorner994
      @lem0ndadedcorner994 Před 3 dny

      Learn Python, then learn how memory works while interpreting Python
      Then come back to lua, it will sound much easier like 1000x easier

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

    Is your course on Udemy more discounted?

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

      You can use the code in the description for 33% off!

  • @CheeseY420
    @CheeseY420 Před 5 měsíci

    what font do you use

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

    reminds me of Trump