Jump to content

TROGBlog

  • entries
    47
  • comments
    219
  • views
    125,217

Stellar Fortress v 0.11


Guest

3,650 views

The visuals are similar, so no screenshot.colecovision_price_liet.zipNew Features:- Joystick fire button support.- 2 mutli-frame player shots, using Missle 0. Currently only shoots to the right.- Shot delay counter to prevent player shots from appearing right on top of each other.Todo:- Support for firing in all directions.- 16-bit engine for player shots.- 16 animation postions for player ship.- More sound FX.- Score and re-enforcements (extra ships) display.Development Note: I don't like button-masher games (e.g. 1942), where you have to press the firebutton every time you want to shoot. It beats the hell out of the joystick/keyboard, not to mention the wear-and-tear on your thumb and/or finger. So this game will support auto-fire if you keep the joystick button pressed down at all times. Individual shots can be made for added accuracy.Known Issues:- The ricochet physics is sometimes off when the ship hits the corners of the shield. This needs some more work.- The shots don't look like they're coming from the middle of this ship. A simple SBC will fix this.- There's a bug somewhere in the code that alters the width of the ball. On some frames, the width is 1 pixel when it should be wider.- Really need 16 animation positions for the ship. It's hard to steer the ship with only 8 sprite positions.

21 Comments


Recommended Comments

I'll probably have to stick with 16. That's how many are used in asteroids, and most games for the Atari, and it works well. The limiting factor isn't the math, or even memory. Using trig tables, it's trivial to add more rotation positions. The limiting factor is the graphics. The spaceship has to fit in an 8 by 8 pixel display, and it's tough to rotate the image and still have something that looks like a spaceship (as opposed to, say, a squashed bug.) This problem is compounded by the fact that pixels in the 2600 are rectangular rather than square.

 

I'm really happy with the graphics for the current 8 positions of the ship in the game, and spent a good hour or so fine tuning them. But then I spent another hour trying to make the 22 degree diagonals, and they all look like crap. If anyone would like to submit their own rendition of a 22 degree diagonal ship that matches the style of the current ship, if I use it, you'll get honorable mention in the game manual. ;)

Link to comment

Yeah, for SpaceWar! 7800 I used the 320x200 mode and 16x16 sprites.

 

What you might want to try to do is draw your sprites at a higher resolution using vector graphics (rather than rotating the low-res bitmaps), then scale them down & clean up.

Link to comment
The spaceship has to fit in an 8 by 8 pixel display, and it's tough to rotate the image and still have something that looks like a spaceship (as opposed to, say, a squashed bug.)

 

If anyone would like to submit their own rendition of a 22 degree diagonal ship that matches the style of the current ship, if I use it, you'll get honorable mention in the game manual.  ;)

 

8x8 is a bit tough. Any chance of making it a few pixels taller?

 

sf_ship.gif

Link to comment

Hey Nathan,

 

Thanks! That's a nice graphic. I'll try coding them up and see how they look.

 

I could go to 8 x 10, but I wouldn't want to go any larger. My original intent was to use 8 height, and only about 6 pixels width to keep the proportions consistent.

 

What tool do you use to make your gif animations?

Link to comment

Photoshop for creating the individual frames (it allows me to set a pixel aspect ratio that mimics the 2600), then I work in ImageReady to build and refine the animation. ImageReady doesn't support custom aspect ratios, so I have to temporarily double the image width (using Nearest Neighbor sampling) to check how things will look.

 

Here's an 8x10 version of the ship:

sf_ship_10.gif

 

I think that works a little better. ;)

 

And the frames for both versions, if you need 'em:

http://www.cheeptech.com/misc/ship_frames.zip

 

