Jump to content

Leadwerks for Linux

Josh

2,571 views

Last week we launched our Steam Greenlight campaign to get Leadwerks into the hands of the Steam community. This week, we're rolling out the second stage of our plan with a Kickstarter campaign to bring Leadwerks to Linux. This will let you build and play games, without ever leaving Linux. The result of this campaign will be Leadwerks 3.1 with a high-end AAA renderer running on Linux, Mac, and Windows, with an estimated release date before Christmas.

 

Valve has given Linux users a taste of PC gaming, so now it's up to us to reach the Linux community with our message. If you dig this, please help spread the word that someone is trying to put game development on Linux:

http://www.kickstarter.com/projects/1937035674/leadwerks-build-linux-games-on-linux

 

blogentry-1364-0-78014600-1371079759.jpeg

 

Leadwerks for Linux

Linux is a solid and secure operating system that’s perfect for gaming, but at this time Windows remains the lead platform for PC games. We want to change that by putting the game development process right on Linux, with Leadwerks for Linux. This will allow you to build and play games without ever leaving the Linux operating system.

 

Leadwerks is a visual tool for building any kind of 3D game, including dungeon crawlers, first-person shooters, and side-scrollers.. We want to put game development on Linux with Leadwerks for Linux. Our campaign has three goals:

 

Linux Game Development. On Linux.

It’s not enough just to export games to Linux. We want to put the game development process on Linux, so you can build and play games, without ever leaving the Linux operating system. We have a complete visual editor that handles all aspects of the game development process, and we’re porting it to run natively on Linux. We’re using GTK for the user interface, so our editor will look and feel like a native Linux application.

 

We're targeting Ubuntu 12.04 to start with, and will support other distros as we make progress. You'll also be able to compile games for Windows and Mac...if you feel like sharing.

 

94938a7cff091f8ca7db12d6a8c35aa7_large.png?1370983345

 

Expand the Linux Library of Games

Our second goal is to facilitate expansion of the Linux library of games, and encourage the production of Linux-exclusive titles. The Linux community is pretty intelligent, and they have a lot of good programmers. We think by putting the appropriate tools in their hands, it will enable them to make great Linux games.

 

b1ab96a157f6b1e2391bb66378904249_large.jpg?1370984013

Hoodwink by E-One Studio

 

AAA Graphics on Linux

Leadwerks is known for having great graphics. We want to push Linux graphics beyond anything that’s ever been done. Linux is the perfect platform for triple-A graphics, because it has OpenGL performance faster than Windows or Mac. We’re taking advantage of this performance with deferred lighting, hardware tessellation, and up to 32x multisample antialiasing.

 

67650950e4b583521bdbba89f0a2f99c_large.jpg?1370974259

The Zone by Dave Lee

 

Steam Integration

When Valve announced Steam was coming to Linux, that was a clear sign to us that Linux is ready for PC gaming. We’re working to integrate Leadwerks with Steam and take advantage of new features Steam offers for developers.

 

7f20352e975f46d9b741ba72c19b5948_large.jpg?1370973477

 

Steam Workshop

We’re hooking into the Steam Workshop to deliver game assets. This includes models, textures, scripts, and maps, so you can get everything you need to make games. When you find an object in the Steam Workshop you want to use in your game, just hit the “Subscribe” button and it will show up right away, ready to use in Leadwerks. We’re also adding support for Valve’s asset formats, so you can access lots of great content from the rest of the Steam Workshop, and add it to your game.

 

Export for Steam

We’re working with the Steam SDK to make it easier to submit Linux games to Greenlight. Just press a button, and your game files will be packaged up, ready to send to Steam.[/color]

 

Features

Leadwerks is a powerful yet easy to use game engine with thousands of users worldwide. Here are just a few of the main reasons we think Linux users will love Leadwerks.

 

C++ Programming

Programming with Leadwerks is a breeze. Underneath our visual editor lies a powerful yet easy to use programming API that can be accessed in C++, Lua, and other languages. With documentation and examples for every single command, you’ve got everything you need to make any kind of game.

 

Visual Scripting

For scripting, we use the Lua script language, just like in Crysis, World of Warcraft, and hundreds of other games. We’ve got a built-in script editor, so you don’t have to switch back and forth between Leadwerks and an external editor. It’s even got a built-in debugger so you can step through your script and see everything that’s going on in the game. The flowgraph editor is used to connect scripted objects and make gameplay happen. This lets map designers set up sequences of events and complex gameplay, with no programming required.

 

