Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / v2 Feature Requests

Author
Message
Increase
7
Years of Service
User Offline
Joined: 21st Feb 2017
Location:
Posted: 20th Aug 2018 23:36
TextToSpeech for Desktop Platforms
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 30th Aug 2018 03:58
1) I would like to see AppGameKit spit out the app maybe making the JDK project then calling the android compiler to finish off. To this end having constants for setup in the AppGameKit would be good too, something like:
#Android_Company_Name ="..."
#Android_App_Name="..."

This would make it more accessible than the sixty odd point system we have now with eclipse and cygwin etc

2) Do a DB Classic and put ALL media and byte code into the exercise or a datablock as at present no matter the app I can access all models etc. I have written my own encrypted but the byte code is still a thorn.
-EdzUp
Increase
7
Years of Service
User Offline
Joined: 21st Feb 2017
Location:
Posted: 8th Sep 2018 16:09
- small executable sizes for all platforms
- frame adjustment possibilities for html5; possbility of a branding-free compilation
GarBenjamin
AGK Developer
7
Years of Service
User Offline
Joined: 30th Nov 2016
Location: USA
Posted: 9th Sep 2018 16:59 Edited at: 9th Sep 2018 17:03
I think it would be awesome if we could get just some more fundamentals implemented...

1. Predefined functions for working with angles in 2D and 3D: GetDistanceToAngle(fromAngle as float, toAngle as float), GetShortestDistanceToAngle(fromAngle as float, toAngle as float), AngleIsWithinDegrees(testAngle as float, AngleToCompareTo as float, degrees as float), AngleIsBetweenAngles(testAngle as float, Angle1 as float, Angle2 as float), AngleAddWithLimits(angle as float, valueToAdd as float, angleMin as float, angleMax as float). I've already implemented this in my little Extended API project I posted in the past week but it would be awesome to have these as part of the api itself because I think such things are incredibly useful for game development and they will perform much faster as part of the internal api

2. Implementing function references and callbacks for AppGameKit Tier 1 BASIC. It would be fantastic if we could pass in a function reference to another function so it could be stored and later when appropriate this other function could make a callback.
Basically I was thinking a new type of variable could be implemented. Something like FuncRef so we could do something like...

That is just a rough example and the signature of the function references would need to be handled but I would be content at the simplest if every function reference always accepted an array of float values as parameters. It could also accept a special FuncRefType that has predefined fields such as an array of integers and an array of floats. Like a one shot thing defined in the api solely for this purpose. So we would populate that FuncRefType.integerList[0] = SomeValue, etc and when using CallFunction the FuncRefType is passed over. But you may come up with something much better.

3. Implementing Min, MinF, Max, MaxF, Sgn and SgnF in the math section of the api just to provide some more very standard functionality and maximize the performance of using these.

4. Predefined #constant / const int values for ALL key codes within the api itself like KEY_A, KEY_LEFT, etc just in the interest of convenience and everyone not needing to duplicate these in every project including their own file. They are so common in use it just makes sense to have them as part of the api imho.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 9th Sep 2018 20:46
They have said before that they will not do function references or even variable references outside of passing variable references
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 11th Sep 2018 10:30 Edited at: 11th Sep 2018 10:30
I have all the angle functions in my Ultim framework which I have ported to AppGameKit from C++.

One thing I would love is classes in Tier 1 with methods and OOP, they are so useful and make stuff much more encapsulated. Things like:


Would become:


obviously this is a ludicrously basic example but it makes calling things so much easier and would allow for multiple functions with the same name but in different classes so we don't have to add monikers to them like NPCmovement, PlayerMovement etc. It could all come under NPC.Movement and Player.Movement etc
-EdzUp
Bengismo
6
Years of Service
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 11th Sep 2018 12:13
Ive a set of angle functions too so wouldnt need them - there are much better ways of implementing them. It would be easy to add the maths functions straight into the teir 2 library but im not sure I would bother with Min or Max either as its just 2 lines of code in basic anyway.

