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 / What commands do you want to see in AGK?-am currently putting together DLL in VS2019

Author
Message
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 24th Mar 2020 15:25
If you would like to see any additional commands in Tier1, please let me know. I'm adding my own plugin code for Tier1 to return pointers and all sorts , so please shout if you have any commands in Tier1 that you would like to see as I know Tier2 is not everyone's cuppa


Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
DannyD
2
Years of Service
User Offline
Joined: 29th Aug 2017
Location:
Posted: 24th Mar 2020 16:02
If you need a tester... PM me I can help test
blink0k
Moderator
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 24th Mar 2020 20:40
Windows controls
chafari
Valued Member
14
Years of Service
User Offline
Joined: 2nd May 2006
Location: Canary Islands
Posted: 24th Mar 2020 22:27
Save object
I'm not a grumpy grandpa
blink0k
Moderator
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 25th Mar 2020 03:21 Edited at: 25th Mar 2020 04:57
This will create an .obj file from a model in memory.

It will only create verts, textures and normals. No bones or animation. Should be suitable for a static model with a texture

The example will load "track.obj" from the Documents directory and create "newtrack.obj" in the Documents directory. You can substitute your own model names

I think there is an issue with some verts not being welded. I think it has something to do with they way the verts are presented in the mem block.
So there are only two options; 1) as is or 2) nearest vert welded. The code is an as is solution.

As usual i have done very little testing so it's prolly a mine field of bugs lol.

Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 25th Mar 2020 12:09 Edited at: 25th Mar 2020 12:24
@DannyD-thanks for the offer, I will keep you in mind when it comes to thorough testing stage.
@blink0k-can you be more specific , do you mean controls as in various gadgets, buttons, edit boxes, tracker bars etc?
@chafari-yes, no problem with "save object". I requested this years ago, but I now have code that saves to .X, .OBJ.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Scraggle
Moderator
17
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 25th Mar 2020 17:12
Quote: " do you mean controls as in various gadgets, buttons, edit boxes, tracker bars etc?"

I'm going to answer on Blinks behalf because it was discussed recently on Discord - Yes, that is what he means and I think a lot of people would very much appreciate something like that!
basicFanatic
3
Years of Service
User Offline
Joined: 7th Jun 2017
Location:
Posted: 29th Mar 2020 11:04
Better lightning and more than a single camera would be nice!
fubarpk
Retired Moderator
15
Years of Service
User Offline
Joined: 11th Jan 2005
Location: Adelaide
Posted: 30th Mar 2020 08:57
I see allot of people making paint style programs so some more advanced
drawing functions would be great ie a floodfill that's faster than the ones
around using memblocks etc Im sure there are other basic drawing functions
like polys etc that could be handy

fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
basicFanatic
3
Years of Service
User Offline
Joined: 7th Jun 2017
Location:
Posted: 30th Mar 2020 11:59 Edited at: 30th Mar 2020 12:00
If we're talking drawing programs, then pen pressure is absolutely essential.
DannyD
2
Years of Service
User Offline
Joined: 29th Aug 2017
Location:
Posted: 30th Mar 2020 13:25
Midi Files.. Funny that Dark Basic had this, but not in AGK

I've done a DLL in Softvelocity Clarion to use the winmm.dll
If I can get it somehow converted to be use in AppGameKit,. There is a bunch of Audio/Video functions...

See this Link
https://forum.thegamecreators.com/thread/213278

