Jump to content
IGNORED

3d Engine for Vanilla Cart


Gip-Gip

Recommended Posts

Suggestion.

Take a look at Starpath Escape From The Mindmaster in Stella's debug colors.

I love the way it uses sliding diagonal missiles and/or ball set to the background (invisible) to smooth the tops and bottoms of the walls out.

And a floating rectangle that enlarges the closer you get makes the "doors" to the "rooms".

 

I'll take a look into that. The way the display kernel works with the rest of the program may make this a little difficult to implement, as for some sections of the screen there is mild prep calculation (mostly just small ANDs and ORs to improve code efficiency), and I would probably have to move those calculations. There is also the fact that this engine is not designed to be a maze-only FP game, so you would have to make the illusion work for 2*X and 3*X hallways, among open rooms and the such.

 

 

Gip, did you make that Raycasting demo with the multi-colored Playfield I asked about here?

 

http://atariage.com/forums/topic/229083-ray-casting-engine-demo/?p=3731023

 

Absolutely not. I do take it as a complement that you think I could've made that :)

  • Like 1
Link to comment
Share on other sites

:thumbsup:

 

For larger corridors/walls (like in the left side of the 1st picture), alternating colors or shades would help.

 

Intresting idea. That would require quite a bit more code, but I'll try it.

 

Maybe just putting breaks between the walls?

Link to comment
Share on other sites

That looks great!

Find some time to use the Ball and Missile1 set to the "appropriate" color to do the "Mindmaster Smooth." :)

Doorways are made with the Player object, changing the width as you move closer.

 

Just suggestions.

 

Wow that means the background color is the walls and the Playfield is the ceiling, floor and side passages.

 

post-29575-0-54609900-1491173930_thumb.png post-29575-0-82876100-1491173936_thumb.gif

 

P.S. That chart should be built into Stella. Remind me to suggest that.

  • Like 1
Link to comment
Share on other sites

That looks great!

Find some time to use the Ball and Missile1 set to the "appropriate" color to do the "Mindmaster Smooth." :)

Doorways are made with the Player object, changing the width as you move closer.

 

Just suggestions.

 

Wow that means the background color is the walls and the Playfield is the ceiling, floor and side passages.

 

attachicon.gifEscape from the Mindmaster (1 of 4) (1982) (Arcadia).png attachicon.gifstella-debug-colors.gif

 

P.S. That chart should be built into Stella. Remind me to suggest that.

 

I'll add wall smoothing after I'm finished sorting the code. I may also add smooth movement in the future, but I really don't want to waste the players on that (you couldn't make more than a maze game, and that's mundane and limiting)

  • Like 1
Link to comment
Share on other sites

I'll add wall smoothing after I'm finished sorting the code. I may also add smooth movement in the future, but I really don't want to waste the players on that (you couldn't make more than a maze game, and that's mundane and limiting)

Smoothed walls are nice, that's for sure. But I agree, that not using the players will make the games much less restricted. And since players and missiles share the same color, the missiles cannot be used too (unless you want a monochrome look). So that only leaves the ball, but one single object is not sufficient or you have to use flicker.

 

BTW: II.II ? Not II.IV? :)

Link to comment
Share on other sites

What does that mean? No option or "just" a major refactoring of the rendering path?

 

In order to be more efficient I have only used 1 variable per wall, and 2 variables per shadow. That means you would have to add another variable to allow walls to take on the same shapes as shadows. Now this may not be difficult to implement, but it would take up another 20 bytes of RAM, plus the code to set and alternate the colors. I view it as kinda wasteful to get a small effect, but I may be wrong.

Link to comment
Share on other sites

Smoothed walls are nice, that's for sure. But I agree, that not using the players will make the games much less restricted. And since players and missiles share the same color, the missiles cannot be used too (unless you want a monochrome look). So that only leaves the ball, but one single object is not sufficient or you have to use flicker.

 

BTW: II.II ? Not II.IV? :)

 

The draw code is already kinda crammed, and since you mentioned that I'm not so sure it's going to happen.

 

