What Roblox Doesn't Tell You | Roblox Studio

Поділитися
Вставка
  • Опубліковано 27 лис 2024

КОМЕНТАРІ • 109

  • @stewiepfing539
    @stewiepfing539  6 місяців тому +41

    Optimize the amount of memory your using!!

    • @workindad
      @workindad 6 місяців тому +2

      That :Once is interesting. You can use that for day/night cycle when the first player enters on a new server so that everyone is sync'd or perhaps when there's a timer on how long a server has been online.

    • @1Teb
      @1Teb 6 місяців тому +1

      Wrong your

    • @ProSureString
      @ProSureString 6 місяців тому

      @@1Tebyou’re* wrong

    • @Kitsune_Dev
      @Kitsune_Dev 6 місяців тому

      @@workindadyou can use modulus operator with a shared timestamp value

    • @enpiesie
      @enpiesie 6 місяців тому

      ​@@workindad I was really surprised when I saw :Once() existed. Usually I just use connect and then disconnect it when I'm done. this is so useful

  • @berendberend702
    @berendberend702 6 місяців тому +35

    Great tutorial! One thing to keep in mind is that roblox automatically cleans up memory from variables that are no longer in use, so you don't have to manually do variable = nil (although this will free up the memory faster than roblox's automatic garbage collection afaik). As for the last part of the video, roblox now automatically destroys players and characters (previously an option called PlayerCharacterDestroyBehavior).

  • @pingolein
    @pingolein 6 місяців тому +104

    most of the roblox scripting content creators don't teach about optimization and more unknown functions / features, Keep up the great work!

    • @detsuk1
      @detsuk1 6 місяців тому +2

      "if you really don't know about programming, become a programming youtuber"

  • @nicraftstudios0
    @nicraftstudios0 6 місяців тому +14

    Meanwhile me with hundreds of poorly optimized loops constantly running at the same time: hm I wonder why my game’s so laggy

  • @mathesimard
    @mathesimard 6 місяців тому +5

    I totally agree. I think this is definitely a thing they should fix as it may cause a decent amount of lag/delay on low-end or also called potato devices. I am a scripter myself and I totally agree with you.

  • @_demosthenes
    @_demosthenes 6 місяців тому +4

    you don't need to manually destroy the players or characters, afaik that issue only happened with characters and it has since been fixed. just manage your event connections and avoid globals, lua is a high level interpreted language anyways so it's always going to have some performance issues or lack of fine control of memory

  • @AleyzRo
    @AleyzRo 6 місяців тому +2

    dusty trip is an example, it fr crashed my roblox when i wanted to go in a round💀 (sometimes)

  • @norepinafrina
    @norepinafrina 6 місяців тому +1

    As a expl. script dev, doing these will strongly optimise it. Most scripts are laggy and unoptimised, funny

  • @ImNot_Nightmare
    @ImNot_Nightmare 6 місяців тому +2

    Great example of a memory leak is parkour reborn

  • @firepalmmy5933
    @firepalmmy5933 6 місяців тому +5

    Title: what roblox doesn't tell you
    in video: roblox also says that clearing up tables when they are no longer needed is another way of optimizing

    • @stewiepfing539
      @stewiepfing539  6 місяців тому +1

      Yeah roblox doesn’t tell you about memory optimization but they still have documentation 🤡

    • @firepalmmy5933
      @firepalmmy5933 6 місяців тому +1

      @@stewiepfing539 could you make a video explaining all tabs in developer console: memory, network, etc.

  • @ufoulroo2035
    @ufoulroo2035 6 місяців тому +9

    3:00 the assistant is so annoying when trying to code 😂

    • @AlreadyCode
      @AlreadyCode 6 місяців тому

      fr. you can get rid of it though

    • @NurJoel
      @NurJoel 6 місяців тому +1

      yeah it sometimes stresses me because ik when those three loading points finished there'll be a code. And then it distracts me from what I wanted to code

    • @jujhar.
      @jujhar. 5 місяців тому

      Yeah, I know what I wanna write it just starts going
      *. . .*

    • @NurJoel
      @NurJoel 5 місяців тому +1

      @@jujhar. Isn't there a way you ca turn it off?

    • @restartartyt
      @restartartyt Місяць тому

      @NurJoel Go to FILE > Studio Settings > Script Editor then find the Code Assist topic then disable auto-trigger Code Assist (self-explanatory) Now you can still trigger it using Alt + \ or Option + \

  • @vrfrenzy8451
    @vrfrenzy8451 3 місяці тому

    ty, optimisation needs to be focused on by more people

  • @thedrogba246
    @thedrogba246 6 місяців тому +7

    just use maid, trove or janitor and you are good, disconnecting stuff is time consuming those modules do that for you, never heard of destroying the character on leave, but that's just a visual thing, their character will stay there for 2-3 seconds but the character will be removed anyways

    • @chibisayori20
      @chibisayori20 6 місяців тому +1

      I think people confuse removing the character in studio within the client window
      Because studio is both the server and the client, some issues can occur that might not occur on a live game.

    • @zenstarz2406
      @zenstarz2406 6 місяців тому +1

      far too much unnecessary bloat from some of those modules you are recommending when you could really just make a table containing all things that are planned to be cleaned up and iterate through them later on

    • @chibisayori20
      @chibisayori20 6 місяців тому

      @@zenstarz2406 or make a module script, call it Globals or smth and cram all your utility functions and constants inside it.

  • @KashTheKingYT
    @KashTheKingYT 6 місяців тому +1

    nice, you should make a video about luau compiling and how roblox optimizes your script on compile time

    • @jujhar.
      @jujhar. 5 місяців тому +1

      Kash 🤑🤑🤑

  • @johanildpg5414
    @johanildpg5414 6 місяців тому +1

    Actually very useful, thanks!

  • @MOHA_1484.
    @MOHA_1484. 6 місяців тому +2

    Bro I was like I will learn scripting I alreaddy saw some vedios but now I'm scary I mean my dream is to make games now I cant
    and I dont have money

  • @bebra3392
    @bebra3392 5 місяців тому +2

    Ofc roblox's max amount of memory is "6.9" GB

    • @frbestguy
      @frbestguy Місяць тому

      Thats still alot considering theres ALOT of games on roblox, no?

    • @bebra3392
      @bebra3392 Місяць тому

      @@frbestguy I mean the funi number

  • @epic_devz
    @epic_devz 6 місяців тому +1

    This was really helpful, Thanks!

  • @cool_roblox_guy
    @cool_roblox_guy 2 місяці тому

    roblox doesnt always crash when using more than 7gb of ram, hell parkour reborn when v1.3 released managed to use 12gb on my system before i had to force close it so my pc wouldnt crash

  • @didymos03
    @didymos03 6 місяців тому

    Didn't know about this. I just started making my own game. Thanks for the tut.

  • @hayden2638
    @hayden2638 6 місяців тому +1

    It's pretty useful to know this, although for small games it won't make a huge difference, but for big projects it sure will.

    • @DynoDeso
      @DynoDeso 5 місяців тому +1

      It will make a pretty big difference. If it's a small game and these connections are constantly being made and not created then the memory usage will keep piling up

  • @zacomad
    @zacomad 6 місяців тому

    Bro save my life with :Once and other tech just thanks bro 🙂👌

  • @jujhar.
    @jujhar. 5 місяців тому +1

    I love running thousands of unnecessary loops at once 😊😊😊

  • @Martinchi
    @Martinchi 6 місяців тому +5

    Great video! I'm relatively new to scripting, though I've been on the platform for the better part of 13 years, and optimization in my opinion is heavily neglected (judging by the lack of tutorials or videos that speak about it). This was quite informative, keep it up.

    • @cargonewjeanz
      @cargonewjeanz 6 місяців тому +1

      how and when did you learn how to script

  • @xzenkaidragon9664
    @xzenkaidragon9664 6 місяців тому

    Thanks man this was helpful but one thing I'm still confused about is why do we have to run destroy on player and character when playerremoving or characterremoving events run? Do they not just destroy on their own and in that case all connections tied to them also get cleaned up?

  • @Lazu_o
    @Lazu_o 6 місяців тому +2

    destroying players and characters upon their removal is weird. aren't they automatically destroyed when removed?

    • @ProSureString
      @ProSureString 6 місяців тому

      Sometimes if values still exist and are somehow tied to the player, it will remove them

    • @Te.le.
      @Te.le. 6 місяців тому

      Nope, the motor6d instances are just deleted.

  • @Duck-King
    @Duck-King 2 місяці тому +1

    Hello, why did you say at 3:53 that nil takes more memory than 0? I think your statement is false because nil is just nothingness while 0 is something. But if what you said is true then please clarify.

  • @technykgs
    @technykgs 6 місяців тому +1

    Could you put the docs in the description or in a pinned comment? I'd like to read it through

  • @dominilk01
    @dominilk01 6 місяців тому +1

    OHH no! my pressuse octet lost by setting a variable to nil

  • @FEG_Studio
    @FEG_Studio 6 місяців тому

    Awesome !

  • @golden-gamingmore5931
    @golden-gamingmore5931 6 місяців тому

    me when memory leak 🧨💥

  • @baconheadhair6938
    @baconheadhair6938 5 місяців тому +1

    how to reactivate a connection after disconnecting

    • @LooperEpic
      @LooperEpic 11 днів тому

      just define it again like anything else. “Disconnecting” basically just makes it nil

  • @NoSences
    @NoSences 5 місяців тому

    Roblox limit of 6.9
    Nice

  • @RuskyDev
    @RuskyDev 6 місяців тому

    Nice tutorial! Do you have a Discord server? If not, can I create one for you?

  • @a爪尺
    @a爪尺 6 місяців тому

    we are really getting in times of C where programmers need to carefuly manipulate memory?

  • @Noon1263
    @Noon1263 6 місяців тому +1

    4:30i thought you said setting it to nil uses up some memory, but you just set it back to nil here, is there a difference?

    • @stewiepfing539
      @stewiepfing539  6 місяців тому

      I meant to say when the variable is equal to nothing eats up memory like: local variable. Sorry I messed up the way I should of done it

    • @Noon1263
      @Noon1263 6 місяців тому

      @@stewiepfing539 Ok, "local test" eats up memory but "local test = nil" does not, is that right?
      Also at 8:16 you mentioned that Roblox among others recommends deleting the players character, but Roblox already does this? When a player leaves a game, it gets destroyed automatically, right?

    • @Noon1263
      @Noon1263 6 місяців тому

      @@stewiepfing539 Also could you send me the dev forum/creator page that says about optimising your game, I would like to read it in depth more.

    • @stewiepfing539
      @stewiepfing539  6 місяців тому

      @@Noon1263 as far I as I know yes, destroying the player and character was just on the documentation so I covered it

    • @Noon1263
      @Noon1263 6 місяців тому

      @@stewiepfing539 ah ok, could you send me a link to the documentation?

  • @ionelaalexandru2652
    @ionelaalexandru2652 6 місяців тому

    Is there a way to simulate water with floating physics (for a boat game) so that the game works well on mobile too?

    • @Zakeksi4ek
      @Zakeksi4ek 6 місяців тому +1

      use a better game engine for that

    • @halohasawaken6793
      @halohasawaken6793 6 місяців тому

      If you want to accomplish something like that in Roblox (of all things), you might as well make your own physics system. At the moment, Im creating a physics system for grenades since using remote events + applying velocity on server will make the process slow. And I aint using FastCast!

    • @LooperEpic
      @LooperEpic 6 місяців тому +1

      Couldn’t you do raycasts? Same concept as a vehicle with raycast suspension but over water (and probably submerged a bit)

    • @Sown.
      @Sown. 6 місяців тому

      @@halohasawaken6793 have fun with getting that to perform at least somewhat fast. Native codegen will not work for that I believe so uhh yeah I think you should think of using another game engine

    • @OcnarfPro
      @OcnarfPro 6 місяців тому

      ​@@halohasawaken6793use OcnarfCast

  • @veliantriic
    @veliantriic 6 місяців тому +1

    9:18 what if theres a datastore? will it save?

    • @AggelosAnimations-y3h
      @AggelosAnimations-y3h 4 місяці тому

      i have the same question lol

    • @notpythonics
      @notpythonics 3 місяці тому

      this is a stupid question
      you can async before destroying the player, and I believe players are destroyed on leaving.
      the player:Destroy() there is redundant and pointless.

    • @veliantriic
      @veliantriic 3 місяці тому

      @@notpythonics it's a question no need to get so mad 😭🙏🏾

  • @windy6191
    @windy6191 6 місяців тому

    nil and 0 take up the same amount of memory

    • @stewiepfing539
      @stewiepfing539  6 місяців тому

      No they dont, in Lua, numbers are typically stored as double-precision floating-point numbers, which means they take more memory (8 bytes / 64 bits) than just nothing

    • @windy6191
      @windy6191 6 місяців тому

      @@stewiepfing539 all luau primitives (and even Vector3s) are stored in a 16 byte union

    • @windy6191
      @windy6191 6 місяців тому

      @@stewiepfing539 how about pointing out whats wrong with what i said? you can look at the source code yourself look it up. Nil and number are the same size. Variables for tables and strings are the same size too (the variable stores a pointer to the content inside internally)

    • @windy6191
      @windy6191 5 місяців тому

      why did all my and your replies get deleted?

    • @windy6191
      @windy6191 5 місяців тому

      did you delete my replies?

  • @Nwmcosczycosidk123
    @Nwmcosczycosidk123 5 місяців тому

    1:15 is this real?

  • @puppetbirds
    @puppetbirds 6 місяців тому +1

    HOW DO PROGRAMMERS NOT KNOW MEMORY MANAGEMENT? these people will never be able to write a SINGLE zig program without a memory leak

    • @_demosthenes
      @_demosthenes 6 місяців тому +5

      they dont need to, lua has a garbage collector, it just doesnt clean up some connections depending on scope and where theyre referenced. luas a scripting language precisely because you dont have to worry about memory management. imagine trying to use lua to configure a program and have to worry about memory allocation. also not sure what zig has to do with this

    • @baconheadhair6938
      @baconheadhair6938 5 місяців тому

      how do programmers not know everything about programming the second the start programming

  • @alexikabakilwa2663
    @alexikabakilwa2663 6 місяців тому

    Did i play 3vade with you

  • @crooda3681
    @crooda3681 6 місяців тому +1

    Learned this the hard way in c++

  • @嚇壞
    @嚇壞 6 місяців тому

    grrah

  • @ding.1367
    @ding.1367 6 місяців тому +1

    6.9GB specifically, bro what. nice video though

    • @Te.le.
      @Te.le. 6 місяців тому +1

      its 7 gb - the 0.1gb thats reserved for other services that roblox runs that arent binded to the player task. 7 gb is a lot for roblox.

  • @Kitsune_Dev
    @Kitsune_Dev 6 місяців тому

    oh 💩