PDA

View Full Version : Grayout -Simple Linux freeware game



Jonax
07-03-2022, 07:39 AM
Hi guys. I just made a first Linux (Debian) freeware. Compiled with Lazarus.
A variation of the classic floodfill game.
Animated gif and link to website with download link below.
(edit: the animated gif seems to have been converted to simple jpg)

Very modest system requirements. Even runs well on virtual machines if you fancy those.

The bad news is I haven't figured out how to create installers for Linux programs.
The good news is the whole program is just one file so it shouldn't be too hard to handle anyway.

Feedback is welcome!

Enjoy!

https://www.jonax.se/enzip/Grayout288B.gif

https://www.jonax.se/downloads.php

SilverWarior
08-03-2022, 07:36 AM
Nice game concept. I don't think I never played such game.

Since you are using Lazarus and LCL from what it looks like I'm guessing you could make Windows version of the same game with minimal changes. If you don't have Windows computer you can easily check and debug most Windows programs in Wine environment.

I have also edited your post to link to the external image from your web page in order to preserve the GIF animation.

You can do so in the future yourself. How? When choosing to Insert image, you choose "Add from URL" and uncheck "Retrieve remote file and reference locally".
If you add your image from computer or keep the "Retrieve remote file and reference locally" checked the image is always downsized and converted into JPEG. This is done in order reduce the storage usage on the server that PGD site is hosted from. Without this we could easily ran out of storage space.

Jonax
08-03-2022, 06:00 PM
Thanks for help and input SilverWarior.

Indeed a nice game concept but I am not the inventor. There are plenty of similar programs around out there. I just made a few improvments, in my opinion. Also this type of program is pretty quick to code, compared to many of the more ambitious projects which tend to never get completed.

As you point out the program can also be compiled for Windows and indeed a few small changes were necessary. Actually I began my computing journey with Microsofts products (MS DOS) a long time ago. I have made a Windows version too but not created any download link.

Recently I have started to explore the Linux world, which seems promising but of course is unfamiliar.

One challenge with Windows programs, IMHO, is the many warnings the user get if they try to install my programs. Of course it's right of Microsoft to point out that people should be careful with what they install, but I'm afraid the average user get scared away. The solution could be to get into Steam or Windows shop but that's easier said than done for independent hobby projects.

Any thoughts on this?

SilverWarior
09-03-2022, 06:47 AM
I just made a few improvments, in my opinion.

Here is suggestion for another improvement. Allow user to change the grid size, number of possible colors, and number of possible moves. With this you could introduce different levels of difficulty.


One challenge with Windows programs, IMHO, is the many warnings the user get if they try to install my programs.

Well if you offer your program to be downloaded as executable Windows will warn user about this because it logs when certain executable has been downloaded from WEB. It tends to so even for executable that are stored in ZIP archives.
The only way around this is to create an Installer for your application. Then the user is warned only for downloaded installer once but is no longer being warned about your application executable being from WEB every time.
If you go and decide using an Installer for your program I would recommend using Inno Setup https://jrsoftware.org/isinfo.php

Another way to reduce the warnings about your program both on Windows and other platforms is by digitally signing your application executable with a trusted digital certificate.This can make your potential users more at ease. Also it makes much more difficult for someone to just take your executable and inject it with some malicious code as doing so to a signed executable will void the digital certificate.

Jonax
10-03-2022, 09:00 AM
Here is suggestion for another improvement. Allow user to change the grid size, number of possible colors, and number of possible moves. With this you could introduce different levels of difficulty.Thanks for suggestions. I'm working on an upgrade. I'm afraid it's not finished yet and will only be with the grid size change. Will post if/when done.

Then I notice all patterns are not equal. Some are quickly solved while others are tricky and demands more steps. I would be nice with some function calculating the minimum necessary steps to solve each pattern. I'm sure that could be done with brute force somehow but I'm afraid that would be quite a challenge



