Rem Demo
Moderator: Moderators
Rem Demo
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
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
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
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.
Re: Rem Demo
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'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.
Re: Rem Demo
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!
- Señor Ventura
- Posts: 233
- Joined: Sat Aug 20, 2016 3:58 am
Re: Rem Demo
It has graphically some interesting details.
Very clever doing this thing at a tile level to save cpu...
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?
Very clever doing this thing at a tile level to save cpu...
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?
Re: Rem Demo
I like the dynamic line-of-sight a lot, but I wish it weren't so visibly tied to the 8x8px grid.
Re: Rem Demo
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.
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.
Re: Rem Demo
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.
Re: Rem Demo
Yeah, I really do mean "just make the 8x8 tiles less obviously edged", not "calculate it any more precisely"
- Señor Ventura
- Posts: 233
- Joined: Sat Aug 20, 2016 3:58 am
Re: Rem Demo
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
The HDMA is an extraordinary, and really unexplored tool.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.
Who could think that with it could be done things like this?:
...and subsequently things like this:
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.
Re: Rem Demo
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.
Re: Rem Demo
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.The HDMA is an extraordinary, and really unexplored tool.
But then I couldn't have the light cast shadows.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.
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.
Re: Rem Demo
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!
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!
-
- Posts: 611
- Joined: Mon Jan 23, 2006 7:47 am
- Location: Germany
- Contact:
Re: Rem Demo
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.
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
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
Re: Rem Demo
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.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.
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.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.
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.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?
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.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, 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.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.
Re: Rem Demo
THIS. I don't know about you, but I don't find having to backtrack because you forgot where you went fun at all...
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.