stream of consciousness

The best place to find out what we have been up to: in the lab, on the streets, or out in the wild.  

media flow


want to collaborate?

follow my


Powered by Squarespace

Entries in procedural environment (3)

Monday
Feb212011

Obstacle Design System

Obstacle Editing/Integration from Thomas Kearns on Vimeo.

In my history of working with game development tools I have always been frustrated by the need to use intermediate tools to bridge between applications like 3dsmax and the game. These tools have always seemed like terribly limited, poorly designed cousins of the more robust modeling environment that preceded it.

For my game and tool development it was important to me to be able to create a pipeline that allowed my colleagues to participate in development using tools they were familiar with. To achieve this I am using the FBX file format and the FBX sdk to integrate the design of obstacles into the game engine.

In short designers may model and map the graphic meshes and maps, create and link physics proxy meshes, define obstacle connections (range of gap length and drop, orientation of connection, and parent dock location) trigger volumes, ideal viewing angle (influences the dynamic camera control), etc within the 3d modeler using the native tools.

In the game, an xml file list of desired obstacles exported in the fbx format is read and obstacles are loaded upon startup, from here the procedural obstacle engine takes over for the dynamic creation of the digital game space. 

While not active in this demo, in parallel to the particulars of the thesis game I have been working on a custom set of objects created with the 3dsmax sdk which makes particular game elements such as digital/physical io, triggers, etc as cusom procedural objects.  In assumption of future usage when the object/environments are more analagous to conventional games I have also worked on a load in place export strategy which packs the file in the requisite binary format to facilitate highspeed load of custom entities developed within 3dsMax.


Tuesday
Feb012011

Thesis: digital game progression [obstacle engine]


thesis: digital game demo 2 from Thomas Kearns on Vimeo.

This video is demonstrating basic character control, camera logic, and obstacle generation.

The character control is built upon the bullet library and integrated with irrlicht based graphics and input. For the time being walking, running, and jumping are the only required character control mechanics.
most importantly what we see here is the base functionality of the obstacle engine, which manages the dynamic creation of obstacles for an ever expanding game space. The engine is overseeing the instantiation of new obstacles based on active zones within the physical game space.

Abstractly the engine allows for unique obstacles, in this case represented by simple planes or floors. each obstacle can have a number of connectors associated with it, which parametrically define the possible relationships with future obstacles, effectively controlling the location and dimensions of the gap. While subtle, in the video you can see a growing number of obstacles with their orientation being determined by the orientation of the obstacle it is connected to and on which side. Each obstacle can also define an ideal view point, which we see in the video as the camera is controlled entirely by which obstacle the player is currently engaged with. While still requiring some finessing, the camera’s dynamic quaternion based control is functional.

The engine is also managing the state of the obstacle whether its untouched, yellow, or conquered by the player green. To win in the digital game players will be racing to conquer, similar to qbert, each obstacle in the system. With the space expanding with more and more obstacles the players will be racing to be faster than the generation. The rate of generation is also tied to the status of players in the physical game.

Future additions to this system will be the telepresence representation of physical players, and what I am currently working on now, the ability for designers to create custom, animated, obstacles in 3dsmax with the ability to define connection points, conquer triggers, and ideal view angles, these custom obstacles will replace these simple boxes with creative spatial obstacles for procedural combination into an interesting, dynamic landscape for players to navigate

Monday
Nov012010

Thesis: digital game beginnings

This demo was built using the irrlicht graphics SDK, the bullet physics engine, irrKling audio library, and my simocc library for microcontroller communication.
For the past few weeks I have focused my attention (away from the physical game) at getting the foundation for the digital game working in terms of production pipeline, core systems, etc.

Specifically, as seen primitively in the demo:

the game is going to be 3rd person with a little big planet style camera, in which each obstacle can define it's own ideal view, to which the camera will smoothly slerp to (right now for testing, I have view quaternions being toggled by joystick)

the character is the demo md2 model for the irrlicht demo's controlled by a modified version of the bullet kinematic character controller, still have some orientation issues, but happy to have the player usable for testing purposes. (if someone wants to design a sweet character I’m looking for artists)

physics engine integration working pretty solidly.

and besides just having a kind of grey-box making pipeline, the crux of this demo is a not so apparent, but relatively sophisticated procedural environment system. using custom builder, factory, AI engine combo, new obstacles can be generated on the fly (right now based on time, or as in the demo, by button press).

Unlike a conventional tile based system the obstacles are nodes which possess x number of connections or edges which define variable parametric conditions, this is to allow the environment to grow in a much more organic way, not limited by a grid. At present there are only two node types, flat floors and a spawn point. This will soon be joined by fully animated, physically simulated platformer obstacles modeled in max and exported using my custom exporter. The essence of this system, which is largely in place though still buggy (overlapping obstacles aren’t eliminated yet) is an easily extensible, relatively intelligent, custom obstacle course generator.

views tied to obstacles, no overlap, and the QBert style obstacle tagging coming soon, then connectivity to the physical game ... the ultimate goal for this term (3 more weeks)