Well if you offer your program to be downloaded as executable Windows will warn user about this because it logs when certain executable has been downloaded from WEB. It tends to so even for executable that are stored in ZIP archives.
The only way around this is to create an Installer for your application. Then the user is warned only for downloaded installer once but is no longer being warned about your application executable being from WEB every time.
If you go and decide using an Installer for your program I would recommend using Inno Setup <a href="https://jrsoftware.org/isinfo.php" target="_blank">https://jrsoftware.org/isinfo.php</a>
Another way to reduce the warnings about your program both on Windows and other platforms is by digitally signing your application executable with a trusted digital certificate.This can make your potential users more at ease. Also it makes much more difficult for someone to just take your executable and inject it with some malicious code as doing so to a signed executable will void the digital certificate.

Thanks for the instructive explanations. Now when you mention Inno Setup I once used to use it. A long time ago when there was less installaton hesitancy and I was still on Delphi 3. Inno setup was excellent, as I remember. It's still around? I should have a look at it. Anything to help mitigate the installation worries is welcome. But it's still only for Windows? No Linux version?

SilverWarior
10-03-2022, 10:21 PM
Then I notice all patterns are not equal. Some are quickly solved while others are tricky and demands more steps. I would be nice with some function calculating the minimum necessary steps to solve each pattern. I'm sure that could be done with brute force somehow but I'm afraid that would be quite a challenge

Actually brute-forcing this would not be so difficult. All you do is generate a tree of possible moves/paths as you progress throughout the game and then check which tree branch used the least amount of moves. Not so hard to code but it would require quite a lot of processing.

But there is a better way. As far as I can see the best strategy in this game is to go and always clear the color that is going to expose as many blocks to be cleared in the next move as possible. And when I say expose as many blocks I don't mean only the blocks that border the future grayed-out area but also their respective neighbors that are of the same color.
So you would just have to implement an algorithm that would be able to predict of how many squares of each color will you be able to clear after making certain step and then proceed making steps with best gains.
In order words you would make an AI (Arithmetic Inteligence) ;)


Thanks for the instructive explanations. Now when you mention Inno Setup I once used to use it. A long time ago when there was less installaton hesitancy and I was still on Delphi 3. Inno setup was excellent, as I remember. It's still around? I should have a look at it. Anything to help mitigate the installation worries is welcome. But it's still only for Windows? No Linux version?

Yes at the moment Inno Setup is not available for Linux. I'm guessing the main reason for that is the fact that Inno setup is built using Delphi which got capability of making Linux based applications with version 10.2 and you still need to use Third Party FMX for Linux framework if you want to make applications with UI.
Any way since you are using FPC/Lazarus it might not be bad to ask around FPC/Lazarus community of what installers FPC/Lazarus people commonly use on Linux. Based on the fact that Inno Setup is also open source I would not be surprised if someone from FPC community make their own port of Inno Setup into FPC that also supports Linux. I'm not actively using FPC/Lazarus myself so I'm not up to date of that FPC community is working on.

But on the other hand installers are generally not so popular on Linux any way. On linux it is way more popular to use packages or traballs. You can read a bit more on this and possible installer alternatives here: https://unix.stackexchange.com/a/398342

Jonax
11-03-2022, 11:10 AM
Program updated. Now with three sizes/dificulty level.
Screenshot here. No animation this time.

Download link still at

https://www.jonax.se/downloads.php

1579

----------
I too suspect the brute forceing would require quit a lot of processing, and probably quite some time delay if ran on weaker systems. And that AI building is quite a challenge. I'm afraid I have never dabbled in AI but the game concept seems like one that could be fitting for AI.

I wasn't aware about the Inno Setup Delphi connection. Always nice to learn new things. I guess I have to look into those packages and tarballs if those are the linux way to do it. As I come from the windows world I naturally started looking for installers.

SilverWarior
11-03-2022, 07:24 PM
And that AI building is quite a challenge. I'm afraid I have never dabbled in AD but the game concept seems like one that could be fitting for AI.

