Shit ass optimization tips from a shit ass developer.
in no particular order
- For the love of GOD disable ResetOnSpawn for all screenguis
99.8% of lag and memory usage comes from this shit
Just remove it.
The game can work perfectly fine without guis respawning every time you reset/die/get violently killed by a vetex self insert
- Inventory sorting: don’t recreate and destroy redundant guis.
For the toddlers out there.
Just dont :Destroy() instances when they arent seen.
I mean you do this in the inventory gui no shit
But do it in every other gui too
Trading gui, specifically your side: Just keep it loaded at all times, doesnt hurt a soul.
Makes switching between inventory tabs easier in the long haul
- Particle Service
Vetex, you yourself admitted this one, 90% of the lag is caused by rendering.
Particles are extremely resource intensive in terms of rendering
Go try it for yourself, run this script (in roblox studio in the command bar)
[[
local AverageSizeMageSurge = Instance.new("Part",workspace)
for i = 1,85 do
local ParticleEmitter = Instance.new("ParticleEmitter",AverageSizeMageSurge)
ParticleEmitter.Rate = 180
ParticleEmitter.LightInfluence = 1
ParticleEmitter.Texture = "rbxassetid://1217382923"
ParticleEmitter.Color = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.new(math.random(1,100)/100,math.random(1,100)/100,math.random(1,100)/100)),
ColorSequenceKeypoint.new(1, Color3.new(math.random(1,100)/100,math.random(1,100)/100,math.random(1,100)/100))
})
ParticleEmitter.SpreadAngle = Vector2.new(15, 15)
ParticleEmitter.Lifetime = NumberRange.new(1.25,2.5)
ParticleEmitter.LightEmission = 0
ParticleEmitter.Speed = NumberRange.new(50,160)
ParticleEmitter.Orientation = Enum.ParticleOrientation.VelocityParallel
ParticleEmitter.Size = NumberSequence.new{
NumberSequenceKeypoint.new(0, 24),
NumberSequenceKeypoint.new(1, 54)
}
end
]]
If you have a low end pc this should lag you when you uh stare directly into it.
Sure, this is an overexaggeration, but whoever is the lead at particle design here really has to tone down the amount of particle emitters they use.
A solution (of which i made in 0.25 seconds)
is just to make every particle client sided :trol:
Make it handled by the client via a 1 way remote (yes this is a waste of a remote but who cares)
that just says
“Heyo dude instance.new(“particles”) so i can render allan violently beating you to death with cool vfx”
and have a setting that just
disables unnecessary particles
If possible just convert this back to the arcane adventure games and just
dont have particles whatsoever
as a legacy hardware option of course.
the next one) Terrain destruction
Just have a toggle on the client
Terrain destruction is already ran by the client
just disable it via setting
It is just VFX.
very laggy and unoptimized VFX.
- Instance the dark sea.
Everyone’s been asking for this
Make the dark sea a seperate game.
I mean it is already an entirely seperate experience from AO’s main story.
Has potential for the dark sea to be actually fun for once
Instead of “heres the ninth enemy in the dark sea that can shatter your skeleton into 52 pieces and has loot that is surpassed in every way by other gear you can get far easier”
Its not really that hard
I mean it is depending on how much the game relies on it
But just make it a different game
infinitely generated terrain based on the SERVER is never a good idea
(oh yeah and for all of those who say lower tornado rate and stuff. Double the rate of every weather event.)
- Re-invent the VFX Toggle
vetex for the love of god vfx should not have just “low” and “high”
Personally i dont really tell a difference between the two since both lag my game out whenever i use “Ultimate Art: Blow up the Neighborhood!”
Make it actually DISABLE vfx instead of high just enabling more vfx from the “low” end.
Example:
None: Obvious, no vfx, just parts/meshes, no particles.
Low: I mean some vfx, (magic particles, and the sort, but nothing else really.)
Medium: Current Low.
High: Low + some extra stuff
Ultra: Current High.
You can obliterate ultra if you need to, IDGAF.
C) Conclusion
Yeah thats uhh all from your local schizophrenic person who calls himself a developer.
Now bye