If you are good with C++, start with Tier 2 (native, aka C++).
You will be much happier in the long run and won't be looking for ways to get around stuff.
The only issue with Tier 2 (that I've run into) is that you can't call Sync() anywhere you want to to update the display.
In Tier 2 you have access to all the same commands as Tier 1 (Basic) and all the power of proper OOP, standard strings, lists, etc..
JimHawkins will try to suggest you go with AppGameKit Pascal (unofficially Tier 3). If you are a proficient Pascal programmer, that might be your best choice.
Cheers,
Ancient Lady
AGK Community Tester