(I guess I didn't need to include all sixteen frames, since there are only 5 unique ones. The rest are mirrored and/or flipped.) ;)

Link to comment

It's not the center - the cockpit window is set towards the back part of the ship. It makes for a kind of an unfortunate optical illusion, but you wouldn't see the ship spinning constantly like that in the game anyway.

Link to comment
It's not the center - the cockpit window is set towards the back part of the ship. It makes for a kind of an unfortunate optical illusion, but you wouldn't see the ship spinning constantly like that in the game anyway.

 

Be that as it may, it may be advantageous to make the cockpit be the center of rotation (using a +/- 1 pixel nudge on the display XY positions).

Link to comment
Be that as it may, it may be advantageous to make the cockpit be the center of rotation (using a +/- 1 pixel nudge on the display XY positions).

 

I think I see what you mean... in the game the ship's position would change slightly depending on its rotation, right?

 

So the frames would look like this:

 

sf_ship_10b.gif

Link to comment
I think I see what you mean... in the game the ship's position would change slightly depending on its rotation, right?

 

So the frames would look like this:

 

sf_ship_10b.gif

 

Precisely. One important aspect of game design that's sometimes overlooked (e.g. in Lunar Lander) is picking a reasonable and consistent center of rotation. For that space ship, the cockpit is probably a good choice. Not only does making that be the center avoid any ugliness if the player spins the ship in place, but it's probably not too far from the axis about which the ship would spin if opposite-side engines applied reverse thrust. The principle is similar to that of aligning running-frame animations so that people actually run rather than shuffle-footing (btw, was Pitfall the first game to really do that, or did any game on any system do so?)

Link to comment
I think I see what you mean... in the game the ship's position would change slightly depending on its rotation, right?

 

So the frames would look like this:

 

sf_ship_10b.gif

Yup, that looks much better.

Link to comment

Nice work there Nathan. Thanks for your help. I'll be busy the next couple days with non-Atari activities, but I'll get this coded up as soon as I can.

 

My pixel maps for this kernel are a pain. I have to split the graphic tables into odd and even rows. I'll probably write up a small perl program to do that for me. It's tedious work for 16 sprites, and I'll likely be doing a similar odd/even algorithm for Battle of Midway.

Link to comment
My pixel maps for this kernel are a pain.  I have to split the graphic tables into odd and even rows.  I'll probably write up a small perl program to do that for me.  It's tedious work for 16 sprites, and I'll likely be doing a similar odd/even algorithm for Battle of Midway.

 

Actually, there are only 5 unique sprites. The rest are flipped or mirrored or both.

 

sf_ship_10b_1.gifsf_ship_10b_2.gifsf_ship_10b_3.gifsf_ship_10b_4.gifsf_ship_10b_5.gif

 

Not sure if that will help or not, but maybe it can save you some work.

 

And here are all 16 frames, as .bmp files. (John said those are easier to convert into sprite data.)

http://www.cheeptech.com/misc/sf_ship_10_frames.zip

Link to comment
Actually, there are only 5 unique sprites. The rest are flipped or mirrored or both.

http://www.cheeptech.com/misc/sf_ship_10_frames.zip

 

The vertical one looks too narrow. Would it be too wide if you made it 7 pixels? The body of the near-vertical diagonal one is almost 7 pixels wide.

 

Also, do you know if there are any command-line utilities that will easily convert a graphics file with a small number of colors into a text file (one line/row) and/or a "raw" RGB file? Could be very handy as part of a toolchain.

Link to comment
Also, do you know if there are any command-line utilities that will easily convert a graphics file with a small number of colors into a text file (one line/row) and/or a "raw" RGB file?  Could be very handy as part of a toolchain.

 

Oh, I thought I already told you that, it can be found here ;)

Link to comment
The vertical one looks too narrow.  Would it be too wide if you made it 7 pixels?  The body of the near-vertical diagonal one is almost 7 pixels wide.

 

Also, do you know if there are any command-line utilities that will easily convert a graphics file with a small number of colors into a text file (one line/row) and/or a "raw" RGB file?  Could be very handy as part of a toolchain.

 

My guess is it'd be too wide. But I can play around with it later and see. I think overall it works pretty well now.

 

John (Champeau) is working on a conversion tool for LadyBug to convert .bmps into sprite data. I don't know how it differs from the one Manuel uses, but hey - now there's two. ;)

Link to comment
Oh, I thought I already told you that, it can be found here ;)

 

I didn't mean convert to a data file. I was thinking of something that would produce a file something like

--1111--
-121121-
-111111-
-113311-
-111111-
-141141-
-114411-
--1111--

I like to use Qbasic or C programs to munge things into data tables for the 2600, but often do so in ways that render other tools not quite suitable. I can "sort of" read monochrome or 24-bit .bmp files okay, but sometimes monochrome bitmaps aren't really enough while 24-bit is overkill, and sometimes it's nice to be able to examine things as text. A command-line utility which could take care of the necessary preprocessing would be handy.

Link to comment

You could run a perl script over the output from PCX2GRP transmogrifying the color and shape data it produces into whatever form you prefer. Of course, the example you give won't work, as it uses more than one color per scanline.

 

Of course, you can also run a perl script over plain PCX or BMP data as well.

 

Third you can adopt Eckhards tool to any output you want it to, since he included the source ;)

Link to comment
My pixel maps for this kernel are a pain.  I have to split the graphic tables into odd and even rows.  I'll probably write up a small perl program to do that for me.  It's tedious work for 16 sprites, and I'll likely be doing a similar odd/even algorithm for Battle of Midway.

 

Is that because you don't have a line-counter matching the resolution of the sprites? You may consider using FlipDraw then, as it doesn't require a line-counter ;)

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...