You got scared because i mentioned AI. You shouldn't have. In fact I'm willing to bet that if I would have not mentioned AI you might be now trying to implement the algorithm that I suggested.
Not every AI is super complex and difficult to implement. In fact this game seems suitable for one of the most most simple AI implementations. In fact you already have few parts of it already written. Which parts? The code that is used for clearing every exposed blocks of selected color and code that counts of how many of these blocks were removed. You just need a few more logical connections and you get everything that you need for my proposed algorithm.
If you wish I could try and guide you through the process of making this algorithm. And since you basically in the same time-zone as I'm We could perhaps even make a video-call using Skype or Discord. I probably won't have any time tomorrow but I guess I could fine some time this Sunday for this.


I wasn't aware about the Inno Setup Delphi connection.

I believe that the sheer fact that it was made with Delphi also lead to it being shipped with Delphi by default.
Do you know that for some time Inno Setup was considered to be even more stable than the Install Shield which was made by Microsoft and was default installer for most Microsoft programs withe the exception of the Windows itself for years..


Always nice to learn new things. I guess I have to look into those packages and tarballs if those are the linux way to do it. As I come from the windows world I naturally started looking for installers.

I'm still on Windows environment but did tried to dabble with Linux a few times in the past. I'm guessing just enough to at least know where to start looking for more information.

Jonax
12-03-2022, 09:28 AM
Indeed AI sounds scary to a noob, but when you put it that way it may be worth exploring a bit. And your suggestions could no doubt be put to use somehow. At least some simplified non-optimized solution. I hoppe.

Thanks a lot for the guiding offer but Sunday is not possible and actually I lack camera and microphone on my somewhat primitive equipment. I'm afraid text will have to do. But the time zone is right. I think I saw you at discord so I'll try some friendship/PM thingie over there.

SilverWarior
12-03-2022, 05:03 PM
Indeed AI sounds scary to a noob, but when you put it that way it may be worth exploring a bit.

Many things sound scary to a noob. For instance when I was a noob I was terrified of making a derived class. In fact I even know few more expirienced programmers that are still scared by classes.
But I got past that fear once a managed to learn some basics of how classes actually work. Now I have no fear of making a custom class myself. Even made some examples where I use classes in quite a unique way. For instance I have a prototype code for managing RPG based units and items which heavily rely on classes. I designed classes to allow me very good data reusability so I can create potentially create thousands of very detailed ingame units but do this with quite a small memory footprint.

And your suggestions could no doubt be put to use somehow. At least some simplified non-optimized solution. I hoppe.


I lack camera and microphone on my somewhat primitive equipment. I'm afraid text will have to do. But the time zone is right.

To be hones I would need to fire my old laptop for camera and mike. Or use my work smarthphone as mike somehow.I believe I could use Smartphone as mike in discord and computer for rest.


I think I saw you at discord so I'll try some friendship/PM thingie over there.

Not very often but yeah. I have sent you a friend request.

Jonax
13-03-2022, 09:08 PM
Classes. I'm still not friend with these. Though I can see the use for them. I'm glad to hear you are doing well with the classes.

Anyway. I'm working on the machine solution update for the grayout program. Nothing to show today, despite me saying this type of program is quick to finish. Hopefully sometime next week. The plan is to have on or two algorithmic naive solutions, at least as allowed number of moves, and the challenge for the player is to do better. We will see. And discord friendship request arrived and accepted.

SilverWarior
14-03-2022, 04:15 AM
Classes. I'm still not friend with these. Though I can see the use for them. I'm glad to hear you are doing well with the classes.

If you have any question in this area don't be afraid to ask. Unlike many Stack Overflow users I won't just tell you to go and read some pascal beginner book. While that may be a perfectly valid suggestion for long time. Giving such answer to a newbie is just a motivational killer and thus makes more harm than good. I know this from experience since I revived this kind of answers on various forums many times. Well not here on PGD. Which is why I'm regularly visiting PGD almost every day for years now.


The plan is to have on or two algorithmic naive solutions, at least as allowed number of moves, and the challenge for the player is to do better.