Im not sure why someone would port C++ code over to basic only then to want OOP in basic when you already had it in the faster C++ version of your code? Its possible to write AppGameKit apps in C++/C#/Python so if OOP is really wanted then those languages are a much better option. I like the ability to quickly broadcast basic AppGameKit apps but thats the only advantage I can really think of in basic compared with using the other OOP languages which can run more quickly and with more functionality in the language.
GarBenjamin
AGK Developer
7
Years of Service
User Offline
Joined: 30th Nov 2016
Location: USA
Posted: 12th Sep 2018 15:09 Edited at: 12th Sep 2018 18:02
I just threw that stuff out as very basic fundamental stuff that by its nature I think should be in any api / engine for games. I get it that we can write all of this stuff and much more ourselves it's more a question of where is the line of what a person should need to write. Should every person need to write min, max, angle functions etc or would it be better to have those basic things in the api so people can focus on arguably more important things like AI and other similar things? Also all of this stuff would run considerably faster in the api. Yes people could all switch to using C/C++ but I think the appeal for many is the BASIC so called Tier 1 programming language.

I think we'd see many more games and bigger more impressive games coming out of AppGameKit if all of the basic fundamental stuff was readily available right in the api. Basically any & all things that most developers will spend time writing for themselves is a perfect candidate to be included in the api. Because if many of us are writing min, max, sgn for example that is an indication it is a fundamental need. If many of us are writing angle functions same case. And so on. Anyway I was just throwing that out there.
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 13th Sep 2018 14:28
GarBenjamin: so true.

One of the reasons so many people use Unity is it does everything from the get go, you can even compile for Linux etc from windows.

It's also a reason that I still work on Ultim my C++ engine as at some point you get to thinking if I have to write most of it then why not go the extra mile and make your own system.
-EdzUp
Riusz
8
Years of Service
User Offline
Joined: 27th Feb 2016
Location:
Posted: 20th Sep 2018 09:57 Edited at: 20th Sep 2018 09:59
My ideas (but I don't know if it's relevant) :
- Include only the used Libraries to the Exe/APK (to make it smaller). For Exemple, if I make a 2D game, the executable will not include all 3d libraries.
Xamarin does something link that (detecting the needed libraries by the commands/references used).
- A Entity-Component-System integration in Basic (Pattern used in a lot of game engine)

Riusz
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 27th Sep 2018 08:12
As I assume print() is mainly only used for debugging purposes can we have an option to either add a drop shadow to it, or a semi-transparent background so that the text stands out over the top of your graphics? I use print() a lot to track variables while the app is running on the device (I'll be honest I don't really know how else to properly debug with AGK) but no matter what print text colour I choose it's often hard to see over the top of some areas of the screen because of the images that lay underneath it.
puzzler2018
User Banned
Posted: 30th Sep 2018 11:04
Hi Paul,

If you could implement something along the lines of SetObjectMeshFromMemblock() but for more of a finer option

say for example, we just need to change a very small vertexes on a mesh

i.e


Then a command to only set the object vertexes like with the above instead of rebuilding the whole object

Something like

SetObjectMeshFromVertexes( Object, VertexFrom, VertexTo )

I think this will speed things up heavily on changing vertexes on an object
puzzler2018
User Banned
Posted: 7th Oct 2018 14:14
Getting an "Unknown error occured" when posting, anyone else?
Increase
7
Years of Service
User Offline
Joined: 21st Feb 2017
Location:
Posted: 14th Oct 2018 17:18
- placing graphics at the complete screen at any time & relative to other system objects / windows
Golelorn
7
Years of Service
User Offline
Joined: 20th Nov 2016
Location:
Posted: 21st Oct 2018 20:42
Selecting a block of code and undoing that block of code only.
fubarpk
Retired Moderator
19
Years of Service
User Offline
Joined: 11th Jan 2005
Playing: AGK is my friend
Posted: 24th Oct 2018 17:02
ide like to see the command AddObjectShapeObject(myObject,addObject, positionVec3, rotationVec3, sizeVec3 )

To be used with physics collisions like

Which would give greater control with the current physic object commands and allow for something like a torus object
to be used where it may just have 4 objects which consist of a break down of the Torus object into quarter sections
fubar
Preben
AGK Studio Developer
19
Years of Service
User Offline
Joined: 30th Jun 2004
Location:
Posted: 25th Oct 2018 08:33 Edited at: 29th Oct 2018 15:08
SetObjectMeshVisible(obj,mesh,mode)

Needed this for years , and should be a easy one

Edit: No need i added it myself, will add it to github when i have a full branch
Subscribe and checkout great AppGameKit video's here: Videos click here
Latest GameGuru Loader news: News click here
Get GameGuru Loader PBR version here: Steam click here
best regards Preben Eriksen,
SoftMotion3D
AGK Developer
18
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 10th Nov 2018 16:18 Edited at: 10th Nov 2018 16:20
I have a request for DeleteSprite( iSpriteIndex )