Constructive Solid Geometry

Finally, we use a level editor based on constructive solid geometry. This lets everyone make game levels, without having to be an expert. If you’re familiar with Valve’s Hammer Editor, you’ll feel right at home in Leadwerks.

 

cced7c863b2cb48a2102cf7ad581841e_large.jpg?1370973987

Combat Helo by Tricubic Studios

 

We plan to deliver a visual editor that handles every aspect of the game development process, a powerful yet easy to use programming API, with triple-A graphics, all running natively in Linux. By working with Steam and the Linux community, our goal is to make Linux the number one platform for PC gaming. Thank you for helping us take Linux gaming to the next level.

 

03caee24f5d4edaa191b96fce2336465_large.jpg?1370993569

Big Five Game Hunter by Unidev

 

Risks and challenges

We expect to encounter some graphics driver bugs. This is always the case when you are pushing advanced graphics. Fortunately, we have good relationships with the major graphics hardware vendors, and have been able to get driver bugs fixed on other platforms in the past. Valve Software has done some of the heavy lifting for us here, by prompting the graphics hardware vendors to get their drivers in good shape.

 

Our GUI has a GTK implementation for Linux, but we expect to encounter some problems that have to be overcome. Our GTK Scintilla implementation (for the code editor) has not been written, and it's a complex library.

 

Since the Linux file system is case-sensitive, we expect to have to modify some code to work properly on Linux.

 

We're implementing a new method for terrain layers using virtual texturing. We do not anticipate any problems here, but it is one of the few features we haven't fully prototyped.

 

Although building Leadwerks for Linux will undoubtedly present some difficult problems, our team has a lot of experience with multi-platform development and I'm confident we can deal with all issues we encounter.



16 Comments


Recommended Comments

1)

The result of this campaign will be Leadwerks 3.1 with a high-end AAA renderer running on Linux, Mac, and Windows, with an estimated release date before Christmas.

 

Does this meaning kickstarter people will get directly 3.1 and the "old" community has to buy it ?

 

2) If seen on kickstarter site, the BACKER Pledge (100$) gives full access to lua and c++ leadwerks 3d (without windows/mac) and PRO BACKER (200$) gives full access to all 3 platforms.

 

I personally don't need mac, so do we get 100$ refund or linux as third (second) platform ?

Share this comment


Link to comment
Does this meaning kickstarter people will get directly 3.1 and the "old" community has to buy it ?

 

2) If seen on kickstarter site, the BACKER Pledge (100$) gives full access to lua and c++ leadwerks 3d (without windows/mac) and PRO BACKER (200$) gives full access to all 3 platforms.

 

I personally don't need mac, so do we get 100$ refund or linux as third (second) platform ?

If you don't find it valuable, I'm not going to make it.

Share this comment


Link to comment

This is too awesome! I am so happy to see this :)

About 55% of Leadwerks users were interested in Linux support, but it will really be up to the general Linux community whether we do this or not.

 

The wonderful thing about Kickstarter is I don't have to actually build the product to find out whether people will buy it or not. We can get a pretty good idea of the demand by presenting it to the Linux community and seeing their response.

Share this comment


Link to comment

Good news for Linux users. smile.png I have never used it but I am sure I would make my game suited for linux when the possibility is there.

 

When you look at the humble bundle donations, linux has always to highest amount of donation average per donation. So my guess is that the linux community would be happy to support this.

 

How about the pricing?

If you have Leadwerks 3.0 (windows & mac), what do you pay for 3.1?

If you are a BACKER for Linux (100$) do I also get 3.1 for Windows and Mac?

Share this comment


Link to comment

A few questiosn:

 

1) Does purchasing the backer level entitle me to Leadwerks 3.1 with the deferred renderer?

 

2) Will this be less expensive than purchasing Leadwerks 3.1 when it is actually finished?

 

3) Any timeline on completion date?

Share this comment


Link to comment

3) Any timeline on completion date?

...running on Linux, Mac, and Windows, with an estimated release date before Christmas.

Share this comment


Link to comment

...running on Linux, Mac, and Windows, with an estimated release date before Christmas.

 

Totally skipped that part. :D

Share this comment


Link to comment

