Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Post What's on Your Mind

It's been dead for years. They closed it to registration and then to anybody who left it for more than a year. It only had a handful of players in the end.

RS classic was shit really.
 
Spent ages working on an image scaling/sub-pixel aware/colour quantiser/dithering/gamma-correction tool and I quickly finished it today only to realise it takes 20 minutes to process a 240x160 24bit image into a dithered 15bit image and the result looks shit.

Before (left) and after (right) quantisation/dither
nvEHUwy.png


At least the dither's gamma is more correct than what most image editing tools produce.
 
Nathaniel3W":t2eh3m0z said:
I don't know. It looks pretty good to me. Are you concerned that it's too dithered? Does it have vertical bands?
Yeah now that I've come back to it, I think I was expecting too much from a 15bit display. I'm a little too used to 16bit 565 textures being the norm for 3D graphics rendering, so having the dithering be so obvious was a little upsetting considering the 2^15 available colours. But that is 32 shades of red, green, blue as opposed to 256 - so maybe it is actually pretty good.

Still - the 20 minute processing time is insane. I'm too lazy to optimise this properly (the 20 minutes was because it looped the 2^15 about (2^15)^2+(2^15) times over for every pixel in the image - that's well over 1,073,774,592 memory look-ups) and I was expecting it to look a little more like the image on the left. I'll quickly slap it on the Gameboy Advance and see how it displays there. EDIT: Actually I won't, I'm too lazy.

The stray pixels from the BGR aware resizing probably makes the individual pixels look more obvious than what it would be on a BGR display. That left image is RGB optimised so on my RGB display it looks frickin' smooth AF.

EDIT2: Okay I wasn't lazy after all. Made a quick ROM then took photos of the screen to see how each looks.

Standard


BGR Aware


Dithered


Album: https://imgur.com/a/i6PXaB5

