Jsonnet

Check out the recently open-sourced language Jsonnet, created by Grit Engine’s lead developer during his day job at Google!

Grit news and personal update

It’s been a while since our last update, and accordingly there has been a fair bit of news!

NTA has implemented a first pass of getting audio support into the engine — this is using OpenAL, it works in Windows and Linux and we will be developing it further in the coming months.

Blender is a free and very useable 3D modelling program. We now have a fully featured export plugin for Blender, that exports meshes, collision files, classes, and maps into Grit. This makes it much easier to develop content for the engine.

Jost has been working on a new car — the Scarman. A slow luxury Sedan.

We also now have explosions, exploding cars, fire that spreads, etc. Cars explode when they are damaged or turn upside down, appear burnt out and can’t be driven.

Razzeeyy has been working on the plane logic, making it easier to fly and adding features.

Last and not least, the Grit project’s founder and lead developer got married!

In conclusion, Grit is still marching forwards, expect much more over the coming months.

Update on progress since March

Oops, we forgot to keep you up to date about what is going on. There hasn’t been any really major new features added but there has been a lot of work on small features, and a lot of churn in the source code. Refactoring, and redesigns, to remove some of the limitations and to allow us to go forward from here. In particular, isolating the graphics engines is a step towards having dedicated servers. The rewrites and refactorings cover almost all the code: physics, resource system, background loading, rendering, shaders, materials, … Also there have been plenty of bug fixes (and perhaps some new bugs :) ).

Here is a summary of some of the more visible work people have been doing the last few months:

  • Complete reimplementation of the background streaming subsystem
  • Background loading of textual collision mesh files
  • Binary collision mesh files
  • Texture streaming is now automatic — you don’t have to specify the list of used textures in your class definition
  • Communal work on ‘project’ map has started, a tiling city block that we can instantiate multiple times to make a large city, and Brian has started a new ‘urban’ map
  • Camera now tracks vehicles automatically
  • Added a low power mode for laptop debugging (mostly for development, this is an idea I stole from portal)
  • Overlays — useful for road markings, z offset scaled by vertical distance from camera
  • Work in progress for bloom
  • Mesh material remapping from class objects
  • Added a nice exploding oil drum, and a traffic control orange barrel for roadworks
  • Added the sponza map, very high poly! include “sponza/init.lua”
  • PCF shadow filter can now use a noise map instead of just the simple dither pattern (enabled by default)

In addition to this, we have moved the website, forums, and wiki, to another host.

So, even if we aren’t posting, we are keeping busy :)

1500 SVN revisions

We recently reached an arbitrary, and meaningless, but strangely satisfying milestone. Of course the previous svn repository (before the move to sourceforge) also had a lot of revisions that we lost. And before then there was a prolonged period of development with no svn repository at all. Nevertheless, progress is progress so congrats everyone!

More news on new features will appear soon. :)

Finally we have deferred lighting!

Deferred Lighting in the Playground map.

After a large amount of effort restructuring the engine into a deferred shading pipeline, it has finally been possible to implement point lights and spotlights through a deferred lighting pass. There is a reasonable performance hit with the switch to deferred shading, but individual lights are now quite cheap, so we should be able to build some pretty nice looking scenes.

Documentation for the new lights can be found at on the wiki.

The next step is to implement coronas so we can get a nice effect at the actual light location. There remains a lot more to do beyond that as well. We plan to implement a smooth fade out instead of the abrupt removal of the light, support for blinking / flickering lights (i.e. damaged neon tubes), support for turning off the lights during the day (with a bit of noise in the timings) and turning on/off the car lights when the car is not being driven. Car brake lights should also be possible soon. Finally, there should be some way of rendering emissive textures so we can render the actual ‘bulb’ of the light.