Jump to content
IGNORED

Elite 3D graphics


Thomas Jentzsch

Recommended Posts

One for the show. :)

 

I was wondering when you would get to the C3. It's pretty :love:

 

BTW: The original Elite definitely uses perspective projection. You can see it when looking back after launching from the Coriolis station. While you are close, it has eight corners and it turns into a square when moving away.

 

I forgot about the Coriolis stations. Those would be in the field of view for a long time. Might look peculiar in a flat projection. Maybe even throw off one's time-honed skill for docking approaches. Perhaps one more demo screen of a C-station, with and without perspective, to check it out?

Edited by Glenn Jupp
Link to comment
Share on other sites

I forgot about the Coriolis stations. Those would be in the field of view for a long time. Might look peculiar in a flat projection. Maybe even throw off one's time-honed skill for docking approaches. Perhaps one more demo screen of a C-station, with and without perspective, to check it out?

Done. You can switch to perspective projection with right difficulty (hidden surface removal doesn't work well then).

Coriolis (NTSC).bin

Link to comment
Share on other sites

Done. You can switch to perspective projection with right difficulty (hidden surface removal doesn't work well then).

Why, thank you.

 

Hmm.

 

I think flat projection might make lining up the docking approach EASIER. If you're even a little out from being precisely perpendicular to the face of the station then it quickly shows up around the edges. With perspective on it's harder to see around the corner, if you take my meaning.

 

I guess it all makes for one more decision for whoever has the gumption to make a full game of this :)

Link to comment
Share on other sites

I think flat projection might make lining up the docking approach EASIER. If you're even a little out from being precisely perpendicular to the face of the station then it quickly shows up around the edges. With perspective on it's harder to see around the corner, if you take my meaning.

Yes, I thought so too.

 

Though I never had real problems with docking. IIRC I simply was flying between the planet and the station, using the radar until the station switched there from front to back. Then I stopped immediately, made a 90° turn and was perfectly lined up with the entry.

 

I guess it all makes for one more decision for whoever has the gumption to make a full game of this :)

Whoever it will be... :)

Link to comment
Share on other sites

After too long a delay I had a go at trying these demos on a real 2600 (a Junior, and NTSC) by way of the Harmony Cart. What I saw wasn't always what Stella said it would be :)

 

The Cobra mk.3 and the Fer de Lance (or maybe the Gecko, I forget) had vertical grey bars appearing and vanishing in the "drawing area" of the screen. Only one, two or three at a time, and the exact pattern seemed dependent on the precise orientation of the ship. Oh, and the Cobra locked up if the orientation and zoom are set just so.

 

For the Coriolis station about half the vertices could not be drawn. Orient the station one way and it looked fine. Turn it around and it looked like the Thargoids hit it.

 

The Gecko (or Fer de Lance, I still can't recall) had no problems at all.

 

So, that's my bug report. Make of it what you will :)

 

Just don't forget to add the generation ships that are mentioned in the Elite manual but not in the game. I was searching them for years :o

Oh, that's perfect. I've read that each company to port Elite to another micro put some sort of system-specific variation into it. Finally adding the generation ships to Elite 2600 is so inviting that it would almost be rude to refuse the invitation.

Link to comment
Share on other sites

After too long a delay I had a go at trying these demos on a real 2600 (a Junior, and NTSC) by way of the Harmony Cart. What I saw wasn't always what Stella said it would be :)

Yup.

 

The Cobra mk.3 and the Fer de Lance (or maybe the Gecko, I forget) had vertical grey bars appearing and vanishing in the "drawing area" of the screen. Only one, two or three at a time, and the exact pattern seemed dependent on the precise orientation of the ship. Oh, and the Cobra locked up if the orientation and zoom are set just so.

Those bars are coming from unintentional bank switching, which is not correctly emulated on z26 (still my favorite emu) and not even in Stella. I posted the demos without testing on real hardware. My fault, I fixed it by now.

 

Your Harmony works perfect. :)

 

