This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Plik game.project zawiera wszystkie ustawienia obowiązujące w całym projekcie. Musi znajdować się w katalogu głównym projektu i musi mieć nazwę game.project. Pierwszą rzeczą, jaką silnik robi podczas uruchamiania gry, jest odszukanie tego pliku.
Każde ustawienie w tym pliku należy do kategorii. Po otwarciu pliku Defold prezentuje wszystkie ustawienia pogrupowane według kategorii.

Ustawienia w game.project zwykle zmienia się z poziomu Defold, ale plik można też edytować w dowolnym standardowym edytorze tekstu. Plik używa standardowego formatu INI i wygląda tak:
[category1]
setting1 = value
setting2 = value
[category2]
...
Prawdziwy przykład:
[bootstrap]
main_collection = /main/main.collectionc
co oznacza, że ustawienie main_collection należy do kategorii bootstrap. Gdy używasz odwołania do pliku, jak w powyższym przykładzie, ścieżka musi zostać zakończona literą ‘c’, co oznacza odwołanie do skompilowanej wersji pliku. Zwróć też uwagę, że katalog zawierający game.project jest katalogiem głównym projektu, dlatego ścieżka ustawienia zaczyna się od /.
Każdą wartość z game.project można odczytać w czasie działania za pomocą funkcji sys.get_config_string(key), sys.get_config_number(key) i sys.get_config_int(key). Przykłady:
local title = sys.get_config_string("project.title")
local gravity_y = sys.get_config_number("physics.gravity_y")
Klucz jest połączeniem nazwy kategorii i nazwy ustawienia, oddzielonych kropką, zapisanym małymi literami, a spacje zastępuje się znakami podkreślenia. Na przykład pole “Title” z kategorii “Project” staje się project.title, a pole “Gravity Y” z kategorii “Physics” staje się physics.gravity_y.
Poniżej znajdują się wszystkie dostępne ustawienia, uporządkowane według kategorii.
Tytuł aplikacji.
Wersja aplikacji.
Nazwa wydawcy.
Nazwa dewelopera.
Określa, kiedy silnik zapisuje plik logu. Dostępne opcje:
Jeśli uruchamiasz z edytora więcej niż jedną instancję, plik będzie miał nazwę instance_2_log.txt, gdzie 2 oznacza indeks instancji. Przy pojedynczej instancji lub uruchomieniu z bundla plik będzie miał nazwę log.txt. Lokalizacja pliku logu będzie jedną z poniższych ścieżek, sprawdzanych w tej kolejności:
NSDocumentDirectoryContext.getExternalFilesDir()NSApplicationSupportDirectoryCSIDL_APPDATA (na przykład C:\Users\<username>\AppData\Roaming)Context.getFilesDir()HOMEOkreśla minimalny poziom logowania. Wyświetlane będą tylko komunikaty na tym poziomie lub wyższym.
Włącza kompresję archiwów podczas bundlowania. Obecnie dotyczy to wszystkich platform poza Androidem, gdzie plik APK i tak zawiera już skompresowane dane.
Lista adresów URL do projektów będących Library URL. Więcej informacji znajdziesz w instrukcji Libraries.
custom_resources
Zasoby niestandardowe są dołączane do głównego archiwum gry za pomocą pola Custom Resources w pliku game.project.
Pole Custom Resources powinno zawierać listę zasobów rozdzielonych przecinkami, które zostaną uwzględnione w głównym archiwum gry. Jeśli podasz katalogi, wszystkie pliki i katalogi w danym katalogu zostaną dołączone rekurencyjnie. Pliki możesz odczytywać za pomocą sys.load_resource().
Ładowanie zasobów niestandardowych opisano dokładniej w instrukcji File Access.
bundle_resources
Zasoby pakietu aplikacji to dodatkowe pliki i katalogi dołączane do pakietu za pomocą pola Bundle Resources w game.project.
Pole Bundle Resources powinno zawierać listę katalogów rozdzielonych przecinkami. Katalogi te muszą zawierać pliki zasobów i podkatalogi, które podczas tworzenia pakietu zostaną skopiowane bez zmian do wynikowej aplikacji. Katalogi trzeba podawać jako ścieżki bezwzględne, liczone od katalogu głównego projektu, na przykład /res. Katalog zasobów musi zawierać podkatalogi nazwane według schematu platform albo architecture-platform.
Obsługiwane platformy to ios, android, osx, win32, linux, web, switch. Dozwolony jest również podkatalog common, zawierający pliki zasobów wspólne dla wszystkich platform. Przykład:
res
├── win32
│ └── mywin32file.txt
├── common
│ └── mycommonfile.txt
└── android
├── myandroidfile.txt
└── res
└── xml
└── filepaths.xml
Możesz użyć sys.get_application_path() do pobrania ścieżki do katalogu, w którym znajduje się aplikacja. Użyj tej bazowej ścieżki aplikacji, aby zbudować końcową ścieżkę bezwzględną do plików, do których chcesz uzyskać dostęp. Gdy już znasz bezwzględną ścieżkę do tych plików, możesz użyć funkcji io.* i os.*, aby uzyskać do nich dostęp.
Ładowanie zasobów bundla opisano dokładniej w instrukcji File Access.
bundle_exclude_resources
Lista zasobów rozdzielonych przecinkami, które nie powinny zostać dołączone do bundla. Są usuwane z wyniku kroku zbierania zasobów bundle_resources.
Odwołanie do pliku kolekcji używanej do uruchamiania aplikacji. Domyślnie /logic/main.collection.
Plik konfiguracji renderowania definiujący pipeline renderowania. Domyślnie /builtins/render/default.render.
Lista katalogów rozdzielonych spacjami, które mają być współdzielone z projektu przez mechanizm bibliotek. Więcej informacji znajdziesz w instrukcji Libraries.
Zaznacz, aby współdzielić pojedynczy stan Lua między wszystkimi typami skryptów.
Pozwala silnikowi działać dalej, gdy okno aplikacji jest zminimalizowane lub zredukowane do ikony. Dotyczy tylko platform desktopowych.
Częstotliwość aktualizacji funkcji cyklu życia fixed_update(self, dt), wyrażona w hercach.
Jeśli krok czasu w pojedynczej klatce stanie się zbyt duży, zostanie ograniczony do tej maksymalnej wartości. Jednostką są sekundy.
Szerokość okna aplikacji w pikselach.
Wysokość okna aplikacji w pikselach.
Tworzy bufor o wysokim DPI na wyświetlaczach, które to obsługują. Zwykle gra będzie renderowana w rozdzielczości dwukrotnie wyższej od ustawień Width i Height, ale nadal będzie to logiczna rozdzielczość używana w skryptach i właściwościach.
Liczba próbek używanych do supersamplingu antyaliasingu. Ustawia wartość podpowiedzi okna GLFW_FSAA_SAMPLES. Wartość 0 wyłącza antyaliasing.
Zaznacz, jeśli aplikacja ma startować w trybie pełnoekranowym. Gdy pole nie jest zaznaczone, aplikacja uruchomi się w oknie.
Docelowa liczba klatek na sekundę, wyrażona w hercach. Ustaw 0, aby używać zmiennej liczby klatek. Wartość większa od 0 powoduje użycie stałej liczby klatek ograniczanej w czasie działania do rzeczywistej częstotliwości, co oznacza, że pętla gry nie może zostać wykonana dwa razy w ramach jednej klatki silnika. Wartość można zmieniać w czasie działania funkcją sys.set_update_frequency(hz). To ustawienie działa także w buildach headless.
Ta liczba całkowita steruje sposobem obsługi vsync. 0 wyłącza vsync, a wartością domyślną jest 1. Przy adapterze OpenGL wartość określa liczbę klatek pomiędzy zamianami buforów. W przypadku Vulkana nie istnieje wbudowane pojęcie swap interval, więc wartość określa po prostu, czy vsync ma być włączony.
Polegaj na sprzętowym vsync przy wyznaczaniu czasu klatki. To ustawienie może zostać nadpisane przez sterownik graficzny lub specyfikę platformy. Aby uzyskać przestarzałe zachowanie ‘variable_dt’, odznacz tę opcję i ustaw limit liczby klatek na 0.
Określa plik profili wyświetlania, którego należy użyć. Domyślnie /builtins/render/default.display_profilesc. Więcej informacji znajdziesz w instrukcji GUI Layouts.
Zaznacz, jeśli aplikacja ma dynamicznie przełączać się między orientacją pionową i poziomą po obróceniu urządzenia. Aplikacja deweloperska obecnie nie respektuje tego ustawienia.
Wypisuje informacje o GPU do konsoli podczas uruchamiania.
Czerwony kanał koloru czyszczenia, używany przez skrypt renderujący i podczas tworzenia okna.
Zielony kanał koloru czyszczenia, używany przez skrypt renderujący i podczas tworzenia okna.
Niebieski kanał koloru czyszczenia, używany przez skrypt renderujący i podczas tworzenia okna.
Kanał alfa koloru czyszczenia, używany przez skrypt renderujący i podczas tworzenia okna.
Używa generowania fontów w czasie działania.
Maksymalna liczba obiektów kolizji.
Typ fizyki, którego należy użyć: 2D albo 3D.
Grawitacja świata wzdłuż osi X, w metrach na sekundę.
Grawitacja świata wzdłuż osi Y, w metrach na sekundę.
Grawitacja świata wzdłuż osi Z, w metrach na sekundę.
Zaznacz, aby wizualizować fizykę do celów debugowania.
Wartość składowej alfa dla wizualizacji fizyki, z zakresu 0–1.
Maksymalna liczba jednoczesnych światów fizyki. Domyślnie 4. Jeśli przez pełnomocników kolekcji wczytujesz więcej niż 4 światy jednocześnie, musisz zwiększyć tę wartość. Pamiętaj, że każdy świat fizyki zużywa sporą ilość pamięci.
Informuje silnik fizyki, jak skalować świat fizyczny względem świata gry dla zachowania precyzji numerycznej, w zakresie 0.01–1.0. Jeśli wartość wynosi 0.02, oznacza to, że silnik fizyki traktuje 50 jednostek jako 1 metr ($1 / 0.02$).
Zaznacz, jeśli silnik fizyki ma stosować transformację obiektu gry do dołączonych komponentów obiektu kolizji. Umożliwia to przesuwanie, skalowanie i obracanie kształtów kolizji, także tych dynamicznych.
Zaznacz, jeśli silnik fizyki ma używać stałych, niezależnych od liczby klatek aktualizacji. Tego ustawienia należy używać razem z funkcją cyklu życia fixed_update(self, dt) oraz ustawieniem projektu engine.fixed_update_frequency, aby wchodzić w interakcję z fizyką w regularnych odstępach. Dla nowych projektów zalecaną wartością jest true.
Określa rozmiar obiektów jednostkowych rysowanych w debugowaniu fizyki, takich jak osie lokalne i normalne.
Określa, ile kolizji zostanie przekazanych do skryptów.
Określa, ile punktów kontaktu zostanie przekazanych do skryptów.
Ignoruje impulsy kontaktu o wartościach mniejszych niż to ustawienie.
Maksymalna liczba zapytań ray cast 2D na klatkę.
Maksymalna liczba zapytań ray cast 3D na klatkę.
Maksymalna liczba nakładających się triggerów fizyki.
Minimalna prędkość powodująca zderzenia sprężyste.
Maksymalna liczba kroków symulacji przy użyciu stałego kroku czasu. Dotyczy tylko 3D.
Określa filtr używany przy minifikacji tekstur.
Określa filtr używany przy magnifikacji tekstur.
Maksymalna liczba wywołań renderowania.
Liczba znaków prealokowanych w buforze renderowania tekstu, czyli liczba znaków możliwych do wyświetlenia w każdej klatce.
Maksymalna liczba partii tekstu, które można wyświetlić w każdej klatce.
Maksymalna liczba wierzchołków debugowania. Używana między innymi do renderowania kształtów fizyki.
Plik profili teksturowania używany przez projekt, domyślnie /builtins/graphics/default.texture_profiles.
Sprawdza wartość zwrotną po każdym wywołaniu grafiki i raportuje błędy w logu.
Podpowiedź dotycząca wersji kontekstu OpenGL. Jeśli wybierzesz konkretną wersję, będzie ona używana jako minimalnie wymagana wersja. Nie dotyczy OpenGL ES.
Ustawia podpowiedź profilu ‘core’ podczas tworzenia kontekstu. Profil core usuwa wszystkie przestarzałe funkcje OpenGL, takie jak renderowanie w trybie immediate. Nie dotyczy OpenGL ES.
Nie kompiluj shaderów dla urządzeń używających OpenGLES 2.0 / WebGL 1.0.
Liczba sekund oczekiwania, zanim przytrzymane wejście zacznie się powtarzać.
Liczba sekund pomiędzy kolejnymi powtórzeniami przytrzymanego wejścia.
Odwołanie do pliku konfiguracji gamepadów mapującego sygnały gamepada na system operacyjny. Domyślnie /builtins/input/default.gamepads.
Odwołanie do pliku konfiguracji wejść mapującego sprzętowe wejścia na akcje. Domyślnie /input/game.input_binding.
Zaznacz, aby silnik otrzymywał zdarzenia z akcelerometru w każdej klatce. Wyłączenie akcelerometru może przynieść pewne korzyści wydajnościowe.
Po zaznaczeniu włącza pamięć podręczną HTTP, aby szybciej ładować przez sieć zasoby do silnika uruchomionego na urządzeniu.
Określa lokalizację danych builda projektu w formacie URI.
Maksymalna liczba zasobów, które mogą być załadowane jednocześnie.
Limit czasu HTTP w sekundach. Ustaw 0, aby wyłączyć limit czasu.
Liczba wątków roboczych używanych przez usługę HTTP.
Zaznacz, aby włączyć pamięć podręczną HTTP dla żądań sieciowych wykonywanych przez http.request(). Cache HTTP przechowuje odpowiedź skojarzoną z żądaniem i ponownie używa jej przy kolejnych żądaniach. Obsługiwane są nagłówki odpowiedzi ETag i Cache-Control: max-age.
Plik zawierający główne certyfikaty SSL używane przy weryfikacji łańcucha certyfikatów podczas handshake SSL.
Maksymalna liczba instancji obiektów gry w kolekcji. Domyślnie 1024. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba obiektów gry na stosie wejścia.
Globalne wzmocnienie dźwięku (głośność), 0–1.
Po włączeniu wzmocnienie jest liniowe. Po wyłączeniu używana jest krzywa wykładnicza.
Maksymalna liczba zasobów dźwiękowych, czyli unikalnych plików dźwiękowych dostępnych w czasie działania.
(Obecnie nieużywane) Maksymalna liczba jednoczesnych buforów dźwięku.
(Obecnie nieużywane) Maksymalna liczba jednocześnie odtwarzanych dźwięków.
Maksymalna liczba jednoczesnych instancji dźwięku, czyli rzeczywistych dźwięków odtwarzanych w tym samym momencie.
Maksymalna liczba komponentów dźwięku w jednej kolekcji.
Liczba próbek używanych przy każdej aktualizacji audio. 0 oznacza tryb automatyczny (1024 dla 48 kHz, 768 dla 44.1 kHz).
Po zaznaczeniu system dźwięku używa wątków do odtwarzania audio, aby zmniejszyć ryzyko zacięć, gdy główny wątek jest mocno obciążony.
Po zaznaczeniu system dźwięku używa streamingu do ładowania plików źródłowych.
Maksymalny rozmiar cache fragmentów dźwięku zawierającego wszystkie fragmenty. Domyślnie 2097152 bajty. Ta wartość powinna być większa niż liczba załadowanych plików dźwiękowych pomnożona przez rozmiar fragmentu streamingu. W przeciwnym razie nowe fragmenty mogą być usuwane z cache w każdej klatce.
Rozmiar w bajtach każdego fragmentu ładowanego strumieniowo.
Określa rozmiar w bajtach początkowego fragmentu plików dźwiękowych wczytywanych z archiwum.
Maksymalna liczba sprite’ów w jednej kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Zaznacz, aby pozwolić sprite’om pojawiać się poza siatką pełnych pikseli.
Maksymalna liczba map kafelków w jednej kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba jednocześnie widocznych kafelków w jednej kolekcji.
Maksymalna liczba komponentów modelu Spine. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba komponentów Mesh w jednej kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba komponentów Model w jednej kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Podziel siatki mające więcej niż 65536 wierzchołków na nowe siatki.
Maksymalna szerokość tekstury macierzy kości. Używany jest tylko rozmiar potrzebny animacjom, zaokrąglany w górę do najbliższej potęgi dwójki.
Maksymalna wysokość tekstury macierzy kości. Używany jest tylko rozmiar potrzebny animacjom, zaokrąglany w górę do najbliższej potęgi dwójki.
Maksymalna liczba komponentów GUI. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba jednoczesnych cząsteczek w GUI.
Maksymalna liczba aktywnych animacji w GUI.
Maksymalna liczba etykiet. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Zaznacz, aby pozwolić etykietom pojawiać się poza siatką pełnych pikseli.
Maksymalna liczba jednoczesnych emiterów. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba jednoczesnych cząsteczek.
Liczba iteracji prędkości dla solvera fizyki Box2D 2.2.
Liczba iteracji pozycji dla solvera fizyki Box2D 2.2.
Liczba podkroków dla solvera fizyki Box2D 3.x.
Maksymalna liczba pełnomocników kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba fabryk kolekcji. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Maksymalna liczba fabryk obiektów gry. Zobacz też informacje o optymalizacji liczników maksymalnych komponentów.
Plik obrazu .png używany jako ikona aplikacji dla podanych wymiarów W × H.
Plik storyboard .storyboard. Więcej informacji o tworzeniu storyboardu znajdziesz w instrukcji iOS.
Plik zasobu ikon .car zawierający ikony aplikacji.
(iOS 6 i starsze) Zaznacz, jeśli ikony są prerenderowane. Gdy to pole nie jest zaznaczone, ikony zostaną automatycznie wzbogacone o błyszczący efekt.
Identyfikator bundla pozwalający iOS rozpoznawać aktualizacje aplikacji. Musi być zarejestrowany w Apple i unikalny dla aplikacji. Nie można używać tego samego identyfikatora dla aplikacji iOS i macOS. Musi składać się z co najmniej dwóch segmentów oddzielonych kropką. Każdy segment musi zaczynać się literą i może zawierać tylko litery alfanumeryczne, znak podkreślenia lub myślnik (-). Zobacz CFBundleIdentifier.
Krótka nazwa bundla, maksymalnie 15 znaków. Zobacz CFBundleName.
Wersja bundla zapisana jako liczba albo x.y.z. Zobacz CFBundleVersion.
Jeśli ustawiono, podczas bundlowania aplikacji zostanie użyty wskazany plik info.plist.
Apple Privacy Manifest dla aplikacji. Domyślna wartość pola to /builtins/manifests/ios/PrivacyInfo.xcprivacy.
Jeśli ustawiono, uprawnienia z dostarczonego profilu provisioning (.entitlements, .xcent, .plist) zostaną połączone z uprawnieniami z profilu provisioning podanego podczas bundlowania aplikacji.
Język używany, jeśli aplikacja nie zawiera preferowanego języka użytkownika na liście Localizations. Zobacz CFBundleDevelopmentRegion. Użyj dwuliterowego standardu ISO 639-1, jeśli preferowany język jest tam dostępny, w przeciwnym razie trzy-literowego ISO 639-2.
Pole zawierające oddzielone przecinkami ciągi identyfikujące nazwę języka lub oznaczenie ISO dla obsługiwanych lokalizacji. Zobacz CFBundleLocalizations.
Plik obrazu .png używany jako ikona aplikacji dla podanych wymiarów W × H.
Pliki obrazów .png używane jako własne ikony powiadomień push na Androidzie. Ikony będą automatycznie używane zarówno dla powiadomień lokalnych, jak i zdalnych. Jeśli nie są ustawione, domyślnie używana będzie ikona aplikacji.
Określa, które pole JSON z payloadu ma zostać użyte jako tytuł powiadomienia. Jeśli pole jest puste, jako tytuł używana jest nazwa aplikacji.
Określa, które pole JSON z payloadu ma zostać użyte jako treść powiadomienia. Jeśli pole jest puste, używana jest wartość z pola alert, tak jak na iOS.
Całkowita wartość liczbowa oznaczająca wersję aplikacji. Należy ją zwiększać przy każdej kolejnej aktualizacji.
Minimalny poziom API wymagany do uruchomienia aplikacji (android:minSdkVersion).
Poziom API, na który aplikacja jest targetowana (android:targetSdkVersion).
Identyfikator pakietu. Musi składać się z co najmniej dwóch segmentów oddzielonych kropką. Każdy segment musi zaczynać się literą i może zawierać tylko litery alfanumeryczne oraz znak podkreślenia.
Google Cloud Messaging Sender Id. Ustaw tutaj ciąg znaków przypisany przez Google, aby włączyć powiadomienia push.
Identyfikator aplikacji Firebase Cloud Messaging.
Jeśli ustawiono, podczas bundlowania zostanie użyty wskazany plik Android Manifest XML.
Określa, którego sklepu używać. Poprawne wartości to Amazon i GooglePlay. Więcej informacji znajdziesz w extension-iap.
Określa metodę pobierania wejścia z klawiatury na urządzeniach z Androidem. Poprawne wartości to KeyEvent (stara metoda) oraz HiddenInputField (nowa).
Po włączeniu ukrywa pasek nawigacji i pasek stanu oraz pozwala aplikacji przechwytywać wszystkie zdarzenia dotyku na ekranie.
Pozwala rozszerzyć obraz na obszar wycięcia ekranu.
Określa, czy aplikację można debugować narzędziami takimi jak GAPID albo Android Studio. Ustawia flagę android:debuggable w Android Manifest. Zobacz oficjalną dokumentację.
Własny plik ProGuard pomagający usunąć zbędne klasy Java z końcowego APK.
Określa, czy instalator pakietu ma rozpakowywać biblioteki natywne z APK do systemu plików. Jeśli ustawisz false, biblioteki będą przechowywane nieskompresowane wewnątrz APK. APK może być wtedy większy, ale aplikacja będzie ładować się szybciej, bo biblioteki będą ładowane bezpośrednio z APK w czasie działania. To ustawienie ustawia flagę android:extractNativeLibs w Android Manifest. Zobacz oficjalną dokumentację.
Plik ikony bundla .icns używany jako ikona aplikacji w macOS.
Jeśli ustawiono, podczas bundlowania zostanie użyty wskazany plik info.plist.
Apple Privacy Manifest dla aplikacji. Domyślna wartość pola to /builtins/manifests/osx/PrivacyInfo.xcprivacy.
Identyfikator bundla pozwalający macOS rozpoznawać aktualizacje aplikacji. Musi być zarejestrowany w Apple i unikalny dla aplikacji. Nie można używać tego samego identyfikatora dla aplikacji iOS i macOS. Musi składać się z co najmniej dwóch segmentów oddzielonych kropką. Każdy segment musi zaczynać się literą i może zawierać tylko litery alfanumeryczne, znak podkreślenia lub myślnik (-).
Język używany, jeśli aplikacja nie zawiera preferowanego języka użytkownika na liście Localizations. Zobacz CFBundleDevelopmentRegion. Użyj dwuliterowego standardu ISO 639-1, jeśli preferowany język jest tam dostępny, w przeciwnym razie trzy-literowego ISO 639-2.
Pole zawierające oddzielone przecinkami ciągi identyfikujące nazwę języka lub oznaczenie ISO dla obsługiwanych lokalizacji. Zobacz CFBundleLocalizations.
Plik obrazu .ico używany jako ikona aplikacji w Windows. Więcej informacji o tworzeniu plików .ico znajdziesz w instrukcji Windows.
Więcej informacji o wielu z tych opcji znajdziesz w instrukcji platformy HTML5.
Rozmiar sterty w megabajtach używanej przez Emscripten.
Podczas bundlowania używaj wskazanego szablonu HTML. Domyślnie /builtins/manifests/web/engine_template.html.
Podczas bundlowania używaj wskazanego pliku motywu CSS. Domyślnie /builtins/manifests/web/light_theme.css.
Jeśli ustawiono, podczas bundlowania użyj wskazanego obrazu startowego zamiast logo Defold.
Podczas bundlowania dla HTML5 dane gry są dzielone na jeden lub więcej plików archiwum. Gdy silnik uruchamia grę, pliki te są wczytywane do pamięci. To ustawienie określa lokalizację tych danych.
Sufiks dodawany do plików archiwum. Przydaje się na przykład do wymuszania pobierania niebuforowanej zawartości z CDN, jak ?version2.
Lista argumentów przekazywanych do silnika.
Włącza streaming pliku wasm. Jest szybszy i zużywa mniej pamięci, ale wymaga typu MIME application/wasm.
Włącza przycisk Fullscreen w pliku index.html.
Włącza link Made With Defold w pliku index.html.
Po włączeniu ta opcja wypisuje informacje o silniku i jego wersji w konsoli przeglądarki za pomocą console.log() podczas startu silnika.
Określa metodę skalowania kanwy gry.
Liczba prób pobrania pliku przy uruchamianiu silnika. Zobacz także Retry Time.
Liczba sekund oczekiwania między kolejnymi próbami pobrania pliku po nieudanym pobraniu. Zobacz także Retry Count.
Zaznacz, jeśli kontekst grafiki ma mieć przezroczyste tło.
Zaznacz, aby automatycznie finalizować transakcje IAP. Jeśli pole jest odznaczone, po udanej transakcji trzeba jawnie wywołać iap.finish().
Plik zasobu ustawień Liveupdate używany podczas bundlowania.
Włącza automatyczne montowanie wcześniej zamontowanych zasobów przy starcie aplikacji.
Jeśli ustawiono, użyj manifestu aplikacji do dostosowania builda silnika. Pozwala to usunąć nieużywane części silnika i zmniejszyć rozmiar końcowego pliku binarnego. Jak wykluczać nieużywane funkcje opisano w instrukcji Application Manifest.
Włącza profiler w grze.
Po zaznaczeniu włącza profilowanie CPU w buildach release. Zwykle informacje profilujące są dostępne tylko w buildach debug.
Liczba milisekund uśpienia pomiędzy aktualizacjami serwera.
Włącza przeglądarkową oś czasu wydajności. Dotyczy tylko HTML5.
Podczas uruchamiania silnika można przekazać z linii poleceń wartości konfiguracji, które nadpiszą ustawienia z game.project:
# Określ kolekcję bootstrapową
$ dmengine --config=bootstrap.main_collection=/my.collectionc
# Ustaw dwie własne wartości konfiguracyjne
$ dmengine --config=test.my_value=4711 --config=test2.my_value2=foobar
Własne wartości można odczytywać tak samo jak każdą inną wartość konfiguracyjną, za pomocą sys.get_config_string() albo sys.get_config_number():
local my_value = sys.get_config_number("test.my_value")
local my_value2 = sys.get_config_string("test.my_value2")
Plik ustawień game.project zawiera wiele wartości określających maksymalną liczbę danego zasobu, który może istnieć jednocześnie, zwykle w przeliczeniu na załadowaną kolekcję, nazywaną też światem (ang. world). Silnik Defold używa tych wartości do wstępnej alokacji pamięci, aby ograniczyć dynamiczne alokacje i fragmentację pamięci podczas działania gry.
Struktury danych Defold używane do reprezentowania komponentów i innych zasobów są zoptymalizowane pod kątem jak najmniejszego zużycia pamięci, ale przy ustawianiu tych wartości nadal trzeba zachować ostrożność, aby nie przydzielać więcej pamięci, niż naprawdę potrzeba.
Aby dodatkowo zoptymalizować zużycie pamięci, proces budowania w Defold analizuje zawartość gry i nadpisuje wartości maksymalne tam, gdzie można z całkowitą pewnością określić dokładną liczbę:
Factory, zostanie zaalokowana dokładna liczba każdego komponentu i obiektu gry, a wartości maksymalne zostaną zignorowane.Factory, obiekty tworzone przez tę fabrykę zostaną przeanalizowane, a dla komponentów możliwych do utworzenia przez Factory oraz dla obiektów gry zostaną użyte wartości maksymalne.Factory albo Collection factory z włączoną opcją Dynamic Prototype, ta kolekcja będzie używać liczników maksymalnych.Można definiować własne ustawienia dla głównego projektu albo dla native extension. Własne ustawienia dla głównego projektu należy zdefiniować w pliku game.properties w katalogu głównym projektu. W przypadku rozszerzenia natywnego należy je zdefiniować w pliku ext.properties obok pliku ext.manifest.
Plik ustawień używa tego samego formatu INI co game.project, a atrybuty właściwości zapisuje się notacją z kropką i sufiksem:
[my_category]
my_property.private = 1
...
Domyślny plik meta, który jest zawsze stosowany, jest dostępny tutaj.
Obecnie dostępne są następujące atrybuty:
[my_extension]
// `type` - używany przy parsowaniu wartości tekstowej
my_property.type = string // jedna z wartości: bool, string, number, integer, string_array, resource
// `help` - używany jako podpowiedź pomocy w edytorze (na razie nieużywany)
my_property.help = string
// `default` - wartość używana jako domyślna, jeśli użytkownik nie ustawił jej ręcznie
my_property.default = string
// `private` - wartość prywatna używana podczas procesu bundlowania, ale usuwana z samego bundla
my_property.private = 1 // wartość logiczna 1 albo 0
// `label` - etykieta pola wejściowego w edytorze
my_property.label = My Awesome Property
// `minimum` i/lub `maximum` - prawidłowy zakres dla właściwości liczbowych, walidowany w UI edytora
my_property.minimum = 0
my_property.maximum = 255
// `options` - opcje listy rozwijanej w UI edytora, zapisane jako oddzielone przecinkami pary value[:label]
my_property.options = android: Android, ios: iOS
// tylko dla typu `resource`:
my_property.filter = jpg,png // dozwolone rozszerzenia plików w selektorze zasobu
my_property.preserve-extension = 1 // użyj oryginalnego rozszerzenia zasobu zamiast rozszerzenia builda
// oznaczanie jako przestarzałe
my_property.deprecated = 1 // oznacz właściwość jako przestarzałą
my_property.severity-default = warning // gdy przestarzała właściwość jest ustawiona, ale ma wartość domyślną
my_property.severity-override = error // gdy przestarzała właściwość jest ustawiona i ma wartość inną niż domyślna
Dodatkowo na kategorii ustawień można ustawić następujące atrybuty:
[my_extension]
// `group` - grupa kategorii w game.project, np. Main, Platforms, Components, Runtime, Distribution
group = Runtime
// `title` - wyświetlany tytuł kategorii
title = My Awesome Extension
// `help` - wyświetlana pomoc kategorii
help = Settings for My Awesome Extension
Obecnie właściwości meta są używane tylko w bob.jar podczas bundlowania aplikacji, ale w przyszłości będą też parsowane przez edytor i prezentowane w widoku game.project.