If you prefer the classic start menu like I do, there are several solutions available to get the classic start menu in Windows 7. My favorite is Classic Shell.
Classic Start Menu is a clone of the original start menu, which you can find in all versions of Windows from 95 to Vista. It has a variety of advanced features:
Drag and drop to let you organize your applications
Options to show Favorites, expand Control Panel, etc
Shows recently used documents. The number of documents t
I like standard interfaces. I like the consistency of having all programs look the same. That's why web browsers bug me a lot sometimes; They each have their own unique look. It's disappointing to me how Microsoft has gotten away from this idea. Why oh why can't Windows have skins? But I digress.
In terms of performance, my favorite browser would probably be Opera. In terms of appearance, my favorite is Internet Explorer 6. I know, web designers hate it for its quirks. I don't use i
Shader class...done.
Surface class...done (pretty much).
One change in LE3 is the addition of .shader files. This is just a text file with a list of shader components:
vertsource="mesh.vert"
fragsource="mesh.frag"
Your material file then just has to reference a single file:
shader="mesh.shader"
Of course, you'll be able to just drag the shader file onto the material shader property in the editor to assign it. You will never have to use Notepad, for anything.
Now working on
There's a new set of pages for Leadwerks Engine 2 up. I think these do a better job communicating all the features of LE2, and explain why it's unique and awesome. Existing users might even learn something from the material:
http://www.leadwerks.com/werkspace/page/Products/le2
This also integrates into the forum skin. The only page left on the site that isn't using the global forum template is the 3D World Studio page, and that will be changed shortly.
The 2.43 evaluation kit will be
It took a while to figure out, but I was able to get drag and drop interaction working on OSX. (Thanks to Seb Hollington for helping with the coordinate transformation stuff.) Now the editor lets you assign textures by dragging them onto texture slots, just the same as on Windows. There's one last step before the editor code becomes totally platform-agnostic. A file system watcher needs to be implemented on Mac. On Windows, this was fairly straightforward, because there is a built-in API fo
We have our design parameters. We know the editor should let the user control every aspect of the engine in a visual manner, without having to use any other tools or do any editing of text files. We have 3D World Studio to serve as inspiration for the design and feel of the program.
The sky's the limit. You, the users, have told me that you want to invest in a system that does more for you and makes your life easier. I'm happy to provide the basis for your next projects. Thank you for l
I've implemented multitouch input on iOS, and gave Aria the information he needs to do the same for Android devices. Multitouch is an interesting input method. Each "touch" has a beginning, some movement, and an end. To handle multiple touches, they need to be persistent; you need to keep track of which touch is which. This is a little weird if you're coming from a mouse and keyboard paradigm.
On iOS, you have a pointer to a UITouch object, and on Android it's a jObject object (I think)
Lua's debug hooks are a little funny, because they don't appear to allow line-by-line calling of your own function. The description here is pretty vague:
http://pgl.yoyo.org/luai/i/lua_sethook
The line and count hooks look like they might be what I wanted, but the docs have one big caveat:
This makes me wonder what the point of these hooks even is. The way I have it set up now, "Step" continues to either the next Debug:Stop() call, or to the next point where a Lua function is called. N
You can drag entities around in the model editor to rearrange the hierarchy. Now I just need to add an option to collapse a hierarchy, and the basic art pipeline will be done.
I had a difficult bug that was causing model hierarchies to be duplicated. At first I thought I was saving files wrong, but it turned out my entity copy routine was duplicating the hierarchy twice! Oh well, problem solved.
I generally categorize every aspect of Leadwerks as either "absolutely required" or not necessary. If it's categorized as the latter, I don't bother with it, and if it's categorized as the first, I pursue it with a dogged determination until it is done. This has served us well in many ways, like our vegetation rendering system and character controller.
However, this assumes I have full control and mastery over the product, or at least have someone working for me who does. This is almost a
UML diagrams, object-oriented frameworks, and beautiful modular architecture are great things to develop, but sometimes you just need to make an application that real people can use. For me, that means you start with the behavior you want, and work backwards to make the code that does it. In the past I've considered fancy object-oriented mouse tool classes, but the style of editing I want is intuitive, easy, and fast, using the fewest number of mouse clicks possible to achieve a task. I think
The subject of spheres in 3D World Studio has been one of great levity (see here and here) around the Leadwerks community. I spent today finally implementing a CSG sphere primitive. This is a little different from creating a conventional triangle mesh sphere because each face is a single polygon with either three or four sides. Here's my scratch paper that got me through this process:
I'll spare you the mathematics and get right to the good stuff:
This completes the basic primitiv
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
I'm really shocked by how fast C++ can be. iOS and Android do not support GPU skinning, so I had to implement vertex-weighted skinning on the CPU. It took about a day to get running, and then I started optimizing code.
My test case was an 8400 polygon model. Each vertex could be attached to as many as four bones, but most just used two or three bones. To make it more interesting, I put the vertex weighting code inside a loop so it would be performed ten times instead of once.
When I
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
In my previous blog I talked about the Android file system and APK package system. The end result was I copied all the project assets into the res/raw folder. However, I learned two additional things that changed my plan a little:
Android files can only be lower-case.
Any folders in the res/raw folder will not get copied...it just packs in the files in that directory, with no sub-directories!
That's a big problem if we want Leadwerks to be able to load files the same on each operati
I got tired of rescaling some models every time I created a new instance of them in the Leadwerks 3 editor, so I added an option to resize the model file itself to the proper dimensions. Double-click the model thumbnail in the asset browser to open it in the model editor. Then select the Tools > Resize menu item. The Resize Model dialog will appear with options to scale by a percentage, or fit to a specific size. For convenience, you can choose the units to use, including centimeters, met
Development of Leadwerks 3 was (theoretically) completed today. We still have a lot of testing and bug hunting to do, but all features for release are written.
This is where it started:
http://www.leadwerks.com/werkspace/blog/1/entry-500-day-1/
We've got a Leadwerks 3 update coming out this week, with miscellaneous fixes and some new features.
The first are the addition of Import and Export buttons in the Project Manager. You can export an entire project to a zip file. You can import a project from either a Leadwerks project file (*.werk) or a zip file. This makes it easy to share projects and synchronize your work across different computers.
The second new feature is projected shadows. These allow characters and other ob
About a week ago we sent a survey out to Leadwerks 3 customers to get their feedback and plan our next leg of development. According to the results, the number one most important issue Leadwerkers care about is tutorials.
We've taken the following steps to build resources for Leadwerks user to learn from:
The Leadwerks 3 tutorials database is available here. Anyone can submit a new article, but all articles must be approved by the staff before they appear visible. Without a process of a
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
This is just a little walk down memory lane that pleasantly shows what has led to where we are today. Some of this predates the name "Leadwerks" entirely.
Cartography Shop (2003)
3D World Studio (2004)
Leadwerks Game Engine 2 (2008)
Leadwerks Game Engine 3 (2013)
I'm pleased to announce the return of the much-beloved header banners. They now scale across the width of the page, similar to the profile images on Twitter and Google+.
To add a banner image of your own, click the ]submit a banner link in the site footer. I recommend JPEG images with a resolution around 1920x300. However, your image dimensions do not have to be exact, as the image will be scaled and trimmed to fit the space.
You can also add an optional URL to link the banner to. If
At this point I would like to share some plans with you on continued development over the next several months. I generally avoid detailed roadmaps for two reasons:
It's more fun to announce something with a short notice than to say "we're going to do X, Y, and Z, by these dates...". If people know too far in advanced they sort of take it for granted, and it doesn't have as big an impact.
Plans change. When they do, people often consider cancelled plans to be "promised features". I like