• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
  • entries
    73
  • comments
    77
  • views
    81368

Entries in this blog

JoshKlint_34394
Now that the Kickstarter rewards are shipped from my campaign to bring Leadwerks to Linux, I'm getting distribution channels set up. Today Leadwerks Game Engine launched in the Ubuntu Software Center. This is a big deal for two reasons:

  • Linux users now have first-class rapid game development tools written natively for Linux.
  • We're bringing more games to Linux, like Rogue System.


    You can check out a demo of Leadwerks on our site.

    blog-0930963001401197550.png
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]Previously, [/font][/color]I described[color=rgb(0,0,0)][font=arial] the goals and philosophy that were guiding my design of our implementation of the Leadwerks Workshop on Steam. To review, the goals were:[/font][/color]
[color=rgb(0,0,0)][font=arial]1. Frictionless sharing of items within the community.[/font][/color]
[color=rgb(0,0,0)][font=arial]2. Protection of intellectual property rights.[/font][/color]
[color=rgb(0,0,0)][font=arial]3. Tracking of the chain-of-authorship and support for derivative works.[/font][/color]

[color=rgb(0,0,0)][font=arial]In this update I will talk more specifically about how our implementation meets these goals.[/font][/color]

[color=rgb(0,0,0)][font=arial]Our implementation of the Steam Workshop allows Leadwerks developers to publish game assets directly to Steam. A Workshop item is typically a pack of similar files, like a model or texture pack, rather than single files:[/font][/color]
blogentry-1-0-85901800-1395332619_thumb.jpg

[color=rgb(0,0,0)][font=arial]To add an item to Leadwerks, simply hit the "Subscribe" button in Steam and the item will become available in a new section of the asset browser:[/font][/color]
blogentry-1-0-98062800-1395332827_thumb.jpg

[color=rgb(0,0,0)][font=arial]You can drag Workshop files into your scene and use them, just like a regular file. However, the user never needs to worry about managing these files; All subscribed items are available in the editor, no matter what project you are working on. When a file is used in a map or applied to a model, a unique global ID for that file is saved, rather than a file path. This allows the item author to continue updating and improving the file without ever having to re-download files, extract zip archives, or any other mess. Effectively, we are bringing the convenience of Steam's updating system to our community, so that you can work together more effectively. Here's one of the tutorial maps using materials from a sci-fi texture pack from the Workshop. When the map is saved, the unique file IDs are stored so I can share the map with others.[/font][/color]
blogentry-1-0-65117000-1395334598_thumb.jpg

[color=rgb(0,0,0)][font=arial]Publishing your own Workshop packages is easy. A built-in dialog allows you to set a title, description, and a preview image. You can add additional images and even videos to your item in Steam:[/font][/color]
blogentry-1-0-52812400-1395334362.png

[color=rgb(0,0,0)][font=arial]Leadwerks even has support for derivative works. You can create a model, prefab, or map that uses another Workshop file and publish it to Steam. Since Leadwerks tracks the original ID of any Workshop items you used, they will always be pulled from the original source. This allows an entirely new level of content authors to add value to items downstream from their origin, in a way similar to how Linux distributions have grown and evolved. For example, maybe you don't have the artistic skill to make every single texture you need for a house, but you can put together a pretty nice house model and pant it with another user's textures. You can then upload that model right back to the Workshop, without "ripping off" the texture artist; their original package will still be needed to load the textures. It's perfectly fine to change the name of your Workshop package at any time, and you never need to worry about your file names conflicting with files in other packages. (If you decide you want to change a lot of file names, it's best to just create a new package so that you don't interrupt the work of users "downstream" from you,)[/font][/color]

[color=rgb(0,0,0)][font=arial]Uninstalling a Workshop package just requires you to hit the "unsubscribe" button on the item's page in the Steam Workshop. No more hunting around for stray zip files! You can easily check out other users' work, use whatever you like, and unsubscribe from the packages you don't like, with no mess at all.[/font][/color]

How Do I Get It?
[color=rgb(0,0,0)][font=arial]The Leadwerks Workshop beta begins today. You must be a member of the [/font][/color]Leadwerks Developer group on Steam[color=rgb(0,0,0)][font=arial] to access the Workshop. A limited number of beta invites are being sent out. Once the system is completely polished, we will make it available to the entire Leadwerks community.[/font][/color]
JoshKlint_34394
[color=rgb(11,25,2)][font='Helvetica Neue']


I'm happy to say that Leadwerks now supports the entire process of making games natively on Linux. Let's take a quick tour through the process.

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


First, we create a new project in the project wizard. The project wizard will detect project templates (you can make your own) and let you make a game based on Lua script, or on a combination of C++ and script:

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


8218ea9c363bfadc4adafac0bbe4104f_large.png?1394087132

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


Step two is to make your game. Fortunately, you've got everything you need built into a single integrated editor, including script and shader debugging, automatic asset reloading, and built-in level design tools:

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


b4bf3c817bb30fc7f0e904fd39760dd4_large.png?1394087240

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


Once you have something you want to share, the project publisher will copy all required files into an export directory. Future feature idea: Add a call to a command-line tool to pack up .deb packages. Or better yet, allow any arbitrary executable to be run at the end of the publishing process.

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


16b6bdcafbf4caa3f7d46adc9a9f0ef3_large.png?1394087371

[/font][/color][color=rgb(11,25,2)][font='Helvetica Neue']


I have some more testing to do before release, but things are looking good!

[/font][/color]
JoshKlint_34394
[color=rgb(11,25,2)][font=arial]Following my previous update about correcting file path cases, I am now able to load all our maps in Leadwerks. The power of this tool running natively on Linux is starting to show, if I do say so myself:[/font][/color]

[color=rgb(11,25,2)][font=arial]b62aa01c8a43794b9fefaf7756bc9af2_large.png?1392930161[/font][/color]

[color=rgb(11,25,2)][font=arial]The next step is to implement a file system watcher to detect file changes. Leadwerks automatically monitors the current project directory, and will reload assets whenever the file changes. This allows you to keep an image open in an image editor like GIMP, and any time you save your changes will be reflected inside Leadwerks. It's a great workflow for artists and just the kind of feature I wanted to bring to Linux with this project.[/font][/color]

[color=rgb(11,25,2)][font=arial]Linux has a built-in file system watcher class called "inotify". Interestingly, this class was added to Linux in 2005, the same year the iPod was released, but there appears to be no connection. The "i" in "inotify" stands for "inode". Dennis Ritchie explains:[/font][/color]

[color=rgb(11,25,2)][font=arial]In truth, I don't know either. It was just a term that we started to use. "Index" is my best guess, because of the slightly unusual file system structure that stored the access information of files as a flat array on the disk, with all the hierarchical directory information living aside from this. Thus the i-number is an index in this array, the i-node is the selected element of the array. (The "i-" notation was used in the 1st edition manual; its hyphen was gradually dropped.)[/font][/color]

[color=rgb(11,25,2)][font=arial]The inotify system is pretty straightforward to implement, with a procedural C interface. One thing that tripped me up was an odd layout of the inotify_event structure. It actually has a char pointer built into the structure, so technically the structure does not have a determined length. I don't believe I have ever encountered this design before, but I also am usually dealing with std::string classes.[/font][/color]

[color=rgb(11,25,2)][font=arial]One drawback of inotify is that it isn't recursive. While searching for information on the design, I came across this post by Robert Love, one of the two guys who wrote it (the other being John McCutchan). I disagree with his rational for omitting recursion; just because the performance is not as optimal as he would like does not mean the end user's tastes and preferences will change. I can't imagine a scenario when you wouldn't want the system to work recursively, or at least have the option to. In any case, implementing a recursive watch system was fairly easy. The entire file watch system from zero to finished only took about half a day. So we can mark this as one of the features where I overestimated the time and complexity of implementation.[/font][/color]

