Jump to content
  • entries
    941
  • comments
    5,894
  • views
    870,827

About this blog

Learn about game development technology

Entries in this blog

Promoting your Game

You've learned Leadwerks, built a basic game, and published it to the Game Launcher, perhaps during one of the many Leadwerks game tournaments. Now what? Fortunately, there is a big appetite for work-in-progress indie games. The next step is to create an account on itch.io and GameJolt and upload your standalone game. Put your game out there on these platforms and if it is fun it will gain a lot of players. At the same time, there's a ton of talented YouTubers out there making reviews

Josh

Josh

Project Workflows

It's funny how all of the various features in the new engine are interconnected and development just flows from one to another. I was working on terrain, and I needed to save out some texture data so I implemented Pixmaps, and I wanted to add Basis support and DXT decompression, and then I started converting texture formats, and now I need a way to manage this all. This is an idea I have had for several years and I finally got to try it out. Leadwerks Game Engine 4 has a strictly defined wo

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

Project Manager

The Project Manager lets you manage multiple Leadwerks projects. A project includes assets, scripts, code, code projects for Visual Studio, Xcode, and Eclipse, along with your game's executable. The Project Manager lets you view and switch between your different projects.   Projects can be exported into a .zip file for easy sharing and archiving. You can even have Leadwerks3D scan all source code files and only include the asset files that your game actually uses. (I'm still adding the p

Josh

Josh

Project Management

Leadwerks3D has built-in project management features that assist the user to create, share, and publish projects. When you first start editor for the first time, the New Project wizard is displayed. You can select a programming language and choose which platforms you want the project to support. It is possible to add project templates for new languages, too.   Once a project exists, you can go into the project manager and switch projects. This will cause the editor to use the project dir

Josh

Josh

Project Launch Settings and Mod Support

The new editor is being designed to be flexible enough to work with any game, so it can be used for modding as well as game development with our new 3D engine. Each project has configurable settings that can be used to handle what the editor actually does when you run the game. In the case of a game like Quake, this will involve running a few executables to first compile the map you are working on into a BSP structure, then perform lightmaps and pre-calculate visibility. You can also

Josh

Josh in Articles

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

Progress

Here's my list of things left to do: Documentation Undo system Get character models for Darkness Awaits Prepare the super secret special surprise for deployment   Undo functionality is my absolute least favorite thing to program, and I also want to get some more real-world testing done before implementing it, so it comes last. This evening I will start on the docs, in earnest.   I hope everyone is having a good near-Christmas week.

Josh

Josh

Prizes Shipping

If you entered the Winter Games Tournament, I am shipping prizes to you now (late, I know).   You will receive a friend request from the Leadwerks Software Steam account. Please accept this. I will need your mailing address in order to ship your prize.

Josh

Josh

Preparing Leadwerks for the Future

In this blog I am going to explain my overarching plan to bring Leadwerks into the future and build our community. First, regarding technology, I believe VR is the future. VR right now is basically where mobile was in 2006. The big publishers won't touch it and indies have a small but enthusiastic market they can target without fear of competition from EA. I have an HTC Vive and it is AWESOME! After using it, I don't really want to play games on a 2D monitor anymore. I want to be in the gam

Josh

Josh

Preparing for the release of version 4.4

I am going to try something different this time and use the Thunderclap tool to promote the release of Leadwerks 4.4, which I have scheduled for April 3: https://www.thunderclap.it/projects/52943-leadwerks-game-engine-4-4   Please sign up to help with the launch if you would like to promote it.   Also, there is still time to help the launch of A Demon's Game: https://www.thunderclap.it/projects/52763-a-demon-s-game-crowdfunding

Josh

Josh

Preparing C++ Projects

I've been doing a lot to create the final Leadwerks projects to build static libraries, and the corresponding Visual Studio, Xcode, and Eclipse projects to load those libraries and start coding with Leadwerks 3 in C++. We're also making progress with our sample game "Darkness Awaits". The community came up with an awesome logo for the game that captures the spirit and feel of the original concept, which first formed as a mod for the original Quake engine. I uploaded gamecreator's Photoshop fi

Josh

Josh

Precomputed BSP Trees and Static Meshes

The GMF2 data format gives us fine control to enable fast load times. Vertex and indice data is stored in the exact same format the GPU uses so everything is read straight into video memory. There are some other optimizations I have wanted to make for a long time, and our use of big CAD models makes this a perfect time to implement these improvements. Precomputed BSP Trees For raycast (pick) operations, a BSP structure needs to be constructed from the mesh data. In Leadwerks Engine thi