I'm looking forward of seeing your solutions.
If you hit a snag don't be afraid to ask for help. If you ask nicely I may even be convinced to install Lazarus again on my computer so I could test your code directly if the need arises. ;)

Jonax
14-03-2022, 11:17 PM
Thanks for the offer to help SilverWarior. So far I'm still making progress, but nothing to show today. Hopefully later this week, or perhaps next week. I can mention already now that the two algorithms are not equally effective, on average, and they both can be beaten by a human intelligence. Not surprisingly. But one has to start somewhere.


I'm not visiting StackOverflow often but occasionally search engines send me there when searching for solutions to some problem or some notation I've forgotten. Now when you mention it I do have a beginners pascal book. The one I got with Delphi 3. It's still on a shelf somewhere. Though I don't think there were much about classes there. I'll ask you instead if I ever start dipping my toes in the classes. I can't comment on other fora but I really like it here in PGD forum.

Jonax
16-03-2022, 07:11 AM
Progress slowing down. Got problems with the algorightmic solution. Made a workaround fix. Showed the animated gif in the discord.

SilverWarior
16-03-2022, 06:52 PM
After looking at animation I'm guessing you are not counting the blocks that could be freed up in next move incorrectly. To me it seems that you are counting the number of faces that will border with the grayed out area after each move. but this is incorrect because you can clear several blocks surrounding one single block exposing multiple of its faces. So for instance if you clear other blocs on Northern, Eastern and Western side of one block you expose three faces of this one block. You should count this block only once. So in other words you would need a mechanism that will track which blocks you have already counted so you don't count them multiple times.

Again this is just my guess based on observing your Algorithm progress through the board.

Jonax
17-03-2022, 07:01 PM
That algorithm is not very efficient but at least it solves the pattern. I may have messed up the loop somewhere but the idea was to turn the maximum numbers of sqares each time.


I'll upload a second algorithm to discord. It's supposed to maximize distance instead of area and tends to perform better for most patterns. Eventually there may be some combination of the two approaches.


This is all work in progress now and the program is currently an aestethic mess. I'm afraid it won't be finished this week either. I'm still working on it.

SilverWarior
18-03-2022, 08:02 PM
I may have messed up the loop somewhere but the idea was to turn the maximum numbers of sqares each time.

If the idea is to turn the maximum numbers of squares each time then you have a bug somewhere. While it seems to work like this in the start it fails to do so toward the end of provided animation.

Jonax
19-03-2022, 04:12 PM
If the idea is to turn the maximum numbers of squares each time then you have a bug somewhere. While it seems to work like this in the start it fails to do so toward the end of provided animation.

Yeah, I may have a bug somewhere, happens a lot for me unfortunately. There are two provided animations. The first I may have messed up is supposed to be max turned squares per move. The second animation is supposed to make maxium advance towards other side per move, that later algo tends to solve the patterns faster. But no doubt not as fast as the unknown optimum solution. Unfortunately I'm kind of stuck now. Got to have some coffee and try again later.

Happy Weekend!

Jonax
27-03-2022, 10:05 AM
Hi guys!

After some polishing the updated Grayout program is completed. Now always solvable becuase the available number of steps are given by a new non optimized algorithm. In most cases you can probably beat that algorithm. I hope this will be the final version but one never knows what new issues may come up.

The Linux (Debian) version can be downloaded from:

https://www.jonax.se/downloads.php

And below is the animated gif. Thanks to SilverWarior for help.


https://www.jonax.se/enzip/grayout.gif

SilverWarior
28-03-2022, 07:27 AM
I hope this will be the final version but one never knows what new issues may come up.

Why hoping this is the final version? There are still few possibilities for improvement:

You could increase the number of colors and thus increase complexity of the puzzle
You could introduce addition gravity mode where player clicks on any block which clears that block and any adjunct block of the same color and all of the blocks of the cleared area then falls down.
You could introduce logging of player steps so he could undo some of its steps and then chose a different path.
You could introduce some sort of a main menu through which player would issue commands for new game and which game type he wants.
Heck I might even have an idea for even better algorithm for solving the game. Well it is more like modified puzzle generation code that would generate puzzle by adding certain number of colored blocks each step until the puzzle is field. Basically the reverse order of what player will be doing. This would allow you to get the number of steps needed for solving the puzzle during its creation.


