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

About this blog

Learn about game development technology

Entries in this blog

Game Launcher Update

Steam Workshop was originally implemented with a different design than what it uses now. In fact, it was an entirely different API. After a while, Valve figured out all the things it would be used for, and introduced the SteamUGC API, which is the basis of the modern Workshop implementation. This provides much more reliable operations and more features than the original system. However, it was not backwards compatible with legacy items uploaded under the old system.   My approach to implem

Josh

Josh

Official Steam Controller Bindings

A default Steam controller configuration has been created for Leadwerks Game Engine and Leadwerks Game Launcher. It is recommended that you use the keys listed here for controlling your games. This will ensure that your game can be played seamlessly with either a keyboard or Steam controller.   WASD: Movement Left shift: Run C: crouch Tab: Map, inventory, etc. Escape: exit game or main menu Mouse wheel down: next weapon Mouse wheel up: previous weapon R: Reload Left mouse button: sho

Josh

Josh

Vegetation Physics

I just had a breakthrough with the physics. There's a lot of optimization work left to do, but I can see at this point the idea works.   Newton Game Dynamics provides a mechanism for a user-defined collision shape. This accepts a bounding box and calls a user-defined callback any time an object intersects the bounding box. The callback builds a mesh dynamically for the area that the other object occupies. Internally, Newton uses this mechanism to process heightmap terrain without having to

Josh

Josh

Leadwerks Merc

Here's an update of the model sheet for our "Mercenary" character. We're spending more time in the planning phase than previous attempts, and I think the effort is really paying off.   All design is really a process of decision-making. If you don't make decisions you'll end up with something without much definition. Everything about this character was decided according to factors I set out at the beginning of this project.  

Josh

Josh

Artwork production

Our all-purpose action figure concept is complete, and he looks fantastic.     I am reminded of the great artwork on the packaging of GI Joe action figures from the 80s.     Rich has had some difficulty modeling a higher-detail pickup truck, inspired by the design of a Dodge Ram. According to him, curved vehicle bodies are much more difficult to get right than more angular designs. So that tells me in the future, we can get a jeep or something done much more easily than a Corvette, f

Josh

Josh

Vegetation Part 3

Billboards, transitions, and rendering are now done, and as you can see in the screenshot below, the idea works great. In Leadwerks 2, this application would have used hundreds of megabytes of data to store all the individual 4x4 matrices of each object. In Leadwerks 3, the instances are generated on the fly, so the application uses no more memory than a map with a blank terrain:     Still to do: Fade out billboards as they approach max view distance. Add rows to break up generated

Josh

Josh

The Left-Hand Rule

Leadwerks uses a left-handed coordinate system. This means that if you hold your left hand as shown below, your middle finger, index finger, and thumb will point in the directions of the X, Y, and Z axes, respectively.     Rotations use the left-handed rotation rule. To predict the direction of positive rotation, curl your fingers on your left hand and point your thumb in the direction of the rotational axis. Your fingers will curl in the direction of positive rotation along that axis.

Josh

Josh

Correction: Game Launcher installs

I previously reported that Leadwerks Game Launcher had obtained 4000 users. My records in Steam have changed and it now reflects a user base of 1765 users. I think the reporting for free applications was not working correctly, because this number is much closer to what I would expect based on game subscriptions.   The application is still in early release mode and has not been officially launched, and it will have low visibility before the final release. This gives us a period of time to wo

Josh

Josh

Billboards Part 2

I tried a different approach for billboards that is giving good results. A single quad rotates around the vertical axis to face the camera. A series of 64 different view angles are rendered in a circle around the billboarded object. A second quad faces straight up and is gradually dissolved in when the angle between the object and the camera becomes vertical enough.   A combination of cross-fading and cross-dissolving is used to smoothly blend in between the different side views. The billb

Josh

Josh

Billboard Generation

With the main culling and rendering algorithm done, I am focusing on the billboard display for the Leadwerks 3.7 vegetation system. My goal is to reduce the popping artifacts the Leadwerks 2 renderer displayed:   I am testing with a non-plant model with the idea that if I can get it to look reasonably well with an oddly sized mechanical object with highly visible lines, then a tree should look very good. Below you can see part of the billboard image drawn on the screen showing the object

Josh

Josh

Character Sketches

The first step to building a character model is to establish the concept. Here are the images I have received. I have my favorite in mind, but what do you think? The purpose of this character is to serve as an enemy for a wide range of games. It could also be used as a main character with a third-person camera.   Which one do you like best?  

Josh

Josh

Pieces Form the Whole

A few technologies are converging that form the basis of Leadwerks Game Engine 4 and our extended future.   BlitzMaxNG is a new compiler that turns BMX source code into C++, and includes a 64-bit compile mode. This means we can do a 64-bit build of our editor in the future. It's not super important right now, but it's a nice option to have going forward, and it makes all our code future-proof in the long run.   I've been exploring the direct 2D drawing features in GDI (Windows), Quartz (Ma

