until you quacking explode the game, yeah. A creative… win condition.
Cosmo Myzrail Gorynych
Creator of
Recent community posts
You’re mixing up RGB space with sRGB gamut. Let me explain: a gamut is what a device (a screen, a printer) can display, and it varies a lot. And most screens that are just a couple years old cannot display all RGB colors — and compensate it with reduced saturation, lightness, or by shifting tint. You can open an image of an HSL circle/square and you will notice bands and strange luminous lines appearing on different screens at different places, if your eye is keen enough. (HSL is based on RGB color space, so the representation is valid.)
sRGB is a standardized gamut that is used as a baseline for most digital design. By using sRGB only, you make sure the colors will look the same on each device (relatively to each other, as average tint and lightness of each display will still vary). To make an image fit into an sRGB gamut, you will need to desaturate some colors and/or tweak their luminosity — and highlighted “problematic” colors are those that need such a tweak. My app decreases saturation to preserve luminosity and hue; other apps will change other properties to preserve another ones. Just one method of many.
Why Aseprite and PNG display colors not like the ones in the app? Because they can’t. And if the colors are not reduced to sRGB on export, they will look wrong in many other cases in a, let’s say, in an opposite direction.
Now, RGB space itself also cannot display all the possible colors that humans can see, is linear when human vision is not, and is just awful when interpolating colors — which is a staple in palette making and color gradients. Thus new color models were invented. The real goat nowadays is okaylch, which is the improvement of lch (luma-chroma-hue). My app uses lch, which is still perception-correct but a bit harder to use. Not the real problem for end users.
Most apps and formats still support RGB space only, though, which includes PNG image format (and many others!) and Aseprite. The real colors my app operates in are in lch format, not hex format with the leading #
. lch works on the web, and in some image-editing apps. “Linear RGB” codes in the right column of the app were also invented to be used in 3D engines and rendering software, but it is still linear, though it can display brighter colors than RGB white, as well as brighter reds, pinks, blues, etc., which are a must have in emission/reflection display. These are supported in Unreal Engine for sure and probably in other 3D-related thingies, too. p3 is an Apple-invented older take on the problem and support for it can be found in Apple-made products and some other 3rd-party apps.
I really would like all this to be simpler, but color, behind the scenes, is not simple at all. There will also always be a gap between printing software and designs for digital displays, buuuuuut it’s another whole separate topic.
This is an interesting project! Thoughts in no particular order:
- Would like the main hero speed to be higher. (Shift is not enough. 😩)
- Mass mouse hysteria due to… placebo was both disturbing and hilarious
- I understood the meaning of the game’s name only after chatting with a dog in the ending twice.
- Had to look into source code for the password 🙈 I guess it’s connected with the (mild spoiler ahead) the “alphabet dog” and the watchers? Was too lost to check that.
- The torus world was sooo confusing to me and I kept getting lost and coming to the “noises behind walls” shed again and again 🤦🤣
- D O U B L E D A T I N G
- Many characters left so many open questions about the world, and the ending talks about some interesting and serious topics that would be cool to be talked more about in the main map.
TL;DR: it’s good!
Hey stmn, idk whether you will update this tool, but I at my ct.js game engine have a solution for font blurriness.
The easy way is rendering the font’s canvas at, say, x4 size and downscaling it by drawing onto another canvas while disabling image smoothing. (MDN docs.) You can also access ImageData and threshold the alpha-channel to remove the remaining blur.
The hard way (that I use in ct.js) is parsing the font file with Opentype.js and drawing the symbols as paths. This eliminates the symbol blurriness problem, but has another issue with 1px-wide lines as they get broken, so I firstly draw everything at x2 size and then downscale it. The results are then perfect and don’t require further filtering.
Hey, AniNovo!
New ct.js version will come out in the nearest days. Maybe today?! In that version, bitmap font rendering issues are fixed, and you will be able to use them more easily, though they don’t support outlines. But you can pick an already outlined font. (Like Kenney Blocks.) Buttons and textboxes will have a checkbox to use bitmap fonts, and for regular labels, there will be a new base class specifically for pixel-perfect text.
Stay tuned~~
Tracert:
PS C:\Windows\system32> tracert itch.io
Трассировка маршрута к itch.io [45.33.107.166]
с максимальным числом прыжков 30:
1 2 ms 1 ms 1 ms 192.168.189.37
2 60 ms * 60 ms 10.241.253.19
3 107 ms 66 ms 75 ms 10.241.253.30
4 781 ms 94 ms 62 ms 10.241.255.32
5 61 ms 63 ms 60 ms 10.241.255.35
6 61 ms 64 ms 67 ms 10.241.255.24
7 69 ms 63 ms 67 ms 10.241.17.254
8 68 ms 60 ms 68 ms 172.25.242.32
9 65 ms 68 ms 68 ms 172.25.129.175
10 75 ms 62 ms 60 ms 185.211.156.227
11 353 ms 700 ms 77 ms telia.inet2.ru [85.112.122.15]
12 62 ms 59 ms 62 ms mow-b5-link.ip.twelve99.net [62.115.142.176]
13 83 ms 112 ms 92 ms sto-bb2-link.ip.twelve99.net [62.115.141.22]
14 128 ms 102 ms 96 ms kbn-bb6-link.ip.twelve99.net [62.115.139.173]
15 202 ms 185 ms 358 ms nyk-bb2-link.ip.twelve99.net [80.91.254.91]
16 198 ms * * nyk-b13-link.ip.twelve99.net [62.115.135.163]
17 172 ms 174 ms 186 ms akamai-ic-372768.ip.twelve99-cust.net [62.115.50.15]
18 175 ms 174 ms 176 ms ae2.r01.ewr01.icn.netarch.akamai.com [23.203.154.36]
19 192 ms 229 ms 196 ms ae19.r01.ord01.icn.netarch.akamai.com [23.193.113.37]
20 659 ms 491 ms 191 ms ae0.r02.ord01.icn.netarch.akamai.com [23.32.63.81]
21 245 ms 247 ms 245 ms ae4.r02.sjc01.icn.netarch.akamai.com [23.32.63.27]
22 283 ms 238 ms 253 ms ae2.r12.sjc01.ien.netarch.akamai.com [23.207.232.41]
23 * * * (Translation: request timeout) Превышен интервал ожидания для запроса.
24 * * * Превышен интервал ожидания для запроса.
25 * * * Превышен интервал ожидания для запроса.
26 * * * Превышен интервал ожидания для запроса.
27 * * * Превышен интервал ожидания для запроса.
28 * * * Превышен интервал ожидания для запроса.
29 * * * Превышен интервал ожидания для запроса.
30 * * * Превышен интервал ожидания для запроса.
Hey, I can no longer sell on itch.io due to all that political bullshit between Russian and the rest of the world, thus all payments are disabled on my whole account, with free products available as is and paid ones having no downloads. I’ve also been distributing this game through a publisher, so I don’t know details about Groupees bundles. Don’t you also have a Steam key??
But for simple logic expressions like the one you mentioned, this is just something programmers are expected to just learn early on.
Or they simply don’t question it at all. Of course, when in doubt, you would use parentheses, but otherwise, statements in CoffeeScript follow the logic of regular speech. if not invincible and hp <= 0
reads naturally and evaluates in an intuitive, expected manner.
There is little challenge in walking in circles. It was more a puzzle (remember about the medallion, understand what is needed to defeat ghosts) than a challenge, as ghosts are easy to dodge as they tend to walk into each other and form a small blob of death.
And as it still has a puzzle element, I would not add a skip button. But yes, something must be done with this part of the game as I do see how it can disengage people. Maybe you can make ghosts more interesting instead.
Again, This game is almost 4 years old and doesn’t reflect the contemporary API. Learn from the built-in ct.js demos or ask questions in our Discord server! https://discord.gg/CggbPkb
This game is almost 4 years old and doesn’t reflect the contemporary API. Learn from the built-in ct.js demos or ask questions in our Discord server! https://discord.gg/CggbPkb