Rem Demo

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
none
Posts: 38
Joined: Thu Sep 03, 2020 12:56 am

Rem Demo

Post by none » Thu Sep 03, 2020 8:09 am

This is my homebrew SNES game, Rem.

I have been working on this project for a few months 2019, and dropped it in January. Recently I got interested in it again and I've picked it up again. I'm in the process of changing/expanding many things, I'm going for a science-fiction theme now and trying to make more of a metroidvania out of it.

Note that the demo is kind of unfinished, especially the gameplay itself. It is more like a tech demo and a rough demo of graphical style.

I'm looking for some feedback, please tell me what you think.

If people are interested, I will clean up and release sources later. Also I will keep you up to date here with current development.

Screenshots

Image

Image

Video

https://www.youtube.com/watch?v=8LPThv9SAI0

Rom

https://github.com/rmn0/rem/raw/master/rem.sfc

Sources

https://github.com/rmn0/rem/tree/develop
Last edited by none on Sat Sep 05, 2020 4:59 am, edited 1 time in total.

User avatar
Nikku4211
Posts: 101
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: Rem Demo

Post by Nikku4211 » Thu Sep 03, 2020 8:51 am

Yeah, I'm interested in the source.

I've already played this demo months ago and I thought it was cool, but there's really nothing here to talk about otherwise.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

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

Re: Rem Demo

Post by tokumaru » Thu Sep 03, 2020 9:07 am

I haven't tried the ROM yet, but the graphical style is very unique! I first looked at the screenshots just after waking up, while my eyes were still blurry, and it looked very realistic! I usually lean toward more stylized, colorful graphics, but I like how moody and intriguing this looks!

User avatar
Señor Ventura
Posts: 135
Joined: Sat Aug 20, 2016 3:58 am

Re: Rem Demo

Post by Señor Ventura » Thu Sep 03, 2020 10:05 am

It has graphically some interesting details.

Very clever doing this thing at a tile level to save cpu...


Image
Image


May be the illumination could be emphasized in terms of also project shadows by precalculated animations to implement it at a pixel level and get even some more complex picture.


P.D: Do you have in mind to add enemies?

lidnariq
Posts: 9655
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Rem Demo

Post by lidnariq » Thu Sep 03, 2020 10:20 am

I like the dynamic line-of-sight a lot, but I wish it weren't so visibly tied to the 8x8px grid.

none
Posts: 38
Joined: Thu Sep 03, 2020 12:56 am

Re: Rem Demo

Post by none » Thu Sep 03, 2020 11:02 am

Yes, I'll add enemies, and combat. Not sure about the details yet however. Originally I had in mind making shadow creatures like in ICO, but i don't really know yet.

I have also thought about how to making the lighting more accurate on a sub-tile level, but it just takes up too much CPU time. I don't remember exactly, it has been some time since i last worked on it, but its around 30% of frame time now and I really tried hard to optimize it. DMA is also quite costly because I need to do a full layer update every frame. I only update the first byte for each tile, probably some palette tricks could be done to improve the visuals if I would also update the second byte, but again, to costly.

I also thought about only doing lighting updates every second frame, that would work ok, but I want to keep that option for when I'm adding more features to the engine.

User avatar
Nikku4211
Posts: 101
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: Rem Demo

Post by Nikku4211 » Thu Sep 03, 2020 11:04 am

lidnariq wrote:
Thu Sep 03, 2020 10:20 am
I like the dynamic line-of-sight a lot, but I wish it weren't so visibly tied to the 8x8px grid.
LOL, I'm pretty sure it would take a good bit of CPU power to render this as a bitmap rather than a tilemap since you have much more resolution to render and the SNES' planar tileset formats aren't exactly optimised for software rendering.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

lidnariq
Posts: 9655
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Rem Demo

Post by lidnariq » Thu Sep 03, 2020 11:08 am

Yeah, I really do mean "just make the 8x8 tiles less obviously edged", not "calculate it any more precisely"

User avatar
Señor Ventura
Posts: 135
Joined: Sat Aug 20, 2016 3:58 am

Re: Rem Demo