II.II.MMXVII is equal to 2.0.0 in your standard version. If I wanted to make it equal to 2.0.1, I would write II.II.MMXVII Rev. 1. If I wanted 2.1.1, II.III.MMXVII Rev. 1.

Edited by Gip-Gip
Link to comment
Share on other sites

Smoothed walls are nice, that's for sure. But I agree, that not using the players will make the games much less restricted. And since players and missiles share the same color, the missiles cannot be used too (unless you want a monochrome look). So that only leaves the ball, but one single object is not sufficient or you have to use flicker.

 

BTW: II.II ? Not II.IV? :)

Thomas,

I think I understand.

Do you mean not using players will make games much MORE restricted? (Much less restrictions means you can do more.)

You are saying because this engine uses playfield for walls, the smoothing would have to be both missiles making invisible (black) P0 & P1?

Mindmaster is inverse, so the ball and one missile smooth leaving a free player and its missile?

 

Gip-Gip,

Would it be too much work to invert, making the walls background, and the ceiling, floor Playfield?

To me that seems like a more simple kernel, but again I don't know assembly so I can only ask and suggest.

 

If too much work, continue on as you have. Amazing progress! (No pun intended)

Edited by iesposta
Link to comment
Share on other sites

Gip-Gip,

Would it be too much work to invert, making the walls background, and the ceiling, floor Playfield?

To me that seems like a more simple kernel, but again I don't know assembly so I can only ask and suggest.

 

If too much work, continue on as you have. Amazing progress! (No pun intended)

 

It would (in theory) be simpler, but it would also mean you would lose (color) shaded walls. Plus, it would look kinda weird with the fact that PF0 isn't colored in, and the last PF2 is also mostly empty. It wouldn't take that long to add, but it would look uglier.

Link to comment
Share on other sites

Thomas,

I think I understand.

Do you mean not using players will make games much MORE restricted? (Much less restrictions means you can do more.)

You are saying because this engine uses playfield for walls, the smoothing would have to be both missiles making invisible (black) P0 & P1?

Mindmaster is inverse, so the ball and one missile smooth leaving a free player and its missile?

 

This is not a maze renderer. You would also have to make the effect work for 2*X hallways and multiple hallways displayed at once.

Edited by Gip-Gip
Link to comment
Share on other sites

 

It would (in theory) be simpler, but it would also mean you would lose (color) shaded walls. Plus, it would look kinda weird with the fact that PF0 isn't colored in, and the last PF2 is also mostly empty. It wouldn't take that long to add, but it would look uglier.

How so?

Background can change color every scan line just the same as playfield.

PF0 would be black just like PF1 & PF2.

Link to comment
Share on other sites

How so?

Background can change color every scan line just the same as playfield.

PF0 would be black just like PF1 & PF2.

The background (our new shaded walls ) would be colored in PF0, while the normal walls wouldn't even touch it (unless you blanked the background, which would require precise timing and would be a general pain).

Link to comment
Share on other sites

Since I'd like to make some games with this myself, the next update will hopefully include sprite support

 

Awesome rendering engine Gip-Gip! Looking foward to seeing the games :)

 

One idea to add a second color could be to use bit variables; I've also used Nybbles to conserve RAM, helps to stretch it out.

Link to comment
Share on other sites

It's been a long week of school, optimization and procrastination, but here's a screenshot for 'ya

 

post-39755-0-95784600-1492135918_thumb.gif

 

It's been a pain getting the instruction count down to fit in a good and simple sprite kernel, but overall I'm happy with the progress/results (not to mention I learned a lot trying to optimize this thing)

 

Expect a sprite kernel and size reduction next update

  • Like 1
Link to comment
Share on other sites

Very, very impressive!! I love how smoothly it works.

 

Looking for ideas to make in the engine. I'm currently thinking of a zombie shooter and a Wolfenstein 3d "port", any other suggestions would be appreciated

 

Your half-screen versions would work well with a Bard's Tale style RPG. Your engine could be used to move through a dungeon, and then when you encounter a monster you can switch to a turn-based combat system in another bank. Might be a little less kernel-intensive than a first person shooter.

 

http://bardstale.poverellomedia.com/thebardstale-story.html

  • Like 2
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...