Apparently AGK is very slow for 2d drawing :/

Started by Xaron, August 20, 2017, 14:54:38

Previous topic - Next topic

Pingus

For what I know (tested AGK few years back), AGK BASIC is slow because it is a interpreted language, so anything that relates to many loops will be slow, it is not specific to 2D drawing. As long as there are a lot of iterations by frame (>100000), it will slow down. Of course if you know C++ and use Tier2 it becomes a framework and 100000 iterations is nothing for a compiled code like what does C++ or bmax. (100000 is just to give an order of magnitude, it depends on the target of course, could be 10000 or less on a weak smartphone).
That's the main reason why I did not switched to AGK. It should not be an issue for most platform or action games but as soon as you have to parse arrays it becomes a pain. 

Qube

2D and 3D in AGK is actually pretty darn nippy. As mentioned Tier1, being interpreted can be a bottleneck if your game relies on a lot of heavy logic / loops per frame.

Out of curiosity I amended my recent game to have 100 comets on the title screen.

This consists of :

Full 1080P 2D backdrop
3D Comet Killer Logo ( 2640 polys ) with a 1024x1024 texture + 1024x1024 normal map
100 3D models ( 265 poly's each ) each with a 1024x1024 texture + 1024x1024 normal map ( I know, total unnecessary overkill :P )
Each comet has a particle effects trail + shadows
Each comet can bounce off each other comet and create a dust explosion particle effect

It runs at 60FPS still. At 200 comets it drops to about 40fps - Plus none of this is optimised code at all. AGK Tier 1 can handle 1000's on sprites at 60FPS and the only bottleneck is when you introduce heavy logic. AGK3 will compile to C++ ( my prediction for 2018 )

So overal I would say AGK Tier 1 is not slow at drawing :)

Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Steve Elliott

#17
Quote
Of course if you know C++ and use Tier2 it becomes a framework and 100000 iterations is nothing for a compiled code like what does C++

What's wrong in using an industry standard language and an engine?  You still get beginner friendly commands like 'SetSpritePosition'.

Quote
2D and 3D in AGK is actually pretty darn nippy. As mentioned Tier1, being interpreted can be a bottleneck if your game relies on a lot of heavy logic / loops per frame.

Out of curiosity I amended my recent game to have 100 comets on the title screen.

This consists of :

Full 1080P 2D backdrop
3D Comet Killer Logo ( 2640 polys ) with a 1024x1024 texture + 1024x1024 normal map
100 3D models ( 265 poly's each ) each with a 1024x1024 texture + 1024x1024 normal map ( I know, total unnecessary overkill :P )
Each comet has a particle effects trail + shadows
Each comet can bounce off each other comet and create a dust explosion particle effect

It runs at 60FPS still.

That sounds quick to me!

Did you upload this new version Qube?

Quote
AGK3 will compile to C++ ( my prediction for 2018 )

Nice.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Xaron

Well using AGK with c++ makes only sense when you know c++ IMHO. There are so many things which drive you mad when you don't know the language. Personally I love c++ so that's a no brainer for me.

Pingus

Do you have some clues that makes you think that AGK will include a compiler (forum or twitter comments) or is it just a wish ?

Naughty Alien

QuoteAGK3 will compile to C++ ( my prediction for 2018 )

..that will be some nice touch..

Xaron

I doubt that will happen. They will put more work into that visual IDE.

Qube

QuoteDid you upload this new version Qube?
Nah, I was just curious. Besides it's unplayable with 100 comets that size on screen, you die almost immediately :P

QuoteDo you have some clues that makes you think that AGK will include a compiler (forum or twitter comments) or is it just a wish ?
Pure wishful thinking :) - It would take a massive rewrite no doubt and as it already has C++ support if needed.
Mac Studio M1 Max ( 10 core CPU - 24 core GPU ), 32GB LPDDR5, 512GB SSD,
Beelink SER7 Mini Gaming PC, Ryzen 7 7840HS 8-Core 16-Thread 5.1GHz Processor, 32G DDR5 RAM 1T PCIe 4.0 SSD
MSI MEG 342C 34" QD-OLED Monitor

Until the next time.

Pingus

QuotePure wishful thinking :)

Ah ah ok, I guess that I should focus on Monkey2 or NG then  ::)

Steve Elliott

#24
Quote
Ah ah ok, I guess that I should focus on Monkey2 or NG then  ::)

Why?  Monkey 2 and NG are hardly a type of BASIC (or indeed complete) these days lol.

A World Class IDE (if you go for the standard C++ language and AGK) is something you will never get with those options either, rather than Mark's re-write of C++/Java and a crap IDE.

I really do not understand the loyalty people still give Mark after the many times he has walked away from his products/user base when he gets bored.
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

MikeHart

Quote from: Pingus on August 30, 2017, 14:32:52
Ah ah ok, I guess that I should focus on Monkey2 or NG then  ::)

Yes, do that. These will be the perfect tools for you. Looking forward to your creations.

MikeHart

Quote from: Steve Elliott on August 30, 2017, 14:47:42
I really do not understand the loyalty people still give Mark after the many times he has walked away from his products/user base when he gets bored.

There is nothing to understand Steve. If he creates another version of Brainfuck, they will still hail him, no matter what. And if it makes them happy, good for them.

Xaron

#27
Actually Monkey 2 is a nice language and very usable. The main issue is the hell of a crap IDE and the non existing documentation.

Steve Elliott

Quote
Yes, do that. These will be the perfect tools for you. Looking forward to your creations.

Haha  ;D Yeah use what works best for you...Just if it's a Sibly Language don't expect it to be around for too long.

Quote
There is nothing to understand Steve. If he creates another version of Brainfuck, they will still hail him

The main issue is the he'll of a crap IDE and the non existing documentation.

Sad, but consistently true.   ::)



Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

Naughty Alien

QuoteI really do not understand the loyalty people still give Mark after the many times he has walked away from his products/user base when he gets bored.

..i think its subject of fact that Mark is capable to produce some nice software..having said that, there is some sort of expectation like, 'this time he will do it all right', hence people could feel that there is a lot of potential, but for some reason it doesn't develop any further than mentioned expectations...now, couple that with literally, Mark, non existent understanding of marketing and business(lets not talk about absence from community, which celebrates when he say 'hi' in thread), you will quickly see why everything is as it is...then you see plenty of options available, with rather polished tools, free...and then, you look at new BRL product and you see same old ugly ide, never evolved since B3D, same/similar ignorance of community inputs, and soon enough...'new language' which will fix it all..i mean..if he is happy with that, fine..i just don't see point of supporting this kind of development...what for ? To see a new language capable or nothing which doesnt exists but with uber ugly IDE and no documentation..ihh