deleting individual sprites is slow but the command deleteallsprites is fast. can we have a range that could be deleted so it can perform the task faster? or can the deletesprite code be looked at cause its slow with 10k sprites to delete.
what? 10k sprites you say? Yes! its for an emulated display of pixels. During runtime it works fast ...they just dont want to delete very fast once created.

so for my request .... a range of sprites to delete would be nice instead of needing to delete all of them for speeds sake.

i also thought of using a memblock for a single sprite..... however thats much slower to update then individual sprites.
adambiser
AGK Developer
8
Years of Service
User Offline
Joined: 16th Sep 2015
Location: US
Posted: 12th Nov 2018 00:33
I would love to have a Dictionary type in Tier 1.

blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 12th Nov 2018 01:11
adambiser
AGK Developer
8
Years of Service
User Offline
Joined: 16th Sep 2015
Location: US
Posted: 12th Nov 2018 03:07 Edited at: 13th Nov 2018 03:51
@blink0k: insertsorted and find are nice, but too limited for what I had in mind since they don't offer key->value lookup.
When used with arrays of user-defined types, insertsorted and find use the first item in the UDT for sorting and finding in the array.
adambiser
AGK Developer
8
Years of Service
User Offline
Joined: 16th Sep 2015
Location: US
Posted: 13th Nov 2018 03:50
@blink0k: Sorry, I did not realize how insertsorted and find work with UDT arrays. Thank you for mentioning them! Now that I understand, I think they will work.
XANAX 2B
20
Years of Service
User Offline
Joined: 20th Jun 2003
Location: Corsica (France)
Posted: 5th Dec 2018 00:20 Edited at: 5th Dec 2018 00:21
SetVirtualButtonTextColor()
SetVirtualButtonTextSize()
SetVirtualButtonTextFont()

+1 for TTS for Desktop
Never trust ignorance
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 5th Dec 2018 20:15
SetSandboxMode(mode)
mode = 1 // Input files read from media folder, Output files written to local folder
mode = 0 // Input files read from media folder, Output files are written to media folder
drak00
5
Years of Service
User Offline
Joined: 7th Dec 2018
Location:
Posted: 7th Dec 2018 12:07
If it's not too much trouble include your help or wants here with the goal that they are in a sorted out are for AppGameKit to decide whether they are practical to do.

Alter (including highlights as we go so they are all to finish everything):

Steam Store incorporation - If we need genuine Windows improvement, including the developing outside the box scene, at that point this is an absolute necessity have today. Steam Store is by a long shot the most prominent store on PC. It's likewise accessible on Mac now, and Linux.

Enhanced controller bolster - Currently we can't distinguish the 360 d-cushion and the triggers are broken. I think the equivalent goes for the PS4 controller. The 360 controller is standard on PC with numerous diversions supporting it out of the case. The PS4 controller is developing in fame. - Looks like Paul is getting this in now!

Linux bolster - Getting AppGameKit to keep running on Linux shouldn't be too hard since AppGameKit utilizes OpenGL. It's a stage we realize will keep on existing for quite a while. It is extremely prominent among independents. On the off chance that you need your diversion on Humble Bundle, at that point Linux is a major preferred standpoint. Since it works simply like a PC or Mac making recreations for Linux would similarly as simple. We additionally have the up and coming Steam OS and Steam Boxes which are Linux based. So it's the ideal next stage for AGK.
Carharttguy
7
Years of Service
User Offline
Joined: 8th Jul 2016
Location: Belgium
Posted: 10th Dec 2018 10:48
Simple request: Make it possible to add folders in the IDE, so that we can manage files in folders.
Carharttguy
7
Years of Service
User Offline
Joined: 8th Jul 2016
Location: Belgium
Posted: 10th Dec 2018 15:55
I have another idea:
Make it possible to create plugins from Tier 1 code. e.g: I made a simple GUI kit, but the problem is: Using it requires importing several files, so a lot of functions get exposed that a user doesn't need but does show up with function hinting etc.
If we could create a plugin, distributed as a single package, with some settings (expose this type, expose this function, do not expose this function etc) things could get powerful.

Any feedback?
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 10th Dec 2018 19:54
I like the idea of plugins maybe compiled code segments that are dropped into the game and called via commands etc, seeing as AGK2 is interpreted not compiled it wouldn't be to hard to implement as the only step would be unscrambling the byte code
-EdzUp
adambiser
AGK Developer
8
Years of Service
User Offline
Joined: 16th Sep 2015
Location: US
Posted: 11th Dec 2018 06:44
@Carharttguy: Allowing module-private methods would be helpful and would allow dropping in tier 1 files without exposing a bunch of internal functions and without doing plugins.