For the Coriolis station about half the vertices could not be drawn. Orient the station one way and it looked fine. Turn it around and it looked like the Thargoids hit it.

That was after I disabled the perspective projection for performance reasons. Switch the right difficulty to B and the problem will disappear.

 

Oh, that's perfect. I've read that each company to port Elite to another micro put some sort of system-specific variation into it. Finally adding the generation ships to Elite 2600 is so inviting that it would almost be rude to refuse the invitation.

Yes, definitely. But the code has to be able to handle them. So probably they won't become larger than a space station.

Link to comment
Share on other sites

Your Harmony works perfect. :)

Good to know, thanks :)

 

For the Coriolis station about half the vertices could not be drawn. Orient the station one way and it looked fine. Turn it around and it looked like the Thargoids hit it.

That was after I disabled the perspective projection for performance reasons. Switch the right difficulty to B and the problem will disappear.

I just tried it again. For whatever reason, the perspective projection is not disabled. Surprise!

Link to comment
Share on other sites

The Cobra mk.3 and the Fer de Lance (or maybe the Gecko, I forget) had vertical grey bars appearing and vanishing in the "drawing area" of the screen. Only one, two or three at a time, and the exact pattern seemed dependent on the precise orientation of the ship. Oh, and the Cobra locked up if the orientation and zoom are set just so.

Those bars are coming from unintentional bank switching, which is not correctly emulated on z26 (still my favorite emu) and not even in Stella. I posted the demos without testing on real hardware. My fault, I fixed it by now.

 

Your Harmony works perfect. :)

This issue has been fixed in SVN for Stella; it correctly shows the unintentional bankswitching. As for z26 being still your favourite emulator, I'm working on it :) I figure that I'll have completed my work on Stella when I convert most of the 'old-school' 2600 developers :D

 

EDIT: I think this error was because of inadvertently reading from the write port? If so, the next version of Stella will help, as it contains a '_rwport' debugger directive that can break on such accesses.

 

EDIT2: And to tempt you even more, I'll have DiStella integrated in the next release. That means the disassembly will be dynamic, and always include all relevant addresses (including zero-page RAM when it's used).

Link to comment
Share on other sites

  • 3 weeks later...

How much of a slowdown do you think there would be to have 2 objects on screen as far as testing goes where the left and right objects are controlled respectively by the left and right sticks? If this could ever be a game, how many objects could be rendered and still keep a decent framerate? I figured it is one thing to render the verticies of an object, but it would be more to render each object as a point and direction in 3d space. Wondered if the missles or ball would work well for a star field in another shade to give a little depth instead of everything being the same color. That is if it ever gets used as a full game of sorts.

 

Any updates?

Link to comment
Share on other sites

How much of a slowdown do you think there would be to have 2 objects on screen

It depends. E.g. if both are very near, I would loose almost 50%. If one is further away, maybe 25% and if it is very far away (just a single dot) maybe 5%-10%.

 

If this could ever be a game, how many objects could be rendered and still keep a decent framerate?

No idea. I think it depends on what you call a decent framerate. And which tricks can be found to optimize code and avoid critical situations. But 3 or 4 visible ships which are not all directly in front of view should work well.

 

I figured it is one thing to render the verticies of an object, but it would be more to render each object as a point and direction in 3d space.

Yes, the real 3D world is more complex than what I have done so far. So this will cost extra time too.

 

Wondered if the missles or ball would work well for a star field in another shade to give a little depth instead of everything being the same color.

No, that won't work. There is not enough CPU time left. And Elite worked with a single color space view too.

 

That is if it ever gets used as a full game of sorts. Any updates?

I am currently helping with an Elite-like game on the Oric. That's why I haven't done any updates lately. But I hope to learn from participating in this project. Especially the speed problems require a lot of thought to overcome.

Link to comment
Share on other sites

