Day 2
I had some time during the course of the day so I installed Visual Studio Code and the Python support plugin. I think I will miss some PyCharm features but we will see.
I installed PyGame into my Python and realized that PyGame had its 20 years anniversary last year in October and so they had released 2.0. I think that is an awesome achievement.
Because I’m interested in it and it will be necessary to see if and how it works I started my research for Exe-Building. I searched for some comparison sites between PyInstaller and Py2Exe because these two seem to be the most promising ones.
Based on my research I started with Py2Exe. I set it up and it worked fine with my hello-world script. I wrote a little function to automatically add the static files like images and audio/sound files, wrote a batchfile to get a clean dist directory, played around with some Py2Exe options so that I got one exe file with only a few DLLs. I got a temporary test program icon and put it in, managed to get “Farbenfall.exe” as output name and was a little thrilled that it worked so smoothly.
Then I got a little example pygame script from a tutorial site and tried the exe-building-process again but I got some potential error and warning messages and the final exe was not working.
So I tried PyInstaller. It runs a little slower to build the exe file (first time it runs) but after setting a few flags and options it worked nicely. It produced one Exe-File without DLLs. I used xcopy in my batch file to move the static files into the dist directory and my pygame example worked as intended. Only the UPX (exe-File compressor) didn’t want to work but I invested no more time because at the moment it’s not necessary.
I recognized that VSC and it’s pylint had some problems with pygame so I whitelisted it in VCS settings (pylintArgs with --extension-pkg-whitelist=pygame).
I prepared the itch.io game page and provided a minimum set of known metadata. I think EarlGrey has some nice skills to prepare that page when we have a plan of how it will look and be played.
After reading the quality-guidelines of itch.io (https://itch.io/docs/creators/quality-guidelines) and the info page about there game upload tool butler (https://itch.io/docs/butler/single-files.html) I need to rethink about the PyInstaller generation of a single exe file because it makes very much sense because butler handle the patched-data which is needed for updating later with a very elaborated concept.
Now I took the parameter away so that PyInstaller doesn’t create only one file but then my Windows Defender (antivirus software) alerts that the new little Farbenfall.exe is dangerous and a potential trojan virus. So I think it’s no option because potentially too many people will have Windows Defender running.
Now I uploaded both Farbenfall.exe variants to Virustotal (https://www.virustotal.com/gui/) to test them with over 70 antivirus tools and both files have (partly different) scanners which let them look like a virus. Awesome...not :(
Ok, after trying some options and trying Py2Exe again (you should always preserve things you tried) I managed to get a result I can live with:
Py2Exe with no bundling and UPX (perhaps not necessary) and I get a running example app, many small files (good for distribution with butler) and only 3 (irrelevant) antivirus scanners that think it’s a virus.
Definitive enough for today.
Tomorrow I will commit things into GitHub and I really need something visual to be happy and to feel that the project is moving forward (it is moving forward sure but too few things to really see and recognize).