Jump to content
  • entries
    948
  • comments
    5,905
  • views
    945,070

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


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

SpiderPig

Posted

Looking forward to seeing it develop.  What are you working on next?

Josh

Posted

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
SpiderPig

Posted

Good idea.  I'm keen to see how ray-casting will go, when you get to that.

reepblue

Posted

I'll look at this when I get home tonight. Really cool.

Yue

Posted

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

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

 

Josh

Posted

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
Yue

Posted

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

Posted

I'm also adding some easy Lua commands:

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

 

  • Upvote 1
TheConceptBoy

Posted

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