1st Person RPG/Adventure Game

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

Moderator: Moderators

User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Punch »

Mods, move this one folder up to "Homebrew Projects", please. This isn't a competition thread anymore.
Last edited by Punch on Fri Nov 03, 2017 5:34 pm, edited 1 time in total.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
pubby
Posts: 583
Joined: Thu Mar 31, 2016 11:15 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by pubby »

Are you still working on it?
User avatar
FrankenGraphics
Formerly WheelInventor
Posts: 2064
Joined: Thu Apr 14, 2016 2:55 am
Location: Gothenburg, Sweden
Contact:

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by FrankenGraphics »

I somehow forgot to say; what you've got so far looks amazing. I really like this one, so i hope to see this in next years', or even outside the compo.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Punch »

pubby wrote:Are you still working on it?
I am! I'm mostly working with the game's design on paper now than with code but it's (slowly) progressing.
FrankenGraphics wrote:I somehow forgot to say; what you've got so far looks amazing. I really like this one, so i hope to see this in next years', or even outside the compo.
I'm glad you liked it, thanks :)
I'm not sure if this is going to be for the compo, maybe I'll submit it under Cat. #2 if they can actually fit my game into the cartridge because I'm almost sure that it will be very difficult to keep 32k as a size ceiling for my game.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Bregalad »

Wow this looks amazing ! I've been missing this so far because I don't look into the compo forums. I think it's probably a better usage of raycasting than a first-person shooter game, since

1) I don't personally like fist person shooters
2) It would be too slow for an action game anyway.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Punch »

Bregalad wrote:Wow this looks amazing ! I've been missing this so far because I don't look into the compo forums. I think it's probably a better usage of raycasting than a first-person shooter game, since

1) I don't personally like fist person shooters
2) It would be too slow for an action game anyway.
It's not raycasting though, I'm just composing the screen with predefined tile maps for each possible viewing angle / distance of a wall.

Edit1: I tried to do an arbitrary 3-color wall texture with all prerendered angles fit into 128 characters but failed. Too bad. Guess I'll just use the plain look for now.

Edit2: Change of plans... I'll probably make Bank 1 the minimap + status bar + dungeon display graphics and use Bank 2 for the full text character table + sprites. Since I'm only displaying text on the bottom of the screen (the status bar shows stuff too but I'll change that soon) I'll just rely on Spr0 interrupt to swap banks, just like Pool of Radiance. (I wish my game could be as pretty as that one). Is there a UNROM like cartridge with bankswitchable Character ROM? That would be handy.

My test wall leaves as much as 90 characters free but I chose to use only 64 characters for the sidebar. I'll probably remove all text and leave only the needed characters for truncated indicators (HP DEF MAP), the symbols for the minimap and numbers 0-9. This makes dungeon graphics significantly less limited than the scheme I was using which allowed only for 128 chars. I'm arranging my wall renderings in a 256x240 bitmap with aesprite so I can just import it into shiru's NESST to get a character table without redundant tiles. It's a pain in the butt but I don't feel like writing tools for this right now :lol:

This is the wall graphics I've made (WIP):
Image

As you can see the palette is quite nice, which by the way was a fatal mistake, it's hard to make it look that good on the actual NES palette... It looks ok if I use the two darkest grays (as it is intended to be a concrete wall) or gray + dark green for the highlight color which makes it look like a wall with moss/sludge (don't know the exact word).
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: 1st Person RPG/Adventure Game

Post by Myask »

As you can see the palette is quite nice, which by the way was a fatal mistake, it's hard to make it look that good on the actual NES palette... It looks ok if I use the two darkest grays (as it is intended to be a concrete wall) or gray + dark green for the highlight color which makes it look like a wall with moss/sludge (don't know the exact word).
How about the palettes when color emphases are on?
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Alp »

Punch wrote:This is the wall graphics I've made (WIP):
These walls looks good so far!

I initially thought that the horizontal lines weren't perspective-aligned, but a quick measurement shows that I was mistaken.
It was likely those thicker lines throwing off my eyes.

I'll post my measurements, just on the off chance that they're helpful in some way:
Image
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by tepples »

Punch wrote:Is there a UNROM like cartridge with bankswitchable Character ROM? That would be handy.
There are two: UNROM 512 (30) and Holy Diver (78.3).
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: 1st Person RPG/Adventure Game

Post by lidnariq »

User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game ON HOLD -- see you next y

Post by Punch »

Alp wrote:
Punch wrote:This is the wall graphics I've made (WIP):
These walls looks good so far!

I initially thought that the horizontal lines weren't perspective-aligned, but a quick measurement shows that I was mistaken.
It was likely those thicker lines throwing off my eyes.

I'll post my measurements, just on the off chance that they're helpful in some way:
Image
Thanks a lot! I used a similar scheme on Aseprite to do perspective correct drawings for the walls, I have a separate layer full of measurement and adjustment lines, but it doesn't really come close to your grid(s).

