Tuesday, June 06, 2006

Filtering & My Work Day

First I want to talk about the filters for my ProSonic engine. I've been discussing this lately, and I want to throw out some more information on them. Filters will not be limited to making water look like water, or making a level look like it's on fire. There will be multiple types of filters. What I'm planning right now is to have a format that will manipulate the backgrounds with massive amounts of flexibility. You will be able to control line for line exactly how the background is drawn. You will be able to set scrolling speeds for each line, allow scrolling to also be automatic based on timers, apply a distortion filter (what I've been showing in my under water pictures lately) to lines, allow lines to actually move vertically depending on the screen position, and allow a multi-plane simulation. The multi-plane simulation particularly will be a big task. What will actually happen is specific pixels of background tiles will be replaced by different graphics which can be manipulated based on screen position. You will be able to have multiple simulated layers going all at once. The idea behind that is to keep the engine fast so it doesn't have to blit and redraw more than it needs to.

As for my day at work, well I have to say I'm getting annoyed. This guy Jason works at my dad's shop with me and he's really getting on my nerves. Everytime I do something wrong or have a flaw, he picks at me about it. I woke up late the other day for example (as I have many days, for the same old reason -- power outage screws up my alarm clock -- and that's still partly my fault by the way). Well today he keeps bringing it up, and when I told him my regular excuse, he just says "oh come off it, you mean to tell me you didn't wake up at least once?". So he's being nosey. He also tends to pick at me for fun in general. Today he threw my bottle of Pepsi out the door. He went back and got it for me a minute or two later. But the point is I'm sitting back and letting this guy basically walk on me. I try not to let things get started because it's a work environment and I don't feel comfortable tarnishing the work relationship. I know also however that as long as I sit back, he's going to continue. The other guys joke with me, but unlike him, they don't do it all day long and they show me common respect. I think I know what I'll do the next time he tries something. We'll see how it goes I guess. Either way, it's about time I stood up for myself on this.

Sunday, June 04, 2006

Attempting To Make ProSonic For Everyone

Because of the heavy split over how many colors to use, I've decided to make resolution settings configurable by the designers. I plan to support both 8-bit and 16-bit color, as well as 320x200, 320x240, 640x400, and 640x480 resolutions. To compromise for 320x224 (the resolution used by the Sega Genesis), I decided to have a second setting that tells how much of the screen to blit. So you could be running 320x240, but only have the game blit 320x224 onto the screen. This is for backwards compatibility. So over the next couple days, I'm going to attempt to support multiple resolutions so the designer can make the decision what works best for his/her Sonic game. I think this is a fair compromise. Everyone will get what they want out of it.

Graphic Filter Editing

The ProSonic engine now supports filter files. These files are 256 bytes in size, and they manipulate how the graphics are drawn. You can set a different filter for each plane, both above and under water. I have created three filter files -- a null file (to draw graphics without any manipulation), a duplicate of the Labyrinth Zone under water background filter, and a duplicate of the Angel Island under water filter. I had a filter for the engine before, but it was hard-coded into the engine. This is no longer the case.



I decided to have a little fun and use the two duplicates for under water filtering. The Labyrinth filter has been applied to the front planes, while the Angel Island filter has been applied to the background plane. Of course the Labyrinth filter is a bit much for using with front planes, it demonstrates the use of multiple filters for a level. There will be an program for creating filter files as well. You can displace a line between -128 to 127 (though this might become -7 to 8), and each filter file records 256 lines. That should should plenty to allow for creativity.

Oh, and if you didn't notice in the picture, the sides have a shearing effect. This is a bug that results from my engine insisting on handling 320 pixels for each line. To become fully compatible with the original games, I am willing to allow it to record 16 pixels outside the screen on each end. Technically it already does to an extent, but the current programming tells the engine to ignore it (in order to speed things up a bit).

Friday, June 02, 2006

ProSonic PZF Archive Tool

My ProSonic zone archiving program isn't very far yet, but it has the basics. You can see what it looks like at the moment by clicking here. I sort of have WinTex in mind when designing this. For those who don't know, WinTex was a very popular tool for modifying WAD files used by the DOOM games. I like how easy WinTex was to use, so I'd like to make my PZF archiving tool just as easy. I'm not sure yet what I will call my tool though. If anyone has any suggestions, I'd love to hear them.

Thursday, June 01, 2006

Various Things

I appologize for the silence for the past several days. I have either been too busy or too tired to update. I hardly keep my eyes open as I write this.

I missed the deadline for the SatAM game screen shots. But I should have them real soon I can promise that. I think most people will be pleased.

I've been working on a new format for ProSonic called the 'PZF' format. It's a special zone archiving format I'm creating to allow me to combine all the zone data files. You'll be able to have up to 255 different palette, tile map, object layout, block map, and all the other files. Nobody would ever need 255, but I figure I would go ahead and offer some wiggle room! You'll be able to set which files get read by which acts and time zones in a level. Several properties such as player starting locations, level name, water enable/disable, and many others are embedded into the format.

The biggest challenge for me right now is to get an editor working that will create and modify PZF files. It's a sophisticated format, so it won't be easy. I'm working in Visual Basic to put together a working editor. C versions will come later down the road, but the important thing is to be able to actually make the files without a hex editor and lots of inside knowledge.

As for me, I've been good. Last night at my dad's place, we got together a few songs and played them. He's learning the parts to ones I picked out on his guitar. I pretty much know the songs. I'll be singing some of them and playing the sax on them. It'll be a whole lot of fun. Maybe I'll bring a camcorder and record us when we actually perform. It'd be something neat to share I think.