(2023-05-21) Pix64 in the browser: it was boring but necessary -------------------------------------------------------------- Yes, https://bropix.luxferre.top/ now has a port of Pix64 to HTML5/JS. Well, algorithm-wise, it's more of a port of AwPix than the original idea, and sometimes it even handles collisions MORE correctly than the original ZappedCow's Pix64 v1.2 in .NET. I won't get into the details of what changes I had to make to get it to work correctly with the keyboard, mouse and touch input, or how I made the cart information available in the URL themselves, because you can look all this up in the source code itself, I didn't minify/obfuscate anything. I also won't stress on the changes needed to create a working KaiOS port out of this (and I guess you know that its creation is inevitable at this point). What I do want to stress on though is the kind of impact that popularizing such platforms can have. You see, game programming is generally a complicated thing, and always has been. Especially if you want to write a good game, not some mediocre trash pumped out by schoolbois every day using ready-made frameworks. Writing a good game involves knowledge of mathematics, logic, programming itself and graphic design (unless the game is purely text-based, but even then you need to think of the UX). And even before all that, you need a well thought-out idea of what's gonna happen in your game from start to finish on every possible path the player can take. An yes, nothing of this can be skipped, no shortcuts can be taken. Kinda. Because there are some tools that make basic logic and art design a bit easier, and there even are some tools that claim to ease the programming part of this by implementing "visual programming" paradigm. Well, guess what, most of them fail, because representing the concepts at the same level, just in a different form, doesn't decrease the complexity. You might as well just put C or Python statements into rectangular blocks and connect them with a bunch of arrows. No effect on the result. Pix64, on the other hand, does "visual programming" right. Unlike the object-oriented approach imposed by most modern programming languages and game engines, Pix64 imposes the object-first approach. You don't have a way and don't ever need to describe an object and then determine how it would display, you just draw this object and then determine how it would behave by assigning a particular color and shape to it, and everything else is handled by the engine itself. Yes, this kinda limits the variety of interactions you can have in your game, but, at this cost, the complexity is drastically reduced down to the point that you no longer need to know a single programming language and, what's even more important, you only need to think of the interaction logic purely visually. This fact makes game creation accessible to much broader spectrum of people and makes Pix64 much higher-ranked among other "visual programming" tools in terms of the ready implementation of any task being much closer to the initial description of the task. You draw the game and only alter some details to make it work. Heck, a properly drawn Breakout playfield turns into a playable Breakout-like game here! This alone was enough for me to see that the potential of this thing is enormous and to start all my porting efforts. If I were in charge of the further Pix64 specification development, how would I improve it? Well, first and foremost, I'd lift the 64x64 limit on the playfield and would allow 128x128, 192x192, 256x256 and so on. This would allow to put much more logic into the carts. Second, I'd use the two remaining colors - blue (#0000ff) and magenta (#ff00ff) - for some new mechanics. For instance, blue would denote a sprite generator that would emit a new arrow ("out of the blue", heh) from its side when being hit by a sprite from the opposite side, and the arrow would be of the same color that hit it, and magenta might be a "sprite portal" - when any non-wall sprite touches it, it disappears and appears from the other side of any _other_ randomly chosen portal, or the same one if it's the only one. These two color additions would allow to implement shooter mechanics and more complex puzzles, as well as introduce more randomness to the games. However, even in the current state, Pix64 is just fine and definitely has its own niche and appeal. It's much more honest than any other "fantasy console" out there, and much more high-level too. I hope my ports will help to spread this wonderful idea to an even wider audience. --- Luxferre ---