There are probably even more possible improvements that don't come to my mind right now.

Jonax
03-04-2022, 10:11 PM
Thanks again for input. So ttill room for improvements and some bling could be nice too. But now busy mode over here. I hope to get time to look at it again. I'm afraid as usual all suggestios will not be adressed. But possibly some. The algo could be optimized, no doubt. On the other hand the player might want to play leisure mood and not think too much so a non optimized algo can cut the player some slack.

SilverWarior
04-04-2022, 03:11 PM
The algo could be optimized, no doubt. On the other hand the player might want to play leisure mood and not think too much so a non optimized algo can cut the player some slack.

You could always add a hard difficulty and use most optimized algorithm there and use current algorithm for easy mode.

Jonax
08-04-2022, 07:59 PM
You could always add a hard difficulty and use most optimized algorithm there and use current algorithm for easy mode.

That is possible and a nice extra option. However I ran into an other unexpected problem for the Windows version. It turned out it's possible and useful for some windows users to scale the monitor, e.g. to 125%. Since I hadn't taken that into account the optics turned out horrible.

See below screenshot at 125% on Windows. I assume the same thing could happen to Linux. Anyway I'm trying to make a fix. Seems promising. However this may complicate my upcoming game project. We will see.

How do you guys handle such scaling? How common is the scaling?

1582

SilverWarior
09-04-2022, 10:34 AM
It turned out it's possible and useful for some windows users to scale the monitor, e.g. to 125%. Since I hadn't taken that into account the optics turned out horrible.

See below screenshot at 125% on Windows.

This is not Monitor scaling but UI scaling. You see on Windows all UI elements size is defined in pixels including the Font size. So when you launch an application on a monitor that has the same physical size but higher resolution all UI elements in your application will end up being much smaller since their size s defined by hardware pixels.
So you need to retrieve information of how many pixels per inch does the monitor have (DPI resolution) in order to be able to calculate the ratio from the DPI resolution your UI was designed on and to the current DPI resolution of your monitor. Now this probably doesn't seem to difficult right?
Well the problem is that Microsoft made this a bit more difficult by requiring the application to be High DPI aware for the Windows to report actual monitor DPI and not default 96 DPI resolution as it does to all application that does not support High DPI awareness.Not to mention that Windows by itself support four DPI awareness Modes. Or the fact that some of them doesn't scale properly in certain conditions especially on systems with multiple monitors. Or the fact that Windows will go and cale some standard controls (controls that are not rendered by VCL or FMX in Delphi or LCL in Lazarus but are instead wrappers for standard Windows controls that are rendered by Windows itself) that your application might be using automatically but you need to scale rest of the controls yourself.

Now I'm not sure of how to deal with High DPI awareness in Lazarus so I recommend you check the Lazarus forums for this.


I assume the same thing could happen to Linux.

Now I'm not sure how Linux deals with DPI scaling but so far I have never heard users on Linux having so much problems as they do on Windows. So I'm guessing that DPI scaling on Linux might have more stable implementation than the one on Windows.


How common is the scaling?

Until the arrival of High DPI monitors like 4K monitors DPI scaling was pretty rarely used since it was used only as accessibility feature for visually impaired people. But with the arrival of High resolution monitors this became much more commonly used due to the above mentioned problem of Windows Ui elements size being defined in the number of hardware pixels.
MacOS solved this a long ago by using Virtual pixels for defining the size of any control. Then the OS performs the needed scaling so that such control has the same actual size (like 2,5 cm width) any any apple device regardless of Screen size or screen resolution of that device.

Jonax
10-04-2022, 09:35 AM
I for one never encountered this scaling before. As you say the Lazarus forum is very helpful.

MyIntegerVariableForScaling := Screen.PixelsPerInch;

Seems to do the trick. Though it took some time to remake the program. I wouldn't be surpised if I missed something too. But now the new scaling ready version is downloadable on my site.

