Roguelike port?


#545

Not differently colored, just lighter on the ramp. Let me explain.

So you have tile at X,Y that is light casting. Let’s say it casts light at a distance of 1. Color ramps exist in arrays/tables. S is the standard color. Anything lighter is >S, darker <S.

I am going to put it in lua. In the most basic option (including the object itself being lit up by its own light) it would go something like that:


for ix=X-1,X+1 do //1 is distance
 for iy=Y-1,Y+1 do 
  tile[X][Y].color[1]=S+1 //make it lighter by one step on the ramp
 end
end 

Then we can add some randomness to it to simulate flickering and such.
Does that make sense?


#546

im unsure how these ramps would fit with a color pallet unless everything is in mono color


#547

I am not sure either, but @jonne seems to have it figured out.

I can see an array of colors 0-15 for the basic palette, then a array for each of the colors with ramps inside, where the basic color sits in the middle.

But this is just me speculating, light is something to be done later anyway, so I am sure @jonne will explain that soon (but no rush, we know you are busy).

I will add light system to the doc and update it there once we get some more info.


#548

oh, well thats easier explained your basically swaping one color of the pallet out
but you have to be swapping the pallet color every tile due to draw order
this will work witout the buffer but we need to map out the luminescence of every tile a type of tile buffer

yes ok i think i got some sort of solution for it, but it would not involve color temperature
it would just intensify the tile color itself so a blue wall will become a bright blue wall next too lava not a magenta wall


#549

Look at this Wolf demo. It only has 16 colors. Look at the walls. You will notice that different facing walls are different darkness. This is posible with only 16 colors, if you choose wisely. With 64-256 colors there is absolutely no problem doing the same in a much finer way.


#550

That looks awesome. Hopefully the code behind it is easily portable :slight_smile:

I am almost done with the basic 16 colors. I have one more spot I can fill (instead of color 1 which will be a shade of one of the other colors). Most of the colors are pretty saturated, because they are meant for the most crucial things that need to be highly visible (monsters, items etc.) I am planning on using some of the ramp colors for things like ornaments.


Before I will start working on ramps, I need to know how many ramps we want. I am planning on hue-shifting some of them for better variety.

I am thinking of 2 darks and 1 light variation of each color. That would bring us back to 64 colors. Everyone ok with that?

For those who like this such a thing, here’s the generated analysis (I think it includes pure white in it as well, because grafX2 was misbehaving).

If no one will have any objections on color choices and quantity, I will do the ramps by end of day tomorrow.

Edit: Fixed the sentence that was broken by insisting the screenshot.


#551

That color palette is looking AWESOME. Great choices. As for color 1 it should probably be another darker color. If I were you I’d lighten you 14 (purple) just a tiny bit and make color 1 a darker shade of that.


#552

Thanks! I am glad you like it.

Yeah, I think another purple, but with more red might be a good final color. It’s definitely a color that is missing from the palette, but I am not sure how it could be used in our game.

Looking at the generated graphs, the palette can use something in a similar brightness, but less saturation to the light blue, just to balance the perceived brightness.

I am also toying with decreeing the overall saturation a bit to make the whole palette more moody, but I want to be safe that things will be visible and recognizable on the physical screen.

@jonne - If I sent you a 16 color .png or .bmp in 220x176, is there a quick way for you to display it on the screen and report back (just display a graphic, no movement or code needed)? This way we could test playability dependent on saturation quickly.


#553

Ofcourse. By loading from SD card directly to screen. This gives me a good reason to finish that bit of code. Its needed in any case quite soon.

@VonBednar : I’d like to comment something on colors. And this is something that is just my opinion and doesn’t have to affect anything. But since you clearly are an artist, perhaps you can forgive a fellow artist a bit of artsy-fartsy nerdiness.

In addition to adding color, I think the color scheme needs an overall theme. Afterall, this is the dungeon of the undead. Things are gruesome and slimy. Healthy, oxygenated and pure red blood is rarely seen around here, except when spilt by an unfortunate mortal passing by. This should be reflected on the color theme. Colors should be “sick” and “bent”. It is the absence of colors from the spectrum that is interesting and conveys the atmosphere. You see this in old arcade/amiga games that heavily focus on 1 or 2 primary colors, to convey “robotic” or “beastly” surroundings.

Don’t take these too literally, but I wanted to convey graphically what I mean.

Full spectrum:

Absence:


#554

Hey, never be sorry for giving critique or advice (especially when it comes to art!). I know exactly what you mean. I was thinking of choosing a handful of main colors (out of the 16) and with their shades they would make the bulk of the dungeon. Then a different set (from the same palette) for goblin caves and so on. I think I also might have swung too much into zx spectrum territory with the colors :wink:

I believe Psygnosis on Amiga was pretty known for those almost-monochromatic games. I think it would be awesome if we can pull if off that way, but I am concerned about how readable it would be on the screen.

I will make some screen mockups, in the saturated palette and one that is more muted and less “technicolor” We can then display it on the actual screen and we will see how they work (it is quite possible that the saturated palette will be too much “in your face” as it kinda is when looked at 200-300% scale on a PC). If the muted palette works well, we can build a palette around it. For a palette themed around a dungeon style, we can get away with 8 basics + shades.

Edit: Do you have some script to generate the gradient with absence of color? That could come in handy :slight_smile:

Edit2: I made a quick mockup with some sickly, damp colors (a lot of yellowish-greens whenever possible).

OLD

NEW

I think he more muted palette looks better (altghough it could benefit from a little bit more light against the bg), it’s just a case if it will be easily distinguishable on screen. What you guys think?


#555

I think I will try to test the colors on screen and then report back


#556

Great!

