Posted: 10th Mar 2018 17:13
Hi everyone! I hope that you've had the chance to look at AppGameKit for Python.

I made this thread for feedback and questions. There's also a community forum set up on the itch.io page.
Posted: 10th Mar 2018 23:14
Hey I think this is great, sadly I have not much time to check it out
Posted: 10th Mar 2018 23:21
Uhmm, it opens a lot of possibilities. Great news, thanks!
Posted: 11th Mar 2018 3:56
Hi Adam,

I think this is a cool idea and it seems like you've put in a good bit of time and effort. I don't use python today, but I'm certainly aware of it and its flexibility. I think it would be useful to understand what the driver is for AppGameKit in Python - What can I do with AppGameKit in Python that I can't in Tier 1 and if I needed to do more than what Tier 1 offers - why would Python be a better choice over Tier 2? If you could elaborate on why AppGameKit in Python is useful over Tier 1 or Tier 2 and give a few concrete examples - it may help it get more traction.

Thx.
Posted: 11th Mar 2018 6:19
@kaband: Python's flexibility is its main strength. One could kind of consider it tier 1.5 because it blends many aspects of both tiers together.

Possibly one of the biggest features Python has over Tier 1 is the ability to have classes. This is one thing I wished Tier 1 had while writing my game Toxic Terror. I wanted to encapsulate each monster type's behavior into its own class but instead I ended up assigning a monster type code to each monster and using a whole lot of IF statements throughout the code to check the type code and act accordingly.

With Python one could very easily set up a method (or class) to render each screen of the game and use a variable to hold which method to call as its current state:
+ Code Snippet
    def say_hello():
        draw_text("Hello!")
        sync()
        if get_raw_key_pressed(get_raw_last_key()):
            global render_current_screen
            render_current_screen = say_goodbye

    def say_goodbye():
        draw_text("Goodbye!")
        sync()
        if get_raw_key_pressed(get_raw_last_key()):
            global render_current_screen
            render_current_screen = say_hello

    render_current_screen = say_hello
    while True:
        render_current_screen()


Python has a pretty large community behind it, so this opens up the doors to using third-party modules, such as PyTMX for Tiled Map loading in addition to its own modules which have varying degrees of usefulness.

As for Python vs Tier 2, I think most will find it quicker to develop in Python, especially those comfortable with Tier 1. Granted if you're developing a game where performance and speed are top priorities, Tier 2 is your best choice. While Python isn't speedy, my experience with this project has shown me that it can run at least as fast as Tier 1, though it might require some tweaking to do so, but don't expect it to approach Tier 2 speeds.
Posted: 11th Mar 2018 13:11
I'm not into Python at the moment but might be, when going to make more use of my Raspberry Pi as on that platform it is almost the de facto standard I believe.
Might be easier to mix AppGameKit functionality with the already existing functionality there, but would have to examine if it holds any plusses in that respect over the AppGameKit Tier1 Raspberry Pi release.

Also afaik Python is kinda booming and also respected as an industry language (opposed to BASIC like languages, which I personally find a pity but hey), so if one can master Python *and* make use of AGK's functionality at the same time then new job opportunities may turn up. And possibly a whole new audience that will embrace AGK.

So.. a pretty good thing I think, for which we thank you.
Posted: 11th Mar 2018 17:20
Like Rick Nasher said ^^^ I've never got into Python either. Certainly heard of it and many other languages many times but never had any need to check it out. Hopefully your work will be something that will draw more people into AGK2 and TGC communities.

I guess my only concern would be that part. That it doesn't segregate and take away from all lf TGC's work by allowing people to completely bypass TGC and just use their agk lib. But then as far as I know I think TGC put agk up on a source repo a while back so am not sure how exactly they make money from it anyway if people can now just download and build it (I mean it seems like only a matter of time before people out there would offer prebuilt binaries for download including the agk libraries).

Whew a lot of thinking out loud there. TLDR: As long as your efforts help TGC and the community here to grow and not conflict with those things I think it is great!
Posted: 11th Mar 2018 19:04
I think describing it as a tier 1.5 sums it up pretty well.

Python shares many of the benefits of basic in that it is very quick and easy to just throw down some code and go without having to worry about all the bare metal details needed in T2