Gameplay and appearance are supposed to remain unchanged.

It turned out the UI scaling is possible in Linux too. At least for the KDE Debian I use.

Haven't found that option on Raspberry but I guess most Raspberry users don't use High DPI monitor. And frankly I don't either.

Jonax
10-04-2022, 06:23 PM
And thanks for the extensive reply SilverWarior :). It sure seems to be a challenge to handle all that. At least I'm aware of the scaling now.

SilverWarior
11-04-2022, 06:50 PM
I for one never encountered this scaling before. As you say the Lazarus forum is very helpful.

I guess most Raspberry users don't use High DPI monitor. And frankly I don't either.

You probably never encountered this because you don't own High DPI monitor so Windows never went into this as they call legacy scaling mode which completely breaks some applications. And yes this can even break some of older Microsoft applications.
There is a reason why Windows 10 and Windows 11 are actually logging which DPI scaling their users use for certain applications (yes on modern Windows versions user can force specific application to use one of the four scalling methods) so that when a user installs some old application Windows can check Microsoft database to see if Microsoft already has some information about which Scaling type most users use.


MyIntegerVariableForScaling := Screen.PixelsPerInch;

Yeah this will work for as long as Windows report correct DPI resolution. But for this your application manifest file must contain proper entries to tel Windows that it does support High DPI scaling. Without that Windows will report wrong DPI resolution.

Any way I also don't have High DPI monitor so I don't have actual experience with this but I did read several questions and their respective answers about this topic on Stack Overflow.
Well technically I do have High DPI screen if I connect my computer to Smart TV that I got for free from my friend.