Josh

Josh

Pre-Steam Dev Days small update

A small update is available on the beta branch. This just changes it so that surfaces using the leaves or groundplant vegetation shader will be skipped when computing a convex decomposition. This was implemented specifically to make it easier for Nenero to get his Tree Pack approved for sale in the Workshop Store. At this time, only the Windows build is affected.     I will be in Seattle tomorrow evening for Steam Dev Days, along with some other people from the Leadwerks community.  

Josh

Josh

Post-GDC Wrapup

I'm back home now, relaxing after a long week away. And what a week it was! I got my lecture out of the way on Monday. I felt like I was pretty well prepared, but some acoustical problems in the hall really made it very difficult to concentrate, plus I was pretty nervous about talking in front of about 600 people. I did it though, and hope to do another one next year. The recorded lecture should be available in the GDC vault. During my talk, I described my experience as a PC developer,

Josh

Josh

Plugins Expanded

This month I was working on a lot of NASA projects using Leadwerks. My goal with this is to build up enough business that I can start hiring more people to help. It's nice to make money using my own tools, and it gives me a lot of ideas for the new engine. This morning I felt like experimenting with the design of plugins in the new editor a bit. I came up with two types of plugins. One will add an new menu item to the model editor that flips the normals of the current model. The ProcessEven

Josh

Josh

Plugins and File Formats

At last I have been able to work the plugin system into the new editor and realize my dreams. The editor automatically detects supported file formats and generates thumbnails for them. (Thumbnails are currently compatible with the Leadwerks system, so Leadwerks can read these thumbnail files and vice-versa.) If no support for a file format is found, the program just defaults to the whatever icon or thumbnail Windows shows. The options dialog includes a tab where you can examine each pl

Josh

Josh in Articles

Please review the new documentation

I'm asking the community to look over the new documentation system and find any mistakes before I sign off on the project. The tutorials are not completed. The API Reference should be completed, although the main API Reference page is not showing anything right now. https://www.leadwerks.com/learn   Here are my notes to the developer who is working on the docs:   Please review the material and make sure everything meets your satisfaction, and leave your comment below if needed. I figure

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

Pixmap Class and DDS Saving

Textures in Leadwerks don't actually store any pixel data in system memory. Instead the data is sent straight from the hard drive to the GPU and dumped from memory, because there is no reason to have all that data sitting around in RAM. However, I needed to implement texture saving for our terrain system so I implemented a simple "Pixmap" class for handling image data: class Pixmap : public SharedObject { VkFormat m_format; iVec2 m_size; shared_ptr<Buffer> m_pixels; int

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

Picking Up St(r)eam...

I'm making good progress on LE3 now. First I had to write basic functionality for things like strings and file access. It was tedious, but now that it's done I've got a nice library of functions that make programming all that much easier. The string commands include Trim(), Split(), ExtractExt(), StripDir(), etc. I know the Boost library has some functionality like this, but I'd like to avoid relying on third party libs whenever possible. I've also got the file system working, with a FileFa

Josh

Josh

Picking up speed

Lots of things are happening around here right now!   First up, we've got some free professionally made animations for you to use with our futuristic soldier character. You can download the files here.   Michael Betke of Pure3D has been cranking out AAA-quality 3D models ready to use in Leadwerks Engine. The following sets are available: Birch Trees 1.x (€22,00) Pine Trees 1.x (€22,00) Ground Plants 1.x (€19,00) Each set features new unreleased content. Buy a couple today

Josh

Josh

Physically-based Rendering

An online implementation of physically-based rendering in the Khronos Github was pointed out to me by @IgorBgz90 and @shadmar. This is very useful because it's an official implementation of PBR that removes a lot of guesswork. Here is my first attempt, which is not using any cubemap reflections: And here it is with cubemap reflections added: I plan to use the real-time global illumination system to generate the reflection data, instead of using environment probes. T

Josh

Josh

Persistence

Version 2.32 is the biggest internal change in the engine in a long time. It's also the last time version 2.x will undergo this extensive of additions.   LuaJit2 was implemented for fast Lua execution. This initially caused some BMX programs to not compile with the included modules.   The rendering buffer storage scheme was modified somewhat in preparation for a new feature that is unannounced.   Roads and saved to and loaded from SBX files, so they don't have to be generated at runtime.

Josh

Josh

×
×
  • Create New...