Thursday, November 18, 2010

New art style

Hey, Harris again

So we were thinking of adding some color, just to add to the setting. In this 1st concept, we have a heavily desaturated yellow to allow the idea of being outside. This place is the nuclear stage, but we'll talk about that when the game is closer to being complete,


Tuesday, November 9, 2010

More concept art (New Character Design)



hi, this is Harris, concept artist for filament, I will probably be taking over posting these images from now on, so they will be a little faster getting here. Im kinda bogged down in other projects, but expect a lot more starting January next year. The dragon image uses the old character design, the monkey uses the new one.

Thursday, November 4, 2010

Demo #4 Breaks ALL THE RULES

Demo 4 brings a host of changes to the core packages, including improvements in the rendering pipeline and a basic implementation of a physics system.

Try out this EXTREME DEMO
Edit: Demo restored!

If you move the inversion block too fast, or crush the gray block, it will automatically move to a nearby safe position. In the actual game, the player would have been killed when the gray block turns red.

So anyway, the graphics are still the same, but now the background (collection of all non-moving masses) is pre-rendered at creation time. The game then uses the pre-rendered background as the canvas to paste the potentially moving objects on. When the backgrounds get more diverse and complex, this will definitely save some valuable render time. It also allows for a neat and simple environmental destruction mechanic, where applying a blank color to the pre-rendered background would permanently erase the black, interactive segments. One way to utilize this could be an enemy firing a laser through the world and leaving a hole that the user could walk through, or that objects could fall through.

The physics system is quite simple. Every mass has a velocity vector, and the arena has a known acceleration vector. When you press a key, such as <LEFT> or <RIGHT>, the gray mass is given a certain velocity in the positive or negative direction perpendicular to the direction of acceleration. It’s simple, fast, and allows me to tweak the way gravity works at any given moment ("gravity wells" WILL be a game play mechanic).

You can switch the gravitational direction by pressing <UP> and <DOWN>. <SPACE> jumps.


Also, the movable block now locks to a 5 x 5 grid!

Saturday, October 30, 2010

Demo #3: Primitive Displacement

This demo shows off a proposed feature, objects displacing each other. This is my first attempt, and it’s a little wonky when you try to squish the character. He usually phases upwards. In the game, he would have died when crushed. It’s a work in progress, but I believe this is a decent start.
Try out the demo here!
Edit: Demo taken down.

Thursday, October 28, 2010

Boolean is working! Demo #2

Click here to download
The character can now interact with white spaces formed by overlapping dark sections! Collision is a work in progress, but this will have to do for now.
(Edit): The jumping bug was fixed! Also, the character is now grey!

Concept Art: Round 2!

Click each thumbnail for some glorious vector eye-candy! Don’t rush, soak in the detail!

filament concept wolf_01

filament concept anteater-1_01

filament concept control_01

filament concept character-1_01

Project Status: Working Demo, and More!

The renderer support classes and the basic physics engine are up and running! Check it out!
Current Demo <-Download now!
Move the little block around with the arrow keys. It can hop around and run up and down slopes.
The larger block follows your mouse. This was just a proof-of-concept to test the inversion. The little block can’t phase through the big one yet, but he can climb on it.
As a side note here’s an early draft of the level editor. It still needs a bit of fleshing out, but so far it’s the design that I’m going to be aiming for.
lvl_editor
So anyway, let’s talk a little about how the engine currently works:
First, the level contains chunks of data called Masses, which contain a list of points that form a polygon. These polygons represent the simplest form of objects in the level. Mostly, they just  form walls and floors, but all that changes with the use of Actions. Actions are operations that can be performed on a Mass, things like rotating, translating, etc. These Actions are spawned by triggers that you attach to different inputs. For example, when the DOWN_KEY is pressed, the translate action is invoked on the polygon that represents the player character (the little one, in this case). It moves, and life goes on.  Once the timeline is completed, Actions will be able to spawn based on time triggers.
The majority of movement is smoothed out by looping through large movements using little ones. This way, if I translate 70 pixels in one direction, the Action will use a series of small translations, and if it hits a wall at say, 20 pixels in that direction, the remaining translations are cancelled. This prevents the player from clipping through things, and it results in a smooth look if you repaint after every couple sub movements.
The inversion works by rendering every poly with an alpha of 99%. When two surfaces overlap, they form a color darker than the default surface. Our eyes really can’t see the difference, but when the pixels are scanned, the extra dark ones are replaced with white pixels. The process of scanning for pixels to invert is sped up by keeping a list of regions that are likely to feature overlapping Masses. The rest of the level is left alone as those regions are scanned. I’m currently scouting for a simpler/faster algorithm to handle this, as it is too slow to be used with larger screen regions.
The next feature to be implemented is per-pixel collisions (rather than the current polygon-bounds collision). This will allow the player to walk through inverted sections of screen. Arguably the most essential of all the features!

Wednesday, October 27, 2010

First Round of Concept Art!

Every project has to start somewhere! This is the first batch of art- made completely in MSPaint.
Yes, yes, over 9000 hours, etc.
This first image is a basic explanation of the gameplay mechanic that Filament hinges on:
concept1
You can walk on the black stuff, but not on the white. When a black zone intersects with a black zone (see the middle panel), it forms a white zone that you can walk through. In the above picture, the player steps on a switch, which moves the large block into the center wall, forming a white path for the player to walk through.
concept4
In this picture you can see a NPC phasing through the solid black areas. If that creature were to gobble it up, you could walk freely through the white portion its body occupies. Although not everything about this interaction is planned out yet, you can see how the mechanic of white/black can be used for more than just sliding block puzzles.
concept3This one shows off a bit of the decay that has occurred within the deeper levels of the game’s environment (you’ll just have to wait to find out why). All of the automatons in the game resemble a real creature in some form or fashion, and those relationships will often give you clues about what you can expect from some of the stranger looking foes, like the anteater above.
concept2
This final picture is an early scene from the current story, dealing with the last remaining bit of color in the entire world! More on that subject is coming soon.