#Loading screen and how to structure assets smartly

1 messages · Page 1 of 1 (latest)

stark summit
#

Alright so I'm in this huge dilemma on what to do for how I structure assets in game

I'm making an asymmetrical horror game, similar to forsaken, outcome memories and ...

I'm trying to create a loading screen right now but most importantly I want to structure my assets in an efficient way

IDEA 1
So right now one of the ways I'm trying to handle assets is by uploading everything to roblox and getting their IDs and putting them inside a CharacterConfig module script where I put in the ID of every model, sound, music, asset and ... Of a character

after that inside a server script I load in every asset from the character config into server storage while the client is waiting for a Green light from the server

so the server inserts each id using insert service and creates instances for every decal, animation, audio and ...
And after the server gives the green light for clients the client then preloads everything and finally loads in the game

Some things I will mention is that I think the client can't preload stuff inside server storage so I might have to request a clone of everything in server storage inside replicated storage and then preload them

IDEA 2:
I just put everything inside either server storage or replicated storage and preload then add them whenever needed

I've just been on this for so long I don't really know what I'm doing at this point, have I been just running around in circles trying to create something efficient? This game I'm planning to expand on it a lot so there's gonna be lots of killer, survivors, skins and ... So I've really been trying to work out something that would last a long time, and I REALLY need some advice right now

#

I hope people will read all my yap 🙏🏻

#

Loading screen and how to structure assets smartly

#

Also please ping me if you've got an answer to all my worries

shadow quiverBOT
#

studio** You are now Level 4! **studio

sterile mist
#

put every animation and sounds into their seperate folders

#

then put a local script in replicated first (cuz this is for loading screens and stuff)

#

and preload them from there

agile shadow
#

just put assets into replicated storage, if you're afraid of exploiters: trust it's only going to delay the time until they get your models by like 5 minutes

stark summit
#

okay then

shadow quiverBOT
#

studio** You are now Level 5! **studio

stark summit
#

I guess replicated storage it is

open hare
#

Preloadasset batch size

tender sable
# stark summit Alright so I'm in this huge dilemma on what to do for how I structure assets in ...

I would do a mix of both idea 1 and idea 2, and here's why.

Idea 1 is good for game memory but can be a pain to do with ALL assets and trying to fetch them as well. So I would only do the ID system towards all sound assets, since they use the most memory out of all other assets.

The cool thing about the sounds ID is that you can still keep the Sound instances within all characters without having to load in the ID until that specific character is going to get used.

tender sable
#

Just remember to add sanity checks and keep server scripts within ServerScriptService or server scripts

agile shadow
#

yup

stark summit
# tender sable I would do a mix of both idea 1 and idea 2, and here's why. Idea 1 is good for ...

So I have a table that has every soundid for each character, skill use, chase theme and...

Load them inside server storage? Creating a instance for each one and then call whenever needed?

Or do you mean, I load them all once at startup and then delete them and create the instance whenever I'm gonna use them? For example killer character is added, add the chase theme instance and after the killer character is gone I just remove the sounds instances as well?

tender sable
#

And no I wouldn't load them at startup

tender sable
#

rather every killer in your game could have a Init function with it that loads all it's assets ONLY when that killer has been played

tender sable
stark summit
#

But this also raises the question, how would I do the same for skins and stuff?

tender sable
#

return { --This is the main killer config

  Assets = {
    
    Sounds = {Put list of sounds here},
    Skins = {Make a module that stores skin data},
    
  },

  Scaling = {
    
    --Store cooldown data, hitboxdata, etc. in here
    
  },

}
#

The config module is only raw data, nothing else

#

We do not want to put actual logic code in here, it's just for scripts to later use

tender sable
#

So it can look something like this

stark summit
#

Okay so this is the skin module?

tender sable
#

You can technically store sounds in the skin config rather than the main killer config

tender sable
#

But yeah

stark summit
#

Yeah

tender sable
#

All it does is store data of what the skin is and allat

#

Personally, I load global assets within my loading screen. So stuff like sounds everybody will here upon joining game and universal stuff

#

I preload those in my loading screen

stark summit
#

So for each character, I have a mainconfig and skin config?

tender sable
#

Yedah

stark summit
#

Ok that clears things up

#

Where should I store the modules?

#

Inside replicated storage?

stark summit
#

This clears up a lot of stupid things in my mind

#

Thanks a lot man

jagged surge