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.


Five Latest Blog Tutorials

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

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 ...


ShiVa Networking part 2: Sessions, Events, Broadcasting

Last week, we introduced the fundamentals of working with ShiVa's networking and wrote a simple program that connected to a remote server session. This week, we are going to build a simple chat application that allows 2 or more clients to exchange text messages.Read more ...