I'm stuck in two minds. I want to support the growth of LE as I see huge potential in it, but by supporting this it's putting a huge obstacle between what I want and when i'm likely to get it.

 

I do see Linux as a big part of LE's future, but im not sure why that is coming before other things.

 

Wouldn't it be simpler to port a finished product than to port an unfinished product, then port each individual module your create after.

Share this comment


Link to comment

I'm stuck in two minds. I want to support the growth of LE as I see huge potential in it, but by supporting this it's putting a huge obstacle between what I want and when i'm likely to get it.

 

I do see Linux as a big part of LE's future, but im not sure why that is coming before other things.

 

Wouldn't it be simpler to port a finished product than to port an unfinished product, then port each individual module your create after.

What is "finished"? To some people, that means more CSG features. To some people that means high-end graphics. To some people, that means more mobile features.

 

I've got to test these markets and find out what people respond to, so that we have an overall direction. Small features and fixes are important, but it's all for nothing if we don't have an overall plan.

 

So far, I'm seeing a way stronger response from Linux users than we saw from mobile. Which is the opposite of what I would have thought.

Share this comment


Link to comment

I understand finding a finishing line is difficult, especially given game technology constantly changes. I would put a finished "minimum" that is equal in feature/function to LE2 with any consistant bugs resolved.

 

Then their could be "stretch goals" which would be a standard % improvement, so say 10-15% improvement in each section of the engine. Physics quality, Lighting Quality, Geometric Quality etc.

 

From their, port to Linux etc. I don't in any way mean to demean effort/work. But a KS campaign that raises say $20k, and you focus on linux development. Yet licenses already paid for Windows/Mac/Ios are still looking for key things.

 

Analogy for clarity: It's like waiting in a restaurant at 5:59pm with a 6pm booking and having someone walk in with a 8pm booking and getting seated before you. Whilst your told to wait over at the bar for a table.

Share this comment


Link to comment

This gives us a way to provide a lot of those graphical features users are asking for. A high-end renderer on Linux means a high-end renderer on Windows and Mac.

Share this comment


Link to comment

i don't think it is fair to compare respones of your linux campaign with the responses from mobile since you made no campaign for mobile support as far as i know.

 

(yes. i am pro mobile.

But i am not against Linux support if it happens and does not mean that mobile support will be canceled.

Maybe i will even Back the project on kickstarter )

Share this comment


Link to comment

I think it's still great for us to have mobile support, it just didn't provide the initial boost in users we were looking for.

Share this comment


Link to comment

