@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:
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.