Background and Architectural Constraints

ShiVa3D Engine Architecture

ShiVa3D uses its proprietary STE (ShiVa Technical Engine) runtime with a compiled scene and asset system. Editors like ShiVa 1.9.2 and 2.0 produce different binary formats, leading to incompatibilities when projects are moved across versions or exported to different SDKs.

ProjectFolder/
├── resources.ste
├── scenes/
├── models/
└── game.ai

Runtime Interoperability Limitations

The runtime engine builds are highly dependent on the exact SDK versions used during export. Upgrading to new iOS/Android SDKs may result in linking failures, deprecated API usage, or broken rendering due to fixed-function pipeline dependencies.

Common Failure Scenarios

Corrupted Assets or Missing Textures

  • Occurs when importing older 1.9.2 project files into ShiVa 2.0 without conversion.
  • Assets may not load if they rely on legacy compression formats no longer supported in newer exports.

Silent Engine Crashes

  • Happen on mobile exports when deprecated APIs (e.g., OpenGL ES 1.x) are referenced indirectly.
  • Limited logging makes these crashes hard to trace without wrapping platform-specific debug handlers.

Physics Instability

  • After migration to ShiVa 2.0, physics behaviors (ragdolls, constraints) may behave differently due to underlying engine refactors.
  • This often affects gameplay scripts tied closely to the physics engine state.

Diagnostics and Debugging Strategies

Enable Verbose Debug Mode

Modify your project's export profile to enable verbose logging:

GameDevApp → Export Settings → Debug Mode: VERBOSE

Manually Inspect .STE and XML Definitions

Unpack the 'resources.ste' file using ShiVaTools or community extractors to validate texture and scene references. Look for version tags mismatches and non-resolved paths.

Use Platform SDK Logs

On Android, use adb logcat to detect JNI or GL-related failures. For iOS, use Xcode device logs to trace runtime exceptions not captured by ShiVa3D.

Step-by-Step Resolution Process

  1. Before upgrading the project, back up and export in 1.9.2 using the "Project Archive" option.
  2. Use ShiVa Converter tool to migrate to ShiVa 2.0 format before loading in the new editor.
  3. Manually relink broken assets, textures, and animations using the Asset Browser.
  4. Update AIModel scripts that rely on deprecated physics APIs or non-deterministic scene queries.
  5. Rebuild mobile exports using matching SDK versions (e.g., NDK r10e for Android if legacy OpenGL ES required).

Long-Term Stability Practices

  • Document engine version and export settings per project snapshot.
  • Use custom build scripts to wrap native engine with crash handling and logging macros.
  • Limit use of deprecated features (e.g., OpenGL fixed pipeline) in favor of programmable shaders where possible.
  • Test all exports across devices before release; ShiVa3D lacks modern CI/CD compatibility.

Conclusion

Maintaining ShiVa3D-based projects requires a proactive approach to version control, asset management, and export testing. While the engine provides cross-platform capabilities, its brittle upgrade path and reliance on binary assets make it prone to complex failures. By understanding the underlying asset system, wrapping native SDKs with custom diagnostics, and enforcing rigorous upgrade workflows, technical leads can mitigate the risks and ensure smooth continuation of legacy projects.

FAQs

1. Why do ShiVa3D projects break after moving from 1.9.2 to 2.0?

Because asset formats and runtime behaviors changed significantly, requiring explicit conversion and manual validation of textures, scenes, and AI scripts.

2. How can I debug a silent crash on Android with ShiVa3D?

Use adb logcat while reproducing the crash to identify JNI or OpenGL errors. Also wrap your engine entry points with try-catch for native crash capture.

3. What is the best way to migrate legacy projects?

Archive the project in 1.9.2, use the official converter, fix asset bindings in 2.0, and recompile exports against older SDKs first before moving to newer toolchains.

4. Can I still deploy ShiVa3D projects to iOS 14+?

Yes, but only with extensive manual tweaking. You may need to disable deprecated APIs, manually patch exported Xcode projects, and manage entitlements explicitly.

5. Are there tools to inspect .STE files?

Community tools and scripts exist to unpack .STE files, but official support is limited. Manual XML parsing and asset mapping is often required for deep inspection.