Jump to content
  • entries
    941
  • comments
    5,894
  • views
    871,769

About this blog

Learn about game development technology

Entries in this blog

Best classic start menu for Windows 7

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

Josh

Josh

Firefox Explorer

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

Josh

Josh

Pump up the volumes

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

Josh

Josh

More Leadwerks.com Improvements

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

Josh

Josh

Lions, Leadwerks, and Androids, Oh My!

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

Josh

Josh

And now the fun begins

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

Josh

Josh

Multitouch Madness

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)

Josh

Josh

Even Deeper

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

Josh

Josh

Model Editor hierarchy editing

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.

Josh

Josh

A Story of IT

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

Josh

Josh

Where the Pedal Hits the Metal

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

Josh

Josh

Leadwerks Gets Balls

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

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

A tale of optimization

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

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

Not So Fast

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

Josh

Josh

Import Model Scaling

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

Josh

Josh

Day 877

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/

Josh

Josh

Leadwerks 3 Gets Projected Shadows

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

Josh

Josh

Teaching Leadwerks

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

Josh

Josh

Leadwerks 3.1

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

Josh

Josh

From Cartography Shop to Leadwerks 3.1

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)

Josh

Josh

Werkspace Banners are Back

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

Josh

Josh

Continued Development

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

Josh

Josh

×
×
  • Create New...