After torturing you with a walk-through of my terrain vertex shader I will do the same harm again, this time using the fragment shader... Without further ado, here we go:
#version 400
//Uniforms
uniform sampler2D texture0;//diffuse map
uniform sampler2D texture1;//normal map
After the obligatory version information, this time two texture uniforms are declared, the (already used) diffuse map and an additional normal map.
//Inputs
in vec2 ex_texcoords0;
in vec4 ex_color;
in ma
I feel a bit like I'm spamming the community blog... but of course that won't stop me from doing it again! With the basic mesh generated it's now time for diving into shader programming. I will displace the vertices in the vertical using a heightmap, and then apply a global color and normal map to make the terrain look more... terrainy. I'll explain the shader line by line. All of this will actually be very basic (so, shadmar and klepto: Move along, nothing to see here... whew, we're amongst ou
A quick making of a 3Dcolumn made in 3D coat for my LE3 game.
Why struggles with modeler when you can make hard surface models using 3D coat super easy Voxel modeling?
1) Voxels : Some primitives than Tool : Add objects (with the great Tinker library)
2) Retopology (pretty low poly and fast)
3 ) Bake normal map To Low Poly
4) Paint damage , details, specular, dirt :
( lof of masks and alpha in 3D coat and more in the Web )
5) Once the model and textures has
As described in my last post, I'd like to create a homegrown system for rendering large terrains. The basic idea is to use a set of planar mesh patches that are displaced in the vertical using a heightmap in the shaders, and using OpenGL 4's tessellation features to create a more detailed and optimally structured mesh during run-time. Also mentioned before was the fact that this might be a bit of trial and error, so bear with me, and if you see me running in the wrong direction - please let me k
Leadwerks has a very nice terrain system that allows terrains of up to 4096x4096 units (in version 3.1, 3.0 goes up to 1024x1024) that performs very well and has a pretty unique texturing method. For most game applications, this is more than enough - filling such an area with objects and interesting gameplay is already quite a challenge. But some game ideas still require larger terrains. In my case, I am pondering something similar to a racing game, taking place in real-world areas, where a sing
After cluttering the regular Leadwerks forums with irregular posts and screenshots about terrains, tessellation and the like, I thought it might be better to collect those in a blog where I can happily mumble to myself without distracting anyone...
So what's this about? Well, from day one of my (not so long ago) foray into game development I have been interested in creating large outdoor scenes. Now, most game engines don't support the required features for that out of the box, and I guess f
Leadwerks has added new features that allow users to take advantage of Steam features.
Steamworks Integration Leadwerks now has native support for the Steamworks SDK. You can make your game ready to publish on Steam by calling Steamworks:Initialize(). This also enables the in-game overlay so you can take screenshots, chat with friends, and access the entire Steam community in-game.
Screenshot Publishing The new screenshot publishing window allows you to upload rendered images directly to
On Monday, Leadwerks Game Engine: Indie Edition was finally launched on Steam. Before the Kickstarter campaign there was a Greenlight campaign to put Leadwerks on Steam, which it got through in just 27 days. Based on the success of the Kickstarter campaign, I decided to delay the Steam launch and try to get Linux done in time. However, there was one serious deadline I could not miss, and that was the Steam Dev Days conference next week. I knew we needed to have an actual product on Steam by then
After blasting through Greenlight in just 27 days, Leadwerks Software today announced the launch of Leadwerks Game Engine: Indie Edition, exclusively available on the Steam distribution platform. The arrival of Leadwerks adds 3D game development software to Valve’s lineup of creative and productivity tools.
Leadwerks is designed to make game development easy for Steam’s 65 million users, with a royalty-free license for making commercial products. A new renderer built on OpenGL 4.0 provides h
Leadwerks 3.1 is nearly ready for release! In Leadwerks 3.0, we focused on making a solid cross-platform art pipeline and editor. In 3.1 we're adding graphics that go above and beyond the capabilities of Leadwerks 2.
New Features in 3.1
OpenGL 4.0 deferred renderer with up to 32x hardware MSAA.
Geometry and tessellation shaders.
Support for the Linux operating system, for both the engine AND editor.
Leadwerks 3.1 is now available for pre-ordering in the Leadwerks s
It's December, which means Leadwerks for Linux is nearly here! Last week I had to get into more depth with our tutorials. We're creating a series of maps that demonstrate simple game mechanics. The goal is to show how to set up game interactions by attaching scripts to objects and connecting them in the flowgraph editor, without getting into any actual programming. These lessons center around a first-person shooter, but are applicable to many types of games.
I had to get my hands dirty i
I like the idea of being able to add dynamic properties at run-time. The following code shows how you can set this up. Instead of declaring a hardcoded amount of variables in a class you could just give it 1 Properties class and it can be dynamic!
#include <string>
#include <map>
using namespace std;
class Prop
{
public:
virtual ~Prop()
{
}
};
template<typename T>
class Property : public Prop
{
private:
T data;
public:
virtual ~Property()
{
}
Property(T d)
{
data = d
There have been a lot of lessons learned now that I’m finishing my first large project. RTS games continually push the limit on unit and structure counts and with the latest OpenGL features I would argue it’s now possible to have hundreds of thousands of units.
The strategy is simple, the implementation can get tricky. Keep all movement and calculations on the GPU and use textures as data structures (optional). The concept borrows a similar idea of a lot of modern particle systems in that ea
How many simultaneous projects can you manage until your productivity begins to drop?
This has been inspired from my own decisions and mistakes of over dedicating myself to numerous projects ending up ultimately being very unproductive.
If I have 4 projects and I split my available time evenly across these 4 projects the productivity is not split evenly. Additional time is taken closing previous projects and opening and prepping other projects. Will power, state of mind, and vision for e
An update has been posted with the following fixes:
http://www.leadwerks.com/werkspace/topic/7847-undo-does-not-refresh-gizmos/
http://www.leadwerks.com/werkspace/topic/7842-bsp-mesh-export/
[EDIT]
Now with sound!
I'm making a game that revolves 100% around old school final fantasy battle style fighting. I thought about what often slows me down and kills my motivation in games I've tried to make in the past. My conclusion was that dealing with graphics (models, UI, animations, etc) often slows me down in various ways. So as an experiment for this game I'm going to first code the entire core gameplay in a console application with a basic text based interface first.
I'm ho
Leadwerks 3.0 has been updated with bug fixes and productivity enhancements. To get the update, run the Leadwerks Updater. Use the Project Manager to update your project with the latest files.
Resolved bug reports are listed in the Bug Report Forum. This release fixes a few issues including Android multitouch indexes sometimes not working right, sphere casting that was sometimes wrong, and several other small problems.
Some new enhancements have been made to improve productivity. Cam
Things have gone so remarkably smoothly so far in the process of building Leadwerks Linux, that it makes sense we would encounter some issues sooner or later. In this update I will talk about some of the challenges recently encountered.
GDB
I was able to get GDB to debug an application built with the Leadwerks static library, in this case our editor. It took me a while to realize you have to hit "continue" once or twice when the application starts, because GDB pauses the program when it conn
As a single developer on a relatively large project that has taken much time to develop, the progression of technology can prove to be quite an enemy. 4 years ago the technology considered cutting edge is now legacy and the dependence on such technology can prove to be quite a headache when attempting to upgrade.
A common practice when the underlying implementation of particular technology is expected to change is to create interfaces that act as contracts all implementations must abide by.
Leadwerks 3.1 has entered the beta testing phase on schedule according to our development plan laid out in the Leadwerks for Linux Kickstarter campaign. Supporters who chose the SUPER BACKER reward have been granted access to try the early builds of Leadwerks for Linux.
We chose to use the excellent Code::Blocks IDE for Linux development. Beta testers can access the full Leadwerks API to program graphics, physics, and gameplay, along with a few new functions like Camera::SetMultisampleMode
Compiling Leadwerks on Linux using the Code::Blocks IDE wasn't very hard. I particularly like the way Code::Blocks handles files in projects. Instead of creating your own "fake" file system in the project explorer, you just add the folder or files you want, and they are organized in a hierarchy that matches the file system.
I found the X windowing system to be extremely easy to work with. I've implemented windowed OpenGL contexts on Windows, OSX, iOS, and Android, and Linux was by far the mo
Several people have asked me for my hardware recommendations for a new Linux gaming machine. I get rather frustrated by PC manufacturers who load computers up with expensive Intel CPUs and extra RAM you don't need, and then forget to include a graphics card. Or they proclaim PC gaming is not dead and proudly announce their "gaming machine" with a shoddy GPU, that costs more than my first car. I've been building my own PCs since high school, and I know you can build a PC with superior performa
The OpenGL 4 renderer for Leadwerks 3.1 is well underway. I began implementing deferred lighting in earnest last Friday. Previous work included setting up MSAA on deferred buffers, as well as implementation of the Leadwerks Buffer class, which functions as a thin wrapper around OpenGL FBOs (frame buffer objects). The engine already tracks relationships between objects and lights, and this system was able to be used to provide a list of shadow-casting objects for each point and spot light.