Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Soru FPS OPTİMİZASYONU

Phoenix

Üye
FT Kullanıcı
Katılım
4 yıl 7 ay 22 gün
Mesajlar
262
Discord
BloodMad#6186
FPS Optimizasyonu nasıl yapılır ?

resmon değerleri nasıl en aza indirebilirim ?


Bu konu altında yardım ederseniz sevinirim Discord ile uğraşmayalım hem insanlarda öğrenir
 
Takip
 
takip
 
+
 
Öncelikle fps optimizasyonu için gerekli kod bilgisine sahib olman gerekiyo ms değerlerini yükselten temel sebep while döngüleridir örneğin:
Kod:
Citizen.CreateThread(function()
    while(true) do
        if IsPedDeadOrDying(PlayerPedId()) then
            ShowHudComponentThisFrame(9) -- street name
        end
        if IsPedInAnyVehicle(PlayerPedId(), true) then
            ShowHudComponentThisFrame(6) --vehicle name
        end
     Citizen.Wait(1)
    end
end)
Yukardaki kod satırındaki döngüde saniyede 1000 kere kontrol edip eğer oyuncu ölüyse ekrana sokak adresini bir aracın içinde isede araç adını gösteriyor. bu kontrolü saniyede 1000 kere kişi araçtamı veya ölümü diye kontrol etttiği için sistemi yoruyor. bunun yerine:

Kod:
local isDead = false
local inVehicle = false

Citizen.CreateThread(function()
    while(true) do
        isDead = IsPedDeadOrDying(PlayerPedId())
        inVehicle = IsPedInAnyVehicle(PlayerPedId(), true)
        Citizen.Wait(1000)
    end
end)

Citizen.CreateThread(function()
    while(true) do
        if isDead then
            ShowHudComponentThisFrame(9) -- street name
        end
        if inVehicle then
            ShowHudComponentThisFrame(6) --vehicle name
        end
        Citizen.Wait(0)
    end
end)
Yukardaki kod satırında iste ayrı bir döngüde saniyede bir kere kişi ölümü veya arabadamı olduğunu kontrol ediyor ve ona göre ekranda gösteriyor bu kodlamanın dez avanatjı ise arabaya bindi bilgisi 1 sn geç geldiği için kişi arabaya bindikten 1 sn sonra model ismini gösterecek

sonuç olarak fps optimizasyonu yapabilmek için scriptin her kod satırında ne işlemler yapıldığını anlayıp kendinize göre düzenlemeniz gerekmekte

Çok fazla kod bilgim yok ancak şimdiye kadar en çok karşılaştığım markerlar drawtextler ve e basın gibi etkileşim yerler sistemi yorar çünkü marker ve drawtextler döngü içerisinde örn saniyede 1000 kez gönderilir bunu düşürmeye çalışıtığınızda görüntü gidip gelmeye başları mantığı biraz değişik çalışıyor burada daha detaylı nasıl anlatabilirm bilmiyorum e basma gibi etkleşim yerleride aynı matıkta kişi o kordinattamı ve e bastımı diye kontrol eder her 1ms yaptığı için yorar bunları daha az yoracak hale getirmek mümkün dedğim gibi öğrenip kod bilginizi geliştirmelisiniz.
ingilizce biliyorsanız daha fazla örnek ve ayrıntılı anlatıma bakabilirsiniz.


boş script: 19709
ilk kod ile: 19711
optimize kod ile: 19712

bu arada dahada optimize hale getirebilir.
 
Son düzenleme:
Öncelikle fps optimizasyonu için gerekli kod bilgisine sahib olman gerekiyo ms değerlerini yükselten temel sebep while döngüleridir örneğin:
Kod:
Citizen.CreateThread(function()
    while(true) do
        if IsPedDeadOrDying(PlayerPedId()) then
            ShowHudComponentThisFrame(9) -- street name
        end
        if IsPedInAnyVehicle(PlayerPedId(), true) then
            ShowHudComponentThisFrame(6) --vehicle name
        end
     Citizen.Wait(1)
    end
end)
Yukardaki kod satırındaki döngüde saniyede 1000 kere kontrol edip eğer oyuncu ölüyse ekrana sokak adresini bir aracın içinde isede araç adını gösteriyor. bu kontrolü saniyede 1000 kere kişi araçtamı veya ölümü diye kontrol etttiği için sistemi yoruyor. bunun yerine:

