Jump to content

Leadwerks Game Engine 5 Alpha Zero Released

Josh

4,030 views

I'm happy to announce the very first alpha release of Leadwerks 5 is now available.

What's New

  • String commands now accept a unicode overload. Add "L" in front of a string to create a wide string in C++.
  • Now using smart pointers. Simply set a variable to nullptr to delete an object. There is no Release() or AddRef() function.
  • Exclusively 64-bit!
  • Global states are gone. There is no "current" world or context. Instead, the object you want is passed into any function that uses it.
  • We are now using constant integers like WINDOW_TITLEBAR instead of static members like Window::Titlebar.
  • Now using global functions where appropriate (CreateWorld(), etc.).
  • Renderer is being designed to be asynchronous so Context::Sync() is gone. 2D drawing is not implemented at this time.

Here's the syntax for a simple program.

#include "Leadwerks.h"

using namespace Leadwerks;

int main(int argc, const char *argv[])
{
	auto window = CreateWindow(L"My Game", 0, 0, 1024, 768, WINDOW_TITLEBAR);
	auto context = CreateContext(window);
	
	auto world = CreateWorld();
	auto camera = CreateCamera(world);
	camera->SetPosition(0, 0, -3);

	auto light = CreateDirectionalLight(world);
	light->Turn(45, 35, 0);

	auto model = CreateBox(world);
	
	while (true)
	{
		if (window->KeyHit(KEY_ESCAPE) or window->Closed()) return 0;
		
		if (window->KeyHit(KEY_SPACE)) model = nullptr;
		
		world->Update();
		world->Render(context);
	}
}

You can get access to the Leadwerks 5 Alpha with a subscription of $4.99 a month. You will also be able to post in the Leadwerks 5 forum and give your feedback and ideas. At this time, only C++ is supported, and it will only build in debug mode.  It is still very early in development, so this is really only intended for enthusiasts who want to play with the very bleeding edge of technology and support the development of Leadwerks 5.

  • Like 1


7 Comments


Recommended Comments

Why the use of CreateXXX() vs newing up an instance of the class in question? ie. why CreateWindow() vs new Window().

Share this comment


Link to comment
2 hours ago, Rick said:

Why the use of CreateXXX() vs newing up an instance of the class in question? ie. why CreateWindow() vs new Window().

  1. Create() may return nullptr if it was unsuccessful. The new constructor cannot do this. (We don't actually use new anymore. Now we use make_shared<Class>(), which also cannot return nullptr.)
  2. Sometimes an extended class is returned from these commands. For example, CreateTexture() will return a shared_ptr<OpenGLTexture> object.
  3. It looks nice.
  • Upvote 1

Share this comment


Link to comment

I was wandering, what will happen to the Leadwerks 4? Will it be discontinued? Will it receive updates? 

Share this comment


Link to comment
On 2/6/2018 at 3:28 PM, Lunarovich said:

I was wandering, what will happen to the Leadwerks 4? Will it be discontinued? Will it receive updates? 

I still have several updates planned for version 4.x. When 5.0 is released Leadwerks 4 will be considered finished and only receive critical updates.

Share this comment


Link to comment

Hey Josh,

I´m planning to buy Leadwerks 5 in the future but I have two questions:

1.Does the new engine contain the the same features as leadwerks 4? Just with a better design and some improvements...

Or is Leadwerks 5 a completely new engine where I have to wait some time to get some of these features?

2. Is it possible to import projects from the current engine 4.x into the new engine?

It would be nice if you upload some screenshots of the current alpha ^^

Share this comment


Link to comment

I’m making major architecture changes and writing a new editor. It’s not a completely new engine but it will ha e a long period of beta testing. I don’t think any features will be removed unless they just don’t make sense to keep. All file formats will still be loadable, but the programming API is undergoing major changes.

Share this comment


Link to comment
19 hours ago, Josh said:

I’m making major architecture changes and writing a new editor. It’s not a completely new engine but it will ha e a long period of beta testing. I don’t think any features will be removed unless they just don’t make sense to keep. All file formats will still be loadable, but the programming API is undergoing major changes.

Ok great! Then I´m going to buy it. That was the only concern i had.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Create Your Account

Sign in

Already have an account? Sign in here.

Sign In Now
×