Posted: 29th Sep 2014 19:49
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]
Posted: 29th Sep 2014 20:37
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.

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.
Posted: 29th Sep 2014 20:38
Agreed an all 3 fronts! Especially controller support That's pretty huge.
Posted: 29th Sep 2014 21:12
Instead of a dummy functions, maybe a function to call on an external function, like:

callExternalFunction( "DrawDot( 100, 100, 255, 255, 255 )" )

This would call a function in a c++ file bundled with the interprenter file.

one then would need to have android / windows / ios / mac versions of that file, matching the release os of the app.
Posted: 29th Sep 2014 21:15
yup my requests are:

-3d cube mapping / 3d sphere mapping
-3d fog type commands simular to darkbasic
-set object 3d normals.... would be a nice command to have.
-clip board access [being able to post to clipboard and pull from it]
-launch an executable from within code. [handy for windows and pulling up a web browser page]

multiplayer additions...such as
-blue tooth connections

um... thats my list that would satisfy me plenty!

and hafta mention da's steam intigration again.... as thats a must!
and if we ever want to be a part of any humble bundle....then we need linux support too!
Posted: 29th Sep 2014 21:22
BlueTooth would be handy and open up a ton of possibilities. Would be better than the local network commands IMHO.
Pretty sure Paul is planning the ability to launch exes. This would be huge as we could have launchers that you could set settings in.
You do know that OpenBrowser works on all platforms, though, right?

@Impetus - that's a pretty great idea and may work very very well as it would be much more extendable. You could also have a parameter in callExternalFunction that tells the interpreter what variable(s) should be returned. Shouldn't be too hard to do since Paul has pointer references now in T1.
Posted: 29th Sep 2014 21:27
Maybe add on the global keyword, and add universal variable, variables that the external functions can read and write to.

Universal Gamestatus as integer
Posted: 29th Sep 2014 21:28
handy for windows and pulling up a web browser page

You can do that already with OpenBrowser().
Posted: 29th Sep 2014 21:31


lol ! another command i didnt know about...
Posted: 29th Sep 2014 22:26
Naphier, can you please continue to update the first post with all suggestions so when TGC finally review it they don't have to sift through pages of discussions?

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.
Posted: 29th Sep 2014 22:42
I forgot to mention that Steam Store is now on Mac and Linux as well. Added that to my post. Same store covering 3 platforms, 2 of which are already supported by AGK.
Posted: 30th Sep 2014 0:28
Top post updated.
Blend modes would be AWESOME. Imagine all of the effects we could do!
Box2D could use a lot more. I so would have rather had more of this than Spine
Posted: 30th Sep 2014 1:01
I think TGC should focus first on the things that allow us to publish, monetize and market our games more. If that stuff isn't added it doesn't matter how many content related features AppGameKit got. AppGameKit 2 have strong basics now. And I think we need strong deployment to make good use of those basics. Then I think we are ready for strong features.
Posted: 1st Oct 2014 21:28
The best thing for everyone would be to see V2 finished as per the Kickstarter campaign before anything new is even considered. Maybe some of the existing features do need finishing (eg. Box2D, Controller Support etc) but muddying the waters with extra platforms and new feature sets would just slow things even further.

Once V2 is out of the way these requests can be considered as part of V3 (TGC need to monetize just as much as their users).

I hope by then they find a way of selling individual expansions each focused on a different area whether it be Advanced 3D, Social Networking & Monetization, Linux Support etc.

Soon the core language will be sound and improvements can be more targeted than the (necessary) scatter-gun approach of the V2 goals. That would be better for everyone.
Posted: 1st Oct 2014 21:45
Yeah, I don't expect any of this will happen until v2 is finalized. I don't think any of us expects that, but by voicing our requests here it will give Paul et al. a chance to see what we're looking for. Most of the social features should be easy for Paul to add in. It's just we can't do it because the code is obscured so much.
Posted: 1st Oct 2014 22:46
editted...

yeah its better for us to organize our requests like this than spam the forum with multi requests asking potentially the same things.

A main thread like this works perfectly... i expect that tgc will have a look at what there customers want and listen to some of it anyways. I really think tgc needs to support steam as someone has already done a plugin for darkbasic. I suspect that the debugger is whats on tgc's agenda now and to follow some new 3d support.
Posted: 1st Oct 2014 23:21
yeah its better for us to organize our requests like this then spam the forum...

I'm hoping you meant "better for us to organize our requests like this than spam the forum".

'Cos your way has a very different meaning.
Posted: 1st Oct 2014 23:31
<>
<>
Posted: 1st Oct 2014 23:57
I just mentioned this in the other thread, but I'd like to see an expansion of the flexibility of the language. Since we can now pass in types, function overloading would be very helpful. I mentioned a couple of other smaller things there if you want to have a look.
Posted: 2nd Oct 2014 19:05
lol! yes i ment than.... as i do not intend to spam after....