[color=rgb(11,25,2)][font=arial]File creation, deletion, and modify events are now firing reliably so I am going to plug this code into the editor and start testing it out. Because the editor already works reliably on other Windows and OSX, I don't anticipate any problems. I do not have a firm release date yet, but as you can surmise, we are nearing completion of Leadwerks for Linux.[/font][/color]
JoshKlint_34394
With all the excitement of the Steam release and Steam Dev Days behind me, I have literally nothing else to work on but Linux and small bug fixes for the Steam users. Together with the recent solution of two long outstanding problems, the pace of development is picking up, and you can expect more frequent updates from me.

I started investigating the right-hand side panel. This contains four tabbed panels filled with various tools the editor uses. I noticed the bottom of the window was being hidden behind some mystery panel I didn't recognize. I added a function that colored the entire interface random colors every frame, which led to this amusing screenshot. Yes, this is actually a real development screenshot of Leadwerks for Linux.

f88545478f5bb894ea68823a17db635e_large.png

Coloring the panels didn't reveal anything to me, but after looking through my code I soon found the culprit: a tabber widget had been created on the main window and forgotten, and it just didn't show up in front in the Windows version. So I put it out of its misery and everything was better.

The asset browser allows you to view all files in your Leadwerks projects. With recursive and search options, it can be used to quickly find any file or group of files. This had some miscellaneous problems with event handling I fixed.

Default fonts on Ubuntu are quite large compared to Windows and Mac, and this requires some reworking of UI elements. However, I haven't run into any places yet where this requires a significant redesign. I found that button images work best when the button is given a padding of 6 pixels. In other words, the button size minus 12 is how big the image should be.

029a49856c747345f2fc2106a971e543_large.png

