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

About this blog

Learn about game development technology

Entries in this blog

Day One

After a much-needed vacation I'm back, and ready to rock. IGDA Summit Everything at the IGDA Summit was mobile, mobile, mobile. Based on this kind of behavior in the industry, you'll have to forgive me for thinking at one time that mobile was the next big thing. There's two problems: Perhaps half the companies there were support services to help you monetize your app. I haven't heard the word "monetize" so much since the height of the Social boom, when people had huge numbers of free users

Josh

Josh

Next Steps

I've got the basic GI algorithm working but it needs a lot of work to be correct. I tend to do very well when the exact outcome is well-defined, but I am not as good at dealing with open-ended "artistic" programming. I may end up outsourcing the details of the GI shader to someone else, but the underlying data management is solid enough that I am not scared of it anymore. There's a lot of aspects of the design I'm not scared of anymore. We worked out smart pointers (including Lua integratio

Josh

Josh

Open Invitation to Shiva Users

I was sorry to hear the news of Stonetrip's liquidation earlier this month. Shiva3D pioneered multi-platform publishing, and I enjoyed killing zombies in "The Hunt". I know that many of you are wondering what to do next. So, let me just get it out on the table that Leadwerks might be an option for your team.   We just released Leadwerks 3, our first cross-platform product for mobile. Leadwerks 3 is completely redesigned to accelerate developer productivity with new advances in tools and wo

Josh

Josh

Leadwerks 3.3 Beta now available on beta branch

The beta of Leadwerks 3.3 is now available on the beta branch on Steam.   Two new entity classes that extend the model class are present. Sprites are a quad that can face the camera, a specific direction, or can rotate around one axis. These are useful for lighting effects and the axis rotation is great for making laser beams or tracer rounds.   The Lensflare class extends the sprite class and adds a simple glow effect for lighting.   The editor now support shift-drag to select in the ma

Josh

Josh

Voxel Cone Tracing Part 3 - Raycasting

I added a raycast function to the voxel tree class and now I can perform raycasts between any two positions. This is perfect for calculating direct lighting. Shadows are calculated by performing a raycast between the voxel position and the light position, as shown in the screenshot below. Fortunately the algorithm seems to work great an there are no gaps or cracks in the shadow: Here is the same scene using a voxel size of 10 centimeters: If we move the light a little lower

Josh

Josh

Selective File Inclusion (Beta)

A new update on the beta branch on Steam adds selective file inclusion on publishing a project. This works by scanning map files and building a list of required files, and only packing up files that are actually used in your game. Here's how it works: All map files are always included, and scanned for required files. All script files are always included, and scanned for required files. Included prefab files are scanned for required files. Included model files are scanned for require

Josh

Josh

iOS 6 Blues

Apple's problems in iOS 6 aren't limited to maps. Their OpenGL drivers in iOS 6 are absolutely non-functional.   First I was experiencing a BAD_EXC_ACCESS error when rendering certain surfaces. Feedback on the Apple dev forum suggests I am not alone in this. I took a guess and switched my position vertex buffers to use vec4s instead of vec3s, and it appears to have solved that problem (even though both should be fine).   Second, all 3D objects just stopped appearing, completely. I've deb

Josh

Josh

Left 2 Do

Here's my list, as it stands today: Lua Interpreter project for iOS and Android (iOS is done, Aria is working on Android) Improve flowgraph visual style (will finish today, probably) Documentation (Chris is filling out the syntax, then I will go in and write descriptions) Brush rendering batches (to make editor rendering faster) Brush collapse on load (in engine only) Undo system

Josh

Josh

How to Make Your Game Look Beautiful

In this article I am going to explain some simple color tricks you can use to give your game environments a much more cohesive color scheme and look much better. Now if you look at most indie game environments that are thrown together from random models they will look something like this: It looks awful, with no consistent color scheme and saturation levels all over the place.  In fact, most look much worse than this.  I'm going to show you how to fix this. Control Saturatio

Josh

Josh

Next Steps

Previously, I talked about my plan for Leadwerks for the next 6-12 months:   Leadwerks Editor Adding new tools to make life easier. Refining the workflow to eliminate any remaining"sticky" points. Bug fixes, to make it a super slick and polished experience.   The Engine New features in graphics, physics, networking, etc. Performance optimization. Improved compatibility across all OpenGL 4 hardware.   Third-Party Technologies Blender, SteamOS, Steam Workshop, vir

Josh

Josh

Leadwerks Game Player enters beta

Leadwerks Game Player is now in beta. If you recently posted a game on our site or entered one of the recent game tournaments, you were sent a pre-release Steam key to access the application.     Leadwerks Game Player provides you with a route to self-publish your games to Steam Workshop. Because it is a free application, the entire Steam userbase of 125 million people can access your game. Your Lua game is run in sandboxed mode using an interpreter application we provide, so that Steam

Josh

Josh

Textures in Vulkan

I finally got a textured surface rendering in Vulkan so we now have officially surpassed StarFox (SNES) graphics: Although StarFox did have distance fog. ? Vulkan uses a sort of "baked" graphics pipeline. Each surface you want to render uses an object you have to create in code that contains all material, texture, shader, and other settings. There is no concept of "just change this one setting" like in OpenGL. Consequently, the new renderer may be a bit more rigid than what

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

