Saturday, August 22, 2009

More incentive to come to pax

Here's more incentive to come to PAX this year if playing the game wasn't enough

Sunday, August 16, 2009

I'm no artist, but...

I decided to draw my own promo art for the game while Jon's away.

Saturday, August 15, 2009

One leap forward, 2 steps back

I solved the physics problem talked about earlier. Once I have it tweaked right, I may write an article on my method for the potential of others to improve upon it and add it to the Box2D standard, but I need to iron out the small bugs in it first.

PHYSICS ENGINE: Box2D


Anyway, the game took a huge leap forward with the addition of "real" physics. Unfortunately, I now need to go back and rework the game's water behavior, sound effects, and most of the level design, and tweak the mechanics of the character, and fix a bunch of animation bugs brought in by the murdering of my own precious little *sniff* mechanics engine.

That's gonna take a while.


Luckily for you I saved the older build of the game and all its source so we can show that one off at PAX if I don't get boxy2d here ready in time.

I'm probably gonna need to rework the graphics engine some time in the future too. Ah well, I knew from the start that I'd end up writing the whole engine 2-3 times during the course of this project.

Wednesday, August 12, 2009

16:9, 4:3

For now, the game simply letterboxes itself to fit in with 4:3 screen ratios, as it is natively meant to run in 16:9 format.

It was a design decision to not make levels scroll and to make them all fit in one screen. We're gonna do our best to provide a smooth transition between levels to make the game feel connected and to make all the levels feel like they belong together. I tried scrolling the level in an early test. It felt pretty neat, made the game feel a little larger, but it absolutely killed the gameplay and puzzles when you couldn't easily see the whole level. It was a huge problem and we decided after much deliberation to do the game with entirely single screen puzzles, and make up for that fact by providing a ton of art and decoration for each level. It's gonna feel rich.

The final game will have over a hundred built in levels, with DLC level packs a possibility, if we aren't wiped out after designing and illustrating the first 120 levels.

Anyway, I thought about 4:3 ratios today, and was wondering about perhaps making the game fill up the whole screen, then scrolling slightly to the left and right as you move to preserve the 16:9 ratio size for levels. Would you rather have that, or the current solution of letterboxing? I'd prefer the letterboxing for reasons stated above, but I know some of you might get annoyed that the game would waste a portion of the screen that could be put to better use.

I'll probably make that an option in the settings for those who still have 4:3 TVs or monitors.

Saturday, August 8, 2009

Physics

The simple task of "add physics to Closure!!1!1" turns out to be not so simple after all. Currently I only have balls in the game, implemented with my own hacky physics system (as in I wrote it in 1.5 days just so I could "have something in the game, I'll fix it later". I'm mostly typing this out as a way to organize my thoughts, a lot of programmers do that.

I have a really easy way of telling if a point is lit up, I simply look up the color of the light on that pixel (light is a small texture upscaled with bilinear filtering, I take this into account). In the new game, it is more than simply circles. I use a bunch of textures, blurring, and odd shapes (including spotlights) to create a good looking light texture, and describing it via geometric shapes is near impossible to do in real time.

The land is triangles, but currently for purposes of speed I have it save a collision map so I can use bitmap collision. I compare the level with the light to determine if a point is colliding.

I suppose I'm gonna have to fall back to hacking my ball collision into box2D, then constructing the box out of 14 or more connected balls along the perimeter

I can estimate surface normals this way too, and indeed I use that for my hacked ball physics.

Unfortunately adding box physics keeps haunting me as there doesn't seem to be a simple or speedy way to do so.

I'm considering this option right now. I can use an existing engine like Box2D.

Subdivide my shapes into these formations:


Turn off collision for segments not in light:


I have the level stored as triangles anyway.


This would make the raw detection portion similar to my current method of "check points around the perimeter" but would offload that to the physics engine.

Crud though as I type this I realize its flaws. That's why I'm typing it out I guess, to organize my thoughts here. If an object is inside a land triangle when it is turned on, it will resolve out of the triangle, whether lit or not, when in reality, if the light bisects one of the land triangles, I only want it to resolve out of the lit portion of the triangle.

A predicament

I suppose I may have to resort to hacking my ball collision into an engine such as Box2D, then constructing a square out of a bunch of small balls (for collision with the land) and one large square (for collision with other boxes and balls).

Friday, August 7, 2009

Music

Here's an early sample mix of some music for the game created by Chris Rhyne.


Thursday, August 6, 2009

Artistic Direction

We have made many decisions on how we want the game to look, and yet we are nowhere near finalizing a style for the game. It'll looking as though we'll have to whip something up quick for PAX, then evolve that style as we work. Anyway, since I'm a programmer by nature and a pretty horrible artist, all I can think of is how the art should work on a theoretical level.

Essentially, we needed to qualify exactly what about the art in the first game was appealing, in an attempt to achieve the same effect with a more advanced and detailed style.

Background art specifically is what we were talking about, since Jon's already got a bit of work done on the game sprites (at least I keep hoping he does...).

Most importantly about background art, we decided that the point of Closure's art is to bring life to static objects through clever use of lighting. My engine supports animated background elements and scripted interactive background elements so we could fill the world with life if we wanted to.

But that's not what the game is about. It's about the light. The light is what makes everything feel alive. It creates a primitive sense of fear not unlike imagining seeing things in the middle of the night because a shadow, a broom, and a volleyball kinda looks like a person. I figure, the fear is more valid when it coms from the player's imagination, rather than mine. This was an unexpected side effect of the graphics in the first game, and it makes for an extremely difficult challenge in this game to preserve effects that were accidents in the first place.

I doubt we'll nail the mood for PAX. In fact, if we do that is a BAD sign because stuff should never work that early on. I have a feeling that even though the game's level design may be complete by June next year, we will still be spending months and months and months making sure that we can make the game feel right. It's a huge task, probably more difficult than any amount of code or art.

Which is precisely why discussing the art is important. We decided to make the backgrounds as static as possible, yet as varied and original as possible. Animated graphics and scripted stuff will show up every now and then as an accent rather than the main focus. Gameplaywise, the light brings motion to static levels; Elevators, moving platforms, etc are all created through lighting over a flat, immobile, static level. It makes sense that the graphics should echo the same effect.

JON, POST SOME ART!