Post by Señor Ventura » Thu Sep 03, 2020 11:45 am

none wrote:
Thu Sep 03, 2020 11:02 am
Yes, I'll add enemies, and combat. Not sure about the details yet however. Originally I had in mind making shadow creatures like in ICO, but i don't really know yet.
Take a look on this to get some inspiration... i think that your game goes in the same direction.

https://youtu.be/hONIn3xdHP4?t=443
none wrote:
Thu Sep 03, 2020 11:02 am
I have also thought about how to making the lighting more accurate on a sub-tile level, but it just takes up too much CPU time. I don't remember exactly, it has been some time since i last worked on it, but its around 30% of frame time now and I really tried hard to optimize it. DMA is also quite costly because I need to do a full layer update every frame. I only update the first byte for each tile, probably some palette tricks could be done to improve the visuals if I would also update the second byte, but again, to costly.

I also thought about only doing lighting updates every second frame, that would work ok, but I want to keep that option for when I'm adding more features to the engine.
The HDMA is an extraordinary, and really unexplored tool.

Who could think that with it could be done things like this?:

Image



...and subsequently things like this:

Image


But i like your solution a lot, and artistically i prefer this "blocky light candle" for illumination in your style of game, it has a lot of personality.

Your game is awesome with your solution, and probably could get ruined artistically if you go in another way.

calima
Posts: 1186
Joined: Tue Oct 06, 2015 10:16 am

Re: Rem Demo

Post by calima » Fri Sep 04, 2020 12:17 am

Umm, from those gifs it looks like you're bruteforcing something on the cpu that you should be using color math for. Instead of having several versions of tiles you could have a smooth, per-pixel fade out circle.

none
Posts: 38
Joined: Thu Sep 03, 2020 12:56 am

Re: Rem Demo

Post by none » Fri Sep 04, 2020 1:13 am

The HDMA is an extraordinary, and really unexplored tool.
Using HDMA to smooth things out a bit might be an idea I can try out. Using a wavey scroll effect similar to underwater effects for the lighting layer might work.
Umm, from those gifs it looks like you're bruteforcing something on the cpu that you should be using color math for. Instead of having several versions of tiles you could have a smooth, per-pixel fade out circle.
But then I couldn't have the light cast shadows.

Doing it this way wasn't really just an artistic choice, it also has a gameplay reason. I have some non-euclidian level layouts, it is achieved by using portals that teleport the player into a same-looking-but-different room in the level. You can see it in the demo - whenever a statue is triggered, an invisible portal is activated / deactivated. The shadows are needed to hide the parts of the environment from the player that are different. However this part doesn't come across well in the demo, I had some trouble with level design / map making, it was harder than I thought to come up with a nice environment. I am scrapping the level now anyways and I'm trying to improve on that and use the portal feature in a less confusing way.

Another option would have been to use the window registers for masking out the shadow parts, but that would seriously reduce the number of shadow casters you can have and also you only can have hard edged shadows. This solution allows for some rough fake soft-shadow / foggy look which I like better.

nocash
Posts: 1228
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Rem Demo

Post by nocash » Fri Sep 04, 2020 2:53 am

Looking into a Vram Viewer, there seems to be a 2-dimensional array of 16x10 tiles (representing a quarter-circle) for the shadow mask.
But each tile is having only a single brightness (instead having tiles that fade from upper-left bright to lower-right dark).
So you could as well use a 1-dimensional array with 16 tiles, instead of 16x10 tiles.

Or, add tiles that fade from dark to bright within a single tile, that might help to increase the shadow resolution from 8x8 pixels to 4x4 pixels.
But it would require a lot of tiles if you need small shapes that fade from white-to-black in one tile, and larger shapes that fade from gray-to-darkgray.

Apart from the resolution: The tile brightness does change quite abruptly when doing only small steps. Maybe it would help to keep the old_current brightness and then slowiy increase/decrease it throughout the next 5 or 10 frames, until reaching the new_target brightness?

The player animation is pretty good for horizontal movement. For vertical movement (jumps, or dropping back on the floor etc), the upright position of the player's body floating in the air is looking a bit stiff... unless the game is themed around dream-like sleepwalking, then it's just right.

