Page 1 of 4 123 ... LastLast
Results 1 to 10 of 35

Thread: Grayout -Simple Linux freeware game

  1. #1

    Grayout -Simple Linux freeware game

    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/downloads.php
    Attached Images Attached Images
    Last edited by SilverWarior; 08-03-2022 at 05:47 AM. Reason: Replacing downloaded image with an external image connection in order to preserve original GIF animation

  2. #2
    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.
    Last edited by SilverWarior; 08-03-2022 at 06:43 AM.

  3. #3
    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?
    Last edited by Jonax; 08-03-2022 at 05:02 PM. Reason: grammar

  4. #4
    Quote Originally Posted by Jonax View Post
    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.

    Quote Originally Posted by Jonax View Post
    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.

  5. #5
    Quote Originally Posted by SilverWarior View Post
    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

    Quote Originally Posted by SilverWarior View Post
    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?

  6. #6
    Quote Originally Posted by Jonax View Post
    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)

    Quote Originally Posted by Jonax View Post
    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

  7. #7
    Program updated. Now with three sizes/dificulty level.
    Screenshot here. No animation this time.

    Download link still at

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

    grayout11.jpg

    ----------
    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.
    Last edited by Jonax; 12-03-2022 at 08:20 AM. Reason: adding replies to SilverWarior's post+ typo

  8. #8
    Quote Originally Posted by Jonax View Post
    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.

    Quote Originally Posted by Jonax View Post
    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..

    Quote Originally Posted by Jonax View Post
    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.

  9. #9
    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.

  10. #10
    Quote Originally Posted by Jonax View Post
    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.

    Quote Originally Posted by Jonax View Post
    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.

    Quote Originally Posted by Jonax View Post
    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.

Page 1 of 4 123 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •