Jump to content

Blogs

Resolution Independence

I figured out how to make our GUI resolution-independent so that the existing editor code will correctly create items with the same proportions. This was very difficult, and it works really well! Some images aren't scaled here, but the important thing is the existing code is working the same, with no changes.   When the GUI is scaled to 200%, the buttons are bigger and indented further in from the right / bottom edges. The code that creates them just calls the parent ClientWidth() minus 74

Josh

Josh

Workshop Store picking up steam

Over the recent months the Leadwerks Workshop Store has experienced a noticeable increase in sales, correlating to an increased number of products offered. Although Workshop Store sales are quite a bit lower than DLC sales, the Workshop Store is more scaleable because it allows third parties to submit a greater variety of products.   We're also able to send out payments to Russia and other regions that other stores and websites may have trouble sending payments to, because our transaction sys

Josh

Josh

Leadwerks Summer Games 2016 Roundup

With the Summer Games 2016 Tournament completed, it's time to review the entries. This tournament brought a new level of quality, with several small games that could be considered Greenlight-ready, made in just four weeks!     Sound Game http://www.leadwerks.com/werkspace/page/viewitem?fileid=732192584   Test your spatial reasoning skills in this unique and challenging game. Navigate with your map and lit up clues to get to the end of the maze.     Soundscape http://www.leadw

Admin

Admin

Reflections on Crawler's Den.

Crawler's Den is a demo I made for the Summer Games Tournament this year. You can grab it here. This blog I'd like to share my reflections on developing the project on LEX2 and Leadwerks in general.   When I started the project, my template had no animation manger, and the puppeteer system was just coming online. The goal was to recreate the AI and Events map and write the entire thing in C++. Not only to test the puppeteer system and my ideas on how to link said puppeteers to the flowgraph,

reepblue

reepblue

Beta update available

A new build is available on the beta branch on Steam. This updates everything, C++ and Linux included.   A bug where the editor skipped navmesh calculation on brushes is fixed.   We're updated to the latest version of the Steamworks SDK, which may fix some Workshop upload and download issues.   Animation now calculates more than twice as fast as previously. This was achieved by optimizing the animation code, implementing some inline functions, and by changing the way the matrix updating

Josh

Josh

Game Launcher final release

We're up to 81 games in Steam Workshop now, and I expect we'll see quite a few more released before the end of the tournament. Some of the stuff this tournament especially is really good, so it's not too soon to start thinking about the final release of game launcher on Steam. At that point the application will no longer be marked "Early Preview" and will get a big increase in downloads on Steam since its visibility will be much higher.   I want to launch with at least 100 total games. This

Josh

Josh

Game Launcher Updated

The beta branch of Leadwerks Game Launcher on Steam is now using Leadwerks GUI. You can try it out now for free here: http://store.steampowered.com/app/355500  

Josh

Josh

Initial Thoughts on VR

So I've been using Valve's VR technology quite a while before the HTC Vive was released, but I only recently picked up the final consumer version. Here are my thoughts on VR games.   First, VR games are completely different from non-VR games. Motion in the virtual world should never contradict motion in the real world. All the early Oculus demos are examples of what not to do.   "The Lab" by Valve really shows the depth of interaction VR opens up. You interactions with the virtual world

Josh

Josh

Game Launcher Custom Widget

As described previously, I decided to create a custom widget script to replace the game launcher's HTML panel. The results are already looking awesome! The UI looks really slick. It's great to see this idea come to life in such a striking and attractive manner.   What's really cool is the OS drawing commands are being used, so the games grid uses cleartype subpixel antialiasing, and the UI is completely solid with no flashes or little visual glitches.     Oh, and except for the window

Josh

Josh

Making game launcher work offline

I've got the Steamworks HTML renderer working with Leadwerks GUI now. The current build on Steam uses the Windows HTML renderer, which is part of IE. This isn't cross-platform, which is one reason why game launcher isn't available for Linux right now. The Chromium-based Steamworks HTML renderer is cross-platform but there are some issues.   The HTML renderer works by rendering a web page into a memory buffer and then uploading that buffer to a texture and drawing it onscreen. The visible r

Josh

Josh

Subwindows!

When the new Window::Embedded style is used in the window creation function, the window will appear as a panel, as part of the parent window. The black region here is an embedded window parented to the main window. (The tabber and other panels and controls are all just Leadwerks objects; Windows doesn't recognize them or know they're there, as they are just created by Leadwerks structures and drawing commands.)     Why is this special?   The embedded child window uses single-buffer draw

Josh

Josh

Leadwerks MaxGUI Driver

MaxGUI is an abstracted GUI system for the BlitzMax programming language. This allows Windows, Mac, and Linux native UIs to be created using the same code. The LeadwerksMaxGUIDriver module integrates Leadwerks GUI so that existing programs can be recompiled using our new UI system. Here's the first shot of it working in an actual existing program:  

