Tutorials – Page 2 – ShiVa Engine

Category Archives: Tutorials

ShiVa Environments pt.1: Local Save Data

With every larger game that cannot be completed in one sitting, there comes a point when you should offer your users to save their progress and come back later to continue their playthrough. There are several methods you could use, like managed cloud saves, XML, JSON, or an online database of your own design, however


Simple Setup Guide to ODE Cars

Cars are among the most complex physics objects you can create in your game. Although you only need 4 joints, the number of variations on suspension, engine power, friction, and so on are nearly endless. Before you can experiment with your car to find the perfect balance, you first need to understand how to set


FOV, Aspect Ratio and HUDs

Developing cross platform games confronts you with a large number of operating systems, processor architectures, graphics APIs and input methods. But don’t forget about all the different screen sizes, orientations and aspect ratios, which you need to take into account for FOV and HUD design!


UV Mapping, Texture Baking and Lightmaps

How can you cut down on drawcalls with texture baking? How can you save disk space with multiple UV sets? How can you use pre-rendered lightmaps and still retain the ability to edit individual surfaces? Let’s find out!


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


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


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.


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