MS Docs
https://docs.microsoft.com/en-us/windows/win32/api/mmeapi/nf-mmeapi-midioutclose

Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 30th Mar 2020 13:48
many thanks for all the replies/ideas. I will certainly look into all that, I like the idea of more cameras (like DBPRO has) . Sure most of the above can be taken care of. I will get cracking....

Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
nz0
AGK Developer
13
Years of Service
User Offline
Joined: 13th Jun 2007
Location: Cheshire,UK
Posted: 30th Mar 2020 23:15 Edited at: 30th Mar 2020 23:16
This is for Windows only DLL for T1, yes?
What sort of scope are we talking about - something like a generic ODBC wrapper perhaps? Or do you mean enhancements to existing internals?
Wilf
Valued Member
14
Years of Service
User Offline
Joined: 1st Jun 2006
Location: Gone to Unity.
Posted: 1st Apr 2020 07:07
Discover/reconnect gamepads and joysticks after the program has started.
Zed
17
Years of Service
User Offline
Joined: 20th Sep 2002
Location:
Posted: 12th Apr 2020 14:36
SendKeys - it's C# .NET so shouldn't be too hard to add.
Loktofeit
AGK Developer
Gold Codemaster
11
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Lakewood Ranch, FL
Posted: 12th Apr 2020 14:47
Record Audio
blink0k
Moderator
7
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 13th Apr 2020 01:04
Big plus for record audio
brunuu
2
Years of Service
User Offline
Joined: 4th Jun 2018
Location:
Posted: 13th Apr 2020 03:34
draw triangles
and fill parts of the screen
Scraggle
Moderator
17
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 13th Apr 2020 08:48
Support for additional hardware pointers would be fantastic for tool writers.
brunuu
2
Years of Service
User Offline
Joined: 4th Jun 2018
Location:
Posted: 13th Apr 2020 14:22
a command for spring physics would be nice too.
Qugurun
Valued Member
5
Years of Service
User Offline
Joined: 8th Dec 2014
Location: Tyumen, Russia
Posted: 13th Apr 2020 23:17 Edited at: 13th Apr 2020 23:22
Scraggle https://forum.thegamecreators.com/thread/225433 Is that what you say?
The implementation may be unsuccessful, but you can always tell how to write how it will be convenient for you. This is a test case.
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 16th Apr 2020 10:42 Edited at: 16th Apr 2020 10:43
looking at all the comments so far and making notes. will see what can be done. thanks to all that responded.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Scraggle
Moderator
17
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 16th Apr 2020 11:14
Yes Qugurun, thank you.
I didn't know that existed. I'll give it a try now
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 19th Apr 2020 13:42 Edited at: 19th Apr 2020 13:43
Implementation going well so far with some new memblock pointer related commands in Tier1 (Windows) using VS2019 c++. Testing ongoing to compare speed of existing memblock commands against new ptr commands. Will be doing same for images/files etc
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Virtual Nomad
Moderator
14
Years of Service
Recently Online
Joined: 14th Dec 2005
Location: SF Bay Area, USA
Posted: 24th Apr 2020 18:12 Edited at: 24th Apr 2020 18:13
Keep Window on Top functionality would be handy.

"MediaBanks" would be great, as well. Ie, Create/SaveSoundBank, AddSoundToSoundBank, CreateSoundfromSoundBank, etc, using Memblocks.

i'm sure there are tons more helpful functions we would benefit from (i have 1/2 a mind to rummage through IanM's Matrix1Utils for DBPro which was a GREAT resource and opened many doors).
Scraggle
Moderator
17
Years of Service
User Offline
Joined: 10th Jul 2003
Location: Yorkshire
Posted: 24th Apr 2020 18:56
Quote: " IanM's Matrix1Utils for DBPro which was a GREAT resource"

I second that!
It was essential for any DBPro work!
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 25th Apr 2020 07:31
Yes, it's the IanM matrixutils1 that inspired me to do this for AGK.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
brunuu
2
Years of Service
User Offline
Joined: 4th Jun 2018
Location:
Posted: 25th Apr 2020 14:39

commands for simple effects on spriters

blur, shadow, fade in/out, distortion, shake
fubarpk
Retired Moderator
15
Years of Service
User Offline
Joined: 11th Jan 2005
Location: Adelaide
Posted: 25th Apr 2020 16:32
@brunuu

