My NES raycaster - ROM link inside!

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

User avatar
Bregalad
Posts: 7768
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Post by Bregalad » Mon Oct 12, 2009 12:22 pm

Well tokumaru, if you can't host it why don't you ask Memblers to host in on the main nesdev page ? Pretty much a lot of old demos are hosted here, I don't see why your new demo wouldn't.

And if you can't make a full game with that it really doesn't matter ! You still did a really great prime demo, and proofed something new possible on the NES ! Like when I did my pseudo mode-7 demo, I didn't make a game out of it but I still enjoyed programming it and seeing the results.

And if you want to continue progress and make a game out of this, it shouldn't be TOO hard to make sprites with different sizes like in 3D-Wolrdunner, it just eats you a great amount of tiles for each sprite that way, but you can adjust the amount of diferent size in function of how much free-space you have.
Life is complex: it has both real and imaginary components.

tepples
Posts: 21755
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Mon Oct 12, 2009 1:00 pm

One problem is that a first-person view needs really BIG sprites if there are other creatures in the room who are reasonably close to the player. Another is occlusion; how can a sprite be half in front of and half behind a wall?

User avatar
Bregalad
Posts: 7768
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Post by Bregalad » Mon Oct 12, 2009 1:12 pm

Another is occlusion; how can a sprite be half in front of and half behind a wall?
Yeah it seems like a problem but seeing how gross the resolution is horizontally, a 8-pixel error will be OK. Altough computing the on/off state for each state will eat CPU time.
One problem is that a first-person view needs really BIG sprites if there are other creatures in the room who are reasonably close to the player.
Well you can limit the size of enemies, or do a 3rd person game like 3D WorldRunner.
Life is complex: it has both real and imaginary components.

CKY-2K/Clay Man
Posts: 215
Joined: Sun Apr 01, 2007 2:10 pm

Post by CKY-2K/Clay Man » Mon Oct 12, 2009 3:23 pm

Can the object be part of the background instead of a sprite?
Image
Here to at least get an idea of how the NES works. I mean I know alot of the basic things, but this place'll help me grasp more how NES functions.
Major respect to NES developers.

User avatar
tokumaru
Posts: 11467
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Mon Oct 12, 2009 4:59 pm

RetroRalph wrote:As for game ideas, it could be as simple as a maze, trying to find the exit within a time limit.
Yeah, this is the simplest game possible, and could be done with what is already working.
RetroRalph wrote:How much wiggle room do you have for enemy sprites/gameplay ?
I really want to add objects to that engine, but the calculations are very different (and more complex) than what's done for the walls, but I do want to say that it should be possible to have 2 or 3 active objects and still have playable speed.

Luckily, the game logic is much simpler than in a platformer, for example. There's no physics only simple collision detection. The AI for the enemies could be very basic as well, so I doubt that would take much of the processing time.
HJRodrigo wrote:3d pacman type game could work
You had a very interesting idea, but I guess that being chased without being able to see your back could be frustrating. Unless there was a map active at all times, but then it would be like regular Pac-Man, but slower and with a gimmicky 3D window at the top. So I guess this idea needs some adjustments, but yeah, it's interesting.
Bregalad wrote:Well tokumaru, if you can't host it why don't you ask Memblers to host in on the main nesdev page ?
Hosting is solved, Memblers got me an account (BTW, thanks Memblers!). Some time this week I'll probably upload something.
Bregalad wrote:And if you can't make a full game with that it really doesn't matter ! You still did a really great prime demo, and proofed something new possible on the NES ! Like when I did my pseudo mode-7 demo, I didn't make a game out of it but I still enjoyed programming it and seeing the results.
Yeah, I'm already glad it's possible to walk around! I believe I will try to implement objects though, even if not right now.
tepples wrote:One problem is that a first-person view needs really BIG sprites if there are other creatures in the room who are reasonably close to the player.
The static objects could be carefully designed to be really thin, or too short to be visible from so close. Being attached to the floor or the ceiling you wouldn't be able to see them because it's not possible to look up or down. Enemies could detect when the player is too close and move away by themselves. In the end it might be fun to play "chase the enemies"! =)
tepples wrote:Another is occlusion; how can a sprite be half in front of and half behind a wall?
NES sprites are 8-pixels wide, the same as the columns in the background. If the objects are aligned with the walls it would just be a matter of comparing the distance of the object to the distance of each background column and not rendering sprites for columns that are more distant than the wall they'd otherwise cover.
Bregalad wrote:a 8-pixel error will be OK.
Or that. I'll have to try when the time comes.
CKY-2K/Clay Man wrote:Can the object be part of the background instead of a sprite?
Not in this engine. The possibilities for background patterns have been carefully calculated to allow the 1-bit textures, the light/dark separation and the multiple wall colors and still leave some free tiles (for a status bar and some decoration). Including foreground objects in the mix would mess everything up. Plus, there would be very few colors.

I'd rather use sprites for them. It will add some extra colors to the screen, and I think it really needs it. Also, if I take the bitmap route, I plan on giving the objects twice the horizontal resolution of the walls (software pixels will be 4 hardware pixels wide), hopefully making the whole thing look a little less blocky.

Celius
Posts: 2157
Joined: Sun Jun 05, 2005 2:04 pm
Location: Minneapolis, Minnesota, United States
Contact:

Post by Celius » Tue Oct 13, 2009 10:03 am