And no I don't have some rich friends. This is just about six or seven years old Smart TV whole back-light electronics has gone bad so now I can be happy if screen remains constantly lit for 10 minutes otherwise it keeps turning black after about one to two minutes and remains black for about half a minute each time. Replacing back-light electronics would cost about 120 EUR which is half of the price of some cheaper Smart TV-s out there. So now I'm kinda hoping that someone else might donate me similar or same model so I can try and use parts from both to make at leas one working :-[

Jonax
15-04-2022, 12:22 PM
Indeed I never bought any High DPI monitor. But it turned out I have at least one rich friend with such a gadget. Annoying when I wanted to proudly show my latest creation and it looked like crap on his advanced machine.

Seems to be complicated to handle the resolutions and I haven't even begun with the application manifest thingie. Anyway I got to try my best. No doubt I will encounter new problems. I assume there can be conflicts when I try to fix the appearance while windows also tries to fix the appearance in its way.

An other question is how much more high-res the monitors will be in the future. Right now windows supports max rescaling of 225%. There must be some limit of how much it's meaningful/possible to shrink the pixels/ dots.. will there one day be rescaling to ten thousand percent.. and not lousy 4K monitors but 4G monitors.. I think a 4G monitor is still science fiction but the tech improves relentlessly..

As for your high res TV it sounds like a good plan to wait for a similar wasted gadet to scrap parts from. I keep my fingers crossed for you. Them monitors can be expensive and I rather spend the dollars on the CPU and the Disks. Not that I buy anything fancy. I prefer the low power low end ones with integrated graphics. Still beats my first PC from last millenium. I started with a 20 MHz i386 with 1 MB ram and 40 MB disk drive. Even the most crappy modern PC is superior to that.

SilverWarior
15-04-2022, 02:17 PM
Right now windows supports max rescaling of 225%. There must be some limit of how much it's meaningful/possible to shrink the pixels/ dots.. will there one day be rescaling to ten thousand percent.. and not lousy 4K monitors but 4G monitors.. With windows scaling you are not shrinking but instead stretching the pixels. The purpose of scaling is to make things look larger. Well technically you are not even stretching the pixels but instead telling Windows to draw standard UI components enlarged by the scale factor.

Jonax
15-04-2022, 06:05 PM
With windows scaling you are not shrinking but instead stretching the pixels. The purpose of scaling is to make things look larger. Well technically you are not even stretching the pixels but instead telling Windows to draw standard UI components enlarged by the scale factor.

Sorry for unclear writing. What I tried to say is the physical light emitters making up the dots in modern flatscreen monitors ought to be made smaller or placed closer to each other if the screen makers want to fit more of them into each square inch. I assume Moores law doesn't apply here but either way there should be some limit of how small or densely place they can meaningfully be. CPU evolution - amazing. Monitor evolution -not bad but not as great as for monitors.

SilverWarior
16-04-2022, 11:50 AM
What I tried to say is the physical light emitters making up the dots in modern flatscreen monitors ought to be made smaller or placed closer to each other if the screen makers want to fit more of them into each square inch. I assume Moores law doesn't apply here but either way there should be some limit of how small or densely place they can meaningfully be.

If you want to learn more about squeezing more pixels closely together and what limitations there are in this area I suggest reading about Nano Pixel Technology which was developed recently and represents not just a new step but a new leap in this area.
In fact with development of Nano Pixel Technology the ability to physically squeeze as many pixels in small area is no longer the limitation for screen resolution. Current limitation for how big screen resolution we can have is actually the ability to deliver enough data to the screen in order to display the finial picture properly. Of course the refresh rate also has a huge impact to all this.

Since you have been in computer world for some time I guess you probably still remember the time of CRT monitors and how you could have your CRT monitor displaying 800 x 600 resolution at 80 Hz but if you wanted to display 1024 x 768 resolution your the screen refresh rate would drop down to 60 Hz. Back then we were also limited by the signal bandwidth similar as we are today. So I'm guessing that before we se next big leap in screen resolution we would have to see a development of new technology for delivering the screen signal from graphics card to the monitor itself.

Jonax
20-04-2022, 05:25 PM
Interesting. So the density can continue to increase, but hopefully (from my point of view) not too rapid. This complicates the coding but must be dealt with one way or another. Btw. I noticed Debian KDE goes further than Windows and offer 300% scaling. Not that I can meaningfully test that on my limited monitor.

And I do remember getting a 800x600 CRT monitor. Was a great improvement over the original VGA monitor I had. Not that I bothered with refresh rate back then. My system handled Delpi and Settlers 2 well enough and life was comparably simple.

Now I have begun some new scaling concept test coding. So far nothing to show. But I hope to be able to create something simple any month now.

The Grayout program will have to wait. The suggested extra features are interesting but they got to be postponed, mayhaps forever. Stil aiming to make an installer for debian and raspberry some day.

Jonax
26-06-2022, 05:52 PM
I haven't made any updates on the Grayout program.

However I can mention there is already an 'Easter Egg' in the published version.

If you click the "Jonax | 2022" icon/image the auto-solve will kick in.

That is the non optimized algoritm which decides the number of awailable steps for the solution.

SilverWarior
26-06-2022, 08:29 PM
That is the non optimized algoritm which decides the number of awailable steps for the solution.

This non-optimized algorithm is pretty effective. I had some problems finishing some of the puzzles in allotted number of turns. :-[ So it is pretty good :)

Jonax
26-06-2022, 09:27 PM
So it is pretty good :)

Thanks SilverWarior :)

Jonax
01-09-2022, 12:12 PM
Raspberry PI Update:


In theory the excellent Pascal/Lazarus software can be compiled on a number of different OSes.
In reality it's not always that simple.


Porting to Raspberry is even trickier than going from Windows to Linux. At least for a Raspberry Noob.
Finally I resorted to 32-bit PiOS and managed to install an older Lazarus version there (2.0) from 2019.


The Grayout program compiled on my Pi4 and is available at:


https://www.jonax.se/raspberry/grayout.php


I assume/hope the program will run on most Raspberry systems as long as the monitor is large enough.
In case any of you guys got some Raspberry PI feedback is welcome.


My other projects (MaxDE & PONX) are not (yet) portable to the PI. But I hope to be able to produce something simple for both Pi and Linux in the future. Though current new Linux project is also not compiling on PI.