Mallet Pinball: Behind the scenes

About a year ago I wrote an article about the early days of the pinball table, now after several mothballed months it’s done and here is how it works.

The basic control setup

A GVMachineController actor is on the map and a kismet node makes sure that the player takes control of it when the level loads. After that, all input is processed by the machine which then adjusts linked actors (changes position, rotation, etc). For example here is how the right flippers are set up:

read more

Mallet Pinball

This pinball-air hockey mashup was the very first prototype I created using Gavit. I worked on it every now and then, pimped the effects, tested Gavit’s new features and so on, until it was worth of a video:

The technical details are discussed in this “behind the scenes” article.

read more

Guided rigid bodies

I previously discussed replaying user input and in this article I’ll cover a related feature: recording and replaying rigid body motion.

The basics are quite simple: dump transformations of a physics driven actor to a file and then convert that data into a matinee, like before. However simply replaying the motion track with a mover has an inherent problem: impact and slide effects, defined in physical materials, won’t happen because no actual collisions occur. All the special effects (impact dust puff, damage decals, sparks, etc) would need to be placed and timed manually. That would be a bad workflow. Fortunately the solution is rather straightforward:

read more

Multi-pass performance recording and replay

I’ve just finished the first iteration of the performance recording and replay mechanics in Gavit: now user actions can be captured and turned into a matinee using an external application.

Let’s say there is a fire truck which is a “machine” in Gavit. The truck has two main, controllable features: the body which can be driven around and the water cannon which can be aimed and fired. These translate to “machine components” inside the machines: each component monitors one particular input (like x360 left stick or the mouse). In this example the vehicle itself could react to the left stick while the water cannon to the right one.

read more

Fire showcase: Behind the scenes

In this article I’ll discuss the key features of the Fire material showcase video.

When I started working on the material I had the following goals in mind:

  1. Support for fires of different scales, from a single flame to massive fires.
    On the long run it’s more efficient to maintain and learn to use one material instead of several single purpose ones.
  2. High texture resolution with smooth animation.
    My target is usually 720p@60Hz and that ruled out flipbooks which don’t scale up well resolution and framerate wise.
  3. Adjustable complexity, visual quality vs performance tweaking.

Fulfilling these core requirements was simple enough after some experimentation and I ended up spending most of the time on optimizing and making the controlling parameters easy to handle.

read more

Fire material showcase

This latest video shows a fire material I made:

(Watch it in HD on Vimeo)

The base mechanic works for both meshes and particles, can be used for fires of different scales (from candle flame to forest fire) and the material’s complexity can be adjusted. More details are in the “behind the scenes” article.

read more