I would prefer you focus on what you have and make it as good as you can. I am an old Shiva user and what Shiva maybe did wrong, and on one post you said the same, was that they focused on too many plattforms. People who bought a LE3 licence and therefor supported LE3 feel dissapointed and with the price a little bit.....irritated. Costumer service is as IMPORTANT as a good technology.

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.

  • Blog Entries

    • By Josh in Josh's Dev Blog 4
      Here are some screenshots showing more complex interface items scaled at different resolutions. First, here is the interface at 100% scaling:

      And here is the same interface at the same screen resolution, with the DPI scaling turned up to 150%:

      The code to control this is sort of complex, and I don't care. GUI resolution independence is a complicated thing, so the goal should be to create a system that does what it is supposed to do reliably, not to make complicated things simpler at the expense of functionality.
      function widget:Draw(x,y,width,height) local scale = self.gui:GetScale() self.primitives[1].size = iVec2(self.size.x, self.size.y - self.tabsize.y * scale) self.primitives[2].size = iVec2(self.size.x, self.size.y - self.tabsize.y * scale) --Tabs local n local tabpos = 0 for n = 1, #self.items do local tw = self:TabWidth(n) * scale if n * 3 > #self.primitives - 2 then self:AddRect(iVec2(tabpos,0), iVec2(tw, self.tabsize.y * scale), self.bordercolor, false, self.itemcornerradius * scale) self:AddRect(iVec2(tabpos+1,1), iVec2(tw, self.tabsize.y * scale) - iVec2(2 * scale,-1 * scale), self.backgroundcolor, false, self.itemcornerradius * scale) self:AddTextRect(self.items[n].text, iVec2(tabpos,0), iVec2(tw, self.tabsize.y*scale), self.textcolor, TEXT_CENTER + TEXT_MIDDLE) end if self:SelectedItem() == n then self.primitives[2 + (n - 1) * 3 + 1].position = iVec2(tabpos, 0) self.primitives[2 + (n - 1) * 3 + 1].size = iVec2(tw, self.tabsize.y * scale) + iVec2(0,2) self.primitives[2 + (n - 1) * 3 + 2].position = iVec2(tabpos + 1, 1) self.primitives[2 + (n - 1) * 3 + 2].color = self.selectedtabcolor self.primitives[2 + (n - 1) * 3 + 2].size = iVec2(tw, self.tabsize.y * scale) - iVec2(2,-1) self.primitives[2 + (n - 1) * 3 + 3].color = self.hoveredtextcolor self.primitives[2 + (n - 1) * 3 + 1].position = iVec2(tabpos,0) self.primitives[2 + (n - 1) * 3 + 2].position = iVec2(tabpos + 1, 1) self.primitives[2 + (n - 1) * 3 + 3].position = iVec2(tabpos,0) else self.primitives[2 + (n - 1) * 3 + 1].size = iVec2(tw, self.tabsize.y * scale) self.primitives[2 + (n - 1) * 3 + 2].color = self.tabcolor self.primitives[2 + (n - 1) * 3 + 2].size = iVec2(tw, self.tabsize.y * scale) - iVec2(2,2) if n == self.hovereditem then self.primitives[2 + (n - 1) * 3 + 3].color = self.hoveredtextcolor else self.primitives[2 + (n - 1) * 3 + 3].color = self.textcolor end self.primitives[2 + (n - 1) * 3 + 1].position = iVec2(tabpos,2) self.primitives[2 + (n - 1) * 3 + 2].position = iVec2(tabpos + 1, 3) self.primitives[2 + (n - 1) * 3 + 3].position = iVec2(tabpos,2) end self.primitives[2 + (n - 1) * 3 + 3].text = self.items[n].text tabpos = tabpos + tw - 2 end end  
    • By 💎Yue💎 in Dev Log 5
      The prototype of a four-wheeled vehicle is completed, where the third person player can get on and off the vehicle by pressing the E key.  To move the vehicle either forward or backward, is done with the keys W, and the key S, to brake with the space key.  And the principle is the same as when driving the character, a third person camera goes behind the car orbiting 360 degrees.

      I don't think the vehicle is that bad, but I'm absolutely sure it can be improved.  The idea is that this explorer works with batteries, which eventually run out during the night when there is no sunlight.
      Translated with www.DeepL.com/Translator
       
      Mechanics of the game.
      I'm going to focus on the mechanics of the game, establish starting point (Landing area), after the orbiter accident on Mars where all your companions died, now, to survive, you will have to repair your suit, oxygen runs out, good luck.  This involves replacing the oxygen condenser that is failing and the suit is stuck.

      On the ground and performance.
      The rocks, the terrain and the vehicle kill the SPF, but there is a solution, and everything is related to the chassis of the vehicle. That is to say that if I put a simple collision bucket for the vehicle, the yield recovers, something that does not happen if I put a collider of precise calculation for the car. This has the advantage of better performance but is not very accurate, especially when the car crashes with an object in front, because the horn of the car has no collision. And the solution to this, is to put a sliding joint, as was done with the area in which the player climbs the car and descends from it.


       
      On the rocks, I am trying to make them with the slightest polygons and the most distant from each other. 
      Obviously on Mars I can not create canyons, high mountains, is because the terrain does not produce shadows on itself, that's why the terrain tries to be as flat as possible, simulating a desert with dunes. 

      That's all for now.
       
    • By 💎Yue💎 in Dev Log 9
      The prototype is finished, and the mechanics of the game can be given way.  It has established a desert terrain in the form of dunes, this implies that there are no cannons or anything similar, because Leadwerks does not allow a terrain to cast shadows on that same terrain and this looks visually rare.
      So the terrain is like low-slope dunes. On the other hand, I think the texture of the terrain is already the definitive one, with the possibility of changes and suggestions on the part of those involved in this project.
      On the other hand we have taken the model of a habitat of the nasa, which certainly looks very nice. 
      The next steps, are to establish the starting point of the player, this must start near the capsule return to Mars somewhere on the map of 2024 x 2.
      And think about the first thing you should do, repair your suit? Seek a shelter? things like that.  


×
×
  • Create New...