Perhaps something is wrong with my dithering algorithm then as it looks worse than both the standard image and the BGR aware image. The BGR aware image is a lot smoother than the standard image, which is a win (look at the detail between the pink and blue plumes of coloured dust at the upper left - there's more perceivable detail in the BGR aware image). On the upper right of the standard image there are some magenta-ish coloured pixels - you can see the blue and red components separated on this photo, whereas the BGR is more likely to push a pixel to either blue or red or remove the problem pixel entirely.

EDIT3: Here's a Dropbox download link for anyone who wants to try this ROM out. It is intended for real hardware. Press (and release) UP for dithered, LEFT for standard, RIGHT for BGR aware, DOWN shows a nice example of BGR aware rendering.

If you do run it in an emulator, press RIGHT or DOWN for BGR aware and notice how it creates some rather shitty looking pixels. These pixels look great on real hardware - emulators don't emulate the BGR pixel arrangement of the GBA (from what I gather) so the benefits will be lost on emulator - unless you're on a BGR monitor running an emulator at 100% size.

One reason to not do BGR aware GBA games is the Gameboy Player - you cannot guarantee the pixel arrangement (or even worse - phosphor arrangement) for a television, so even if you optimise the image to look great on GBA hardware, the moment it's played through a GameCube it will look like ass. Probably should have this as a display setting (some GBA games had display options for displays that are unlit, backlit and TV output).

EDIT4, Electric Boogaloo: You can tell that the GBA has BGR pixel arrangement in these photos by looking at the light bleed on the far left and right sides. The furthest left component is Blue, so blue light leaks there - the furthest right component is Red so red light leaks there.
 
I also thought the BGR image looked best. I thought the colors looked more vibrant, but that could just be a result of your camera (phone?) automatically adjusting white balance or something between photos.

What's the looping for? Does it have to happen sequentially? If you can run 1000 concurrent threads on your GPU, the process would take no time at all.

I am always amazed at the depth of technical minutiae you dive into on your projects. I would never worry about the pixel arrangement of a display; I have crafting recipes to make. Crafting recipes, and also variety of reagents (not so few that everything uses the same ingredients, and not so many that an ingredient is only used for one or two recipes), recipe and ingredient drop rates, balance versus store-bought equipment, variety and cost of crafting tools, and probably other issues I haven't thought of yet.
 
Nathaniel3W":slktrtj1 said:
I also thought the BGR image looked best. I thought the colors looked more vibrant, but that could just be a result of your camera (phone?) automatically adjusting white balance or something between photos.

What's the looping for? Does it have to happen sequentially? If you can run 1000 concurrent threads on your GPU, the process would take no time at all.

I am always amazed at the depth of technical minutiae you dive into on your projects. I would never worry about the pixel arrangement of a display; I have crafting recipes to make. Crafting recipes, and also variety of reagents (not so few that everything uses the same ingredients, and not so many that an ingredient is only used for one or two recipes), recipe and ingredient drop rates, balance versus store-bought equipment, variety and cost of crafting tools, and probably other issues I haven't thought of yet.
I also thought the image of BGR looked brighter, but on inspection I believe it's because BGR is filling the "gaps" between sub-pixels, thus there is less black and more luminosity detail encoded (which was the plan). I took the photos in quick succession with as minimal camera movement as possible.

The looping is going across all pixels of the image, then all colours in the palette to compare against all other colours in the palette - the palette being 2^15 in size. It was all done in parallel for-loops so was taking advantage of all 12 logical CPU threads. It would be an excellent candidate for GPU compute acceleration, but this was a quick test for an idea.

It was a bank holiday Monday in the UK, so essentially a 3 day weekend, I usually spend time researching interesting stuff on the weekends and this one came out of some interesting technology being used in my current project. Some video encoding formats (YUV) encode more luminosity information than colour, just like JPEG image compression, and that got me thinking about sub-pixels encoding luminosity. Another requirement for this project is GPU accelerated font rendering which got me reading about font rendering in general.

I think everyone who has ever taken a screenshot on Windows and then zoomed in on the text has encountered ClearType aliasing, so I looked at this in the same way that YUV/JPEG works with trying to cram more into luminosity than colour. The GBA's low resolution and BGR layout made it a good candidate to experiment with - my first thought was "why does no-one use sub-pixels for image rendering" - and indeed for images that need to be scaled down onto a display (64x64 icon displaying as 24x24) can take advantage of this (they probably don't due to a desire to retain colour "accuracy", even though accuracy is lost from the down-scale and humans aren't as sensitive to colour as they are luminosity).

The dithering exploration came from the fact that the GBA has a 15bit display, rather than 24bit. I think that aspect was a failure.

None of this is usable with my current project as it is video encoding related - you cannot guarantee the pixel arrangement of everyone watching a video (it could be a PenTile display on a smartphone).

Here's another sub-pixel demonstration with my main-boy the WhatsApp bird:
SZxjPDk.png
1MiwHTA.png
PwQmWbt.png

Left is standard, right is sub-pixel.

Notice how on an RGB monitor at 100% scale the "eye" of the bird looks more rounded with the sub-pixel version (move your face closer to the screen), but generally the two images look almost identical. The zoomed-image shows the RGB awareness difference.

EDIT: Here's a version with the sub-pixels set to be 100% pronounced (Windows XP era font smoothing was like this).
pKVrpbY.png
djgTCCl.png


The eye on an RGB display should look roundest on this version - however the colour shifting is now visibly obvious.

On a non-RGB display this bird would look like ass with crap colours. Here is what it looks like made aware for a BGR display:
INfVaHV.png

This should look terrible on an RGB display, simulating how crap the other images will look like on a BGR display.

ANYWAY time to get back to actual work.
 
I had to come home early from one of my trips because I got a big fat envelope from the district court reminding me of jury duty and a questionnaire I had to fill and mail back by tomorrow. There's no chance of someone settling out of court with this one, it's a pretty big case. I'm not even sure if I'm allowed to say that much. But I guess they still have a jury selection process the day of, so I might still get out of it then. Part of me wants to get picked because I'll get paid, but also out of curiosity, but mostly for the money.
But I'm going to be dreading it all week.
 
Trying to see if I can just upload mp4s to Imgur. If I can, it will save me a couple of steps: exporting gif, optimizing, hosting it on my own website. I can see the image on Imgur. Let's see if it shows up here.

Edit: Deleted broken images

It looks like bottom link shows up, but it's not animated... Oh well, I guess it's back to making my own gifs.

If you really feel like watching a loop of little marching pixel anime characters you can check out https://i.imgur.com/ZxIBET0.

Edit:

MagicWeapons_optimized.gif
 
And the second hinge for my laptop screen broke. The first one broke about a year and a half ago. I've had this laptop for about 8 years now. Luckily I ordered replacement hinges last week since I suspected it wasn't going to hold up much longer.
The only thing holding it up at this point is a piece of plastic and my legs.
 
Had to use a dremal and drill out 2 stripped screws.
Everything's together now but the volume buttons above the keyboard arn't working now. I haven't put the screws in yet at least.

Edit
I ruined the ribbon to the buttons. I can live without it. But it's causing some power issues.
 
coyotecraft":3ni7mxj8 said:
Is this the end of the line for old coyotecraft? Tune in next week and find out.
thats rough, far out

i carry an amd and intel linux boot drive on me in my wallet just incase i run into that lmao
 
Nathaniel3W":2lcoo83m said:
Many, many years ago I used to carry a 3.5 inch bootable floppy disk with all the tools that a 1.5 megabyte disk could hold.
For some reason I find this to be the nerdiest thing I've read in the past few years
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top