With this part of the editor working nicely, it's starting to feel like a real application. Having an advanced tool like this that can run natively in Linux is pretty intriguing because it means being free from Windows and doing the kinds of things I want to do on Linux. So we're one step closer to delivering on the promise of this campaign. Stay tuned.
JoshKlint_34394
[color=#000000][font=arial]A new update for Leadwerks has been posted which adds new features that allow users to use Steam features.[/font][/color]

[color=#000000][font=arial]S[/font][/color]teamworks Integration


[color=#000000][font=arial]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.[/font][/color]

ccs-1-0-57643900-1390083559_thumb.jpg

Screenshot Publishing


[color=#000000][font=arial]The new screenshot publishing window allows you to upload rendered images directly to your online screenshots library, where it will show up on your Steam profile and the Leadwerks community hub. [/font][/color]

ccs-1-0-96112300-1390269729_thumb.jpg

Steam Controller


[color=#000000][font=arial]We've added native support for the new SteamOS Controller. You can get input from the controller and even send haptic feedback back to the device. [/font][/color]


[color=#000000][font=arial]You can learn more about these new features in the documentation [/font][/color]here[color=#000000][font=arial].[/font][/color]
JoshKlint_34394
[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]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, and not be stuck in Greenlight limbo, so I went ahead and put what we had up, which is Windows-only. Steam keys were sent out to all Kickstarter backers who chose a software reward.[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]The launch went remarkably smoothly. Due to the limitations of the product (one OS, Lua-only) it made testing and updates much easier than if we tried to do a multi-platform launch all at once. There have been two patches, one to fix compatibility with Nvidia Optimus laptops, and the other to fix a few miscellaneous problems that didn't come up during beta testing.[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]The response from the early users, and from those of you who have tried it on Windows, has been very good. We seem to have hit the right formula with our combination of BSP brushes, navmeshes, Lua, and the flowgraph system. User engagement is high and I can tell that people "get it". We're starting to see content trickle out on Steam, and I can tell already this year is going to bring some really cool projects made by Leadwerks users. The decision to build a friendly workflow and focus on enabling user-generated content was a good one, as we are already seeing some impressive stuff come out, after only a few days, like this high-res tessellated material from "Shadmar":[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]3c98371b5922ccc21c173d0929465dcb_large.jpg?1389462079[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]Now that you have a more concrete idea of what we're building, I hope you are more excited than ever to have this running natively in Linux. I am returning my full attention to Linux development now. There's nothing else I need to work on but this, and I am determined to have Leadwerks, editor and all, running natively in Linux no matter what it takes. Steam Dev Days[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]Next week I head up to Seattle to attend Steam Dev Days for two days. I'm not giving any lectures or doing promotion, so it will be a relaxed trip with no prep work. This is going to be Valve's conference for the Linux-based SteamOS. SteamOS is an open console operating system. 13 hardware manufacturers showed off their "Steam Machine" consoles at the Consumer Electronics Show last week.[/color]

[/font][/color]

[color=rgb(18,26,13)][font='Helvetica Neue']

[color=rgb(11,25,2)]My personal favorite is the Scan NC10:
fb143cce70619bd76cb9a67e4b8e5041_large.jpg?1389460335
Leadwerks (the engine) will reportedly run on these machines right now with no changes. I'll learn more next week at the conference and share what information I can with you. Can Linux Take Over the Living Room in 2014?
I'm going to go ahead and call it now: Linux is going to take over the living room in 2014. Why?[/color]

[/font][/color]

  • [color=rgb(18,26,13)][font='Helvetica Neue']

    [color=rgb(11,25,2)]Compatibility: Steam Machines are backwards-compatible. You can play your old games forever.[/color]

    [/font][/color]
  • [color=rgb(18,26,13)][font='Helvetica Neue']

    [color=rgb(11,25,2)]Market Segmentation: Steam Machines will eat the market from both ends. There will be extreme high-end models as well as inexpensive compact models.[/color]

    [/font][/color]
  • [color=rgb(18,26,13)][font='Helvetica Neue']

    [color=rgb(11,25,2)]Visibility: Traditional consoles get a big launch every seven years. Steam Machines will have continued releases, probably on an annual basis like cell phones.[/color]

    [/font][/color]

    [color=rgb(18,26,13)][font='Helvetica Neue']

    [color=rgb(11,25,2)]You can watch the man himself, Gabe Newell, talking about it here:[/color]

    [/font][/color]

    [color=rgb(18,26,13)][font='Helvetica Neue']

    [color=rgb(11,25,2)]Again, I would like to thank everyone who backed our Kickstarter project and had the foresight to realize Linux gaming was about to explode.[/color]

    [/font][/color]
JoshKlint_34394
Well, I finally got Leadwerks onto Steam with an "indie edition" focused on Lua.

The response has been quite good. It's pretty surprising to see it in the top ranking place for software, and on the front page of Steam, especially right now when there is so much interest in Valve. I guess January is a great time to put news out!

1556244_10152133055661183_189522977_o.png

If you want the whole razzle-dazzle news story, you can read it here:
Leadwerks Game Engine Arrives on Steam, Turns Players into Makers

Next week, I head up to Steam Dev Days. I have resolved to either come back with a SteamOS controller or Gabe Newell's beard.

Thanks to everyone who voted for it on Greenlight!
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]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.[/font][/color]

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.

    [color=rgb(0,0,0)][font=arial]blogentry-1-0-61581200-1387224019_thumb.jpg[/font][/color]

    [color=rgb(0,0,0)][font=arial]Leadwerks 3.1 is now available for pre-ordering in the Leadwerks store. Existing 3.0 customers can pre-order the upgrade to 3.1 for $99. New customers can pre-order Leadwerks 3.1 for $199. Order before January 6 and get the Indie Edition on Steam for free.

    The upgrade to an OpenGL 4 deferred renderer is a big step. To make the process smoother and put Leadwerks in your hands sooner, we're rolling Leadwerks 3.1 out in stages.

    "Leadwerks: Indie Edition" will be launched on Steam January 6th. This will be on Windows only, with support for Lua scripting. The following groups will receive a free Steam key to add this product to their Steam account:[/font][/color]

    • Leadwerks 3.0 customers who pre-order the upgrade to version 3.1.
    • New customers who pre-order Leadwerks 3.1.
    • All Kickstarter backers who backed Leadwerks for Linux for $49 or more. (Even if you don't run Windows, hold onto this as the Linux version on Steam will have special features.)


      [color=rgb(0,0,0)][font=arial]Leadwerks 3.1 for Linux and Windows will be released together next, with the exact release date to be determined. Leadwerks 3.1 for Mac will follow this, with mobile add-ons for iOS and Android coming last. (There is no upgrade purchase necessary for the mobile upgrades for Leadwerks 3.1.)[/font][/color]

      [color=rgb(0,0,0)][font=arial]Exemptions[/font][/color]

      • Leadwerks 3.1 beta testers will receive the 3.1 upgrade for free.
      • Leadwerks 3.0 customers who backed the Leadwerks for Linux Kickstarter project for $99 or more will receive the 3.1 upgrade for free.


        [color=rgb(0,0,0)][font=arial]Leadwerks 3.1 is a very strong product, with great graphics and a fantastic art pipeline. I'd like to thank all the users, both old and new, who offered their input on product design and the direction of the company. I can't wait to see what the community does with Leadwerks 3.1.[/font][/color]
JoshKlint_34394

Leadwerks 3.1

[color=rgb(0,0,0)][font=arial]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.[/font][/color]

[color=rgb(0,0,0)][font=arial]I had to get my hands dirty in the lessons another programmer was developing because there were a few bugs preventing them from working right. As we started getting into some more advanced interactions and physics we found some things that had to be fixed. Most of this revolved around the character controller physics and all the different situations the player can encounter. It's now working correctly, and we will be able to demonstrate some fun physics puzzles you can set up in the editor.[/font][/color]

[color=rgb(0,0,0)][font=arial]There's just a few more steps to getting Leadwerks for Linux out. The new tutorials need to be written and recorded, which is actually the easy part. The final lesson needs a full mini-level designed. I'm still having trouble with the GTK UI, but it's the kind of thing that I just need to keep plugging away at. Since the Nvidia and ATI drivers for Linux work flawlessly, we aren't dependent on any third parties fixing their code, which is a big relief.[/font][/color]

[color=rgb(0,0,0)][font=arial]Before Kickstarter, we ran a Greenlight campaign to put Leadwerks on Steam. Originally, this was going to be released last summer, but I decided to focus on Linux development and release them around the same time. Leadwerks for Steam is a more limited version of what the Kickstarter backers are getting, and will initially only be available for Windows.[/font][/color]

Building FPS Mechanics


[color=rgb(0,0,0)][font=arial]Getting into the lessons was fun for me because I got to work on some gameplay design. When building a game, it's important to decide what to focus on. There are an infinite number of ways you can waste your time, so it's critical that you decide what is important and focus on that. We could have implemented an endless number of little interactions in our gameplay lessons, and it's easy to do with our flow graph system, but I decided I wanted to focus primarily on the basic combat and feel of the player. There's a big difference between a demo where you walk around in a game level holding a gun, and a first-person shooter that feels like you are interacting with the game. I wanted to capture that feeling of being in the game, because it will benefit all the derivative games and demos for Linux that are built off of this. With that in mind, I set out to analyze exactly what it is that makes a first-person shooter feel interactive.[/font][/color]

Player Movement
[color=rgb(0,0,0)][font=arial]The first basic thing you can do to enhance the player experience is add footstep sounds. Don't use just any footsteps. if they don't sound good, it won't feel right. IndieGameModels.com happened to release a pack of footstep noises that are excellent. I negotiated a special license for some of the sounds and will include them in Leadwerks 3.1, free for use. One subtle thing I learned from Valve games is that it's better to play the "landing" sound when the player jumps, not when they land. It gives a much better feeling of interaction with the level, for some reason.[/font][/color]

[color=rgb(0,0,0)][font=arial]A very slight camera bob was added so that when you jump, it feels like your arms have inertia. I also tried smoothing the rotation of the arms so they lag a little as you look around, but it looked terrible and they were jumping around on the screen. So while a little inertia can be a subtle indicator of motion, too much is definitely not good.[/font][/color]

Ballistics
[color=rgb(0,0,0)][font=arial]How do you really tell when a gun is being fired? What makes it "feel" right? I had to look at some games from the all-time masters of first-person combat, id Software. I added a muzzle flash sprite that appears for a fraction of a second when you fire, as well as a point light at the tip of the barrel. The deferred renderer in Leadwerks 3.1 makes the light cast dynamic shadows, giving a convincing feeling of space and depth.[/font][/color]

[color=rgb(0,0,0)][font=arial]When a bullet strikes a wall or other surface, you need some visual cue of what happened. A set up two emitters that get copied and played with a one-shot animation whenever a bullet collides with something. One emitter throws off solid chunks with a high gravity value, while the other is a software smoke that slowly emits from the point of impact. A secondary blood effect was created for when living objects are shot.[/font][/color]

Combat
[color=rgb(0,0,0)][font=arial]When i initially implemented combat with our crawler character (the new AI navigation system makes this great!) I found the action to be...strange. I had a pistol with unlimited ammo and no reloads, and taking down a pack of crawlers was extremely easy. I assumed I had just not given them enough health, or made the bullets too powerful, and just kept working on it. It wasn't until I added two other aspects of gameplay that I realized how big of an influence they have on the game mechanics.[/font][/color]

[color=rgb(0,0,0)][font=arial]27928cf8c4cd00473d1a168f5e0d2cc6.jpg[/font][/color]

[color=rgb(0,0,0)][font=arial]Reloading your weapon doesn't just give you a feeling of "realism". It actually introduces a whole new aspect of gameplay. Not only do you have to ration your ammo, but you have to ration your clip and not fire too many shots too quickly. Once you get surrounded by a pack of crawlers and you are trying to reload your weapon to get another shot off, you can quickly get taken down. So the speed of reloading and size of the clip actually become critical design decisions on what kind of game you want.[/font][/color]

[color=rgb(0,0,0)][font=arial]The second thing I added was making the camera bounce around when hit. When a crawler slaps you, the camera will be pushed off to the side. You can see this in Doom 3 when the player gets hit by a monster. I found this enhancement has two effects:[/font][/color]

  • [color=rgb(0,0,0)][font=arial]First, it's unpleasant. Having your view suddenly disoriented is a jarring feeling that comes through the game to effect you in real life. It's almost as good as the pain vest I see someone besides me also had the idea for. When you have the possibility of an unpleasant experience, it makes you afraid, and changes the way you play and makes enemies feel much more menacing.[/font][/color]
  • [color=rgb(0,0,0)][font=arial]Second, it adds a new gameplay mechanic. Getting slapped around makes it harder to aim. If you get surrounded by a pack of enemies, it gets very difficult to hit anything. So not letting them get near you becomes very important.[/font][/color]

    [color=rgb(0,0,0)][font=arial]I think that by focusing on these core elements and providing a structure Linux game developers can build on, we can foster development of a great many derivative projects that make use of these mechanics. The fact that it's happening on Linux is exciting, because it feels like we are doing something truly new, almost like the early days of first-person shooters.[/font][/color]

    [color=rgb(0,0,0)][font=arial]It's hard to predict the exact release date of Leadwerks for Linux, but we're getting close. My original estimate for the development timeline turned out to be pretty accurate on almost everything. Stay tuned![/font][/color]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]Leadwerks 3.1 has entered the beta testing phase on schedule according to our development plan laid out in the [/font][/color]Leadwerks for Linux[color=rgb(0,0,0)][font=arial] Kickstarter campaign. Supporters who chose the SUPER BACKER reward have been granted access to try the early builds of Leadwerks for Linux.[/font][/color]

[color=rgb(0,0,0)][font=arial]We chose to use the excellent Code::Blocks IDE for Linux development. Beta testers can access the full [/font][/color]Leadwerks API[color=rgb(0,0,0)][font=arial] to program graphics, physics, and gameplay, along with a few new functions like Camera::SetMultisampleMode(), which sets the render antialiasing level.[/font][/color]

blogentry-1364-0-71570100-1383077510_thumb.jpg

[color=rgb(0,0,0)][font=arial]Although the beta is not a complete finished product, we've already learned a lot about building high-end graphics for Linux. First of all, the Linux OpenGL drivers for ATI and Nvidia hardware are fine. We've encountered no graphics drivers bugs (so far). This may be due to the streamlined nature of OpenGL 4, as it removes a lot of legacy functionality. Whatever the cause, OpenGL drivers for Linux work great, much better than Windows drivers did a few years ago in the dark days between OpenGL 2 and 3.[/font][/color]

[color=rgb(0,0,0)][font=arial]The biggest remaining challenge is to get the editor running in Linux. We anticipate two difficult parts to this. First, although we have a GUI abstraction layer that uses GTK on Linux, we expect some amount of fiddling to be necessary to make it work right. Second, the case-sensitive nature of the Linux file system will cause issues that need to be dealt with since there are many placed where our editor stores file names in lower-case format. This will require a lot of effort to resolve, but it's not any harder than some of the other issues we have dealt with so far in the development of Leadwerks for Linux. The benefits of having a Linux game editor with a native look and feel will make it worth the extra effort it takes.[/font][/color]

Steam Dev Days


[color=rgb(0,0,0)][font=arial]Leadwerks founder [/font][/color]Josh Klint[color=rgb(0,0,0)][font=arial] has been invited and will be attending [/font][/color]Steam Dev Days[color=rgb(0,0,0)][font=arial] in Seattle, Washington. Steam Dev Days is a two-day game developer's conference where professionals can meet in a relaxed, off the record environment. Developers will share their design and industry expertise, participate in roundtable discussions and attend lectures by industry veterans on topics ranging from game economies to VR, Linux/OpenGL, user-generated content and more. Developers will also have direct access to Valve's Steam Team, and will be given a chance to test-drive and provide feedback on Steam OS, prototype Steam Machines and Steam Controllers.[/font][/color]

blogentry-1364-0-91239400-1383076864_thumb.jpg
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]Compiling Leadwerks for 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.[/font][/color]

[color=rgb(0,0,0)][font=arial]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 most straightforward and simple.[/font][/color]

[color=rgb(0,0,0)][font=arial]One problem I ran into was that some Leadwerks classes conflict with Linux classes. Our Windows, Font, and Time classes match other classes in the Linux headers. I got around this by prefixing the classes with the "Leadwerks::" namespace, but some better solution should be found.[/font][/color]

[color=rgb(0,0,0)][font=arial]Upon my first attempt to run Leadwerks, all I got was a blue screen. I fell back from OpenGL 4 to OpenGL 2 and started playing with the OpenGL matrix commands (a relic of the fixed-function pipeline I never even use anymore). When I called glOrtho() with the context width and height, I produced an OpenGL INVALID_VALUE error. From there it wasn't hard to figure out the cause...[/font][/color]

[color=rgb(0,0,136)]int[/color] [color=rgb(102,0,102)]Window[/color][color=rgb(102,102,0)]::[/color][color=rgb(102,0,102)]GetClientWidth[/color][color=rgb(102,102,0)])[/color] [color=rgb(102,102,0)]{[/color] [color=rgb(0,0,136)]return[/color] [color=rgb(0,102,102)]0[/color][color=rgb(102,102,0)];[/color][color=rgb(136,0,0)]/*don't forget to add this later*/[/color] [color=rgb(102,102,0)]}[/color]
[color=rgb(0,0,0)][font=arial]Once I implemented the missing function, everything worked fine. So I am pleased to unveil the very first screenshot in the history of the universe of Leadwerks running in Linux using OpenGL 4:[/font][/color]

blogentry-1-0-18890400-1381022754_thumb.png
[color=rgb(0,0,0)][font=arial]Behold, the green square of triumph![/font][/color]

[color=rgb(0,0,0)][font=arial]Though this is a simple example, we have a full 3D engine with deferred lighting and a really unique terrain system, so I don't think it will be long now before we can start showing off some great Linux graphics. Linux has the fastest possible performance for 3D rendering, so it will be interesting to see what we can do with it.[/font][/color]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]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 [/font][/color]extra RAM you don't need[color=rgb(0,0,0)][font=arial], and then [/font][/color]forget to include[color=rgb(0,0,0)][font=arial] a graphics card. Or they proclaim [/font][/color]PC gaming is not dead[color=rgb(0,0,0)][font=arial]and proudly announce their "gaming machine" with a shoddy GPU, that [/font][/color]costs more than my first car[color=rgb(0,0,0)][font=arial]. I've been building my own PCs since high school, and I know you can build a PC with superior performance and lower prices than the [/font][/color]garbage[color=rgb(0,0,0)][font=arial] PC vendors are selling today. So I am writing this article to tell you what I would buy if I wanted to build a high-quality future-proof gaming PC with big performance on a small budget.[/font][/color]

[color=rgb(0,0,0)][font=arial]These components were chosen to give great performance at an affordable price, with maximum upgradability. I expect this computer would run any PC game today with maximum settings at 1920x1080 resolution. Components were chosen specifically for gaming, thus more importance is placed on the GPU and the CPU is relatively more lightweight. If you do not want to assemble the components yourself, any computer shop will do it for less than $100. I only chose components from reputable brands I have purchased hardware from before, no cheap brands or refurbished parts.[/font][/color]

[color=rgb(0,0,0)][font=arial]For Linux gaming, I recommend buying AMD CPUs. The integrated graphics chips in Intel CPUs [/font][/color]may cause problems[color=rgb(0,0,0)][font=arial] with detection of a discrete graphics card and make it [/font][/color]very difficult[color=rgb(0,0,0)][font=arial] to install graphics drivers. AMD CPUs also give a better price/performance ratio with somewhat slower single-threaded speeds at a much lower price. For gaming, the single-threaded CPU speed isn't actually that important since the intensive tasks like rendering and occlusion culling are typically offloaded onto the GPU, and modern game engines like [/font][/color]Leadwerks[color=rgb(0,0,0)][font=arial]make extensive use of multi-threading.[/font][/color]

Disclaimer: I have not built a machine with these exact components. I am not responsible if it doesn't work, do so at your own risk, blah, blah, blah. Now on to the parts...

Motherboard
[color=rgb(0,0,0)][font=arial]Asus M5A78L-M LX3 Desktop Motherboard (Socket AM3+):[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16813131935
[color=rgb(0,0,0)][font=arial]Price: $44.99[/font][/color]

CPU
[color=rgb(0,0,0)][font=arial]AMD FX-4300[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16819113287
[color=rgb(0,0,0)][font=arial]Price: $109.99[/font][/color]

RAM
[color=rgb(0,0,0)][font=arial]Corsair 4GB DDR3[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16820233349
[color=rgb(0,0,0)][font=arial]Price: $39.99[/font][/color]

Graphics Card
[color=rgb(0,0,0)][font=arial]MSI Nvidia GEForce 650[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16814127703
[color=rgb(0,0,0)][font=arial]Price: $94.99[/font][/color]

Case
[color=rgb(0,0,0)][font=arial]Cooler Master Elite 350 with 500w power supply[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16811119269
[color=rgb(0,0,0)][font=arial]Price: $59.99[/font][/color]

Hard drive
[color=rgb(0,0,0)][font=arial]Seagate Barracuda 500GB[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16822148767
[color=rgb(0,0,0)][font=arial]Price: $59.99[/font][/color]

Optical drive
[color=rgb(0,0,0)][font=arial]ASUS DVD Writer[/font][/color]
http://www.newegg.com/Product/Product.aspx?Item=N82E16827135305
[color=rgb(0,0,0)][font=arial]Price: $19.99[/font][/color]

[color=rgb(0,0,0)][font=arial]

Total cost: $429.93

[/font][/color]

Other cost-cutting tips

  • If you have any old computer, chances are you can reuse the hard drive, memory, optical drive, and even the case. Eliminating these items would bring the cost down to a ridiculously affordable $249.97.
  • I could have got the price down to about $350 if I used really cheap parts, but I don't recommend doing this.
  • TigerDirect.com may have some prices even lower than NewEgg.com, but I find their pricing information to be confusing. I don't ever consider manufacturer rebates, since you have no guarantee you will ever actually receive a check.

    Improving performance:

    • If you want better performance, invest in the graphics card. When shopping for graphics cards, just look at the number of "Cuda Cores". This will give you a pretty linear estimate of performance. (On ATI cards divide the number of "stream processors" by five and that is equivalent. But I don't recommend buying an ATI card for Linux gaming at this time.) My next choice up would be the Nvidia GEForce 670, which provides 1344 Cuda Cores versus the 650's 384, at a price of $299.99:
      http://www.newegg.com/Product/Product.aspx?Item=N82E16814121707
    • If I were to upgrade the CPU, I would get the FX-8320, which only costs $159.99 and gives the best price/performance ratio, according to cpubenchmark.net:
      http://www.newegg.com/Product/Product.aspx?Item=N82E16819113285
    • An SSD will significantly improve game load times, and will generally make your computer feel much snappier whenever files are accessed. However, the prices are still high compared to hard drives, like this 256 gb PNY SSD for $179.99:
      http://www.newegg.com/Product/Product.aspx?Item=N82E16820178456

      Conclusion
      [color=rgb(0,0,0)][font=arial]The companies selling PCs don't seem to have a clue about gaming hardware requirements. Fortunately, you can build your own gaming rig and get better performance for much less money than anything they are selling. A good gaming PC doesn't need to be expensive. My recommended build here costs less than $430, and can be less than $250 if you have any spare parts lying around or an old computer you can cannibalize.[/font][/color]

      [color=rgb(0,0,0)][font=arial]The upgradability of the PC means future upgrades can cost very little and add significant performance to your hardware. My suggestions for improving performance would raise the price by about $365, giving you a mid-high machine for $795. I don't recommend buying the very highest-end parts because the price/performance balance just isn't there, and a year from now whatever you bought will be second-best anyways.[/font][/color]

      [color=rgb(0,0,0)][font=arial]When you're done building your killer Linux gaming machine, remember to take the money you didn't spend on Windows and use it to buy some [/font][/color]great Linux games[color=rgb(0,0,0)][font=arial]. [/font][/color]
JoshKlint_34394
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Last week Valve founder and CEO Gabe Newell took to the stage at LinuxCon and proclaimed that "Linux is the future of gaming". Gabe talked about Linux gaming capabilities and promised to unveil something "on the hardware side" the following week. Today, Valve announced the upcoming release of SteamOS, a living-room operating system designed specifically to compete directly with the XBox, Playstation, and Wii console ecosystems. SteamOS will being openness to the console gaming world. This will have a lot of benefits for indie game developers:[/font][/font][/color]

  • Console game development will no longer require expensive fees to publish and update games. If you can get your game on Steam, it can go on a console.
  • Hardware manufacturers can compete to deliver better Steam-powered consoles. Gaming hardware will never again stand still for nearly ten years (as it did with the last generation of consoles).
  • Steam-based game consoles will be backwards compatible and future-proof. Games you buy now on Steam will still be playable on consoles three generations in the future.

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']I am very excited about this development and the future of open console gaming. Since we are already building Leadwerks for Linux, Leadwerks will be available for SteamOS as soon as possible.[/font][/font][/color]

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']steamos.jpg[/font][/font][/color]

    Tech Progress


    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']The Leadwerks 3 engine has been successfully compiled for Ubuntu 13.04. However, when running the application, all I saw was a blue screen. I decided to focus on the OpenGL 4 deferred renderer for a while. While working out the depth reconstruction for the deferred renderer, I realized I was making unnecessary calls to glDepthRange(), which weren't needed at all. After removing these calls my depth reconstruction code worked correctly; this was the cause of the errors I experienced when developing adeferred renderer on iOS for GDC 2013. I also believe the calls to glDepthRange() were what caused the engine to not render anything when running on Ubuntu, though I won't know for sure until I try it out.[/font][/font][/color]

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Leadwerks 3.1 features an OpenGL 4 deferred renderer with support for up to 32x MSAA. I was able to get this running in just a few days. I already had parts of the OpenGL 4 renderer done, and I've been working with deferred renderers since 2008, so it all came together quickly. It's easier today to write a deferred renderer for a couple of reasons.[/font][/font][/color]

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']First, the state of OpenGL and driver support has gotten much better. Leadwerks 2 was written against the OpenGL 2.1 specification, which was not designed for deferred rendering. I relied on many vendor-specific extensions (some of which changed behavior halfway through the engine's life). OpenGL 4 was specifically designed for the type of things I am doing with it, so I am no longer fighting the spec. If a graphics driver has a problem, it's easier to get it fixed today than a few years ago, now that the rest of the industry has realized the benefits of deferred rendering.[/font][/font][/color]

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Second, hardware today is much more powerful than when Leadwerks 2 was developed. Leadwerk 2 was written for GEForce 8800-level hardware, and used a lot of optimizations to favor speed over quality. With modern hardware I don't have to rely on so many hacks and I can push the upper limits higher. For example, Leadwerks 2 used a random edge jitter that gave a grainy approximation of soft shadow edges. With Leadwerks 3 I can increase the blur kernel and display beautiful soft shadows that look more like an offline cg render than real-time graphics:[/font][/font][/color]

    7df5033caa1e740ab0ed04bbef5e4839.jpg

    Leadwerks Shwag Surfacing


    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Leadwerks Shwag is beginning to appear in the real world. Post your photos of you modeling a stylish Leadwerks shirt or sticker so the rest of the community can see![/font][/font][/color]

    [color=rgb(11,25,2)][font=arial][font='Helvetica Neue']BUkLVchCYAA82gt.jpg[/font][/font][/color]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]All stickers from our Kickstarter campaign have been shipped, and they look absolutely fantastic:[/font][/color]
[color=rgb(0,0,0)][font=arial]sticker.jpg[/font][/color]

[color=rgb(0,0,0)][font=arial]I've never been a "sticker on my laptop" kind of guy, but I am putting one of these on mine as soon as I get home.[/font][/color]

[color=rgb(0,0,0)][font=arial]Physical items are a little different from getting software to customers. With software, there is at most a delay of a couple hours between the time I have it ready to go, and the customer is using it. I did not anticipate much of a turnover time for the shirts, and I still don't have all the ones I need. However, I am getting the last batch Monday and will ship them out the same day, or at least get them packaged, labelled, and ready to ship for the next day.[/font][/color]

Leadwerks in the Wild


[color=rgb(0,0,0)][font=arial]It's time to celebrate victory with your fellow backers and Linux gamers. Let's see your creative use of Leadwerks schwag! Post a photo on Google+ of your sticker or T-Shirt with the hashtag [/font][/color]#LeadwerksInTheWild[color=rgb(0,0,0)][font=arial].[/font][/color]
JoshKlint_34394
A new update to Leadwerks 3.0 is out. Registered developers can run the Leadwerks updater to download and install the patch. This update adds terrain, bug fixes, and a few small feature enhancements.

Our new terrain system, described in our Kickstarter campaign to bring Leadwerks to the Linux operating system, is based on a unique "dynamic megatextures" approach. This technique renders sections of the terrain into virtual textures and places them around the camera. The terrain presently allows a maximum size of 1024 meters and 16 texture layers, but these constraints can be lifted in the future once it's been thoroughly tested. You can see an example terrain the the "terrain.map" scene included in the example project folder.
blogentry-1-0-12260500-1378087519_thumb.jpg

With the increased scene geometry terrain brings, I found it necessary to precalculate navmeshes in the editor. To calculate a navmesh for a map, select the Tools > Build NavMesh menu item to being up the Build NavMesh Dialog. The navigation data will be saved directly into your map file for pathfinding. Two values have been exposed to control the navmesh calculation and the appearance of the navmesh has been improved to allow easier visual debugging. Additionally, the new World::BuildNavMesh command lets you calculate navigation meshes in code.

The bug report forum contains info about recently fixed problems. The most notable fix was for character controller physics. Some frame syncing issues were fixed which were causing entities to sometimes pass through walls and floors. This problem was very apparent in the recent game demo GreenFlask.

A new command World::SetPhysicsDetail allows you to balance the speed and accuracy of the physics simulator.

The Transform::Plane command has been enhanced to work with Lua, which had trouble understanding the syntax of the command.

Development of Leadwerks 3.1 for Linux remains on schedule for the December release. With the (highly experimental) terrain system out of the way, my attention is turning towards the OpenGL 4 renderer and getting my Linux expert started with the porting process to make Leadwerks run natively on Linux.
JoshKlint_34394
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']I wanted to add some default procedural generation tools in the Leadwerks 3.1 terrain editor. The goal is to let the user input a few parameters to control the appearance of their terrain and auto-generate a landscape that looks good without requiring a lot of touch-up work.[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Programmers commonly rely on two methods for terrain heightmap generation, Perlin noise and fractal noise. Perlin noise produces a soft rolling appearance. The problem is that Perlin noise heightmaps look nothing like real-life terrain:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Image21.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Fractal noise provides a better appearance, but it still looks "stylized" instead of realistic:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Image23.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']To get realistic procedural terrains, a more complex algorithm was needed. After a few days of experimentation, I found the optimal sequence of filters to combine to get realistic results.[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']We start with a Voronoi diagram. The math here is tricky, but we end up with a grid of geometric primitives that meet at the edges. This gives is large rough features and ridge lines that look approximately like real mountains:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']f1.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Of course, real mountains do not have perfectly straight edges. A perturbation filter is added to make the edges a little bit "wavy", like an underwater effect. It gets rid of the perfectly straight edges without losing the defining features of the height map:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']f2.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']The next step is to add some low-frequency Perlin noise. This gives the entire landscape some large hills that add variation to the height, instead of just having a field of perfectly shaped mountains. The mixture of this filter can be used to control how hilly or mountainous the terrain appears:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']f3.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']We next blend in some Fractal noise, to roughen the landscape up a bit and add some high frequency details:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']f4.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Finally, we use thermal and hydraulic erosion to add realistic weathering of our terrain. Thermal erosion works by reducing the harshness of steep cliffs, and letting material fall down and settle. Hydraulic erosion simulates thousands of raindrops falling on the landscape and carrying material away. This gives beautiful rivulets that appear as finger-life projections in the height map: Rather than relying on conventional hydraulic erosion algorithms, I created my own technique designed specifically to bring out the appearance of those features.[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']f5.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Here is an animation of the entire process:[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Animation1.gif[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']And in the renderer, the results look like the image below. All the parameters can be adjusted to vary the appearance, and then you can go in with the manual tools and sculpt the terrain as desired.[/font][/font][/color]
[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']Image19.jpg[/font][/font][/color]

[color=rgb(11,25,2)][font=arial][font='Helvetica Neue']The new landscape has ridges, mountains, and realistic erosion. Compare this to the Perlin and fractal landscapes at the top of this article. It's also interesting that the right combination of roughness and sharp features gives a much better appearance to the texture blending algorithm.[/font][/font][/color][color=rgb(0,0,0)][font=arial] [/font][/color]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]Leadwerks is a prize sponsor for [/font][/color]Cereal Hack 3[color=rgb(0,0,0)][font=arial] at the Sacramento [/font][/color]HackerLab[color=rgb(0,0,0)][font=arial]. I stopped by in the morning to listen to the pitches and say hi. Here are a few photos from the event:[/font][/color]

blogentry-1-0-42689300-1374970190_thumb.jpg

blogentry-1-0-63549500-1374970262_thumb.jpg

blogentry-1-0-65834800-1374970282_thumb.jpg

blogentry-1-0-57449400-1374970070_thumb.jpg[color=rgb(0,0,0)][font=arial] [/font][/color]
JoshKlint_34394
[font='Helvetica Neue']I've been seeing glimpses here and there over the last couple of years of a project by one of our users. He didn't give much detail in the past, but what he did show the community looked stunning. Now, after two years of work, [color=rgb(4,46,238)]FSR Game Development[/color] has finally unveiled the official trailer for Death Statue, and it's spectacular![/font]
[font='Helvetica Neue'][media]
[/media][/font]
[font='Helvetica Neue']Although this was made in the old version of Leadwerks (which isn't surprising, considering how long they've been working on it), this is representative of the quality of games we can bring to Linux with Leadwerks 3.1.[/font]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]With two weeks left to spare, I'm pleased to announce our stretch goals for the [/font][/color]Leadwerks for Linux[color=rgb(0,0,0)][font=arial] Kickstarter campaign:[/font][/color]

$26,000 - Android + Ouya for All: [color=rgb(0,0,0)][font=arial]We will provide all backers who pledged $100 or more with Android support. We'll also add support for OUYA, the Android-based open game console. This will let you build games for Android and OUYA, without ever leaving the Linux operating system.[/font][/color]

$30,000 - Blender integration: [color=rgb(0,0,0)][font=arial]We want to integrate Leadwerks with the free 3D modeling package Blender. We'll start with a Blender exporter that saves a model and all materials ready-to-use in Leadwerks, and look for other Blender features we can put to work in our engine.[/font][/color]

$35,000 - 64-bit Builds:[color=rgb(0,0,0)][font=arial] We'll provide 64-bit builds of the Leadwerks engine library, along with the 32-bit library. (We decided to provide this for Linux by default. The stretch goal is for 64-bit builds on Windows and Mac.)[/font][/color]

$45,000 - Visual GUI Editor:[color=rgb(0,0,0)][font=arial] We want to build a fully integrated GUI editor right into Leadwerks. This will let you create game menus with buttons, sliders, switches, and more, in a fully skinnable GUI system. GUI elements will even integrate with our flowgraph system, so you can visually attach GUI elements to scripted events and C++ callbacks.[/font][/color]

$55,000 - Oculus Rift + Omni in Linux:[color=rgb(0,0,0)][font=arial] We want to integrate the great virtual reality headset Oculus Rift with Leadwerks, all running natively in Linux. We'll even include support for the Omni VR treadmill, so Linux developers can create the full VR experience.[/font][/color]

$85,000 - Broaden Your World:[color=rgb(0,0,0)][font=arial] We'll implement full 64-bit floating point math and streaming terrain data to create worlds beyond the limits of 32-bit floating point precision. Want to create detailed worlds ten times bigger than Crysis maps? We can make it happen.[/font][/color]

$150,000 - Choose Two Flavors of Linux:[color=rgb(0,0,0)][font=arial] Variety is the spice of life, and Linux is baked with plenty of it! We'll work with the top two distros backers choose to provide full Leadwerks integration and ongoing support for two years.[/font][/color]

$200,000 - Plugin-Free 3D Web Games:[color=rgb(0,0,0)][font=arial] We'll work with asm.js to compile Leadwerks in web-ready format so you can distribute 3D web games for supported browsers, with no proprietary plugins required.[/font][/color]
JoshKlint_34394

[color=rgb(0,0,0)][font=arial]In just three weeks, the Linux community has successfully funded the development of [/font][/color]Leadwerks for Linux[color=rgb(0,0,0)][font=arial]. This means we're going to bring Leadwerks 3.1 to Linux, with native support for developing Linux games...so Linux games can now be completely free from Windows.[/font][/color]



Greenlight


[color=rgb(0,0,0)][font=arial]It's been an amazing few weeks. During this time, we also successfully completed our Greenlight campaign to make Leadwerks available on Steam and take advantage of features like the Steam Workshop. You can see from the graph below that our campaign did better than any other software in Steam we had data for. The votes look like they would have gone a lot higher, but Valve approved us early![/font][/color]

[color=rgb(0,0,0)][font=arial]1.png[/font][/color]

Megatextures


[color=rgb(0,0,0)][font=arial]I also had a chance to prototype the major feature of Leadwerks 3.1 I was most concerned about. I wanted to implement a new terrain system that would remove the limitations of our old one, and thought that a technique I call "dynamic megatextures" would be a good solution. Basically, this works like id Software's megatexture technology, only the virtual textures are generated on-the-fly rather than being paged from the hard drive. This means the entire terrain can be uniquely textured, but it doesn't require the hard drive space megatextures usually need:[/font][/color]

[color=rgb(0,0,0)][font=arial]6.jpg[/font][/color]

[color=rgb(0,0,0)][font=arial]Getting that knocked out of the way makes me confident we can deliver Leadwerks 3.1 for Linux according to our original vision.[/font][/color]

[color=rgb(0,0,0)][font=arial]Congratulations, Linux community! I'm happy to make Linux a core part of our company's focus moving forward.[/font][/color]
JoshKlint_34394
Leadwerks has been successfully Greenlit for Steam, meaning we can integrate great features like the Steam Workshop and Valve file formats right into our game engine! Thank you so much to everyone who voted.

We saw an incredible response from the Steam Linux community, both here and on our Kickstarter campaign for Linux support, which is nearly 85% funded. If the campaign reaches the first stretch goal, we're throwing in Android and OUYA support for everyone who pledged $100 or more to the campaign.

Valve is one of my earliest influence in design and coding, and I'm really excited to be working more closely with them in the near future. Again, I sound like a broken record, but a big THANK YOU to the Steam, Linux, and Leadwerks communities!
JoshKlint_34394
[media]
[/media]

Over the weekend I attended an OUYA game jam and got to play around with the OUYA dev kit for the first time. My goal was to see if I could get Leadwerks running on it. I had problems with the USB driver, but compiling went smoothly:

ouya2.jpg

I didn't have any problems with controller latency, but did not finish mapping the controls or updating our project to use some newer functions we need. In the end, I had to manually copy the compiled .apk file to the device to deploy it. All in all, it was a good proof of concept.

ouya3.jpg

Last week we launched a Leadwerks for Linux Kickstarter campaign. As we now pass the 60% mark, we're ready to unveil our first stretch goal. We want to put OUYA development in the hands of every Leadwerks developer, so we're making that our first stretch goal. There's still a lot of work to be done, but my tests last weekend prototyping Leadwerks on OUYA proved it was possible. When our campaign reaches the $26,000 mark, we will provide all backers who pledged $100 or more with OUYA support, delivered at the time Leadwerks for Linux is ready. This will let you build games for OUYA and Android, without ever leaving the Linux operating system.
ouya.jpg

Although the OUYA is new and the firmware still has a few rough spots, it's a lot of fun deploying games straight to your big-screen TV, and we've already prototyped it. We're looking forward to bringing OUYA game development to Linux users.
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]Last week we launched our [/font][/color]Steam Greenlight[color=rgb(0,0,0)][font=arial] campaign to get Leadwerks into the hands of the Steam community. This week, we're rolling out the second stage of our plan with a [/font][/color]Kickstarter[color=rgb(0,0,0)][font=arial] campaign to bring Leadwerks to Linux. This will let you build and play games, without ever leaving Linux. The result of this campaign will be Leadwerks 3.1 with a high-end AAA renderer running on Linux, Mac, and Windows, with an estimated release date before Christmas.[/font][/color]

[color=rgb(0,0,0)][font=arial]Valve has given Linux users a taste of PC gaming, so now it's up to us to reach the Linux community with our message. If you dig this, please help spread the word that someone is trying to put game development on Linux:[/font][/color]
http://www.kickstarter.com/projects/1937035674/leadwerks-build-linux-games-on-linux

[media]
[/media]

[color=rgb(0,0,0)][font=arial][color=rgb(0,0,0)][font=arial]

Leadwerks for Linux

[/font][/color]
[color=rgb(0,0,0)][font=arial]Linux is a solid and secure operating system that's perfect for gaming, but at this time Windows remains the lead platform for PC games. We want to change that by putting the game development process right on Linux, with [/font][/color]Leadwerks for Linux[color=rgb(0,0,0)][font=arial]. This will allow you to build and play games without ever leaving the Linux operating system.[/font][/color]

[color=rgb(0,0,0)][font=arial]Leadwerks is a visual tool for building any kind of 3D game, including dungeon crawlers, first-person shooters, and side-scrollers.. We want to put game development on Linux with Leadwerks for Linux. Our campaign has three goals:[/font][/color]

[color=rgb(0,0,0)][font=arial]

Linux Game Development. On Linux.

[/font][/color]
[color=rgb(0,0,0)][font=arial]It's not enough just to export games to Linux. We want to put the game development process on Linux, so you can build and play games, without ever leaving the Linux operating system. We have a complete visual editor that handles all aspects of the game development process, and we're porting it to run natively on Linux. We're using GTK for the user interface, so our editor will look and feel like a native Linux application.[/font][/color]

[color=rgb(0,0,0)][font=arial]We're targeting Ubuntu 12.04 to start with, and will support other distros as we make progress. You'll also be able to compile games for Windows and Mac...if you feel like sharing.[/font][/color]

[color=rgb(0,0,0)][font=arial]94938a7cff091f8ca7db12d6a8c35aa7_large.png?1370983345[/font][/color]

[color=rgb(0,0,0)][font=arial]

Expand the Linux Library of Games

[/font][/color]
[color=rgb(0,0,0)][font=arial]Our second goal is to facilitate expansion of the Linux library of games, and encourage the production of Linux-exclusive titles. The Linux community is pretty intelligent, and they have a lot of good programmers. We think by putting the appropriate tools in their hands, it will enable them to make great Linux games.[/font][/color]

[color=rgb(0,0,0)][font=arial]b1ab96a157f6b1e2391bb66378904249_large.jpg?1370984013[/font][/color]
[color=rgb(0,0,0)][font=arial]Hoodwink by E-One Studio[/font][/color]

[color=rgb(0,0,0)][font=arial]

AAA Graphics on Linux

[/font][/color]
[color=rgb(0,0,0)][font=arial]Leadwerks is known for having great graphics. We want to push Linux graphics beyond anything that's ever been done. Linux is the perfect platform for triple-A graphics, because it has [/font][/color]OpenGL performance faster than Windows or Mac[color=rgb(0,0,0)][font=arial]. We're taking advantage of this performance with deferred lighting, hardware tessellation, and up to 32x multisample antialiasing.[/font][/color]

[color=rgb(0,0,0)][font=arial]67650950e4b583521bdbba89f0a2f99c_large.jpg?1370974259[/font][/color]
[color=rgb(0,0,0)][font=arial]The Zone by Dave Lee[/font][/color]

[color=rgb(0,0,0)][font=arial]

Steam Integration

[/font][/color]
[color=rgb(0,0,0)][font=arial]When Valve announced Steam was [/font][/color]coming to Linux[color=rgb(0,0,0)][font=arial], that was a clear sign to us that Linux is ready for PC gaming. We're working to integrate Leadwerks with Steam and take advantage of new features Steam offers for developers.[/font][/color]

[color=rgb(0,0,0)][font=arial]7f20352e975f46d9b741ba72c19b5948_large.jpg?1370973477[/font][/color]

[color=rgb(0,0,0)][font=arial]

[color=rgb(18,26,13)]Steam Workshop[/color]

[/font][/color]
[color=rgb(18,26,13)][font=arial]We're hooking into the Steam Workshop to deliver game assets. This includes models, textures, scripts, and maps, so you can get everything you need to make games. When you find an object in the Steam Workshop you want to use in your game, just hit the "Subscribe" button and it will show up right away, ready to use in Leadwerks. We're also adding support for Valve's asset formats, so you can access lots of great content from the rest of the Steam Workshop, and add it to your game.[/font][/color]

Export for Steam
[color=rgb(0,0,0)][font=arial]We're working with the Steam SDK to make it easier to submit Linux games to Greenlight. Just press a button, and your game files will be packaged up, ready to send to Steam.[/font][/color][/font]

[color=rgb(0,0,0)][font=arial]

Features

[/font][/color]
[color=rgb(0,0,0)][font=arial]Leadwerks is a powerful yet easy to use game engine with thousands of users worldwide. Here are just a few of the main reasons we think Linux users will love Leadwerks.[/font][/color]

C++ Programming
[color=rgb(0,0,0)][font=arial]Programming with Leadwerks is a breeze. Underneath our visual editor lies a powerful yet easy to use programming API that can be accessed in C++, Lua, and other languages. With documentation and examples for every single command, you've got everything you need to make any kind of game.[/font][/color]

Visual Scripting
[color=rgb(0,0,0)][font=arial]For scripting, we use the Lua script language, just like in Crysis, World of Warcraft, and hundreds of other games. We've got a built-in script editor, so you don't have to switch back and forth between Leadwerks and an external editor. It's even got a built-in debugger so you can step through your script and see everything that's going on in the game. The flowgraph editor is used to connect scripted objects and make gameplay happen. This lets map designers set up sequences of events and complex gameplay, with no programming required.[/font][/color]

Constructive Solid Geometry
[color=rgb(0,0,0)][font=arial]Finally, we use a level editor based on constructive solid geometry. This lets everyone make game levels, without having to be an expert. If you're familiar with Valve's Hammer Editor, you'll feel right at home in Leadwerks.[/font][/color]

[color=rgb(0,0,0)][font=arial]cced7c863b2cb48a2102cf7ad581841e_large.jpg?1370973987[/font][/color]
[color=rgb(0,0,0)][font=arial]Combat Helo by Tricubic Studios[/font][/color]

[color=rgb(0,0,0)][font=arial]We plan to deliver a visual editor that handles every aspect of the game development process, a powerful yet easy to use programming API, with triple-A graphics, all running natively in Linux. By working with Steam and the Linux community, our goal is to make Linux the number one platform for PC gaming. Thank you for helping us take Linux gaming to the next level.[/font][/color]

[color=rgb(0,0,0)][font=arial]03caee24f5d4edaa191b96fce2336465_large.jpg?1370993569[/font][/color]
[color=rgb(0,0,0)][font=arial]Big Five Game Hunter by Unidev[/font][/color]

[color=rgb(0,0,0)][font=arial]

Risks and challenges

[/font][/color]
[color=rgb(0,0,0)][font=arial]We expect to encounter some graphics driver bugs. This is always the case when you are pushing advanced graphics. Fortunately, we have good relationships with the major graphics hardware vendors, and have been able to get driver bugs fixed on other platforms in the past. Valve Software has done some of the heavy lifting for us here, by prompting the graphics hardware vendors to get their drivers in good shape.[/font][/color]

[color=rgb(0,0,0)][font=arial]Our GUI has a GTK implementation for Linux, but we expect to encounter some problems that have to be overcome. Our GTK Scintilla implementation (for the code editor) has not been written, and it's a complex library.[/font][/color]

[color=rgb(0,0,0)][font=arial]Since the Linux file system is case-sensitive, we expect to have to modify some code to work properly on Linux.[/font][/color]

[color=rgb(0,0,0)][font=arial]We're implementing a new method for terrain layers using virtual texturing. We do not anticipate any problems here, but it is one of the few features we haven't fully prototyped.[/font][/color]

[color=rgb(0,0,0)][font=arial]Although building Leadwerks for Linux will undoubtedly present some difficult problems, our team has a lot of experience with multi-platform development and I'm confident we can deal with all issues we encounter. [/font][/color][/color][/color]
JoshKlint_34394
[color=rgb(0,0,0)][font=arial]I first connected with [/font][/color]Valve Software[color=rgb(0,0,0)][font=arial] during GDC 2013. I recognized an opportunity to work together, so last week I paid a visit to Bellevue, Washington and met with Valve employees (no one has job titles in the company except Gabe) and discussed Leadwerks and the evolving Steam platform.[/font][/color]

[color=rgb(0,0,0)][font=arial]Today, I'm excited to announce our [/font][/color]Greenlight campaign[color=rgb(0,0,0)][font=arial] for [/font][/color]Leadwerks 3: Steam Edition[color=rgb(0,0,0)][font=arial].[/font][/color]

[media]
[/media]

[color=rgb(0,0,0)][font=arial]This software will be distributed through Steam and allow you to build games with Lua script and publish them to Windows and Mac through Steam. We think Steam users will love Leadwerks, for a few reasons.[/font][/color]

Constructive Solid Geometry
[color=rgb(0,0,0)][font=arial]First, we use a level editor based on constructive solid geometry. This lets everyone create game levels, without having to be an expert. If you're familiar with Valve's Hammer Editor, you'll feel right at home in Leadwerks. It's fun to make game levels, and anyone can do it.[/font][/color]

Write Games with Lua Script
[color=rgb(0,0,0)][font=arial]Second, we use Lua script, just like in Garry's Mod, World of Warcraft, Crysis, and hundreds of other games. We have a built-in script editor so you don't have to switch back and forth between Leadwerks and an external program. It's even got a built-in debugger so you can step through your script and see everything that's going on in the game. [/font][/color]

Visual Scripting
[color=rgb(0,0,0)][font=arial]Finally, we use a flowgraph editor to connect scripted objects and make gameplay happen. You can view the functions of scripted objects and just click and connect them. This lets map designers create sequences of events and complex gameplay, with no programming required.[/font][/color]

[color=rgb(0,0,0)][font=arial]But it's not enough to just put Leadwerks on Steam. We want to fully integrate these technologies to deliver a complete game development platform, running within Steam.[/font][/color]

Steam Workshop Integration
[color=rgb(0,0,0)][font=arial]We're hooking into the Steam Workshop to deliver game assets. This includes models, textures, scripts, and maps, so you can get everything you need to make games. When you find an object in the Steam Workshop you want to use in your game, just hit the "Subscribe" button and it will show up right away, ready to use in Leadwerks.[/font][/color]

Support for Valve Asset Formats
[color=rgb(0,0,0)][font=arial]We're also addng support for Valve's asset formats so you can access lots of great content from the rest of the Steam Workshop and add it to your game.[/font][/color]

Export for Steam
[color=rgb(0,0,0)][font=Helvetica]We're working with the Steam SDK to make it easier to submit your games to Greenlight. Just press a button and your game files will be packaged up ready to send to Steam.[/font][/color]

[color=rgb(0,0,0)][font=Helvetica]Our dream is to unite the entire Steam community into this big global game-producing factory, where everyone can do what they're best at. We need your help to make it happen. Please vote for us on Greenlight and show Valve the Steam community wants to build their own 3D games with Leadwerks.[/font][/color]

[color=rgb(0,0,0)][font=Helvetica]We'll do our best to make sure all current Leadwerks users can get Leadwerks 3: Steam Edition added to their Steam account for free. To help facilitate this, please add your Steam ID to your Werkspace profile.[/font][/color]

Vote for Leadwerks
[color=rgb(0,0,0)][font=Helvetica]To vote for Leadwerks 3: Steam Edition on Greenlight, visit www.leadwerks.com/greenlight or find us in the Greenlight software section in Steam.[/font][/color][color=rgb(0,0,0)][font=arial] [/font][/color]