The built-in level design tools in Leadwerks3D are great for quickly sketching out a game level. Most of this remains unchanged from the design of 3D World Studio, with a few extras like smooth groups and new primitive types:
When a point entity object type is selected in the side panel, the object creation widget changes to a simple cross hair:
The selection box with tabs that CSG brushes use are great for quickly moving, scaling, rotating, and shearing brushes, but they aren't tha
One of our design principles for Leadwerks3D is to make development fast. You need to be able to iterate and re-iterate quickly, to try out ideas and make adjustments in as few of mouse clicks as possible. A real-time properties editor is definitely one way to enable that. In the screenshot below, I can adjust the intensity and color of the light dynamically, and see the results instantly. It feels so responsive and natural.
I feel like this design philosophy gets us back to our roots wi
I don't have a clear and obvious subject for this blog, but I haven't posted in a while, so I wanted to write something. I've been getting in a lot of hours of development. My schedule on most days is wake up around 7, answer emails or test code on my Mac at home, then head over to the office at 10. Chris usually comes in right around then (we aren't too strict on schedules) and usually hangs around until around 6. I leave anywhere from 6-9 (and totally miss the rush hour traffic), go home,
Hello guys. This time, here is small utility, nothing spectacular, just smal library what will let you manage available screen size your GPU support, easy. You can also use it in main menu where you will setup all available resolutions and browse trough list, or automatically detect maximum resolution upon start and set screen, etc. So here are commands.
So, first we need to initialize library.
Global SCREEN_SIZE:TScreenSize
SCREEN_SIZE = TScreenSize.Create(bitDepth:Int=32)
bitDepth
The last week I have been working hard to add all the missing UI elements and widgets that were previously missing in H.A.A.R.P. Before I was testing everything with just buttons and check boxes but I couldn't really go on without testing on more types of elements to ensure everything was working in the right way. Therefore, over the past few days, in my time after work, I've been madly re-coding the UI elements that I have previously made to be compatible with Data Driven Design and more specif
Here's an example of how setting a debug hook in Leadwerks3D from a BlitzMax program saved me a lot of time stepping through code to figure out where something went wrong. When the engine encounters a fatal error, the hook is called, giving control back to the main program.
I can even step through the BlitzMax debugger and see which call to Leadwerks3D produced the error:
And it works with all supported languages. Little things like this make programming with Leadwerks3D very enjoy
The properties editor in Leadwerks3D is a live dialog. Your changes are shown instantly in the editor. If multiple objects are selected and their properties do not have the same values, the property interface will show an "indeterminate" state until the value is changed:
When an indeterminate value is changed, the new value is applied to all selected objects. Since they now have a matching value, it is now shown in the dialog. You can use this to move objects along a single axis, witho
There are two things I've been working on since my last blog:
HAARP Sound Manager (For UI Sound only atm) &
HAARP Switchboard
The HAARP Sound Manager is not very much different to what you would expect from most games sound manager layers except for the fact that once again it is completely data driven. All data on sounds are stored in the database. Each UI element holds an ID of a sound to play at certain times for example:
Button Element:
1. Hover Sound
2. Click Sound
On the previous episode of the “Leadwerks3D particle show” a Nyan Cat / Colored Printer of Death roamed the land showing off the difference between RGB and HSV color interpolation. Well jump forward to today’s episode and that cat is now dead…or perhaps I should say has matured into a more complex and quite simply cooler particle system.
I’m still not finished with all of my work but here is a quick look at few particle effects I’ve tinkered with:
I'm so disappointed that I don
We've had a lot of discussion with the community about the Leadwerks3D script system. The current design is based on a combination of user feedback, lessons learned from Leadwerks Engine 2, stealing ideas from other game engines, and my own judgement. Our goal is to make a really easy and powerful game scripting system, without overwhelming the user with complexity. With that said, I thought I would let you in on how the script system presently is working in our own builds, and the process of
In my short 1 year of programming I have gone to great extents to learn not only how to code but also the techniques and methods behind game architecture that make things work and keep the integrity, re usability and productivity of my code to a maximum.
Out of all the techniques I have come across there are two that really have taken the cake. These two techniques are (excluding OOP, thats a given):
Finite State Machines
Data Driven Design
Data Driven Design
For those of you
As I always do when making design decisions, I tried out several approaches to the properties dialog. Previously, I wrote about embedding it in the side panel, below the scene browser. I liked being able to quickly modify object properties, but I couldn't drag assets like textures and materials from the Asset Browser to the Properties Editor, because they were under different tabs in the side panel. Because of that, I popped the Properties Editor back into its own tool window.
The exper
After putting together a pretty complete model of how the logic editor would work, I found myself unsatisfied with the properties dialog. I originally intended to make a standard properties dialog that opened in a separate window, with "OK", "Cancel", and "Apply" buttons. However, the logic editor and properties dialog were both being opened in separate windows that were a child of the main window, with no strict draw order between the two of them. I found it confusing to select an entity in
About: This is a short series for the Leadwerks community on the process of creating a simple game using procedural content.
This week we implement the map creation process discussed in part 02 then add the mesh generation and a controller to fly around our level. Then we'll have the first iteration of our procedurally generated map.
Part 01
Part 02
Starting with the Map class.
Map:Create Function...first iteration, no corridors.
Simple nested for-loop to generate a ro
Like many college students, part of my time at UC Santa Cruz was spent visiting a variety of fine local establishments perusing their beverage assortments and discussing deep philosophical ideals with enlightened patrons.
(Me at an art meeting, the day after a night of enlightenment.)
Okay I’ll admit it, I went to bars and talked to girls (Give me a minute this story is going somewhere relevant). The easiest small talk to make in a college town is to ask someone about the
About: This is a short series for the Leadwerks community on the process of creating a simple game using procedural content.
In part 01 we looked at one theory of generating random maps in the style of old school dungeon crawlers. This week we'll put that into practice to generate map data, room geometry and mesh colliders. The easy part was adding a flying physics based camera to act as our first-person flown "spaceship".
Again I want to flag I'm not a LUA expert, this is not a LUA t
Bugs
Since the last blog I have been spending most of my time trying to find and solve bugs. There is a nasty one which causes a memory error. But it is not always present in every single playthrough.
Firing
I started working on the firing mechanism. That didn't go as smooth as I had hoped. Especially my particles looked really boring. After a couple of days, I decided to remove them for now.
Bunkers, canons and Sniper tower can succesfully fire. Rotation and good particles are added lat
Done this in almost 4-5 hours (yes, too slow).
The most important reason I paint is that sometimes I just want to finish a job to make myself satisfy. to tell that I can make a complete job (fake self confidence but still helpful). and also when I'm full of something, the things I think about during the painting are really joy/helpful. I'm inspired by the brain and it's abilities. which makes me think that the brain may be everything. and off course there is a link between this post and the brai
One thing I love about constructive solid geometry modeling is that texture mapping is sooooo much simpler than 3ds Max. Most of the time the automatic texture mapping works fine, and when you do need to adjust texture mapping by hand, CSG texture mapping tools are still much easier. The justify buttons line a texture up along a face, or a group of faces.
Although using these tools is fun and easy, programming them is another matter. I dreaded the implementation of the texture justify but