Test this one as well. It is a tad lighter version of the muted palette.

Edit: I tweaked it a bit more. I think that is not too muted/monotone but still has a decent theme. This has currently 9 colors including black and color 1. What you guys think?

One more Edit:
After talking to some roguelike devs, I have also experimented with multi-color sprites. Take a gander:

Apart from the fact tat the brown needs some tweaking, I think making them multi color makes them much more distinguishable at a first glance. Of course it all depends how it will look on the actual screen, but let me know what you think!


#557

@VonBednar

So its a bit difficult to explain the results. Taking a phone camera photo of the screen doesn’t really match what you see with your eye. The situation is actually a bit better, but same problems do appear, as are visible in the photo, just to a lesser extent

  • matching light & dark pixels in same character does not work well. The skeleton spearman’s shield and spear “disappear” into the background. The player character is much more legible, and I have feeling that this much contrast in 1 character is a distraction, not an improvement

  • the floor is almost invisible

  • white pixels are like “floating” 1 mm higher than the rest, for example in the vase

  • the sword looks really good

So what I recommend is keeping the luminosity of adjacent pixels in 1 character quite close, even if they are different color. The sword looks nice, the vase looks awkward. I would also decrease the contrast between walls and the floor, I actually think the “CGA” floor created more appearance of “space” than this

Overall the TFT display has a more limited range of dark to light than a computer display.

Actually, let me edit your graphics to look like they do on the screen, judging by eye:

Thi image on the right is a fairly faithful representation of what happens on the screen. You have a lot of subtle differences between floor and walls that are lost. The “yellowness” of the white is completely lost on screen, as well as the “brown” tones of the wall. This is not really because it is a crappy display, but because the 565 (5 bits for R, 6 for green, 5 for blue) reduces the gradient of red values from 8 bits (256) to 5 bits (32) and that has a massive effect on subtle red differences


#558

Just a quick test:

I think you probably have to use 2 pixel colors in the walls and the floor to get the brown to pop. The gamut of the red color component is so limited. I will try this on the screen in a moment.


#559

This gives you almost the thing you were looking for, in terms of brown. You need to be quite heavy on the color. You can see clearly the weapons on the skeletons and it is very legible (and looks mighty good) with colors like these. I tried to take a photo but it doesn’t match to what you see.


#560

Thanks for all this info @jonne! This is awesome!

It seems with the enemies we are moving towards the original, more saturated/prime colors. That is not a bad thing by any means and it gives me a ballpark to shoot for. I will make sure the luminosity is similar in the colors we use together.

As for the floor, I wanted it to be almost invisible, just giving a hint of texture (which seems to be doing on the picture of the screen you attached). This is so when we have sprites on it with solid black bg, it is not as noticeable that the floor texture is missing :wink:

I will experiment with adding a little detail to signify where the tiles are, so a player can easily judge how many steps they need to take (probably just adding the corner dot as in CGA version, it works well and is reminiscent of ASCII).

On the technical level, it seems that we will only have a change of color visible if we increase R,G or B by 8. I assume any difference of less than 8 would be rounded down (so a value of 39 would probably end up as 32). To keep it safe, I will try to get colors with RGB values divisible by 16 whenever possible.

Lastly, in your generated examples there seem to be multiple colors per tile on walls (mainly gray and brown that create a bit of a random pattern). Is this due to jpg artifacting or should I shoot for a dither (I assume dithering won’t blend colors as it is a LCD screen after all).

What I will do is go back to the original palette and tweak it more towards the sickly green wherever I can and we can take it from there.

I think the multi color enemies (with tweaked brown) look pretty neat and draw your eye to them, I am leaning towards leaving them multicolored. Opinions @jonne, @adekto, @trelemar, @wuuff?

Edit:

Here’s some updated colors. Those are very close in luminosity for all the non-background sprites (with the exception of “white” which is obviously a little higher on luminosity scale). Those colors should technically display correctly in 5bit (all RGB values are divisible by 8, majority of them, by 16).

I know that the screen looks quite yellowish. Should I go with more generic colors instead of the sickly variety?
We can always revert to the original that has a bigger hue spectrum.

Edit2: Looking at it zoomed out like that, I am not a fan of the yellowish look. Here’s one using the original palette for comparison.

I think it looks much better. It has much stronger colors so pokitto screen should handle them well (we can also tweak them to have RGB values divisible by 8 or 16).

I vote for this palette (with some potential tweaks to accommodate for the screen changes), but I want feedback from you guys first.


#561

You’re doing a great job, but this last iteration looked really too yellowish, to me. The original is much better. Maybe the player could be full white with red sword. That light yellow looks terrible to me.

Here how many color are you using? Is there place to make some palette shifting to darken/color some area?


#562

We are planning on palette shifting (up and down, for light and shadow and field of view). I am shooting for 16 basic colors. Once we zero in on those, I will create ramps for them. I am thinking of 64 colors in total.

I haven’t done the player character yet. The yellow character is just a placeholder. I am was thinking of making 2 colors + black for character sprite and either let the player or character class decide on the colors.

I think the “original” palette would work well, even if we need to tweak it a bit. It has a bit of ZX spectrum vibe thanks to high saturation.


#563

With 64 color there’ll be plenty of room for some special effects (Water,Lava, Fog of war, Smoke, Lights) like in Brouge.

Color and class, and color on item power will be nice. Easy to spot and easy to upgrade. It will be a great rouguelike!


#564

Yeah, brogue made me request the extra colors mode :smiley:

I was thinking of using color for item power, but not sure how to go around it yet. Recolors might look a bit odd, so maybe add a 1px border around the item. That’s to figure out later :stuck_out_tongue:

Thanks for all your feedback!