Josh

Josh

GamesBeat 2015

I just got a ticket to GamesBeat 2015 Summit. Message me if you'd like to meet up during the event. https://www.linkedin.com/profile/view?id=AAMAAABZ4BAB_h-adCunzdSr7r90HFOdx_MLrow

Josh

Josh

Art

Three things I am working on right now: We need a high quality default skybox. I'm pretty happy with the results I got, after a lot of experimentation and different programs. This will be a whole huge blog post itself. Commissioning development of one high-end character model. I'm going with a fairly expensive option this time. My goal is to just get ONE character I am happy with, with the idea that if we can do it once we can do it again. More on this later. Investigating a better

Josh

Josh

Beta update available

A new update is available which should fix terrain rendering issues. The project explorer panel is also shown in the script editor on Linux as well. I am not 100% happy with the layout of this and it may change before the final release.   I am also experimenting with Teragen 3 and think I can create some nice high-def skyboxes for us.  

Josh

Josh

Legos and Game Artwork

I recently had a strange interest in looking at Lego sets online and watching reviews. There was something about them that I felt like related to game development and level design. Something very interesting I noticed was that each set would include several extra elements that formed a story line. This added "play potential" to the set. For example, the raft below includes three pirates loaded with weapons, one who is obviously the leader, a treasure map, so the crew has an objective, and a

Josh

Josh

Project Explorer beta now available for testing

Implementation of the project explorer went really fast. I started it this morning, and I think it's pretty much done now. The project explorer shows up on the left side of the script editor window. It's positioned in an adjustable panel so you can resize and move its position. (Saving the position and orientation has not been implemented yet.) The project explorer shows a tree displaying your "Scripts", "Shaders", and "Source" folder, if you have the Standard Edition. You can double-click

Josh

Josh

Beefing up the Script Editor

Along with vegetation, Leadwerks 3.7 is planned to include new features that turn the script editor into a powerful IDE. Auto-completion makes it easier to remember the command you are looking for and greatly enhances coding productivity. A built-in project explorer is also being added to make it easy to quickly navigate to and open any script or shader file in your project.     These and other planned enhancements provide a powerful coding environment built seamlessly into Leadwerks Edit

Josh

Josh

Beta update available

A new update is available on the beta branch on Steam. This fixes the low-res terrain shader so it compiles on AMD cards. It also fixes a possible brush rendering crash having to do with the recent optimizations made to make uncollapsed brushes draw more efficiently.

Josh

Josh

Lean Game Development

I'm very happy with the progress our community as a whole is making. Instead of getting distracted with endless technical features, we're releasing games. Lean Game Development The Lean Startup Methodology basically states that life is too short to build a product no one wants. Companies invest years in development to release a product onto the market, only to discover that early design flaws doomed the product from the start. Lean Startup Methodology posits that one should release a minim

Josh

Josh

Vegetation Development

Today I am happy to say I worked out the problems that the vegetation system prototype had on AMD and Intel graphics. I started by upgrading the system from using texture buffers to using vertex buffers, as recommended in Daniel Rakos' excellent RasterGrid blog. He made this change for speed, but in my case it gave me simpler code I was able to eliminate the OpenGL errors with.   The most interesting part of this was discovering the glVertexAttribDivisor command. (Fortunately, it's in the 4

Josh

Josh

Beta update available

A new update is available on the beta branch on Steam. This fixes a few problems with brushes that the last update introduced. A grid snap button has also been added in the main toolbar.

Josh

Josh

Beta update available

An update is available on the beta branch. This will improve rendering speed of uncollapsed brushes in-game. You may also see a speed increase in the editor when viewing maps with lots of CSG brushes. You can read about this in detail in this thread.   Lunarovich's suggestion here has also been implemented.   I also tweaked a few stock prefabs and the FPS example map. The crates and boxes will now all use the dynamic shadow setting, and the red cage light prefab is set to only cast stati

Josh

Josh

Let's get this vegetation party started

An update is now available on the beta branch which fixes the alt+tab problem. This works by skipping rendering when a window is minimized, since the Win32 command GetClientRect() returns a size of zero when windows are minimized.   Now I am on to the highly anticipated Leadwerks 3 vegetation system. I previously wrote about some research I was performing here: http://www.leadwerks.com/werkspace/blog/1/entry-1499-vegetation-research/ http://www.leadwerks.com/werkspace/blog/1/entry-1500-veg

Josh

Josh

Game Launcher Review

Leadwerks Game Launcher was released last week as a free early access title. This means the release did not appear on the Steam new releases list, and its visibility is very low on Steam, unless someone is specifically looking for it. The final "real" release will see a period of high visibility. So right now the only traffic you should expect to get is what we drive to the Steam store page ourselves.   That said, Leadwerks Game Launcher now has 2000 users, and has very positive reviews so

Josh

Josh

×
×
  • Create New...