Developer – ShiVa Engine

Developer

Welcome to ShiVa Developer, the primary resource and tutorial website dedicated to all your ShiVa needs. We want you to find everything you require within a few mouse clicks. Exploit ShiVa’s full potential by learning new functions from the API Reference, discovering new tutorials on specific topics in the Community WIKI, or by sifting through the Official Tutorials.


Seven Latest Blog Tutorials

We regularly post new tutorials on our blog. Go to the full tutorial list here.

HTML5 Anywhere: ShiVa WebGL on localhost

One of ShiVa's biggest strengths has always been its cross-platform nature. No matter if desktops, mobiles or game consoles, if it exists, chances are that there is a ShiVa engine port for it. And if you are running an OS or processor off the beaten path, you can always try HTML5/WebGL. Web distribution might not be what you had in mind though... Maybe there are ways to make your web application fit for offline distribution!Read more ...


Tables with tables in tables

ShiVa is a C++ engine with a Lua scripting interface. While this works great for calling API functions, it does have its pitfalls when it comes to organizing and storing data. Since tables are the main (in fact, the only) data structuring mechanism in Lua, these pitfalls become especially apparent when trying to combine ShiVa tables with Lua tables.Read more ...


An Introduction to ShiVa iOS plugins

ShiVa games run natively on a large number of platforms without the need for the developer to adjust anything. Our STK + engine architecture was designed with the "build once, run everywhere" philosophy in mind. There are times however when you want to use a feature that is native to your target platform, in which case you have to write your own plugins.Read more ...


iOS 11 and the end of 32bit at Apple

iOS 11 has been released and 32 bit app support has officially been dropped. Do you need to update your ShiVa-powered games on the AppStore? Are games built for iOS 11 apps backwards compatible? Let's find out.Read more ...


True multithreading in ShiVa pt.3: Object threads

Welcome to the last part of our multithreading tutorial series. In part 3, we are going to have a look at the unique challenges in Object AI threads and think about scaling our system from a single consumer (User AI) to potentially hundreds of objects in a single scene.Read more ...


True multithreading in ShiVa pt.2: User states and events

Now that we are familiar with spawning and detaching threads, know about data races and lock_guarded mutexes, it's time to put all that knowledge to good use and make all those threads do actual work in your ShiVa game! In this tutorial, we will be looking at two possible design patterns for currentUser() AIModels, while next week will have a look at multithreading in scene object AIs.Read more ...


True multithreading in ShiVa pt.1: Introduction

Lua Coroutines, which we discussed before in other tutorials, offer a nice way of running long calculations step by step every frame over a period of time, so your programs do not appear to be stuck or frozen while you wait for those functions to return. Unfortunately, Coroutines do not offer true multithreading, which means that your expensive multicore CPU largely goes underutilized. Thanks to ShiVa's underlying C++ core, Lua Coroutines are not the only way to design parallel operations. Using the power of the C++11 STL, you can achieve true concurrency via std::thread().Read more ...