Kod:
local isDead = false
local inVehicle = false

Citizen.CreateThread(function()
    while(true) do
        isDead = IsPedDeadOrDying(PlayerPedId())
        inVehicle = IsPedInAnyVehicle(PlayerPedId(), true)
        Citizen.Wait(1000)
    end
end)

Citizen.CreateThread(function()
    while(true) do
        if isDead then
            ShowHudComponentThisFrame(9) -- street name
        end
        if inVehicle then
            ShowHudComponentThisFrame(6) --vehicle name
        end
        Citizen.Wait(0)
    end
end)
Yukardaki kod satırında iste ayrı bir döngüde saniyede bir kere kişi ölümü veya arabadamı olduğunu kontrol ediyor ve ona göre ekranda gösteriyor bu kodlamanın dez avanatjı ise arabaya bindi bilgisi 1 sn geç geldiği için kişi arabaya bindikten 1 sn sonra model ismini gösterecek

sonuç olarak fps optimizasyonu yapabilmek için scriptin her kod satırında ne işlemler yapıldığını anlayıp kendinize göre düzenlemeniz gerekmekte

Çok fazla kod bilgim yok ancak şimdiye kadar en çok karşılaştığım markerlar drawtextler ve e basın gibi etkileşim yerler sistemi yorar çünkü marker ve drawtextler döngü içerisinde örn saniyede 1000 kez gönderilir bunu düşürmeye çalışıtığınızda görüntü gidip gelmeye başları mantığı biraz değişik çalışıyor burada daha detaylı nasıl anlatabilirm bilmiyorum e basma gibi etkleşim yerleride aynı matıkta kişi o kordinattamı ve e bastımı diye kontrol eder her 1ms yaptığı için yorar bunları daha az yoracak hale getirmek mümkün dedğim gibi öğrenip kod bilginizi geliştirmelisiniz.
ingilizce biliyorsanız daha fazla örnek ve ayrıntılı anlatıma bakabilirsiniz.


boş script: Ekli dosyayı görüntüle 19709
ilk kod ile: Ekli dosyayı görüntüle 19711
optimize kod ile:Ekli dosyayı görüntüle 19712

bu arada dahada optimize hale getirebilir.



local crouched = false
Citizen.CreateThread( function()
while true do
Citizen.Wait( 1 )
local ped = GetPlayerPed( -1 )
if ( DoesEntityExist( ped ) and not IsEntityDead( ped ) ) then
DisableControlAction( 0, 36, true ) -- INPUT_DUCK
if ( not IsPauseMenuActive() ) then
if ( IsDisabledControlJustPressed( 0, 36 ) ) then
RequestAnimSet( "move_ped_crouched" )
while ( not HasAnimSetLoaded( "move_ped_crouched" ) ) do
Citizen.Wait( 100 )
end
if ( crouched == true ) then
ResetPedMovementClipset( ped, 0 )
crouched = false
elseif ( crouched == false ) then
SetPedMovementClipset( ped, "move_ped_crouched", 0.25 )
crouched = true
end
end
end
end
end
end )


Çömelme script kodları bu fakat resmon değerlerinde 0.04 ms yiyor bunu azda olsa nasıl düşürebilirim ?
 
Aynı şekilde bob74_ipl dosyası da 0.10 ms yiyor bunları nasıl düzeltebilirim ?
 
Sunucumuzdaki scriptlerin resmon değerleri bu şekilde bunları düşürmeme yardım edebilir misiniz ? + olarak bunları düşürürsek FPS de bir artış gözlemlenir mi ?
 

Ekli dosyalar

  • resim1.png
    resim1.png
    387.2 KB · Görüntüleme: 60
  • resim2.png
    resim2.png
    391.6 KB · Görüntüleme: 61
  • resim3.png
    resim3.png
    391.8 KB · Görüntüleme: 42
  • resim4.png
    resim4.png
    333.9 KB · Görüntüleme: 36
  • resim5.png
    resim5.png
    352.6 KB · Görüntüleme: 29
  • resim6.png
    resim6.png
    377.3 KB · Görüntüleme: 31

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!