D/A5: Scaling pixel art, opportunity to help

Started by Simon, November 26, 2015, 04:26:15 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

Hi,

I need nicely upscaled versions of the Lix menu graphics!



^ Old file from A4/C++ Lix.



^ Work-in-progress 2x file from D Lix. This image has been rescaled manually. The scaling is not finished yet: the '!?' is still nearest-neighbor-scaled, not smoothed out.

What's to be done: Make nicely scaled images of all the GUI button stickers. See: List of all image files, but some of these needn't be scaled. Edit after Minim's reply #1: List of files that need scaling.

I would like upscaled versions at 1.5x, 2x, and 3x. Maybe 4x too, for good measure.

Why: D Lix is still far from finished, but one of its huge improvements is support for arbitrary resolutions (screenshot!). The graphical user interface is scaled accordingly, and more of the map is visible without zoom.

If a user with a massive screen loads the game, the GUI elements will occupy a similar ratio of the screen as in the C++ 640x480 version. They need much bigger graphics on them, scaled 3x or even 4x, to look well.



^ Otherwise, we'd get tiny symbols on huge buttons!

How to help: It can be done manually, but it's very tedious. There are tools to scale pixel art with various smart algorithms. A 1-minute google search hasn't brought up binaries of that Windows binaries for the project it's forked from, may be useful for you guys. I don't have Mono set up readily to build/run C#.

Making these images is not my top priority. But they need to be done. If you'd like to help, you can look into this! I'll be here all the time for any questions, or online in IRC.

Maybe making 1.5x versions is hardest. Pixel art scalers tend to be optimized for integer scaling.

I would fix the image's frame format myself from upscaling. (= I don't care if I get frame borders that are thicker than 1 pixel.)

-- Simon

Minim

So, basically you're saying that you need bigger versions of all the frames shown in this image? I'd probably give it a try, as I'm free today and tomorrow for most of the day.
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

Simon

Ahh, no, the Lix spritesheet need not be scaled. Sorry for my loose description of what's to be done. :lix-trouble:

Here's the precise list of files to be scaled:

api_numb
checkbox
edit_flp
edit_hat
edit_pan
game_arr
game_ico
game_nuk
game_pa2
game_pah
game_pan
game_pau
game_spi
lobby_sp
menu_chk
prev_ico
skillico


-- Simon

Simon

#3
[09:47] <geoo> SimonN: isn't it enough to just have a 4x scaled image, and then scale it down accordingly?

No, not enough. (Smartly upscaling too much, then automatically downscaling by a simple algorithm) is worse than (smartly upscaling to the wanted size), especially if the downscaling is not a division by an integer.

[09:48] <geoo> btw, the magnifying glass in your latest screenshot is missing its shadow in the middle

Yes, bug, and it annoys me every time I look at it. :-] It's in a file that needs work anyway, so I haven't filed an issue in the tracker.

[09:49] <geoo> and then there's the question about the paws, they are cute but completely unintuitive
[09:50] <geoo> two bars are the usual symbol for Pause, which changes to a triangle when the game (or music track, more commonly) is paused


Yeah, cuteness never excuses sloppiness. Two vertical bars on such a large button are boring, but a universally known symbol.

The counter-argument is that >= 95 % of Lix users have played Lemmings. For these, the paws are way more idiomatic and recognizable than the vertical bars. The counter-counter-argument is that only Lemmings fanatics have stumbled onto the game so far, because it's nowhere advertized.

[09:51] <geoo> hmm what about vector graphics, actually? but that's probably to complicated

Yeah, I consider it too complicated -- for now. I'm mostly satisfied with the existing pixel art, and smart scaling algos are worth a shot.

-- Simon

Minim

Quote from: Simon on November 26, 2015, 08:21:24 AM
Ahh, no, the Lix spritesheet need not be scaled. Sorry for my loose description of what's to be done. :lix-trouble:

Here's the precise list of files to be scaled:

api_numb
checkbox
edit_flp
edit_hat
edit_pan
game_arr
game_ico
game_nuk
game_pa2
game_pah
game_pan
game_pau
game_spi
lobby_sp
menu_chk
prev_ico
skillico


OK, Thanks for clarifying.

I copied all the images into a folder, but there's one I'm not sure about. Has this image below been neatly upscaled already?
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