As far as these 3d vector games being rendered on low power game systems, I had a thought about keeping a steady balance between the flow of the game with the processing power.

 

If all movement of points and objects move at a set speed and for a good game to be playable in 3d this would be true, a smooth movement may be possible if a speed ratio table were used that would scale up and down a single influential variable based upon the render framerate value and the physical speed of all the objects. does this make any since to anyone?

Link to comment
Share on other sites

does this make any since to anyone?

Not sure if I got you right here.

 

You want to move the game at constant speed, even if the FPS are lower?

Thats generally the jest.

 

Like if object 1 is to move from point "A" to point "B" at a set speed and this should take, for example 3 seconds to make this journey, then what this does is make sure that no matter what is happening elsewhere with the game to fluctuate the fps, it will make sure that this journey is always a true speed by essentially spacing out the images dependent on the fps. Weather this is 20 images spaced between "A" and "B" or 8 images.

Link to comment
Share on other sites

Thats generally the jest.

 

Like if object 1 is to move from point "A" to point "B" at a set speed and this should take, for example 3 seconds to make this journey, then what this does is make sure that no matter what is happening elsewhere with the game to fluctuate the fps, it will make sure that this journey is always a true speed by essentially spacing out the images dependent on the fps. Weather this is 20 images spaced between "A" and "B" or 8 images.

That's what my demo is currently doing with the user input.

 

But IMO you can't execute this to the max. E.g. when your framerate becomes too low in an infight, that you cannot react adequately anymore. The enemy would always know where you are, but you wouldn't see his current position often enough. So a framerate of e.g 4 FPS should be the minimum.

Link to comment
Share on other sites

Thats generally the jest.

 

Like if object 1 is to move from point "A" to point "B" at a set speed and this should take, for example 3 seconds to make this journey, then what this does is make sure that no matter what is happening elsewhere with the game to fluctuate the fps, it will make sure that this journey is always a true speed by essentially spacing out the images dependent on the fps. Weather this is 20 images spaced between "A" and "B" or 8 images.

That's what my demo is currently doing with the user input.

 

But IMO you can't execute this to the max. E.g. when your framerate becomes too low in an infight, that you cannot react adequately anymore. The enemy would always know where you are, but you wouldn't see his current position often enough. So a framerate of e.g 4 FPS should be the minimum.

I'm sorry. I didn't know/ couldn't tell. Pay no attention to my ramblings. :roll: :ponder:

Link to comment
Share on other sites

I'm sorry. I didn't know/ couldn't tell. Pay no attention to my ramblings. :roll: :ponder:

Did I say something? :?

 

That's what my demo is currently doing with the user input
I wasn't aware in the demo that this was already being done. If I had known I wouldn't have said something you already knew. I'll get what I think is a fascinating thought and share it to find out that it is nothing new. I figure if I get enough little inspired ideas that eventually one of them can help someone.
Link to comment
Share on other sites

  • 2 months later...

Incidentally, There have been a few breakthroughs that may lend an AWESOME hand to this work in the form of the new and improved DPC+.

 

In the current page of this thread there is a wire frame displaying at full 60 FPS. Just thought I would share.

http://www.atariage.com/forums/topic/157182-harmony-tech-specsprocessor-architecture/page__st__25

Link to comment
Share on other sites

  • 2 weeks later...

I think this is maybe the most impressive thing I've ever seen on the Atari 2600.

 

Thomas, I assume you're using the extra RAM of the M-network scheme to draw the wireframe, right?

 

Also how are you doing all the transformation math?

Edited by Ben_Larson
Link to comment
Share on other sites

Thomas, I assume you're using the extra RAM of the M-network scheme to draw the wireframe, right?

I am using a pseudo-bitmap display with a double buffer. And for that I need the extra RAM.

 

Also how are you doing all the transformation math?

It's not that complicated, just time consuming. What you need are some tables and a really fast multiplication (based on squares).

 

And this is not the complete math which would be required for a real 3D world.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   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...