I'm trying to progress on my project but my life has become very busy. Maybe I'll be able to work on it in december.
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game

Post by Punch »

Just when I was going to finish up my dungeon editor my laptop keyboard stopped working properly. A Russian OEM keyboard is coming from China as we speak now :lol:

Anyway... most of the work on the game this week was on defining how maps and pre-built wall assets are represented in ROM, as well as writing tools so I don't have to deal with the weirdest pipeline of Aseprite -> .bmp -> NESST import -> Export manual selections to ASM -> Pasting and labeling uncompressed data.

How am I gonna encode the levels? If I simply do a 16x16 array I'll have 256 bytes per map, which can be reduced if I represent each cell ID with 2 bits (I'll probably won't be able to fit more than 3 different wall types on 256 characters anyway...), giving us 256/4 = 64 bytes per map. If I need more distinct tile types I could just double the ID size and get 128 bytes per map, 16 different wall types (which I'll probably need since I'll use 2 different IDs to represent door cells in the north/south and east/west direction). For specific indicators (door locked/open, event trigger, treasure chest, etc.) I could simply do a second 16x16 array with RLE compression to indicate which cell does what, the RLE compression would work well since I imagine most cells would have ID 00 (aka just your usual floor/wall). edit: I was considering representing the mazes' walls by the grid lines instead of whole cells (like DDS) but I feel like it's not the best approach here.


16x16 seems satisfactory enough but I wonder how Digital Devil Story 1 has such large maps, with doors, warps, items, events, special tiles... I mean this is a 24x32 level for christ's sake, how annoying this must be to make fit on a cart and to run logic on top of since the whole map is probably way bigger than 256 bytes :lol: , not to mention this is not the only map in the game (hint: there are several)

Image


Postscript: I'm very sorry for the boring update, I was writing a huge discussion on map representation since I wasn't sure how I was going to approach the problem but the optimal answer became clear during writing. Rubber duck problem solving? :P
This is a block of text that can be added to posts you make. There is a 255 character limit.
User avatar
Alp
Posts: 223
Joined: Mon Oct 06, 2014 12:37 am

Re: 1st Person RPG/Adventure Game

Post by Alp »

Punch wrote:16x16 seems satisfactory enough but I wonder how Digital Devil Story 1 has such large maps, with doors, warps, items, events, special tiles... I mean this is a 24x32 level for christ's sake, how annoying this must be to make fit on a cart and to run logic on top of since the whole map is probably way bigger than 256 bytes :lol: , not to mention this is not the only map in the game (hint: there are several)
Hmm... not quite?

If that map is bit-packed, with X/Y separation, that'd come to about 192 bytes, possibly less, if they omit the map edges. (assumed solid)
I'd imagine that certain map elements like warps, items, and events, are possibly in a separate object list? That'd be the best way to do it.

My own dungeon crawler, does each of these things! :P



EDIT:
Whoops! I misread my 6+ year old notes, and made a mistake in the math.

The actual data size for a 24x32 map, would be:
X: 184 bytes, on the X axis (8x23)
Y: 186 bytes, on the Y axis (6x31)

Not as small as initially thought, but still less than 256 bytes, on each half, as previously stated.

Here's a handy chart, showing how the X/Y coordinates are separated. Every 4 lines is 1 byte.
Image
User avatar
Punch
Posts: 365
Joined: Sat Feb 16, 2013 11:52 am

Re: 1st Person RPG/Adventure Game

Post by Punch »

That's the model I was going to use but decided against it, yeah, but actually (and I'm quite embarassed to admit) I didn't know about bitpacking. Seems like the perfect way to compress these maps, thanks for the help, again. :beer:

By the way you should totally finish your game, I'm curious to see how yours would look and play... it would also be nice to have something to compare to :mrgreen:

edit: by the way, I already have the dungeon editor working but in a very rudimentary state, Human-Computer Interaction wise. :lol:

Image

I still didn't implement the main feature (and the reason for the editor) which is a bmp to bin & labeled asm for my prerendered walls. As I said before it's too cumbersome to import the Aseprite bmp into NES Screen Tool, only to have to carefully select columns of tiles from the tilemap and export one by one through the "copy asm to clipboard" option. In fact if it were just for the dungeon editor I could just use Excel and a script to convert csv to bin.
Last edited by Punch on Sat Jan 27, 2018 10:21 pm, edited 1 time in total.
This is a block of text that can be added to posts you make. There is a 255 character limit.
calima
Posts: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: 1st Person RPG/Adventure Game

Post by calima »

Bitpacking works, but it's slow enough on the NES to be an issue if you need several lookups per frame. My compo game does use it, since there was no other way to fit a map of that size otherwise, but did it require optimization and inlining.
Post Reply