Simon

Quote from: Minim on November 26, 2015, 09:31:11 AM
there's one I'm not sure about. Has this image below been neatly upscaled already?

This has been used for a big, fat button, and is not upscaled. (Occurs in the editor's terrain-adding menu, as a paging button in a directory with many tiles.) Especially in the editor, I don't know if I'll use all the existing graphics as they are, or do things differently.

If you'd like to concentrate on images with immediate effect in the already-programmed portion, skillico and game_pan might be the most interesting ones. The user interface here will likely stay very similar to the familiar one in C++ Lix.

My half-hearted attempts at manual rescaling, maybe there's something reusable there. But scale200/skillico, for example, is a pure nearest-neighbor upscaling, and could be scrapped immediately when something smooth exists.

-- Simon

namida

Semi-off-topic, some of these filters are very nice. o_O I might make use of these for remastering my graphic sets...
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Simon

namida: Looking forward to your experiments. If you build from source, post Windows binaries. :lix-cool:

-- Simon

namida

There's already-built binaries for the project it's forked from, and that has enough nice filters to keep me happy. Now, if I can find a way to integrate them into NX2 itself, that might be another matter... and to be quite honest, I'd quite like to do so if not too difficult.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Minim

Progress-wise, I'm slowly getting through 2x. Just before I do skillico (And some of the boxes in the game_ico file as well) I have a question to ask. Have you got nicely upscaled Lix? I'm just not sure whether there is any point neatening out some of the Lix that appear in these two files.
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

Simon

#10
Quote from: Minim on November 27, 2015, 06:56:11 AM
Have you got nicely upscaled Lix?

No. The pixelled version with most details for lix is the 1x version of skillico.

Are you concerned with how the character should look like ideally? It may well happen that smoothening out the nearest-neighbor upscaling throws up such questions.

Quote from: namida on November 27, 2015, 06:49:21 AM
There's already-built binaries for the project it's forked from

"There exists on the internet" => link to the goodness. >_>

Haven't installed Mono here, so it doesn't run in Wine for me, but might be super useful for Minim.

Quoteand to be quite honest, I'd quite like to do so if not too difficult.

If you're okay with implementing large lookup tables, go for it. Sounds very useful if you want to target terrain, not only a finite number of GUI elements.

-- Simon

Minim

Quote from: Simon on November 27, 2015, 07:14:09 AM
Quote from: Minim on November 27, 2015, 06:56:11 AM
Have you got nicely upscaled Lix?

No. The pixelled version with most details for lix is the 1x version of skillico.

Are you concerned with how the character should look like ideally? It may well happen that smoothening out the nearest-neighbor upscaling throws up such questions.

Not at all. I just thought that you were concerned what the character looked like and neatened them out already. I thought I'd ask just to prevent any confusion.
Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

Simon

#12
Minim: In case you've done a few frames already, would you mind sharing some early results?

Some finer points, I haven't pointed them out in detail. I'd like to make sure we're on the same track with them.

E.g., I'd like to retain the original's palette, thus not use antialiasing. (The colors are replaced at runtime by a table lookup.) Shadows should keep their relative thickness, not stay at a thickness of 1 pixel. Adding detail is OK, maybe even appreciated with lix-depicting buttons. There is a second, darker shade of hair (see lix spritesheet) that is also perfectly OK in the skill buttons.

-- Simon

Minim

I've actually managed to whizz through all the 2x files (the edit_pan was without a doubt a real time-waster. The skills button was too complicated apart from the bars, I left that one out). So I can show you all my results below inside this attachment.

I've decided myself to keep the shadow's relative thickness and keep the palette identical. (BTW why are there green replicas in the game_ico image?)

OK, here goes nothing. Enjoy my gallery.

Level Solving Contest creator. Anybody bored and looking for a different challenge? Try these levels!

Neolemmix: #1 #4 #5 #6
Lix: #2  #7
Both Engines: #3

Simon

#14
Excellent -- thanks for this work!

More detailed comments will follow once I'll examine them closer. If you're unsure about tiny details or have skipped a few frames, no problem. This can always be fixed later, or I'll make fixes myself.

Green frames: These are displayed when the player has won in singleplayer/is in first place. They could be autogenerated from the grey frames, but they're so few that I didn't write extra code for them.

-- Simon