Josh

Josh

Text Area Widget

The text area widget is now available on the beta branch on Steam, for Windows and Lua only at this time.   The text area is a read-only widget at this time. However, the text is all selectable, and in the future will be able to be copied to the clipboard. This widget creates two scroll bars which appear only when needed, for horizontal and vertical scrolling. The multiline text selection and scrolling was pretty difficult to implement, but the results are really nice.     I'm not goin

Josh

Josh

Leadwerks GUI for Linux

It took most of the weekend, but I've got Leadwerks GUI running on Linux, rendering directly to an X11 window. This is the fastest possible rendering method on Linux, and I think you'll agree the results are worth it. You can try a demo here: http://www.leadwerks.com/werkspace/topic/14867-gui-demo/#entry100912     Just like the Windows implementation, I found it necessary to implement double-buffering. In X11 this is accomplished with the use of an extension called "xdbe". The document

Josh

Josh

Log Master Updated!

Hello friends,   This is the first time I enter on a game jam in this community. I tried to follow the theme so after some research I started the development of this little prototype.   I learned some cool tricks in this project and I hope to bring more stages and polish even more this game in the future.       Since there is a little of "try and error" in this kind of gameplay, I worked to make things smooth as possible for the player respawn. In the beginning for example, when the p

DooMAGE

DooMAGE

AI framework test video

Quick demo video of my Utility and Needs Based UI test framework.   Click to see video on workshop     This is a quick demo video of my Utility and Needs Based AI test framework.   There are several things going on here to cause the AI actors to decide what to do:   - A scoring function runs every tick that updates the score for each available action. The top scoring action is marked as the active mode; if the mode changed since the last tick, s

blueapples

blueapples

Clipping and Resizing

In Leadwerks GUI, any widget can be the child of another widget. If the child goes outside of the parent widget's area it will be clipped for both rendering and mouse events. Below you can see the button in the upper-left corner and the progress bar and slider on the right are clipped by the parent tabber.     A parent widget can also have a padding value which indents the area. The tabber uses padding on the top to display the tabs and make sure children don't appear on top of the tabs.

Josh

Josh

Slider Widget

The slider widget is used for scrollbars, trackbars, and steppers. It has a lot of style options, so it's really six different widgets packed into one. (In Leadwerks Editor, a slider and textfield widget are combined to make the numerical entries you use to adjust positions and other values.)     To create a new slider you just create a widget and set the slider script: local slider = Widget:Create(230+40,140,20,20,panel) slider:SetScript("Scripts/GUI/Slider.lua")   You can then se

Josh

Josh

From C++, To Lua, to C++ Again!

I've started on my quest to make a full C++ has started today. I've noticed that LEX2 via the project manager didn't copy over as clean as it should, so I had to make the project from scratch which wasn't a big deal (for me). I should look into a way of getting that fixed.   After setting the project up, I noticed a few errors I was getting after I commented out the LUA_GAME preprocessor. It was a quick fix, and development went under way after that.   For this project, I'll need things tha

reepblue

reepblue

More Widgets

The combobox and listbox widget scripts are now updated. The combobox is presently using a more game-like style that jus shows the currently selected item. You can change the selection by clicking on the widget with the mouse, pressing keyboard keys, or scrolling the mouse wheel.   The listbox includes a slider that automatically appears when needed. In order to make rendering faster, the draw function calculates the first and last visible items, and only iterates through those items while

Josh

Josh

Status Report

I wanted to give you an update since this blog post and let you know how well (or not) I'm following those plans.   Blue Portals: Anniversary Edition (Skip this if you don't care..)   Sunday I pushed a long over due push to Steam for beta testers to play and give feedback. I don't like to push to Steam often as my connection isn't that strong so any uploads bigger then a few megabytes causes an upload failure, I usually split updates into multiple pushes to prevent such problems but sometime

reepblue

reepblue

Textfield Widget

It took a few hours to add scrolling to the textfield widget. Now when the caret moves beyond the bounds of the box, text will slide over to keep the caret visible. This really isn't much different from a full text editor. The script is available now on the beta branch on Steam and presently weights in at 381 lines of Lua code.     The Draw function is pretty short and easy to understand. I think most people will customize the appearance of these widgets more than the behavior: f

Josh

Josh

Widget Progress

I've added a textfield widget script to the beta branch, and a new build, for (Lua interpreter, Windows only, at this time). The textfield widget allows editing of a single line of text. It's actually one of the more difficult widgets to implement due to all the user interaction features. Text is entered from the keyboard and may be selected with arrow keys or by clicking the mouse. A range of text can be selected by clicking and dragging the mouse, or by pressing an arrow key while the shif

Josh

Josh

×
×
  • Create New...