Nowe wydanie zawiera poprawki bezpieczeństwa (związane z deserializacją obiektów przesyłanych przez sieć). Niestety w przypadku GDNative naprawienie błędu zmusiło developerów do zerwania wstecznej kompatybilności.
Dostępny jest przykładowy projekt prezentujący błąd:
https://github.com/godotengine/godot/files/3001649/Exploit.zip
W skrócie problem polega na tym, że możemy wysłać do podłączonego gracza scenę ze skryptem a ona zostanie przy domyślnych ustawieniach uruchomiona choć nie powinna (allow_object_decoding
jest domyślnie ustawione na false
). Np.:
rpc_id(id, "do_thing", load("res://Injected Label.tscn").instance())
Scena Injected Label.tscn ma skrypt z funkcją
func _ready(): print("I ran a script in your game!") text = "I ran a script in your game!"
Po połączeniu klient załaduje scenę i uruchomi dołączony do niej skrypt.
W wersji 3.1.1 aby skrypt został uruchomiony musisz zmienić wartość allow_object_decoding
na true
:
var peer := NetworkedMultiplayerENet.new() peer.allow_object_decoding = true
Zmiany dla developerów gier mobilnych
Godota warto zaktualizować szczególnie gdy twoim celem są gry mobilne. Zmiany dotyczą obsługi starszych urządzeń z iOS (iPhone 5s, 6 i iPad Pro), na których zawodziła inicjalizacja framebuffera (FBO) GLES2.
W przypadku Androida
naprawiono pobieranie unikalnego identyfikatora urządzenia. W
poprzedniej wersji silnika funkcja zwracała zawsze ten sam łańcuch
znaków „android_id” zamiast prawdziwego identyfikatora.
Można to łatwo przetestować wywołując funkcję
OS.get_unique_id()
.
Jeżeli używałeś tej funkcji wcześniej np. do szyfrowania zapisów stanów gry będziesz musiał przy odczycie sprawdzać też ten statyczny napis.
Inne zmiany
- Naprawiono tekstury głębi (ang. depth texture) – regresja w wersji 3.1;
- Dodano możliwość odtwarzania animacji wstecz do
AnimatedSprite
(wystarczy drugi parametr metody play() ustawić natrue
). - Dodano obsługę masek emisji do
CPUParticles2
; - Przeniesiono nowości w obsłudze audio z 3.2 do 3.1.1 (
AudioStreamGenerator
,AudioEffectSpectrumAnalyzer
) - Przyciąganie w oknie animacji może być teraz ustawione na sekundy lub klatki na sekundę;
- Poprawki w imporcie GLTF2
Silnik można pobrać tutaj:
Pobierz