blur and distortion can be done by the use of a shader and there have been many people have created and shared
Fade in/fade out can already be achieved already with your own code with setSpriteAlpha and a timer


fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
Santman
8
Years of Service
User Offline
Joined: 15th Sep 2011
Location: Inverness
Posted: 25th Apr 2020 21:02
OMG - if you could do the fucntions from the old DBPro it would be epic:

-ability to scan for a free memory location
-ability to peek & poke memory - i.e. access a direct memory location address

These would allow custom threading for things like AI.

Is there a way to load a graphic directly into image memory between processes? For example, run an AppGameKit program and use a texture, but have a second program load a new texture to memory then tell the 1st where, then have the first point at that? That would allow Unreal style texture streaming. I had a DBPro version working with music, could load about 2gb a minute with a 4fps hit.
brunuu
2
Years of Service
User Offline
Joined: 4th Jun 2018
Location:
Posted: 27th Apr 2020 22:45
@fubarpk
yes i know, but it would be nice if it had some effects built-in on engine
Xaby
FPSC Reloaded TGC Backer
13
Years of Service
User Offline
Joined: 17th Apr 2007
Location: Berlin
Posted: 28th Apr 2020 05:31
The possibility of loading *.BASIS texture files and save RAM.
https://github.com/BinomialLLC/basis_universal

could save us about 8:1 in memory, would have faster loading times than PNG and is in the quality and size of JPEG or better.
So seeing this supported would be great.
Polaraul
5
Years of Service
User Offline
Joined: 13th Dec 2014
Location:
Posted: 28th Apr 2020 16:44
The ability to unzip a password protected zip direct to a memblock would be very much appreciated.
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 28th Apr 2020 19:26
Ah yes .basis, I compiled a while ago, must get that in and unzip password easy enough. Tons of stuff to get teeth into.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 28th Apr 2020 21:11 Edited at: 28th Apr 2020 21:13
ok, so compiled list so far is:

Windows controls->gadgets, buttons, edit boxes, tracker bars etc
Save object
Better lightning (Lighting?) and more than a single camera would be nice!
more advanced drawing functions i.e. a floodfill that's faster than the ones around using memblocks
pen pressure is absolutely essential
Midi Files.. Funny that Dark Basic had this, but not in AGK
generic ODBC wrapper
Discover/reconnect gamepads and joysticks after the program has started.
SendKeys - it's C# .NET so shouldn't be too hard to add.
Record Audio
draw triangles and fill parts of the screen
Support for additional hardware pointers would be fantastic for tool writers.
a command for spring physics would be nice too.
Keep Window on Top functionality would be handy.
"MediaBanks" would be great, as well. Ie, Create/SaveSoundBank, AddSoundToSoundBank, CreateSoundfromSoundBank, etc, using Memblocks.
commands for simple effects on spriters ->blur, shadow, fade in/out, distortion, shake
ability to scan for a free memory location
ability to peek & poke memory - i.e. access a direct memory location address
Is there a way to load a graphic directly into image memory between processes?
The possibility of loading *.BASIS texture files and save RAM.
The ability to unzip a password protected zip direct to a memblock would be very much appreciated.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Xaby
FPSC Reloaded TGC Backer
13
Years of Service
User Offline
Joined: 17th Apr 2007
Location: Berlin
Posted: 28th Apr 2020 21:26
On Android and Windows we can use for MIDI




tested with https://bitmidi.com/super-mario-64-medley-mid
Xaby
FPSC Reloaded TGC Backer
13
Years of Service
User Offline
Joined: 17th Apr 2007
Location: Berlin
Posted: 28th Apr 2020 22:08 Edited at: 30th Apr 2020 06:32
But with some more wishes:

- merging 3D models together (e.g. 100 3D Objects are slower than 1 object with the same amount of polygones) mesh merging like we tried in the Minecraft-Clone-project
- merging 2D Sprites together, if that does not work automaticly / would be great for scrolling backgrounds