Just gazing at ghe demo video, I am left a bit clueless about the goal(s) of the game. Puzzle-solving to open one or more passages(s)? That's fine, but it could be clearer if or when you have solved a puzzle. Like when having assembled a correct shape: add some color effect (let the shape glow blue for a moment), and/or add some animation to opening passages.

Anyways, the dark-in-dark graphics are looking very cool!
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

creaothceann
Posts: 253
Joined: Mon Jan 23, 2006 7:47 am
Location: Germany
Contact:

Re: Rem Demo

Post by creaothceann » Fri Sep 04, 2020 3:38 am

Could use a map screen (like Super Metroid).

Also, the player could be carrying a light source, e.g. bracelet with glowing crystal, as the cause of illumination.
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10

none
Posts: 38
Joined: Thu Sep 03, 2020 12:56 am

Re: Rem Demo

Post by none » Fri Sep 04, 2020 6:41 am

Looking into a Vram Viewer, there seems to be a 2-dimensional array of 16x10 tiles (representing a quarter-circle) for the shadow mask.
But each tile is having only a single brightness (instead having tiles that fade from upper-left bright to lower-right dark).
So you could as well use a 1-dimensional array with 16 tiles, instead of 16x10 tiles.
This is because of an optimization in the code that is choosing the right lighting tile. The byte that contains the brightness actually only uses four bits for the brightness, the other four bits contain the distance from the light source. I could add those (directly or using a lookup table), but those one or two extra instructions become expensive because it has to be done quite often (once for each tile), so i chose rather to sacrifice some vram / abuse vram tiles as a crude lookup table and also get a bit of variation in the dithering pattern that way.
Or, add tiles that fade from dark to bright within a single tile, that might help to increase the shadow resolution from 8x8 pixels to 4x4 pixels.
But it would require a lot of tiles if you need small shapes that fade from white-to-black in one tile, and larger shapes that fade from gray-to-darkgray.
I've thought about that, it would probably work, but I would need to do some kind of subsampling for each tile to decide which shape tile to use, so it seems very expensive on the cpu side.
Apart from the resolution: The tile brightness does change quite abruptly when doing only small steps. Maybe it would help to keep the old_current brightness and then slowiy increase/decrease it throughout the next 5 or 10 frames, until reaching the new_target brightness?
That's a good idea, however also requires extra computation and seems to be too expensive. I hope that I can minimize that with better level design / choosing better spots where to place the shadow casting tiles. It works better with larger objects.
Just gazing at ghe demo video, I am left a bit clueless about the goal(s) of the game. Puzzle-solving to open one or more passages(s)? That's fine, but it could be clearer if or when you have solved a puzzle. Like when having assembled a correct shape: add some color effect (let the shape glow blue for a moment), and/or add some animation to opening passages.
Yeah, that's definitely true. Map design did not turn out very well. I rushed it a bit back them because I lost motivation in the project and wanted to at least get something finished. I'm redoing the whole theme and i am scrapping the part with the statues completely, and I will make the portal passages more obvious and less confusing to the player.
Could use a map screen (like Super Metroid).

Also, the player could be carrying a light source, e.g. bracelet with glowing crystal, as the cause of illumination.
Yeah, I'll make a map screen. The light source will become an object that you can pick up / drop, maybe a lantern of some kind, maybe it will also be used for puzzle solving or as a decoy strategy when fighting monsters.

User avatar
Nikku4211
Posts: 101
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: Rem Demo

Post by Nikku4211 » Fri Sep 04, 2020 9:35 am

creaothceann wrote:
Fri Sep 04, 2020 3:38 am
Could use a map screen (like Super Metroid).
THIS. I don't know about you, but I don't find having to backtrack because you forgot where you went fun at all...
none wrote:
Fri Sep 04, 2020 6:41 am
...or as a decoy strategy when fighting monsters.
You actually plan to add combat and enemies to the game? I hope we won't have to fight lots and lots of small flying mammals that are hard to see and hard to actually hit.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

Post Reply