As requested, we should probably start asking for features in a more organized way
So here's my list:
OpenIAB for Android - this will allow us to use IAP in many stores like Amazon, Google Play, SlideMe, Samsung, Yandex, and more without any major modifications. I think as long as we used the same SKU for each product in each store we wouldn't really need to change anything in T1 code. Paul has said he'll look at this in the future, but it will be helpful if others indicate their interest here to show TGC that many of us want this option.
Google Play Game Services - this has a lot of features. HockeyKid has a mod for this, but it is lacking some important features like a login button, reporting the leaderboard position for users, getting a user's ID, and many more features. These features are becoming highly popular in games and are important to their success. Google Play Game Services can be used in iOS as well. Many of us have voiced our desire for these features, but TGC has yet to make comment. It would be a bear for them, but a boon as well since no existing game engine has features like this built in.
Facebook integration - We currently have this, but it is very old and is falling apart. We can no longer send messages to other users by posting on their wall or seeing a list of friends. Facebook has made significant changes and these features are important. I'd at least like to see invites and achievement posts. Paul has marked in the code/issue base that it is planned, but no idea on when.
Twitter integration - This is a feature that has been in AppGameKit for a long time, but as far as I can tell it never actually worked. I'd love to see this in action.
Chartboost integration - This is available to us via my mod and AppGameKit has the method for doing this. It's pretty simple and pays a lot better than adMob. Paul has said they will look at it in the future, but no date to that.
Plugin Extensions - Ultimately if AppGameKit was structured so that we, the developer, could make plugins that would modify the java and obj-c code to our needs then it would be best for AppGameKit as they won't have to maintain the SDK compatibility so much. My idea for this is to give a handful of tier 1 dummy functions that are tied to java and obj-c methods so that we can repurpose them as needed. Unity and many other development packages make use of this structure. It would be a great boon to AppGameKit to do this as well and further their income opportunities.
As you may note I am focusing on third party extensions. These are what are important to me. I feel v2 roadmap already has more than I need as a developer as far as the engine and IDE goes. Where AppGameKit is lacking for me (and many others) is in third party extensions and social features.
Please add your support or desires here so that they are in an organized are for AppGameKit to determine if they are viable to do.
EDIT (adding features as we go so they are all on top):
Steam Store integration - If we want serious Windows development, including the growing indie scene, then this is a must have today. Steam Store is by far the most popular store on PC. It's also available on Mac now, and Linux.
Improved controller support - Currently we cannot detect the 360 d-pad and the triggers are broken. I think the same goes for the PS4 controller. The 360 controller is standard on PC with many games supporting it out of the box. The PS4 controller is growing in popularity. - Looks like Paul is getting this in now!
Linux support - Getting AppGameKit to run on Linux shouldn't be too hard since AppGameKit uses OpenGL. It's a platform we know will continue to exist for a long time. It is very popular among indies. If you want your game on Humble Bundle then then Linux is a big advantage. Since it works just like a PC or Mac making games for Linux would just as easy. We also have the upcoming Steam OS and Steam Boxes which are Linux based. So it's the perfect next platform for AGK.
3d cube mapping / 3d sphere mapping
3d fog type commands similar to darkbasic
set object 3d normals
clip board access
launch an executable from within code.
blue tooth connections
Blend Modes - TGC's current V2 implementation of blend modes is severely lacking. We can only do normal or additive blending, whereas pretty much every other GL-based engine allows the full scope of blending, sometimes also including lower level GL blend functions (SRC/DEST) which are very useful for some applications.
Box2D - I think it's been 2-3 years since I and others reported the restrictive nature of AGK's Box2D implementation by comparison to the full Box2D framework, and nothing has changed yet. Many commands still don't exist in AppGameKit and others don't allow full range of parameters.
- Ability to set the frequency and damping ratio of distance joints
-
Commands listed in this issue from 2011
-
Full listing of commands in DBP plugin of Box2D for you to do a more thorough comparison (PDF)
Write to SD storage on Android. This would be super handy for games / apps that want to generate screenshots or drawing style apps. Also would be nice if we could write to a user accessible directory on iOS, but I'm not sure if that really exists.
SetTextAngle- at the moment if you want text shown at an angle you have to use a sprite.
SetViewAngle - this would make for some interesting effects.
Supported display modes - like DBPro - on desktop it would be good to retrieve supported display resolutions so that we can allow users to select in an options menu.
data/restore/read BASIC commands or datablocks - I'm not sure what these would look like since we have random access to memblocks. Might be handy though.
SQLLite3 support - This would be very handy in my book, would have made coding Wordspionage much easier and would give much more power to us!
WriteMemblockToFile/ReadMemblockFromFile - Would be very handy.
GUI commands - not sure what these would look like - I'd like to see some specifics to convey to TGC.
Pathfinding - This would be great! I'm not sure if this can be wrapped into a command set though. It might be best as a standalone library.
More Spine commands - Texture and mesh deformations - I need more to list specifically.
Instr command and perhaps some other useful text commands like LSet/LPad, RSet/RPadp - I'm not sure what these do
pregmatch Some support for searching in strings would be awesome!
PlaySound/PlayMusic command - add position parameter - command to allow the sound/music to start playing at the specified time mark/position.
Load/Save array - Simple loading/saving of arrays to file. I think this is planned already. I imagine this is a challenge for UDT arrays.
Depth parameter for video - This would be awesome. I think it would take a bit of modification on mobile platforms, though. Maybe something more like billboard videos will work (video textures on 3d objects).
Augmented reality commands - CreateImageFromCamera - would like to see more listed. Seems like on mobile there is a direct stream from the camera to the screen.
Background loading commands - Loading media on its own thread. In my mind this would be similar to PreloadJS where you can add files to a queue so that they are loaded and then later check to see if the queue is finished or check the progress on the queue to display loading %.
File picker/explorer - Would be very handy. In DBPro I think we had to write our own. It would be nice if AppGameKit had a skinnable UI version that just worked on all platforms.
More model and animation support - FBX, blender, bones, multi-textured models.
Load files as string - This might go hand in hand with load memblock from file
XML support - Lots of folks use XML files to set up tiles, animations, etc. Unfortunately parsing these files is terribly slow.
GetVirtualButtonVisible - self explanatory
SetSoundVolumePan(id , leftVol , rightVol) - allow control of volume on both stereo channels to create panning effects.
OpenBrower() command needs exception catch on mobile - he Openbrowser() command needs a catch in it for java and probably obj-c too
Currently the correct method to link to other apps like Google Play or Facebook is something like this:
Google Play
market://details?id=com.naplandgames.sudokuinspace
Facebook
fb://profile/yourprofileid
These links will open the native apps (i.e. Google Play Store or Facebook) if they are installed. Unfortunately if they are not installed then the app will crash because there is no exception catch. Makes the app look bad.
A great alternative would be if OpenBrowser returned a pass/fail value so that we can attempt a different URL if the first fails and so forth. Would be really easy to do in java, but the Openbrowser command doesn't seem to have any java companion code...
Media protection - this was discussed by TGC at some point, but I've not heard anything further.
integer PlaySound( iID, iVol, iLoop, fBalance, fRate, iPriority ) - neat!
HTTP POST HEADER VALUES: The ability to set custom header values when doing a http POST command. Without this, the ability to integrate into back-end systems would be extremely crippled.
I found this strange myself. When checking the client header it was empty when an AppGameKit app was making a call to a PHP page. There can be a lot of useful information in the header from a client. Would be nice to have this!
Draw over camera view - i.e. set depth of camera view so that we can draw sprites over it
GetCameraviewAsImage / GetCameraViewAsMemblock
More scancodes F9 through F12, numpad, * , + ---- looks like Alt support is added now.
Filled polygon - Draw command
GPS Velocity and Number of satellites
Multiple texture images on sprites - done!
More array commands myArray.removeAll(), myArray.find(itemToFind , startAtIndex), sorting UDT arrays on items other than the first type in the UDT - will add more to this later when the specific commands are clear.
OGG file support
Flurry Analytics
File encryption i.e. Load/SaveFileEncyrpted(file$ , key$)
PKZip password protection
More spine skeleton commands - access to sprites in the skeleton for applying shaders, UV, size/scale, etc. Deforming skeletons. Change atlas texture.
Native sharing The ability to invoke the sharing dialogue on Android and iOS would be a big boon. We'd also need to be able to set image and text to share. It would likely alleviate a lot of the need to integrate SDKs just to share to other apps!
[last updated Nov 3]