In the meantime, you could prefix internal functions with something to make make them less likely to be used.
Sh4d0xx
9
Years of Service
User Offline
Joined: 5th Dec 2014
Location: United Kingdom
Posted: 15th Dec 2018 17:35
2D Lights ?
Sh4xx
Kakise
AGK Tool Maker
7
Years of Service
User Offline
Joined: 25th May 2016
Location: Paris
Posted: 4th Jan 2019 22:15
The ability to pass custom data types to a C++ plugin.
PCG Lover
Using AppGameKit Tier 1&2
Increase
7
Years of Service
User Offline
Joined: 21st Feb 2017
Location:
Posted: 21st Jan 2019 12:29
The info boxes, which show up after entering a command to display possible commands and variables, could offer more space so even long commands & their variable requirements can be completely displayed.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd Jan 2019 00:36
GetType(handle as integer)

Which returns;
TYPE_INVALID=0
TYPE_IMAGE=1
TYPE_SPRITE=2
TYPE_TEXT=3
TYPE_OBJECT=4
TYPE_VECTOR=5
TYPE_FONT=6
TYPE_MESH_MEMBLOCK=7
TYPE_IMAGE_MEMBLOCK=8
TYPE_SOUND_MEMBLOCK=9
TYPE_TWEEN=10
TYPE_PARTICLES=11
TYPE_EDITBOX=12
TYPE_JOINT=13
and so on
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 23rd Jan 2019 05:03
Quote: "GetType(handle as integer)

Which returns;
TYPE_INVALID=0
TYPE_IMAGE=1
TYPE_SPRITE=2
TYPE_TEXT=3
TYPE_OBJECT=4
TYPE_VECTOR=5
TYPE_FONT=6
TYPE_MESH_MEMBLOCK=7
TYPE_IMAGE_MEMBLOCK=8
TYPE_SOUND_MEMBLOCK=9
TYPE_TWEEN=10
TYPE_PARTICLES=11
TYPE_EDITBOX=12
TYPE_JOINT=13
and so on"


CreateText(1, "hi")
CreateSprite(1, "char.jpg")
MyType = GetType(1)

Maybe I am misunderstanding, but I don't see how this would work
http://games.joshkirklin.com/sulium

A single player RPG featuring a branching, player driven storyline of meaningful choices and multiple endings alongside challenging active combat and intelligent AI.
Virtual Nomad
Moderator
18
Years of Service
User Offline
Joined: 14th Dec 2005
Location: SF Bay Area, USA
Posted: 23rd Jan 2019 06:07 Edited at: 23rd Jan 2019 06:10
Quote: "Maybe I am misunderstanding, but I don't see how this would work"


i expect blink means something like:

This = CreateText("hi")
ThisType = GetType(This)

...where ThisType = 3 (Text) in the suggested return results.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd Jan 2019 07:04 Edited at: 23rd Jan 2019 07:06
Ortu is right. I forgot you can have the same handels for different type of objects...bugga!
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 23rd Jan 2019 15:04 Edited at: 23rd Jan 2019 15:07
...but you can have the same ID for text and sprite so the integer input isn't enough.
We would need to be able to create an Object which can be any type for this to work. The Object would need to contain an integer ID so we can continue using ALL of the other commands that currently need an integer ID.

EDIT: this could be done using code without adding to the language.

...and so on...
Using AppGameKit V2 Tier 1
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 23rd Jan 2019 19:58
Yes. That is a good approach
paulrobson
9
Years of Service
User Offline
Joined: 22nd Nov 2014
Location: Norfolk, England
Posted: 30th Jan 2019 20:33 Edited at: 30th Jan 2019 20:37
I'd quite like some OOP. Having looked at the intepreter source, i realise you can't do any indirection (without hacking the stack frame, anyway !). I also appreciate that significant language changes to the compiler are non trivial.

My suggestion is for a simple but useful extension which is purely syntactic. I have actually written code like this to encapsulate libraries and so on.

type myclass
<members>
endtype

function myclass_initialise(this ref as myclass,...)
function myclass_update(this ref as myclass...)

demo as myclass
myclass_initialise(demo,...)

It would seem that dot operators aren't extensively used. My suggestion is a syntactic shim that converts

