Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Josh

1,112 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
  • Upvote 3

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