Matt Burch: The Mystery

Why Spin Graphics?

My roommate, upon entering my room last night caught me making spin graphics for a new ship with my Mac emulator.

(Just so you know, folks, I do it the old-school way, and hand-rotate it, because I use Photoshop CS on my Windows laptop, and then copy the pict file I create into the emulator, open it in GifConverter, select it, copy it, and paste it into the PICT resource in my plugin in ResEdit.)

He had the audacity to question the logic and supreme genius of our lord and master, Matt Burch. The question he asked me was this: "Why spin graphics? Why not just take one image, and rotate it? I'm pretty sure that would have been easier, and easier to code, too."

Is he crazy? I need some backup here. I explained it to him for Override and Nova (the ship animations kinda need spin graphics, no?), but I'm not sure that EVC can handle animations (blinking lights, opening bay doors, etc.). Any ideas as to why Matt chose spin graphics?

Thanks all!

If you just rotate the image, it looks fake and truly 2D, and not as good. In spinning, the ships are given a more 3D feel: you see them differently from above than from below

If you render them either in 3D, or with more effort than just taking a pic and rotating it in Photoshop, the light angle will appear to come from the same direction though the ship changes direction.

Also, for Nova: a not-straight-top-down perspective.

But light direction was the main reason to do it that way for the original game.

This post has been edited by Weepul 884 : 12 May 2005 - 10:24 AM

mm hmm. Someone could make two spins from the same ship, one Matt's way, and one your roomates way, just to show him how much it sucks.

Yeah, I've tried using Photoshop to spin single sprites into full ones -- they do indeed look terrible. Sometimes you run into the problem where the original sprite isn't spun around the center of the image, and the ship wobbles as it rotates.

One really important reason for this though, is that rotating a ship -- especially so that it looks good (i.e., with anti-aliasing) -- is computationally intensive, especially for the 68K and primitive PPC computers that EV was basically targeted for.

Of course, that, and everything else people said. 🙂

Fnoigy: We're a community of diverse, innovative people. We can't go around chanting "Kill the Heretic! Kill the Heretic!" Dash_Merc's friend wanted to know why Matt's way was better, and now we have an answer for him.

If we castrate people for asking questions, eventually we'll be burning people at the stake for suggesting wildly unorthodox ideas.

And do you know how hard it is to get that stake vertical? To collect enough firewood to make it light up? To track down some guy over a web board, travel half-way around the world to grab him, travel back, and gather everybody on the forum into one place just to watch him fry?

😮 That's a lot of manual labor. I don't want to go through that.
(/Strange sense of humor) 😄

This post has been edited by Eugene Chin : 12 May 2005 - 08:41 PM

Your friend clearly doesn't understand the problem.

The sprites are spun into individual frames so the engine can look up the frame graphic and display it, as opposed to having to make transformations on the fly.

The EV3 engine (Nova) was the first engine that could handle more than one layer per sprite- i.e. running lights, engine flares, etc, and also, sprites with more than 36 seperate frames- large Nova ships have 64, and some big ones from my TC have 72- to allow for smoother rotation.

Basically it's actually easier to take the direction that the ship is pointing and look up a frame for it than it is to spin one frame to make another.

I remember a vector-based 2D space game test which came out about the same time as EV on 68k macs. The author was worried about bloatware games which used multiple-frame pre-rendered sprites and so his program used vector mesh models of polygons for the ships.

It was impressive because the app was tiny (about 100k) and the ships could be deformed and have parts blown off them when they were hit at no additional ram/disk cost.

It's a was nice concept - shame it ran like treackle.

Anyone here remember it? There was an arena with about a dozen ships. You could choose one and fly around blasting the others.

This post has been edited by tycho61uk : 16 May 2005 - 03:24 AM

tycho61uk, on May 13 2005, 10:13 AM, said:

I remember a vector-based 2D space game test which came out about the same time as EV on 68k macs. The author was worried about bloatware games which used multiple-frame pre-rendered sprites and so his program used vector mesh models of polygons for the ships.

It was impressive because the app was tiny (about 100k) and the ships could be deformed and have parts blown off them when they were hit at no additional ram/disk cost.

It's a was nice concept - shame it ran like trackle.

Anyone here remember it? There was an arena with about a dozen ships. You could choose one and fly around blasting the others.
View Post

Do you have a link to that? I would like to see it.

Eugene Chin, on May 12 2005, 08:40 PM, said:

Fnoigy: We're a community of diverse, innovative people. We can't go around chanting "Kill the Heretic! Kill the Heretic!" Dash_Merc's friend wanted to know why Matt's way was better, and now we have an answer for him.

If we castrate people for asking questions, eventually we'll be burning people at the stake for suggesting wildly unorthodox ideas.

And do you know how hard it is to get that stake vertical? To collect enough firewood to make it light up? To track down some guy over a web board, travel half-way around the world to grab him, travel back, and gather everybody on the forum into one place just to watch him fry?

😮 That's a lot of manual labor. I don't want to go through that.
(/Strange sense of humor) 😄
View Post

:huh: I'm both frightened and relieved by your post....

This might be a little off topic, but... does anyone know what Matt Burch used to create ships for EVC?

Quote

does anyone know what Matt Burch used to create ships for EVC?

Infini-D, and the EV Override people used it as well. Nova was mostly done with Lightwave.

(The EV Override Infini-D model are, I believe, still available from the add-ons page, but the Escape Velocity ones were never released.)

Where can I get Infini-D? I cannot find it.

As far as I know, it's long-gone; I don't think I ever even heard of a Mac OS X version, and it was owned by MetaCreations, who have more or less vanished themselves.

Infini-D was first produced by a company called Specular, and was then acquired by MetaCreations. It was then merged with another 3D program called RayDream (I think) into a new app called Carrara. Carrara sucked.

MetaCreations was either bought or just plain went out of business, and Carrara was acquired by another company. I don't remember if that was the same one as Eovia, which is the company that is currently selling Carrara Studio (a newer version that reportedly is much better than the original Carrara).

Infini-D was last at version 4.5 for classic Mac OSes. I used it for quite some time before moving to LightWave, and no, I'm not looking to sell it. 😛

EV-style and quality graphics can probably be produced in any modestly capable 3D application.

This post has been edited by Weepul 884 : 14 May 2005 - 05:18 PM

... such as Mechanisto (see my signature, and download here)

I will never stop singing the praises of Mech. Keeping in mind that 99.2% of your time with your EV ship is spent looking at it in the center of the screen and not at the shipyard pics (which Mechanisto is also very capable of), Mech does a fine job at shipwrighting. Also makes spinning to sprites very easy.

I don't really see how rotating an image on the fly is easier than taking image data and sticking it on the screen, then using simple (I think) trigonometry to calculate the direction. It just means more trig. Of course, I've hardly touched C, but from my perspective, displaying an image would seem easier than rotating it and then displaying it.

Well, techincally, you can build the rotation into hardware. Ever heard of a graphics card? Thats most of what they do, rotate triangles of images. And they can do it damned fast, since it doesnt even use code.

And having the whole sprite is a huge drain on ram, which is a legit concern. In every situation, there is a tradeoff between ram usage and speed. There is always a way to rewrite some bit of code so it either takes up more ram, or it goes faster, but not always both (unless its crappily written). prerendered, prerotated wastes ram, rotating in the program (or rendering for real, on the fly) wastes time.

Now if only Matt had made the engine cough 3D cough, then you would not need to spin.

Since he did not, we need to spin.

I'm glad, since it allows for prerendered high poly models.