Jump to content
  • entries
    941
  • comments
    5,894
  • views
    868,118

About this blog

Learn about game development technology

Entries in this blog

Resizable Viewports on Linux

The beta branch has been updated with experimental support for resizable viewports on Linux, including an option to switch to a single viewport. The object bar buttons have also been fixed to display tool tips properly.     You can try this now by opting into the beta branch on Steam. Let me know what you think.

Josh

Josh

Leadwerks Game Launcher release date set

I've set the release date for Leadwerks Game Launcher to Tuesday, July 21, right after the Summer Games Tournament ends. Your games will have the highest visibility during the first week the application is launched.     This is a great chance to demo your best ideas. Remember, you don't need a full finished game, just a simple playable concept. The goal is to make something fun!   Leadwerks Game Launcher is a unique application on Steam. The closest thing to it is the built-in game pl

Josh

Josh

Plans In Motion

About a year ago, before I even had my cool hat, I wrote a blog post called What's the Big Idea? that talked about some big-picture ideas about where Leadwerks is going: Well, a year later, this idea is coming to fruition. I previously broke down the user journey into Education, Collaboration, Promotion, and Distribution. This has now been distilled down to the new Leadwerks tagline: Learn, Build, Play. I had our logo reworked and I am very proud to present to you this beautiful design:  

Josh

Josh

Reverting the Entity Script Field

Last week I tried implementing a new method of controlling entity script fields. I was not satisfied with the current drag and drop from the scene tree method. I tried a system that was based on the entity name, which is how we used to do things in Quake mods.   Several people pointed out that this had a negative effect on their workflow, due to the difficult of copying and pasting groups of linked objects. So I began implementing a system that would create unique names when needed.   I s

Josh

Josh

Workshop page update

The Workshop in Leadwerks Editor has been updated to use the same web interface as the game launcher. Page numbers have also been added to both. In the future, the Leadwerks Workshop interface will probably start to resemble the Game Launcher interface more.  

Josh

Josh

Entity script fields update

A new update is now available on the beta branch. This is a refinement of the new entity script fields, which rely on the object name, rather than the awkward drag and drop motion that was originally implemented. I've modified the code so that when a map is loaded, any targeted objects will be renamed with a name that is unique in the scene. For example, if two objects named "WaypointA" exist in the scene, and one of them is linked to from another object, the object will be renamed "WaypointA

Josh

Josh

Icon Design

I've recruited a professional designer to create a new icon set for the Leadwerks UI. This will provide us with a more consistent visual interface, with a similar look on all supported platforms.   My first instructions were to go bright and multi-colored, with colors similar to Lego pieces. We also included Windows 10 style icons as an influence. These looked good, but when plugged into the program the interface lost its visual consistency.     We next experimented with some grayscale

Josh

Josh

Beta Update Available

The creation of our complete tutorial series, written with the help of Aggror, has had a really good effect because it gives us a specification saying "this is how to use Leadwerks". Instead of having different approaches and opinions scattered around, we can all discuss the user experience and be on the same page. This has led to improved user feedback, as we are able to more easily identify any small hangups or inefficiencies in the workflow. I'd especially like to thank the user Malachi fo

Josh

Josh

Small behavioral change