What's the Big Idea?

I think of the Leadwerks community as a big loosely affiliated collaborative game studio. I see people working together to add value in different ways. Some are dedicated to a single project, and others bounce around and participate in different projects. I like that everyone can just find what they like doing best and provide value in that way.   Voluntary collaboration, without being too restrictive, allows us to achieve economies of scale, while diversifying risk. Basically that means i

Josh

Josh

Model citizen

I can now load models in Leadwerks Engine 3 (as of this morning): Edit - Here's a demonstration of buffers working (as of this afternoon): Edit - And here's a comparison of a multisampled buffer next to a regular one (as of this evening): It's nice to see a feature in Leadwerks 3.0 that 2.0 doesn't have.   I'm getting my iMac this week. I'm going for the dual core 3.2 ghz with an upgrade to an ATI Radeon 5750. Mac is still using OpenGL 2.1, and I have no idea how good the drivers ar

Josh

Josh

Day 1

Production of Leadwerks 3 begins today!

Josh

Josh

Render-To-Texture with Vulkan in Leadwerks 5

In Leadwerks 4, render-to-texture was accomplished with the SetRenderTarget command, which allowed a camera to draw directly to a specified texture, while hiding the underlying framebuffer object (FBO). In the new engine we have a bit more explicit handling of this behavior. This is largely in part due to the use of Vulkan's bindless design, which greatly improves the context-binding design of OpenGL. The Leadwerks "Buffer" class was never documented or officially supported because the underlyin

Josh

Josh

Editor Documentation

I got the editor documentation written pretty quickly. It was hard to start, but once I figured out how I wanted to lay out the information, it all started flowing pretty easily.   Documentation in Leadwerks Engine 2 was a weakness, especially in stuff other than the programming reference. This is unfortunate, because I have come to see documentation as the final product. Everything in the development cycle leads up to the ability to write good documentation.   Good documentation starts w

Josh

Josh

Vehicle Improvements in 4.5

The revision of our vehicle system has been a long time coming, and I am happy to say the wait will soon be worthwhile.  The new system uses a hyperrealistic slip differencial system to adjust the power given to each wheel. The results are a clear cut above any game vehicle physics you've ever seen. I am also taking steps to make the vehicle system easier to use.  The AddTire() command can now accept an entity as a parameter for the tire object.  This would typically be

Josh

Josh

Publish your games directly to Steam with the Leadwerks game player

One of the coolest things I'm seeing in Leadwerks 3 is a lot of minigames being made. These are finished products, without super high expectations, but they are complete, don't take long to make, and some are quite fun. Seeing these gave me an idea for a feature that's been in development in the background for some time, and when you see what it does, it will explain some of the design decisions I've made over the last few months.   The next build on the beta branch on Steam will support Lua

Josh

Josh

Real Bindless Textures

Previously I talked about array textures acting as "bindless" textures, but there is an actual OpenGL extension that allows a shader to access any texture without the stupid texture binding / slot convention that limits OpenGL 4.0 shaders to a minimum of 16 textures. Implemenation was surprisingly easy, although Mac hardware apparently does not support this extension. When combined with the multi-draw commands in OpenGL 4.3, and some other tricks, it is possible to render multiple sets of object

Josh

Josh

Smooth Move

Smoothing groups are one of the most frequently requested features for 3D World Studio, so I am happy to show you their implementation in Leadwerks3D, finally. Smoothing groups are usually stored as a bitwise flag. When two faces share a vertex at a certain position, if they have one or more smoothing groups in common, their vertex normal is calculated as if they are sharing a vertex.   I first attempted to write an algorithm based on edges, which worked great for cylinders but failed for ge

Josh

Josh

OnLive Lives

I signed up for a free year of OnLive. I received a response email within 24 hours, so I think they just are choosing applicants based on connection speed and location. I've been extremely skeptical of this service, but I can report that it works, and it doesn't suck. I can play UT3 on my netbook. There is some slight lag, but it's not bad. Fast mouse looking can amplify it, so I slowed down my mouse speed to compensate. I had no trouble getting headshots with the sniper rifle, and the gam

Josh

Josh

Why Apple Fails

Their prices are more than 250% the price of a comparable PC. Even their "most expensive" laptop is using a budget GPU! So for less than half the price, you can actually get a laptop with a much better GPU!   $999: http://www.newegg.co...=laptop%209800m   $2499: http://store.apple.c...mco=MTM3NDcyOTc   Just for fun, I checked all the most expensive options. The grand total was $7305.35. Who spends $7000 on a laptop with a budget GPU???   I can't believe how dense their management is.

Josh

Josh

Welcome to ultraengine.com

You probably have noticed that our entire community has been migrated from the leadwerks.com domain to our new ultraengine.com domain. In this article I am going to describe recent changes to our website, the process by which these decisions were made, and the expected outcomes. These are not just superficial changes, but rather it is a fundamental restructuring of the way our business works. This is the execution of a plan I have had for several years. When we first starting selling on Ste

Josh

Josh in Articles

×
×
  • Create New...