No new screenshots this time, but rather a short update to let you know what we’ve been working on.
At this point we haven’t publicly announced all the features of Moldering. However, as much as I’m going to say about one of the features is that I’ve been working on a separate movement engine for a small sub-section of the game. I haven’t gotten this movement just right so I’ve been working on a few other things to pass the time. Included are:
Full-screen support
Scrolling images (to simulate parallax scrolling where we want images to loop)
Tweaking the particle engine
and, fixing odds and ends here and there
I’d show some screen shots but it would give away too much, and besides, who really gets excited about “programmers art?” :P
So, while designing levels in the level editor I was getting sick of scrolling through all the different tiles looking for the ones I wanted. So, I took matters into my own hands and created a class called Palette which extends Java’s JFrame. These little windows can be brought up allowing you to drag a collection of tiles/objects from the editor into them and use them from there.
The palettes can also be saved and there can be multiple on screen at any given time. It can be very useful to make different palettes for enemies, for different areas, or for anything and load them later.
Now, if I can find the time, I’m going to make a bunch of really useful palettes and save them all for when I want to do some serious level editing.
-James
Aug
01
2009
I reworked the old lighting system and took out the translucent images we were using as light sources. Now, the game calculates the area of the map, subtracts from it where the light sources are, and draws just the outline of the shapes translucently with increasing stroke size. The result is that when the light sources meet there’s a nice mixing of the areas.
Here’s a nice article on strokes in Java that I used as a reference:
Here’s a quick preview of some new enemies I added to the Moldering world. I’ve used the stock graphics and drew some basic sprites just to get things up and running.
On other news I’ve had some success and some problems with Ogg. I’ve gotten tracks to successfully loop and stop when finished without crashing the system or looping the last second or so. However, there’s a small lag when the track is first loaded and when it starts over.
I wonder, does this have to do with Ogg streaming, is it OpenAL, or something entirely different?
We’re using Ogg because it’s royalty free and provides fine compression. Using J-Ogg, I’ve managed to get streams to play, but I ran into a problem. The game hangs when the song is finished (either that or it continually loops the last buffer)… so I’ve got to do some debugging before I can move on.
Anyway, Ogg streaming is great. We can have a large library of music without worrying about running out of memory. As each song is played only a small amount of memory is read in at a time directly from the disk, rather than loading multiple 1-3mb songs into ram or on the heap. Now we can have that huge soundtrack we always dreamed of!
I added some new site navigation on the right side as well as expanded the about page.
On another note, I’ve also been working on some collision detection stuff and have been doing some musing about designing an online sketch pad that works per-map for designing the world of Moldering.
We’ve got the graphics for three worlds of the eight worlds just about reworked and finalized. There’s still some objects we need to add along with additional tiles, but we’re happy with the way these worlds are panning out.
I won’t go into too much details to keep the spoilers to a minimum, but here is the rundown of the world secuencing at the moment. Links are provided with screenshots of the worlds we have revealed.
Just a small update. I fixed a problem with stacks of boxes becoming unstable when gravity was enabled. The problem was from having sleep disabled for box2d objects. Sleep needs to be enabled to simulate resting contact.
I just got finished adding a ‘weight’ to the player so he now adds force to objects he’s standing on. So, for example, as the player stands on a box the box and player will fall from the added weight of the character, and, any box moving upwards will also move the character with it.
Added friction to moldering, both for air and ground. The equation is:
Acceleration = Acceleration - (Acceleration*u);
where u is friction. This value is different depending on whether player is on ground or in air. For example, I set u to .35 when on the ground. This prevents the player from slipping around. However, I can make this value lower to simulate ice, or higher to simulate sand.
I’ve done a lot of work over the last couple of days rewriting buggy code. I scraped a lot of the in-game physics and brought in an external engine, merging it with the engine we already had. I don’t think the transition could have been any smoother, which is all any programmer could hope for.
The outside code is open source, so we aren’t limited in its uses. I used the Java version of Box2d, “JBox2D” and created a scaled down version of each map which now contains all of the ‘non-player’ physics objects. I also managed seamless interaction between the player and physics objects.
I’ll be posting a video in the next couple of days demonstrating some of the basic capabilities in an interesting sandbox level. So, check back for an update.
Updated by: James Daniello and Zach ZebrowskiFollow the process of developing an indie game from the ground up. We'll be posting videos, photos, and information about the game and its development as we create it.