In the next beta update, the way entity fields work in the script properties will be a little different. Instead of dragging an object from the scene tree onto the field, you will type in the name of the object (or copy and paste the name from the object's name field). This is being done to make the behavior more intuitive. After working with both approaches, I find the new way much easier to use.     This does however mean that an object that is used in this manner must have a unique na

Josh

Josh

What's Next

Here's what's next for Leadwerks Game Engine.   Game Launcher Leadwerks Game Launcher will be released in early preview mode when 50 games are reached. Right now we have 13. Filling the content up is a high priority, and the Summer Game Tournament will bring us closer to that goal.   I am mentioning this first because I want to emphasize that the number of games posted is my measure of how well I'm doing. Every action should be considered in terms of how it helps you guys publish more ga

Josh

Josh

The great big beta update

The beta branch on Steam has received an update with some important changes. A new project template called "Tutorial Samples" has been added, which includes the files you need to complete the new tutorials found here. A new script, Main.lua, has been introduced to take over the main entry point of your program. As explained in detail here, this will have no effect on your existing projects. The screenshot publish feature is fixed. Flowgraph arguments no longer require the EnableLegac

Josh

Josh

Some backwards-compatible changes to the main script

The design of the App table in Lua was originally created to work with mobile, which has a more restricted program flow. The application calls App:Start() once to initialize it, and then will continually call App:Loop() until the function returns false. These two functions are found in the file "Scripts\App.lua".   Since we are focused on the PC now, it does not make sense to keep this structure. It also makes it more confusing to teach scripting. A conventional program layout with one mai

Josh

Josh

SteamUGC Upgrade Complete

A new update is now available on the beta branch. This completes our migration to the newer SteamUGC system for Workshop content. Downloads should be working reliably now, but please let me know if you experience any trouble.   Steam protocol calls are now supported on Linux. Most notably, the Steam interface will open the Workshop now, instead of it opening in a web page.   An extra color option for the perspective viewport has been added, as well as several new color schemes. Select th

Josh

Josh

Game Launcher and SteamUGC

I'm working to move our Workshop implementation over to the newer SteamUGC API. There were recently some things updated, and that is still being sorted out. I'm also finishing up the game player.   The first incarnation of Leadwerks Game Launcher was pretty utilitarian (and ugly):   I realized this was pretty drab for a product aimed at consumers, so I designed a more outlandish colorful interface that was purely web-based:   This one looks nice, but you can tell it will start to fee

Josh

Josh

The Happenings

The Steamworks SDK has been updated with some new functionality I need to transition Leadwerks Workshop to the SteamUGC system. This will result in unlimited file sizes, more reliable downloads, and other new features. However, the documentation isn't updated yet, so I am going to wait for that before moving forward, and focus on non-coding things this week. Once the Workshop edits are finished and tested, Leadwerks 3.5 will be released.   At the same time, Jorn and I are working on the new

Josh

Josh

Beta Update Available

A new update is available on the beta branch. A few months ago, Valve introduced the SteamUGC API to Steamworks SDK. This replaces the original RemoteStorage API, and allows unlimited file sizes and a simpler command set. I also suspect the internals in the Steam client and servers are more reliable, because it is a second-iteration design. The beta build can download Workshop items published with the old legacy API, or with the new one. However, Workshop items published with the beta build

Josh

Josh

3.5 release candidate available

An update is available which is a release candidate for version 3.5. Version 3.5 adds carve and hollow CSG operations, an improved project template system, and customizable filters for scene objects. In this update I reverted the group selection behavior to the same way it works in 3.4, and decided to hold off on adding an extra grouping feature. I expect a lot of new users soon, so stability is my most important goal.   The summer games tournament is coming soon! We had a really great tur

Josh

Josh

Using Visual Studio Code with Leadwerks

Microsoft has released a cross-platform code editor called "Visual Studio Code". It's just a lightweight text editor like Notepad++. You can get it here for Windows, Linux, and Mac.   Although the editor is focused on web development it actually does support Lua syntax highlighting. If you are curious to try to use it with Leadwerks, add this text to your launch.json file: { "version": "0.1.0", // List of configurations. Add new configurations or edit existing ones. // ONLY "n

Josh

Josh

Game Launcher taking shape

Aesthetics are important in a consumer-facing product like this. Your games should have the best possible presentation to the end user. With that in mind, I've revised the Game Launcher interface to be more content-focused. The same interface will be available on our site, and launching a game works exactly the same either way.   The program log has been hidden away since it is a "developer" thing most users don't need to mess with. It can be brought up by pressing F10.  

Josh

Josh

Game Player Preview

Here is a preview of what the Leadwerks Game Player Workshop looks like. A rotating banner shows the top games, like a mini-Steam within Steam. The difference is this distribution channel has no restrictions on when you can publish your game, and you can deploy games to all supported systems, including SteamOS, without having to actually compile on those systems.   I envision a time in the near future when everyone with a small fun playable game can pick up tens of thousands of new users pla

Josh

Josh

Expansion

Jorn Theunissen has been hired on a part-time basis to help design a new set of documentation for Leadwerks. We're taking a top-down approach whereby he designs an outline that encompasses everything you need to know, assuming the reader starts with zero knowledge. The goal is to explain everything in one set of information, down to the level of describing what a mipmap actually is.   The organization of the material will be a linear list of lessons, with no nesting or sub-sections. This ma

Josh

Josh

Further refinement of physics shapes

I added more options in the model editor for single convex hulls, polymesh, and no collision. Also changed the physics render mode to wireframe so it's easier to see the physics and visual geometry together:     This makes it easier than ever to enable collision on a model, and it works better with the navmesh system:     A new "shrink wrap" method has been added to generate low-poly convex hulls.   Exact convex hull:   Shrink wrap method:   This really saves a huge amount o

Josh

Josh

Cleaning up physics shapes

Before Leadwerks 3 existed, Leadwerks 2 used a little tool called "Phygen" to generate collision shape files for 3D models:     The user would input the parameters and then save that file with the same name as the model it was to be associated with, with the PHY file extension. This was not a very good system, but the idea of storing a physics shape in a PHY file that was automatically loaded along with the model was a good one.   In Leadwerks 3 we implemented prefabs to make it easier t

Josh

Josh

Project Templates

The project templates system is being revised. Project templates are going to be oriented around game types rather than programming languages.   Picture is worth 1000 words:   If you have the standard edition, the common project files will still include the C++ files, so any new project you create will be usable in C++.

Josh

Josh

Improving the Publish Game Dialog

Leadwerks 3.4 (now coming up to 3.5) has retained the core design philosophy from it's inception with Leadwerks 3.0 of easy level design and simple Lua scripting, but has changed quite a lot in other ways. Publishing of games to Steam Workshop wasn't even a thought until Leadwerks came to Steam in January 2014. Consequently, the current publishing interface isn't quite as intuitive as it could be and requires too many clicks.   To make publishing easier, a Publish menu item has been added in

Josh

Josh

×
×
  • Create New...