Jump to content
  • entries
    943
  • comments
    5,899
  • views
    924,380

Turbo Game Engine (Leadwerks 5) beta updated with Vulkan renderer


Josh

2,675 views

 Share

The beta of our new game engine has been updated with a new renderer built with the Vulkan graphics API, and all OpenGL code has been removed. Vulkan provides us with low-overhead rendering that delivers a massive increase in rendering performance. Early benchmarks indicate as much as a 10x improvement in speed over the Leadwerks 4 renderer.

The new engine features an streamlined API with modern C++ features and an improved binding library for Lua. Here's a simple C++ program in Turbo:

#include "Turbo.h"

using namespace Turbo;

int main(int argc, const char *argv[])
{
	//Create a window
	auto window = CreateWindow("MyGame", 0, 0, 1280, 720);
	
	//Create a rendering context
	auto context = CreateContext(window);

	//Set some Lua variables
	VirtualMachine::lua->set("mainwindow", window);
	VirtualMachine::lua->set("maincontext", context);

	//Create the world
	auto world = CreateWorld();

	//Load a scene
	auto scene = LoadScene(world, "Maps/start.map");

	while (window->KeyHit(KEY_ESCAPE) == false and window->Closed() == false)
	{
		world->Update();
		world->Render(context);
	}
	return 0;
}

Early adopters can get access to beta builds with a subscription of just $4.99 a month, which can be canceled at any time. New updates will come more frequently now that the basic renderer is working.

  • Like 3
  • Confused 1
  • Sad 1
  • Upvote 3
 Share

9 Comments


Recommended Comments

Turning the lights back on. My OpenGL shader code will be easy to integrate. But I want to go slowly in small steps and test a lot, to make sure everything is very solid.

  • Upvote 1
Link to comment

I love that new way of writing the code, it's much more readable. 

auto window = Turbo::CreateWindow("MyGame", 0, 0, 1280, 720);

 

Link to comment
32 minutes ago, Iris3D Games said:

I love that new way of writing the code, it's much more readable. 


auto window = Turbo::CreateWindow("MyGame", 0, 0, 1280, 720);

 

The Turbo:: namespace isn't actually needed. I'm not sure why I had that in my example.

  • Upvote 1
Link to comment

I'm also adding some easy Lua commands:

LuaSetGlobal("mainwindow", window);
LuaSetGlobal("maincontext", context);

 

  • Upvote 1
Link to comment

Wait, that's all it takes? Does that set up Lua interpreter and create the C++ game all in just those few puny lines of code? This is amazing!

  • Upvote 1
Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...