Jump to content
  • entries
    939
  • comments
    5,894
  • views
    863,559

About this blog

Learn about game development technology

Entries in this blog

GEForce 470 and 480 specs released

480 stream processors on a single card. http://blogs.zdnet.com/gadgetreviews/?p=13422 http://www.hexus.net/content/item.php?item=23088   Thanks to CarlB of FoxConn for tipping me off on this.

Josh

Josh

Vegetation nation

I got my hands on the GDC showcase scene by Michael Betke, and it's much more beautiful than I thought. I used this scene to rewrite and test the vegetation rendering code. Collision isn't working yet, but it's built into the routine. The results speak for themselves.   Fortunately, Pure3D is soon offering a set of game-ready vegetation models, so you can create gorgeous landscapes like this.

Josh

Josh

GDC wrap up

I skipped the GDC for a couple of years, because I just wanted to focus on developing our technology. This was my first year back since our engine came to be. I was surprised how many people were familiar with our engine, and I got to talk to a few users (who probably aren't active on the forum). I also got to chat briefly with Tom Spilman, David Helgason, and Mike Wuetherick. It's really fun to see what everyone is up to, and how far they have come since a few years ago.   We met new frie

Josh

Josh

Fresh Blood

Dave Lee has joined the Leadwerks team. His job is to create a AAA game environment in Leadwerks Engine. Check out his work here.   (Influences of Crysis and S.T.A.L.K.E.R., how could I not hire him? )   Simon Benge, the lead artist from FPS Creator X, is also completing some animations for us.

Josh

Josh

Siggraph Contest

This might be worth submitting a demo to: http://www.siggraph.org/s2010/for_submitters/live_real-time_demos

Josh

Josh

2-17-2010

I dabbled in a lot of little things recently, like GUI code and networking, just to make sure things would work the way I want in the long run. The lighting optimizations weren't planned to come out yet, but were moved to the front due to one user who is finishing up a commercial game. I've also been helping Pure3D a little bit, but I can't say anything about that right now. Of course, our website is still in progress, and that will hopefully come together by the end of the month.   We'll h

Josh

Josh

Screen-space directional occlusion

Screen-space directional occlusion (SSDO) is the next logical step after simple screen-space ambient occlusion. This routine uses a raytracing approach to approximate global illumination. You can get my shader here.  

Josh

Josh

lgui screenshot

I got selection and rendering order working correctly, which is really the problem I wanted to solve with this. Here's a screenshot of the work in progress:  

Josh

Josh

lgui

I've never considered myself a fan of writing GUI code, but now that I have a small job I need to get it done for, I'm actually having a lot of fun with it. I've been tinkering around with Lua GUI code for two days, and I came up with a really neat system after lots of trial and error.   Controls A "control" is the name for a button, label, or other widget. A control is a Lua table. The programmer creates the controls they want and then inputs mouse coordinates and the left mouse butt

Josh

Josh

More lighting improvements

In Leadwerks Engine 2.3, two rendering paths are used for point lights. One uses a depth cubemap (for shader model 4 hardware). The SM3 fallback uses an unwrapped cubemap on a flat texture. On SM4 hardware, a depth cubemap was used because it allowed a point light to be rendered in one pass. However, when implementing my double-buffered technique for point lights, some problems arose. As a result, I changed the renderer to draw point lights as a series of six pyramidal volumes. This is how

Josh

Josh

Double-buffered shadow maps

I got my idea working with spot lights! You can simply use a shadow mode of 2 to indicate an object or light should be considered "static". A light that has the static mode set will use two shadow maps; one for static objects and one for dynamic objects. In the image below, the walls and room are static, and the oildrum has the regular dynamic shadow mode set. As you can see, redrawing the shadow only requires 650 triangles. Without this feature, the whole room and everything in it would ha

Josh

Josh

Lighting optimizations in version 2.31

I got the volume intersection tests working, and it won't be hard to extend this to make trigger and fluid volumes. The image below shows a point light divided up into six volumes. Each pyramidal volume represents the camera frustum of one face of the shadow cubemap. In version 2.3 and earlier, whenever an object moves within the spherical volume of the point light, the shadow is considered invalidated, and all six faces of the shadowmap are redrawn. This is why point lights are so expensive

Josh

Josh

OnLive Lives?

When OnLive was first announced, I thought it couldn't ever work, because of latency issues. After my recent networking work, I think it might actually be feasible. We had fast enough response times that we could play lagless games with server-controlled physics, which is similar to the way OnLive works. A lot of our tests were performed with intercontinental connections, and of course those will have significant latency. We found that when playing within 1000 miles of the server latency wa

Josh

Josh

Design Problem

I finished the collision editor, and now came across a pretty significant design issue. The approach the main editor has always taken is that by the time assets get into it, they are finished and ready for usage. Now I am making it so the model editor can change the structure of a model, save it, and have the main editor reload all instances of it. However, the Lua class scripts cause some problems with this. If I load a model with it's script enabled, the script might delete limbs fromt he

Josh

Josh

January 25, 2010

The networking code is pretty much done, but I don't think it's quite ready to release. We're redesigning the site to integrate the forum and community features together with the whole site, and an official documentation section is being created. In the meantime, I am going to start the model editor. This will be an app to replace the "Model Viewer" which will allow viewing and resaving of .gmf files. It will also include some editing features so you can adjust some of your meshes that might

Josh

Josh

Apple Adopting OpenGL3

This is great news. I was a bit worried about the state of OpenGL on the Mac, since they presently only support version 2.1. With OpenGL3 support, we can have a uniform graphics API on Macintosh, Linux, Windows XP, Windows Vista, and Windows 7. http://www.theinquirer.net/inquirer/news/1585830/apple-slowly-opengl

Josh

Josh

Next up...

There sure is a lot to do around here!   -Character animation example. I want to get the soldier model up and running with basic animations so everyone can use it. -Network improvements. I want to automate entity movement and some other features. -Scene graph improvements and vegetation collision. -Website and forum integration. -Revamping some of the tutorials.   Watch the character movement in this video. I want to set up something simple like that so we can run around and have fun:

Josh

Josh

Scenegraph Stuff

Discussing scene graphs in a game development or programming forum can be difficult, because I feel many people are very short-sighted about all the exceptions and complications that can arise in a flexible environment. In fact, there are many situations that will make rendering with a scene graph much slower than without. Many programmers have a tendency to ignore anticipated problems and assume it will work itself out somehow. It's also very hard to predict how bottlenecks will form and what "

Josh

Josh

Blog Bug Fixed

This should be working now. Looks like Y2K struck ten years late.

Josh

Josh

Framework, Lua, and the programmers who love them

We're finishing up 2009 by resolving some longstanding design issues that haven't been particularly critical, but have weighted on my mind. Framework is not like the main engine. It's far more high-level, and is also the kind of code people want to customize. I don't like locking the user into my way of doing things. However, the interaction between Lua, C++, and Framework commands are a real issue, which we started to see immediately as Lua became available. This was resolved by compiling Frame

Josh

Josh

Future Ideas

Here are some of my thoughts on how a future engine might look. I am not devoting any time to this, and it would not come to exist for several years, but it's fun to think about technology and design:   I've been fascinated with the game "Fuel". This game has an enormous playable area that is streamed from the hard drive. You can drive for hours and barely cover a fraction of the map. For some reason the game has been given bad reviews. I played Motorstorm on the PS3, and I think Fuel is a lot

Josh

Josh

×
×
  • Create New...