Perhaps it would be possible to make a game where you are fighting gnomes or something really small so you'd have an excuse for small enemies, haha. You should make a game based off an idea I had when I was thinking of making a NES raycaster. The plot of the game was that you were a wizard who was sucked into another dimension, and your only defense was your wand, with which you could cast rays at enemies. The game was going to be called "Ray Caster" for this reason (and also, because it's a raycaster. I'm sure you get the joke!). But if that's too corny for you, I don't blame you!

But if you're going to be using big enemies, I would probably stick with 8x16 sprites, obviously because you can make larger enemies out of sprites with that. However, you're still stuck with 8 sprites per scanline. Didn't we have this discussion somewhere else?

Anyways, I can't wait to see more! I really hope you do something cool with this (though it's already really cool by itself, it would be really cool to see a game out of this).

EDIT:
tokumaru wrote:Luckily, the game logic is much simpler than in a platformer, for example. There's no physics only simple collision detection. The AI for the enemies could be very basic as well, so I doubt that would take much of the processing time.
Well, try imagining making a top-down maze game where you and the enemies are represented by dots and the rest is just an ugly set of "floor" or "wall" squares. Then you and the enemies try and kill each other. All of the objects can spin 360 degrees and face any direction. Whichever direction they are facing, that's the direction they can attack in. That sounds very easy to code, and that would be pretty much the same game logic in a raycaster, just the rendering would be 3D rather than 2D.
Last edited by Celius on Tue Oct 13, 2009 7:19 pm, edited 3 times in total.

User avatar
Bregalad
Posts: 7768
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Post by Bregalad » Tue Oct 13, 2009 10:16 am

The plot of the game was that you were a wizard who was sucked into another dimension, and your only defense was your want, with which you could cast rays at enemies. The game was going to be called "Ray Caster" for this reason (and also, because it's a raycaster. I'm sure you get the joke!). But if that's too corny for you, I don't blame you!
My this is a cool idea. You can be sure the average gamer don't notice this subtle joke.

I can't wait to see the ROM, I can't wait to see the ROM, I can't.....
Life is complex: it has both real and imaginary components.

Celius
Posts: 2157
Joined: Sun Jun 05, 2005 2:04 pm
Location: Minneapolis, Minnesota, United States
Contact:

Post by Celius » Tue Oct 13, 2009 7:18 pm

Oops, I meant "wand", not "want" in the post above. You have a wand that you cast rays at enemies with. But yeah, lots of people wouldn't get the joke, but I'm sure a lot of people would get it too.

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Tue Oct 13, 2009 8:33 pm

Your defense may be your want, but then you'd have to fight against the DO NOT WANT dog! (Or Anakin Skywalker)
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

HJRodrigo
Posts: 71
Joined: Tue Sep 15, 2009 5:01 pm

Post by HJRodrigo » Tue Oct 13, 2009 9:31 pm

tokumaru wrote: You had a very interesting idea, but I guess that being chased without being able to see your back could be frustrating. Unless there was a map active at all times, but then it would be like regular Pac-Man, but slower and with a gimmicky 3D window at the top. So I guess this idea needs some adjustments, but yeah, it's interesting.
I guess a red alert can flash or sound when you have an enemy in close proximity behind you. Kind of like how Flight sim games do when an enemy behind you has locked on to you.

User avatar
Banshaku
Posts: 2328
Joined: Tue Jun 24, 2008 8:38 pm
Location: Fukuoka, Japan
Contact:

Post by Banshaku » Tue Oct 13, 2009 11:07 pm

One idea you could try is the one Roth had: a 3D maze light gun shooter. One hand the controller for moving, the other hand the zapper. I don't know how much complexity it would had to it.

User avatar
Super-Hampster
Posts: 182
Joined: Fri May 12, 2006 4:40 pm

Post by Super-Hampster » Tue Oct 13, 2009 11:51 pm

maybe if the controller was held sideways. That's not a terrible idea at all. It might be hard to open doors since you can't reach the buttons. You might have to shoot the doors open, that is if there are any doors.

CartCollector
Posts: 122
Joined: Mon Oct 30, 2006 8:32 pm

Post by CartCollector » Mon Oct 26, 2009 7:38 pm

@Banshaku, Super-Hampster

There is at least one controller + light gun game for the NES: Gotcha!, which is a paintball game where you move around with the controller and shoot with the Zapper. So yes it is possible.

Also, Tokumaru, have you considered doing a 3D glasses version (like what 3D World Runner and Rad Racer have)?

User avatar
tokumaru
Posts: 11467
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Mon Oct 26, 2009 8:32 pm

CartCollector wrote:Also, Tokumaru, have you considered doing a 3D glasses version (like what 3D World Runner and Rad Racer have)?
I haven't, but this is an interesting idea. This should be simple to do mathematically, but there are some limitations that are likely to get in the way.

Since the frame rate is about 15 fps, in order to switch between two different views as fast as necessary I'd have to render one to each name table, and this means I loose my off screen buffer, unless I use 4-screen mirroring. Also, since two views are necessary for the 3D view, it will be twice as slow, which should be quite unplayable.

Another problem I see is that because of the low resolution, maybe not every column on the left view will have a right view counterpart, and this might compromise the 3D illusion.

User avatar
tokumaru
Posts: 11467
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru » Mon Nov 16, 2009 9:57 pm

Hello everyone. Sorry for the lack of updates on this, but real life demanded too much attention recently.

Just to keep you all interested, I decided to release a ROM even though I wasn't able to advance much. Walls are still not solid (sorry CKY-2K/Clay Man) as it's not really a priority. Just try not to go outside of the map or it can glitch up pretty bad. I'll add collision for the next ROM, I promise.

Feel free to suggest stuff.

Post Reply