It is currently Fri Oct 19, 2018 2:30 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Thu Nov 02, 2017 6:52 am 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
Mods, move this one folder up to "Homebrew Projects", please. This isn't a competition thread anymore.

_________________
This is a block of text that can be added to posts you make. There is a 255 character limit.


Last edited by Punch on Fri Nov 03, 2017 5:34 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Nov 02, 2017 9:31 am 
Offline
User avatar

Joined: Thu Mar 31, 2016 11:15 am
Posts: 383
Are you still working on it?


Top
 Profile  
 
PostPosted: Thu Nov 02, 2017 9:48 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1783
Location: Gothenburg, Sweden
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.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Fri Nov 03, 2017 5:33 pm 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
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.


Top
 Profile  
 
PostPosted: Sat Nov 04, 2017 1:49 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7548
Location: Chexbres, VD, Switzerland
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.


Top
 Profile  
 
PostPosted: Sat Nov 18, 2017 1:34 pm 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
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.


Top
 Profile  
 
PostPosted: Sun Nov 19, 2017 12:51 am 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 965
Quote:
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?


Top
 Profile  
 
PostPosted: Sun Nov 19, 2017 3:34 pm 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 201
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


Top
 Profile  
 
PostPosted: Sun Nov 19, 2017 7:29 pm 
Online

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20672
Location: NE Indiana, USA (NTSC)
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).


Top
 Profile  
 
PostPosted: Mon Nov 20, 2017 2:12 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 7669
Location: Seattle
Many more than just two


Top
 Profile  
 
PostPosted: Sun Nov 26, 2017 9:52 am 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
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.


Top
 Profile  
 
PostPosted: Mon Jan 22, 2018 10:20 am 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
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.


Top
 Profile  
 
PostPosted: Thu Jan 25, 2018 8:00 pm 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 201
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


Top
 Profile  
 
PostPosted: Fri Jan 26, 2018 7:16 pm 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
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.

_________________
This is a block of text that can be added to posts you make. There is a 255 character limit.


Last edited by Punch on Sat Jan 27, 2018 10:21 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sat Jan 27, 2018 2:56 am 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 812
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 49 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: olddb and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group