So after a lot of learning and mistakes, I finally have Leadwerks Engine 3 running on OSX Snow Leapord, Lion, and iOS. Rather than write out a detailed blog, I'll just throw a lot of random thoughts your way:
-OpenGLES2 is a nice blend of OpenGL 2 and OpenGL 3.3. I'm really surprised my OpenGL 3 shaders translate easily into OpenGLES2 shader code, with only a few changes. In fact, the iOS renderer looks exactly like the deferred OpenGL 3 renderer, except for shadows and some post-effects.
I was looking at some old programming languages like COBOL (a business oriented language, and the second oldest language: founded in 1959), Ada, Fortran, Prolog, and few others. My interest was only to see how programming worked in the old days, and if they had any good ideas which I could reuse for the upcoming symbolic visual language.
When I stumbled upon Fortran, I remembered that some people had said that it's faster than C++, and I remember the funny fact that Intel has the fastest C++ co
Hi folks,
here is a new relatively short entry to my blog introducing my current side project (which will be the base of my bigger secret project) which I will make public to the community.
I'm calling this project "Leadwerks.Extensions". In detail it is a project which will extend the current LE.Net headers with a set of setalite assemblies which will contain and provide some additional functions to the .Net community. My goal is to release a first set of dlls this weekend containing a
Today I was explaining what the problem with all programming languages today is, that they have all failed, because they are not intented to make results (except Prolog maybe), but rather to aid the programmer to tell the computer what to do. This is a fundamental mistake, since computers should serve humans, including programmers. So the base for a better programming language is to focus on what the programmer wants as result, and let the computer optimize and decide what method is best to impl
Particle engines are commonly used for fire and smoke effects adding a lot of eye-candy for little effort. Every frame an emitter creates a number of billboard sprites along a vector. Normally this is not an issue when movement along this vector between frames is quite small.
But what if you're talking about something that moves really fast between frames? Such as a rocket launcher or space-ship? Fellow Brit and indy developer Cliff Harris of Gratuitous Space Battles fame ran into the same p
Leadwerks Engine 2.43 is now available. This version features improved raycast performance, a new DRAWEACH entity callback, and a few small bug fixes. Registered developers can download the update by running the Leadwerks Updater.
Leadwerks Engine 2.43
...will be released tomorrow, along with a new source distro. I've fixed a number of bugs, but I don't like compiling releases when I am tired because there's a lot of little steps to mess up, so I will do it in the morning.
Leadwerks Engine 3
Optics was always my favorite subject in physics, and I've been getting some amazing results lately by modeling computer graphics after real lighting phenomena.
Once I decided to make the materials system like 3ds max, ever
Last September I mused about the concept of what I call Ambient NPC populations, I spent a lot of time researching (read playing) certain games that have what I call an ambient NPC population. This is specifically those NPC's that reside in the background and generally have no real or very limited interaction with the player, but may have some limited interaction with each other or the surroundings.
I felt a new approach would be needed to sort through what was and was not required to achiev
The C++ object debugger for Lua is working now. It was a little tricky, but I implemented a method to view all members of C++ objects. The debugger does handle dynamic object fetching, so if you expand a node in the debug tree representing a C++ object, the contents of that object will be loaded and displayed. Let's say you have an entity parented to another entity. This allows you to expand the parent member of the child, then find the child in the parent's child list, and so on, ad infinit
The script editor and Lua implementation is very close to being a usable programming environment. You can actually see the pointers to the C++ objects you create, and step through code. It's still missing features, but the parts I was worried about are working.
I am adding Lua commands like crazy, and it's easy to keep track of them because they all reside in one header file. The function overloading is great, as you can see in my example here, where I use a single float value to set the
Hi folks,
while working on my other projects I have started to research why the cubemapping doesn't seem to work in Leadwerks in Realtime.
I have debugged through the code ( I was using Blitzmax to have access to the full debug output and fields of textures and buffers) and found out that
it seems you can't create a real Leadwerks buffer for Cubemaps, I have also investigated TylerH' s early approach after the CreateCubemap command was added and from my experience with miniB3D extended I
While working with zlib, I implemented the package system, and it turned out really cool. Here's some stuff you can do
First, let's load the package and register it in the file system:
Package* pak = ReadPackage("mystuff.pak"); //Read the package
RegisterPackage(pak); //Register package into file system
Read a file from a package, just as if it were on the hard drive:
Stream* stream = ReadFile("mystuff/new document.txt"); //Read a file straight out of the package!
Write a file t
Two issues in the art pipeline were giving me some doubt. I stopped working on them a couple weeks ago, and I'm glad I did because the solutions became clear to me.
Shader Files First, there is the matter of shaders. A shader can actually consist of half a dozen files:bumpmapped.opengl3.vert
bumpmapped.opengl3.frag
bumpmapped.opengl4.vert
bumpmapped.opengl4.vert
bumpmapped.opengles.vert
bumpmapped.opengles.vert
I originally thought the .shd extension would be good for shaders, i
This blog is going to actually be about business rather than technology. Here's what's going to happen this summer:
First, we need to get this ATI driver bug fixed ASAP. Nothing else can happen until that gets fixed:
http://www.leadwerks.com/werkspace/tracker/issue-165-terrain-textures-bug-radeon-hd-5850
The official documentation is coming along well, and I am really pleased with how this has turned out. (Thanks, Aggror!)
An updated evaluation kit with some limited programming w
With Luabind, it turns out we don't even need a table associated with an entity. We can just add values and functions straight to Lua's representation of that entity in the virtual machine! So instead of this:
object.health=100
object.entity:SetPosition(1,2,3)
You can just do this, which is much nicer!:
entity.health=100
entity:SetPosition(1,2,3)
So there's no object/actor nonsense, you just work directly with the entity itself.
Entity Keys The Get/SetKey convention from Lea
Well I have been able to work a couple more hours this week on my characters. I seem to be all over the board when it comes to work flow. A little here a little there. The base mesh for the body is done and with hair weighs in at 4,620 triangles. I am happy with the detail with the normal maps although the one on the mesh right now can be unwrapped better to get rid of the bad pixelation around the eyes and mouth. I just threw it together to test. The high poly character is around 55,000 triangl
The Leadwerks Engine 3 Forums are open to all Leadwerks developers so you can post your ideas and get information on the development of Leadwerks Engine 3. Additionally, forums are now divided up by product, with forums for Leadwerks Engine 2, Leadwerks Engine 3, and 3D World Studio. We think this organization will provide more room to grow in the future.
Leadwerks.com is now hosted on our own dedicated server located in Chicago, Illinois. It was found that this location gave the best overall results for our worldwide user base. We tested the new server in advance for a couple of days, and transferred the database right before switching the DNS, so no data should have been lost. Please submit a bug report if you experience any problems.
The Leadwerks server has a 500 gb secondary hard drive where site backups are automatically saved to, in
In Leadwerks Engine 3, you can load a script and attach it to any entity. You can attach multiple scripts to any entity, and they will be called in the order they were attached. Right now, I am calling the script-side table "actor" because it is a little more descriptive than "object" but I'm not sure about all the syntax yet. Below is a sample script for a sliding door. When you attach this to a model, the script will control its behavior:
-----------------------------
-- Sliding door sc
We've transferred the site data to a dedicated server hosted with wiredtree. I've filed a ticket with invision power services to configure the new server. When that is confirmed to be working I'll retransfer the database to make sure all posts are saved and change the domain nameservers and A record.
I also have an update for the site skin that is supposed to fix most of the issues reported, but I want to make sure things are working right before installing it.
Then we'll get back to w
Below is raw output from the Lua debugger. It displays all variables, tables, and functions in the Lua script call stack. This will be displayed in a nice treeview interface that looks much better, but I found this terribly exciting.
You'll notice that tables don't get expanded, even though I have the ability to display all the values in a table. The reason they don't get expanded is because tables can contain tables, including tables that might be found elsewhere in the program. This ca