to specify the saving object thingly:
- SAVING 3D objects
- SAVING 3D objects with Animations
- SAVING 2D Skeletons Spriter / Spine
- on top, but that would be very great for large scenes and high polycount models with a lot of bones and so on: draco https://github.com/google/draco

and for better 2D support and pushing AppGameKit to the next visual level and for better animations:
- Loading Spine in file version 3.8x, soon 3.9 (http://de.esotericsoftware.com/spine-runtimes)

and for the SOUND thingly, man, 3D positioning sound, Sound mixing. And some Sound-Generators. But some of these would work with memblocks, but some Sound-Buffer-things don't work and not work well on Android, but I guess, Android is another thing with plugIns.

For creating tools it would be great to have:
- a windows without a title-bar and be able to make the window sticky (on top, like mentioned) and transparent
- and be able to drag and drop files from other Apps and places into the AGK-created-App. So that would allow to do more interaction with other programs and using AppGameKit for tools
==> therefor is a plugIn I found: https://forum.thegamecreators.com/thread/225363

Also I still have some problems with the way the Render-Target could be set and the calculation has to be done.

e.g. My Image, I want to create is 512 x 512, but my Main-Window is 1280 x 720. And my Visual resolution is 1280 x 720. But my Image has now also 1280 x 720 and not 512 by 512.

If we have SendKey, we also could need SendMouse... thinglies. So we could build AutoIt or some MacroBots

ODBC ... I gues using SQLite out of the box for saving and so on would be great.
And yes, XML could be done by hand, but having XML and JSON would be great as well. (maybe there is a plugin allready and I didn't used it, because it wouldn't work on Android or the Raspberry Pi)

ImageToClipboard ... (image memory between prosses, I guess)
OLE (Object Linking and Embedding)

Oh ... a lot of these things we have in PureBasic

a debug mode for 3D objects, where cameras, lights and so would be shown ... but I guess, that could be done also by hand

what I also not get is, how a data-stracture with "linked lists" could be saved automaticly into a JSON. Not only JSON by JSON ... but that is maybe a question, not a wish.

... and if we talk about gamepads: Force Feedback and Rumble functions.

-------------

Is there a possibility to reduce the "resolution" by scaling the window up? I mean, if we have 320 x 200 e.g. and we now change the window size, we now have 640 x 400. I know, the calculation of the Sprites and so on will work, but the performance will be like 640 x 400 and not like 320 x 200 but with bigger pixels.
in fullscreen we also only have Desktop-Resolution and on Android only native display resolution.
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 29th Apr 2020 20:58
working on more sound/music loading i.e. midi files etc.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Bengismo
2
Years of Service
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 29th Apr 2020 21:12
You can load and play midi files in AppGameKit already using the Music commands - its built in. (its only recording from or sending to external devices that would need a plugin)
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 29th Apr 2020 21:17
ah, how odd, somone wanted to see midi. I guess I didn't realise and neither did the person above. ok no worries, I will move onto something else
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
Xaby
FPSC Reloaded TGC Backer
13
Years of Service
User Offline
Joined: 17th Apr 2007
Location: Berlin
Posted: 30th Apr 2020 06:30
I posted that source for MIDI to show that it allready works
DannyD
2
Years of Service
User Offline
Joined: 29th Aug 2017
Location:
Posted: 30th Apr 2020 06:35 Edited at: 30th Apr 2020 07:00
@Bored of the Rings

Yeah, I requested some more MIDI Functions.

EG: Read Midi notes from a External Midi device, Sending Notes to Midi Devices

I need more MIDI Specific Functions. Not only Play and Load... but more indepth

https://docs.microsoft.com/en-us/windows/win32/multimedia/summary-of-maps-and-midi-messages

https://docs.microsoft.com/en-us/windows/win32/multimedia/recording-midi-audio

For example.
I want to connect my MIDI device eg: Keyboard, Guitar, Drums to the MIDi device
Read the MIDI input NOTE and display a Music Score if selected Note
or
Display the Drums (on the PC)
or Make a Drum Pad, on the PC that send Midi Notes to the Midi device or Midi Mapper

Thanks
Danie
DannyD
2
Years of Service
User Offline
Joined: 29th Aug 2017
Location:
Posted: 30th Apr 2020 06:37
Another suggestion!

Read music frequency from the Mic,
For example. To build an Intrument Tuner...

DannyD
2
Years of Service
User Offline
Joined: 29th Aug 2017
Location:
Posted: 30th Apr 2020 06:43 Edited at: 30th Apr 2020 10:29
@Bengismo

Quote: "You can load and play midi files in AppGameKit already using the Music commands "


What did I miss... I've tried that and couldn't get Midi files to load or play with loadmusic(1,"midifile.mid")
ogg and Mp3 fine

Any COMMAND I might have missed?
Bengismo
2
Years of Service
User Offline
Joined: 20th Nov 2017
Location: Yorkshire, England
Posted: 30th Apr 2020 11:36
As Xaby said above:

https://forum.thegamecreators.com/thread/225975#msg2655275

it should just be Loadmusic() and PlayMusic()

It works fine for me and plays midi files. Ive tried it on 4 pc's with a number of different midi files without problems. It depends what platform your using though. As Xaby said... windows and android seem fine.
basicFanatic
3
Years of Service
User Offline
Joined: 7th Jun 2017
Location:
Posted: 2nd May 2020 02:02
Sprite collision detection would be awfully nice!
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 2nd May 2020 06:57 Edited at: 2nd May 2020 07:05
no worries , I have made note of all requests, I will double check MIDI stuff and being a musician also it is defo somethng I should have checked first but not yet used AppGameKit for music If there are already MIDI commands that exist and work, no reason to reinvent the wheel.
great idea about sprite collision detection, although how this is not already in AppGameKit I have no idea.

I have been writing the new commands in both tier2 and tier1 (as a 3rd party plugin), so if all goes well I can submit as part of github code and see if it gets added in the future by Paul. Or just write dll commands as a third party plugin only for tier1.

Pointer commands for memblocks going well and I have done some initial speed comparison testing. Weirdly enough, the memblock pointer commands are faster in tier2, but in tier1 the memblock pointer commands are slightly slower in Tier1 when using a 3rd party plugin. It would probably be more beneficial to have Tier1 commands added to the main github source than by having to call them via 3rd party means.
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
fubarpk
Retired Moderator
15
Years of Service
User Offline
Joined: 11th Jan 2005
Location: Adelaide
Posted: 2nd May 2020 07:08
Quote: "great idea about sprite collision detection, although how this is not already in AppGameKit I have no idea."

Theres a range of sprite collision even the command GetSpriteCollision( iSprite1, iSprite2 ) but I think what may be meant is
pixel perfect collision as the masking doesn't always do so well

fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
Bored of the Rings
15
Years of Service
User Offline
Joined: 25th Feb 2005
Location: Middle Earth
Posted: 2nd May 2020 08:23
ah pixel perfect colliision, ok that would make sense. Please can i ask users to be more specific on their requirements as it gets confusing. thanks
Professional Programmer, languages: SAS, C++, SQL, PL-SQL, DBPro, Purebasic, JavaScript, others
basicFanatic
3
Years of Service
User Offline
Joined: 7th Jun 2017
Location:
Posted: 2nd May 2020 17:39 Edited at: 2nd May 2020 17:39
Sorry, my bad! I thought it was implicitly understood that I meant pixel perfect. I have been through the rather painful process of manually coding the adjustment of a collision shape frame-by-frame, and I didn't consider that others possibly didn't have the lack of pixel-perfect collision as fresh in mind.

Login to post a reply

Server time is: 2020-08-12 20:07:36
Your offset time is: 2020-08-12 20:07:36