Cómo utilizar AOT
Suika3 admite la compilación anticipada (AOT) de scripts. Es decir, una aplicación puede ejecutar código completamente nativo en lugar de hacerlo como un intérprete de código de bytes.
El comando suika3-aotcomp convierte los scripts .ray en código fuente ANSI C.
El archivo library.c generado se compilará con todo el motor.
1. Modificar main.ray
Debido a que los scripts se compilarán en código nativo, Ya no es necesario cargar la biblioteca en tiempo de ejecución.
Abra main.ray y comente las llamadas loadLibrary().
Ejemplo:
// Suika.loadPlugin("system")
Tenga en cuenta que no debe llamar a Suika.loadPlugin() fuera del
Archivo main.ray.
2. Generar fuente C
Para compilar scripts en código fuente C, ejecute:
suika3-aotcomp main.ray script1.ray script2.ray ...
Este comando genera el siguiente archivo:
library.c
El archivo generado contiene la biblioteca de scripts compilados.
[!CONSEJOS] Especifique todos los archivos de script en la línea de comando, incluido
main.ray.
Ejemplo:
suika3-aotcomp main.ray system.ray scenario1.ray scenario2.ray
--
3. Reemplace la biblioteca del motor
Copie el archivo library.c generado en el árbol de fuentes del motor:
external/PlayfieldEngine/src/library.c
Sobrescriba el archivo existente.
4. Construya el motor
Construya el proyecto Suika3 usando CMake como de costumbre.
Los scripts compilados ahora estarán vinculados al binario del motor.
iOS
Para construir binarios estáticos, escriba:
cmake --preset ios-device
cmake --preset ios-simulator
cmake --build --preset ios-device
cmake --build --preset ios-simulator
Después de eso, copie las bibliotecas estáticas a su proyecto de iOS:
- Copiar
build-ios-device/libsuika3.aaSuika3.xcframework/ios-arm64/libsuika3.a - Copiar
build-ios-simulator/libsuika3.aaSuika3.xcframework/ios-arm64_x86_64-simulator/libsuika3.a
Sobrescriba el archivo existente.
androide
Para crear archivos binarios compartidos, escriba:
cmake --preset android-arm64
cmake --preset android-arvm7
cmake --preset android-x86
cmake --preset android-x86_64
cmake --build --preset android-arm64
cmake --build --preset android-arvm7
cmake --build --preset android-x86
cmake --build --preset android-x86_64
Después de eso, copie las bibliotecas compartidas a su proyecto de Android:
- Copiar
build-android-arm64/libsuika3.soaapp/src/main/jniLibs/arm64-v8a/libplayfield.so - Copiar
build-android-armv7/libsuika3.soaapp/src/main/jniLibs/armeabi-v7a/libplayfield.so - Copiar
build-android-x86/libsuika3.soaapp/src/main/jniLibs/x86/libplayfield.so - Copiar
build-android-x86_64/libsuika3.soaapp/src/main/jniLibs/x86_64/libplayfield.so
Sobrescriba el archivo existente.
HarmonyOS SIGUIENTE
Para crear archivos binarios compartidos, escriba:
cmake --preset openharmony-arm64
cmake --preset openharmony-x86_64
cmake --build --preset openharmony-x86
cmake --build --preset openharmony-x86_64
Después de eso, copie las bibliotecas compartidas a su proyecto HarmonyOS NEXT:
- Copiar
build-openharmony-arm64/libsuika3.aaentry/libs/arm64-v8a/libsuika3.a - Copiar
build-openharmony-x86_64/libsuika3.aaentry/libs/x86_64/libsuika3.a
Sobrescriba el archivo existente.
Complemento de Unity
Para crear archivos binarios compartidos, escriba:
cmake --preset unity-win64
cmake --build --preset unity-win64
Después de eso, copie las bibliotecas a su proyecto de Unity:
- Copiar
build-unity-win64/libsuika3.dllaAssets/Plugins/x86_64/libplayfield.dll
Sobrescriba el archivo existente.
Resultados
Los scripts se incrustan directamente en el ejecutable y proporcionan:
- Sin JIT (para revisión de la tienda)
- No se carga el script en tiempo de ejecución
- Inicio más rápido