But it is also a bit more advanced, supporting classes and OOP, and has many great libraries available. (This weekend I'm working on getting this integrated with cefpython to use embedded chromium as a UI layer, this could be done in T2 but not T1, and i don't really want to bother with T2, so this is a good middle ground for me.)
Posted: 11th Mar 2018 21:07
@Rick Nasher: Python is a fun language. It has some neat things that make it fun to use in my opinion. Definitely worth a try.

@GarBenjamin: From what I know, the only thing AGK-related that TGC has made open source is the IDE, not the library itself. Source: https://github.com/TheGameCreators

TGC agreed to license it for a trial run and whether it goes beyond that is up to the overall response. While a person can use this PYD for free, it does have some limitations: AppGameKit for Python is stuck at using 2017.12.12 for this trial. It also has a required "Created with AppGameKit" intro logo and mentions AppGameKit in the window title bar.

@Ortu: I'm curious how your cefpython project goes. Let me know if you find any problems.
Posted: 12th Mar 2018 11:33
This is not the first community version but none of them being developed any longer. They were always outdated and poorly documented and I can't see it about to change wit this version.
I'm appreciate your effort @adambiser and it is nice from TGC to give it a shot but I'm honestly don't know what TGC expect to achieve in the next 12 months with a limited, unofficial, unsupported and outdated version.
People might give it a shot but personally I would not risk it being stick with an old version of AGK.

In my opinion TGC should create an API that would allow people to add 3rd party language support and hook it up to the latest version of AppGameKit without any licensing issues. It would allow people like adambiser to offer support without making sacrifices like being stick with an old version and depend on TGC poor and selfish marketing decisions.
An API would still require AppGameKit being purchased and installed but I can decide to use 3rd party IDE and languages like Python and PyCharm with any version of AppGameKit I have installed.

That would be the best way imo.
Posted: 12th Mar 2018 13:41
Ah ok. I thought it was odd if they released source to agk itself. Editor makes more sense. Thanks.
Posted: 12th Mar 2018 14:26
@Zigi: I understand your thoughts and concerns.
To clarify a few things though: this has been officially licensed and I will be supporting the part of the code that I wrote. Yes, it is restricted to only using AppGameKit 2017.12.12, but it is not limited in any other way except that it shows a logo on startup and has AppGameKit mentioned in the title bar when windowed.
Posted: 12th Mar 2018 17:17
@AdamBiser - Thanks for answering my questions. It definitely helped me understand the benefits of using Python w. AGK.
Posted: 2nd Apr 2018 23:43
The PYD has been updated so that it will work with Python 3.3+ instead of just 3.6. Available at itch.io.
Posted: 3rd Apr 2018 9:06
I have stuck this at the top of the board will help people locate a place to ask questions.
Posted: 3rd Apr 2018 17:00
I would love to use Python for my AppGameKit projects but I'm afraid to commit to it since this could get cancelled in a year.
Posted: 3rd Apr 2018 17:07
@The Next: Thanks!

@pjsmith67: You are still allowed to develop with and distribute projects using the PYD even if the project downloads get removed after a year. It is currently locked at AppGameKit 2017.12.12 functionality though.
Posted: 3rd Apr 2018 17:32
Unfortunately, I can't commit the time to this. I don't want to be in the middle of developing something and then have the plug pulled on it and I don't want to be tied to a specific version of AGK.

If I could use Python for AppGameKit projects now and in the future, I would switch in a heart beat. Not that I don't like Tier1, but I do miss having objects and classes.

This also assumes that a Mac version would be made available.

Don't get me wrong though, this is a wonderful idea (and great work!) and I really really hope it is successful.
Posted: 3rd Apr 2018 17:58
@pjsmith67: Understood. Even if you don't use it right now, you can still show support for it by using the promo code on the project page if you need to buy anything AppGameKit related.

I don't have a Mac myself so I can't compile for it or test on one. I don't have any Tier 2 Mac templates in my AppGameKit folder, but if tier 2 works on Mac, this project should be able to as well in the future.
Posted: 5th Apr 2018 8:26
Another thing to take into consideration is that Python is the educational defacto standard in the UK. TGC could make a killing marketing it as such with a bit of Polish