Jump to content

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

Josh

252 views

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


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.

Share this comment


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);

 

Share this comment


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.

Share this comment


Link to comment
// Nice!!
auto window = CreateWindow("MyGame", 0, 0, 1280, 720);

Share this comment


Link to comment

I'm also adding some easy Lua commands:

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

 

Share this comment


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!

Share this comment


Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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