demo.initialise(<parameters>
into myclass_initialise(demo,<parameters>

So types automatically become a sort of quasi class that you can use straight off.

Now there are obviously huge problems with this. You can't inherit, there's no polymorphism and so on. You can work round some if not all of that to a degree. But I think it would add something to AppGameKit Basic Tier 1 in terms of encapsulation and readability. without large amounts of work and complex changes to the compiler - I haven't obviously seen the compiler source, but all it would need to do is to change the parsing to allow a '.' or other character to appear in the name, detect that, and then do the syntactic switch by looking at the type of the entity before the seperator.

(For simplicity, it probably wouldn't be worth changing the actual definition part)

There wouldn't seem to be any issues with old code, which would work as normal, as the dot character isn't allowed in function identifiers anyway.
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 3rd Feb 2019 12:28
Might be nice to have the opposite to GetUnixFromDate() i.e. GetDateFromUnix()

Pass a unix timestamp through to it and get a date returned. It probably doesn't matter if it's one string as we can chop it up to format it how we want it.
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 3rd Feb 2019 12:29 Edited at: 3rd Feb 2019 12:31
Had network issues so double posted
Hubert BAYRE
6
Years of Service
User Offline
Joined: 21st Oct 2017
Location: France
Posted: 3rd Feb 2019 23:58
Arduino serial command !

https://blog.manash.me/serial-communication-with-an-arduino-using-c-on-windows-d08710186498
paulrobson
9
Years of Service
User Offline
Joined: 22nd Nov 2014
Location: Norfolk, England
Posted: 4th Feb 2019 20:27
"They have said before that they will not do function references or even variable references outside of passing variable references"

The VM cannot do function references or any sort of indirect jump ; there is no opcode that supports it. However, this design is entirely static ; it is syntactic sugar. In some ways it is more like modules than objects. I do it anyway ; it would just make the code look neater You'd write app.moveto(0,0) rather than Class_MoveTo(app,0,0)
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 5th Feb 2019 11:57
use #insert inside an already inserted files. At the moment you can't use another #insert line inside a file that was inserted in the main agc file with #insert.
OryUI - A WIP AGK2 UI Framework
Bengismo
6
Years of Service
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 5th Feb 2019 15:30
Quote: "Arduino serial command !

https://blog.manash.me/serial-communication-with-an-arduino-using-c-on-windows-d08710186498"


Id second the wish for adding generic serial port access to AGK. Its possible to use UARTs in windows with a plugin in AppGameKit but android and Pi versions need "other" methods which are a massive pain. (TCP-UART bridge or PIGPIOD)

Android plugins would be great but not sure thats possible due to the architecture of android.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 9th Feb 2019 02:29 Edited at: 9th Feb 2019 02:47
Support for scale animations in .3ds .fbx files etc
Kakise
AGK Tool Maker
7
Years of Service
User Offline
Joined: 25th May 2016
Location: Paris
Posted: 10th Feb 2019 09:04
Export to a .AppImage on linux platforms
PCG Lover
Using AppGameKit Tier 1&2

My creations:

[Tier 1 PLUGIN] Wave Function Collapse for Tier 1
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 15th Feb 2019 20:56 Edited at: 15th Feb 2019 21:18
Not have editboxes gain focus instantly when touched. In most apps you can press a text box and scroll the screen and the text box won't activate because the screen moved. With AppGameKit if you try and swipe the screen and hit an edit box before swiping it gains focus and the keyboard appears breaking the swipe. I can't find a workaround for this yet.

EDIT: I think the main issue with this is GetPointerX and GetPointerY when pressed inside an editbox stops changing when the mouse/pointer is moved around while held down so any code to swipe/scroll the screen stops working. You have to click outside of the editbox before it works again. That's not so easy to do if you have a few editboxes near each other like a form.
OryUI - A WIP AGK2 UI Framework
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 16th Feb 2019 07:56
One thing I would like to see is default function parameter values, like:

Function MyFunc( a as string ="", b as integer =0)

So calling it could be:

MyFunc()
MyFunc( "Test" )
MyFunc( "Test, 1 )

All would be valid as long as the parameter values were in order, missing ones would just use default values.
-EdzUp
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 16th Feb 2019 08:44
I'm thinking an edit box should be activated on pointer released rather than pointer pressed

Login to post a reply

Server time is: 2024-04-18 06:46:02
Your offset time is: 2024-04-18 06:46:02