SyntaxBomb - Indie Coders

Languages & Coding => AGK => Topic started by: Rick Nasher on February 04, 2019, 11:10:49 PM

Title: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 04, 2019, 11:10:49 PM
(Letting the cat out of the bag: official AGK news, quoting straight from the TGC newsletter)


(https://i.imgur.com/I3K4nMb.jpg)

We are super excited to announce AppGameKit Studio - the natural successor to AppGameKit!

(https://i.imgur.com/PvbeyHt.png?1)
We’ve re-imagined the game development user interface with an all-in-one work space where you can drag & drop assets to visualise your scenes, code with AppGameKit Script, easily browse app media assets, run live debugging sessions, access online help and lots more!


(https://i.imgur.com/omCs02g.png?1)
AppGameKit Studio features a new Vulkan rendering graphics engine that will bring improved speed performance to your apps.
[EDIT: this looks familiar as blink0k also noted in GaborD's thread (https://www.syntaxbomb.com/index.php/topic,5220.msg22605.html#msg22605) .]


It will work on Windows & Mac platforms and will export to Windows, Mac, iOS and Android.
[EDIT: No mention of Linux(!) My guess is that's because it's not a commercially viable platform, for which they released a lot of stuff sort of for free already under AGK2]
[EDIT2: Linux will apparently be supported when enough interest has shown]

AppGameKit Studio will be launched in June 2019 but as a thank you we are offering our community some great discounts as we lead up to its release…..

Early bird ordering will give you the best deal on the AppGameKit Studio launch price of $99:
•   Order during March and save 50% - $49
•   Order in April for a 40% discount - $59
•   Order in May to save 30% - $69

*)Watch out for our comms towards the end of February with details of how to pre-order and save money on the NEW AppGameKit Studio


COMMENT:
As I'm guessing my GPU is probably not Vulkan compatible(which is in essence OpenGL Next) I'd probably have to upgrade my hardware to be able to go for this update. But this could make for a good high-end alternative to the Unity or Unreal engines. Also apparently Vulkan will be mandatory for iOS releases in near future.
[EDIT2: Correction. Qube mentioned Vulkan isn't natively supported by iOS. Perhaps even the contrary is true? Also, a fall back mode to OpenGL is planned ]


Vulkan (API) Wikipedia (https://en.wikipedia.org/wiki/Vulkan_(API))



See this thread for latest news: https://forum.thegamecreators.com/thread/223741 (https://forum.thegamecreators.com/thread/223741)

And from that RickV's first comment on the matter: https://forum.thegamecreators.com/thread/223741#msg2638216 (https://forum.thegamecreators.com/thread/223741#msg2638216)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 04, 2019, 11:33:49 PM
From what i can see there it appears to be an amalgamation of the Visual editor and their IDE along with the Vulcan 3D render-er
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 04, 2019, 11:41:50 PM
Quote
As I'm guessing my GPU is probably not Vulkan compatible(which is in essence OpenGL Next) I'd probably have to upgrade my hardware to be able to go for this update.
Considering there is also no official Vulkan support on Mac's then I assume they are using something like this (https://github.com/KhronosGroup/MoltenVK) although if that's the case I wonder how long before Apple crack down on Metal wrappers too? especially in iOS / AppStore.

Quote
From what i can see there it appears to be an amalgamation of the Visual editor and their IDE along with the Vulcan 3D render-er
That's what I take from it too. The description isn't very forthcoming and I assume it's still interpreted or else they would have sang about that very highly.

I think I'll wait for a lot more information about what it actually is before purchasing. Even if I end up paying full price as I'm not a fan of paying upfront for a product and waiting months for it to come out ( later if delayed ), testing it out or even knowing fully what it is.

Looks interesting and worth keeping an eye on but people are going to need a whole lot more detail before they drop any cash.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: GaborD on February 05, 2019, 12:02:22 AM
Fully compiled exes would be a great addition. My guess is a lot of people are asking for that.

Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 05, 2019, 12:26:24 AM
So true.
I can't really think of any reason why they can't get that to work if they're able to interpret the byte code already. I'm assuming you'd just need a different compiler for every target. But hey I'm no expert. So it's easy talking.

I've got another few additions to the wish list:
- Asynchronous stuff, for instance for loading and such.
- A completely finished physics system, with vehicle physics for cars, boats, planes, rockets etc.
- A lighting system that contains spotlights built-in, for instance for headlights, flashlights etc.
- A billboard system for grass/foliage (can be coded by hand, but will be faster if done one in C++).

Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 05, 2019, 12:29:46 AM
Is this kind of like Gamemaker Studio AGK style? I own AGK and have tinkered with it a while back but was trying to learn Swift at the time so didn't really do much. It seemed to be ok as a language back then, however, so I'd be interested to have a look. I'd try to make a game with it probably just for the challenge.

However, I am using an old 2010 Mac for my development which does not support Metal or anything fancy like that so I'm not sure it's going to be a suitable machine for this. I do have a Mac mini as well but it's a mid-range 2015 model, so also possibly an issue although it does at least support Metal.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: GaborD on February 05, 2019, 05:17:05 PM
So true.
I can't really think of any reason why they can't get that to work if they're able to interpret the byte code already. I'm assuming you'd just need a different compiler for every target. But hey I'm no expert. So it's easy talking.

I've got another few additions to the wish list:
- Asynchronous stuff, for instance for loading and such.
- A completely finished physics system, with vehicle physics for cars, boats, planes, rockets etc.
- A lighting system that contains spotlights built-in, for instance for headlights, flashlights etc.
- A billboard system for grass/foliage (can be coded by hand, but will be faster if done one in C++).

Those are good.
Async loading would be great.

I would love to see some quality of life improvements for shader users, like accessing object/light matrices in shaders (like in NB). Little things like that save tons of hassle for lighting and especially shadows.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 05, 2019, 06:13:55 PM
I'm intrigued by this line:
Quote
* Export (exe, apk, ipa)

Wonder if they mean truly compiled exe's or the same interpreted byte code system?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 05, 2019, 06:55:44 PM
I'm intrigued by this line:
Quote
* Export (exe, apk, ipa)

Wonder if they mean truly compiled exe's or the same interpreted byte code system?
Nah, if they were adding a native code compiler then they would have highlighted that a lot better. I do think it'll still be compile to byte code.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 05, 2019, 07:02:43 PM
Quote
* The current AppGameKit will become know as AppGameKit Classic. We'll continue to ensure it's stable and maintained but the future will be focused on AppGameKit Studio.
So looks like if you want to get new features you'll have to shell out for the upcoming AGK Studio. Think I'll wait for a trial version as I'm not going to pay out if the IDE is broken on Mac like it currently is.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 05, 2019, 10:19:53 PM
Quote
Export (exe, apk, ipa)
I wonder if it packages everything up into an .exe. bytecode, media etc
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: MichaelUK on February 05, 2019, 10:54:06 PM
What worries me I paid for the visual editor and it seems to be abandoned, if this does not sell will this be abandoned too.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 05, 2019, 11:38:46 PM
Quote
What worries me I paid for the visual editor and it seems to be abandoned
I never bought the Visual Editor because to be honest I didn't see any value in it with the features advertised. It had nothing in it that you couldn't do yourself pretty quickly, easily and more akin to your way of working. It was seriously lacking in any real power to speed up your games / level design. Also I note that it never appeared to be in active development so interest never grew on that side either.

Overall I'd say the visual editor was rushed to market and due to lack of decent sales the author didn't continue with development and make it into the product it could / should have been. Another reason why I loathe early access stuff and wish people wouldn't buy products hoping and waiting for them to improve.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pakz on February 06, 2019, 04:11:14 PM
I bought a wireless keyboard for the ios and android version of agk. I sometimes am thinking if I should buy the win version. Maybe the price wil drop more dramatically.

I have been following the agk minecraft thread over at their forums. They seem to have difficulties in the way that agk does 3d. No easy way of assembling models yourself. In monkey2 it only takes a couple of lines to create a 3d quad. If this gets better then it might be more interesting.

Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: MikeHart on February 06, 2019, 04:45:55 PM
In monkey2 it only takes a couple of lines to create a 3d quad.
A 3D quad in AGK is called a plane. You need exactly 1 line of code to create it.  :P
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: MikeHart on February 06, 2019, 04:47:37 PM
But it is amazing how the crowd is hyped over a new coding editor and a new backend render engine. Like they all will produce AAA games then automatically.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Steve Elliott on February 06, 2019, 05:49:51 PM
lol precisely Mike.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 06, 2019, 06:06:14 PM
@Qube
Quote
never bought the Visual Editor because to be honest I didn't see any value in it with the features advertised. It had nothing in it that you couldn't do yourself pretty quickly, easily and more akin to your way of working. It was seriously lacking in any real power to speed up your games / level design. Also I note that it never appeared to be in active development so interest never grew on that side either.

Exactly! That's why I never buy without try. Was at first rather reluctant to buy AGK2 too, but seeing is believing.

I think they realized the Visual Editor should be better, 3D too and integrated a la Unity. When they internally decided on Vulkan they probably dedicated all resources to that, but of course need to make a living as we all do so didn't shout it from the rooftops until far in process.

The decent thing to do will be giving a discount to the Visual Editor buyer who feel dissat. That way they retain credibility with their customers and a user(fan) base.


In monkey2 it only takes a couple of lines to create a 3d quad.
A 3D quad in AGK is called a plane. You need exactly 1 line of code to create it.  :P

I think they were probably trying to build quads(planes) from vertices, which is done in Memblocks(Banks for Blitz-ers) as AGK by default doesn't have dedicated commands for building those. (btw: why-oh-why quads are called  planes? Copyrights? lol) 

My impression is that it's much more geared towards 3D models exported by regular 3D editors, which is probably is the way big studios handle it too(I don't see them building models in code as they have dedicated design departments). It is possible to do, just more of a hassle and probably and old fashioned approach?





Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 06, 2019, 06:25:27 PM
Triple A requires a large team or single genius. Pick a hand.  :))
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Steve Elliott on February 06, 2019, 06:28:54 PM
Quote
Triple A requires a large team or single genius.

That's why I like 2D/2D Retro lol.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 06, 2019, 06:47:40 PM
No, no! No retro please!  :P

(https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Pong.png/220px-Pong.png)

Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 06, 2019, 07:59:05 PM
Quote
Triple A requires a large team or single genius.
Paul Johnston is a genius
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Steve Elliott on February 06, 2019, 08:05:59 PM
Rick, Retro is far more than Pong!  Go on Steam and you'll see far more gameplay, depth and amazing 2d pixel art games.  Far better than a piss poor 3d effort with zero gameplay.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 06, 2019, 08:30:10 PM
But it is amazing how the crowd is hyped over a new coding editor and a new backend render engine. Like they all will produce AAA games then automatically.
I'll be hyped if the IDE flows fast unlike the current version of AGK on Mac :P
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 06, 2019, 08:34:50 PM
Quote
I'll be hyped if the IDE flows fast unlike the current version of AGK on Mac
Notepadd++ as alternate Editor / IDE for AGK (https://forum.thegamecreators.com/thread/210971)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 06, 2019, 10:41:34 PM
@Steve

Quote
Rick, Retro is far more than Pong!  Go on Steam and you'll see far more gameplay, depth and amazing 2d pixel art games.  Far better than a piss poor 3d effort with zero gameplay.

I know, just pulling your leg.  ;)

However I do prefer 3D, ever since I'd seen early 3D wireframe gfx on a Vectrex.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Steve Elliott on February 06, 2019, 10:51:43 PM
 ;)

Vectrex was a very cool system, so you like retro 3D like me.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 07, 2019, 12:42:14 AM
Quote
I'll be hyped if the IDE flows fast unlike the current version of AGK on Mac
Notepadd++ as alternate Editor / IDE for AGK (https://forum.thegamecreators.com/thread/210971)
There is no Mac version of Notepad++ :( - I'm still using AGK 2018-07-12 as that was the last version where the IDE wasn't blurry and slow ass.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 07, 2019, 12:58:40 AM
Maybe if you asked madbit he might port his editor to Mac?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 07, 2019, 03:52:22 AM
If it compiles the code, they'll get my money.
Argh, I was about to learn GameMaker because of that. And now I wonder if I should not wait for more infos...

*edit*, I just read that on AGK forum

Quote
it all works and the live debugger where you can change values as the app runs is very cool

Which makes me think that it is still interpreted which would be logical but well, we need more infos.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 07, 2019, 04:37:13 AM
If it compiles the code, they'll get my money.
It'll still be compiled to byte code but I really hope their next move is for native compiled code.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 07, 2019, 06:10:07 AM
Just out of interest Qube. Have you tried downloading geany for mac to see how it performs?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 07, 2019, 06:33:59 AM
Just out of interest Qube. Have you tried downloading geany for mac to see how it performs?
Yes, I made a post on the AGK forums that Geany by itself works fine both visually and scrolling speed. Paul ( the creator of AGK ) has not been able to pin point why their changes to Geany have resulted in it being blurry or why it's taking too many CPU cycles on Mac. The odd thing is if I boot my Mac into Windows via BootCamp the AGK IDE is crystal clear and smooth scrolling so it's clearly something on the Mac side which has changed recently. I can't blame Mojave alone as older versions of the AGK IDE work just fine.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 07, 2019, 06:51:52 AM
That's very weird. I wonder why they wouldn't just copy over the newer scroll/display code and use that?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 07, 2019, 07:02:43 AM
If it compiles the code, they'll get my money.
Argh, I was about to learn GameMaker because of that. And now I wonder if I should not wait for more infos...

*edit*, I just read that on AGK forum

Quote
it all works and the live debugger where you can change values as the app runs is very cool

Which makes me think that it is still interpreted which would be logical but well, we need more infos.

Gamemaker does it both ways. You can either use the interpreted compiler which sounds like it does what AGK does. Once you have a final build then you can also use the YYC (YoYo Compiler) option to build a proper app/exe. I've yet to create anything that's so system resource hungry that needing to do that was required. I'm assuming there's a lot of excess stuff stripped out before it's built with the second option.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 07, 2019, 07:27:03 AM
@blinkok
The agk editor is based on the existing open source editor Geany. Geany uses GTK for its widgets. And the text area is "Scintilla". GTK handles the scrolling. Scintilla can react to interactions by updating displayed content.

So basically Geany is doing scrolling etc.

AGK might intercept certain stuff... Or use some provided functionality to add autocomplete, tooltips...

Autocomplete can get dynamically updated...to reflect newly entered code. If not done properly or if there is a bugged event emitted for "content changed" then this update process can run over and over...leading to a ressource hogger.

Smudged display can be a missing xcode setting. Compile a previous AGK editor version and if that works, compile the newer one with the same project settings...


Bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 07, 2019, 10:02:04 AM
@Steve
But then there was GTA Vice City.. and I was hooked!  :)


@Qube
Dunno if possible in any way, but wouldn't it be possible to just rip out the 'old' editor stuff and implant that into the new install?  I mean:

On Windows the compiler lives in:
C:\Program Files (x86)\The Game Creators\AGK2\Tier 1\Compiler

And the editor in:
C:\Program Files (x86)\The Game Creators\AGK2\Tier 1\Editor

I'd didn't see any name changes in the compiler, so probably any references to it from the editor would be the same making it perhaps possible to just replace the new Editor directory with old one and still work, unless AGK does something other than just reference it of course..

Did you try this?




Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 07, 2019, 01:34:41 PM
Just seen an update on the matter.

I don't mean to be pessimistic and do not want to offend anybody, so that's why I'm not posting on main site, don't want to influence potential buyers and AGK userbase here is small :-X, but my guess is if they release it like *this* (https://forum.thegamecreators.com/thread/223741?page=2#msg2638394) , a *lot* of people will hold-off, for is too little on offer to upgrade:

Imho the drag & drop, the discount and new, faster engine, won't do it by itself. Peeps will just wait for the pricetag to drop again in like a year or so, unless they have specific needs for Vulkan(don't think there will be that many really). 



I'm guessing they'll require funding to continue dev progress, so if I could see some *real* commitment to improving features where they left out on AGK2 I would certainly buy, regardless if Studio is useless to me in it's current state for I can't run Vulkan on my machine(s).   ???

However, if I do *not* see that explicitly promised, then I'll have my reservations and perhaps will hold out to see what happens too.
Current statement "we'll see when V1 is out" is bit too casual for me.
You can't sell a product like that to a user base of which in part feels left in the dark by previous developments(e.g. Visual Editor, IDE on Mac failing, not extending physics nor adding much desired commands, abandoning previous projects while not finished etc ) when there's soooo much competition,  like for 2D B4X (https://www.b4x.com/) and for 3D the likes of Unity (https://unity3d.com/)(which is free initially, great networking, but not my fav), Godot (https://godotengine.org/)(free and allows C#, python and scripting a.o.) and last but not least their own AGK2, which I already own.



I'm committed and helpful, but not silly. I can see another meltdown like BRL's on the horizon if they don't wise up, but who knows I might be off completely(truly hope so).  :(


Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 07, 2019, 05:55:04 PM
@Xerra

Quote
Gamemaker does it both ways. You can either use the interpreted compiler which sounds like it does what AGK doe

Are you sure about that ? I mean I did not see anything interpreted in GM (which btw seems a great tool, a bit expensive for hobbyist but it seems serious work).

I would probably not need for a *real* compiled app targeting only PC/Mac, but as my purpose is also to go Android, I prefer to stay on the safe side with a compiled app. It would be pretty harsh to realize that after several months of development you realize that you can not port your game because the standard cheap ARM proc can not handle too many loops by frame and bring your game to 10 fps.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 07, 2019, 06:43:55 PM
I don't mean to be pessimistic and do not want to offend anybody, so that's why I'm not posting on main site, don't want to influence potential buyers and AGK userbase here is small :-X, but my guess is if they release it like *this* (https://forum.thegamecreators.com/thread/223741?page=2#msg2638394) , a *lot* of people will hold-off, for is too little on offer to upgrade:
On the surface it's not a fantastic new product from the outset but it's a path forward for no doubt a much needed cash injection for the further development of AGK. For me it'll be worth it alone if the IDE is fixed on retina / mac displays ( confirmed as not based on the current Geany version so sounds promising ). As I use AGK a lot then the small price they are asking is worth it for me. Granted I'd prefer a fix for the AGK I own but I also don't mind supporting a product to continue it's development. Constant development needs cash and if this iteration of AGK brings them in a good chunk of cash then that can only be a good thing or AGK.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 07, 2019, 07:11:10 PM
We had this issue already but lines like this:
https://github.com/TheGameCreators/AGKIDE/commit/b50cf9cf9dc342d6ff3fc590c652bc50dd90a850#diff-162ee16ff8a5b326a6177eaceec56a1a
could be the reason for broken scrolling

This change they did in 2019 was patched into the scintilla sources in 2015
https://sourceforge.net/p/scintilla/code/ci/c313e8bb753b01d21885be5f07b1ccca36d07936/

Maybe they use some outdated libs which are not aware of Mojave - and with one of the minor updates the trapped into some mysterious stuff of Mojave.


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Rick Nasher on February 07, 2019, 07:36:25 PM
Quote
I would probably not need for a *real* compiled app targeting only PC/Mac, but as my purpose is also to go Android, I prefer to stay on the safe side with a compiled app. It would be pretty harsh to realize that after several months of development you realize that you can not port your game because the standard cheap ARM proc can not handle too many loops by frame and bring your game to 10 fps.

Actually, on my Android phone(Galaxy S7 Edge) the code runs much much faster than on my PC from 2007, so wouldn't worry about that.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 07, 2019, 07:47:40 PM
@Xerra

Quote
Gamemaker does it both ways. You can either use the interpreted compiler which sounds like it does what AGK doe

Are you sure about that ? I mean I did not see anything interpreted in GM (which btw seems a great tool, a bit expensive for hobbyist but it seems serious work).

Here's how it works.

Each target platform can have one or more output formats, the main ones being:

    VM: The VM (Virtual Machine) target uses a generic runner for each platform and then interprets the code for your game. In general this option is used for testing due to its faster build times, but it does not offer the same performance boost that using the YYC option (if available) offers. You can use this to compile smaller game or games where performance is not ever going to be an issue, however.

    YYC: The YYC (YoYo Compiler) takes the normal GameMaker Studio 2 output and compiles it into native code for the target platform, "stripping out" unneeded functions and performing a host of other optimisation techniques to create a smaller and performance enhanced executable. This can increase your games performance by at least two or three times, especially on logic-heavy games, ideal for those larger or CPU intensive games. Compile times may take longer and you should always clear the compiler cache before building any final complete asset package for a target platform. Note that the YYC target may require extra tools to be installed for the platform selected, otherwise it will not work - you can find further information about this from the YoYo Games Help Center as well as on the individual target Preferences pages detailed in this manual.

    JavaScript: The JavaScript target will only be available for a few targets, like the HTML5 target, and sets the game to be compiled to pure JavaScript.

I do recommend it as definitely an entry level into making games, even if you want to go lower level later on. I've completed maybe 2-3 games in Blitz over the last 10 years and have loads of half-written stuff. A lot of that is my fault as I don't consider myself to be that prolific but I released 3 games last year and had two which are very close to completion. That's an incredible improvement since changing my development system so it definitely worked well for me.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 07, 2019, 09:39:37 PM
@Rick,

I would'nt say a S7 is a "croweded" CPU. When you target at Android, the aim (for selling casual games at least) is to spread at the biggest amount of people, including those who have cheap chinese smartphones and tablets.

@Xerra, thanks for the details, so a VM is used for running/testing your game, interresting.
Would you mind to describe a bit more your experience with GameMaker coming from Blitzmax (maybe in another thread) ?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 07, 2019, 10:45:53 PM
Ok, this answer my question:

Quote
* Exe's will be the same as they are in AppGameKit Classic

https://forum.thegamecreators.com/thread/223741?page=2

So back to GameMaker for me (too bad I really prefer the AGK language).
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 07, 2019, 11:15:29 PM
Ok, this answer my question:

Quote
* Exe's will be the same as they are in AppGameKit Classic

https://forum.thegamecreators.com/thread/223741?page=2

So back to GameMaker for me (too bad I really prefer the AGK language).
Is there something you're trying to achieve in code which is just too slow for AGK?. The only speed issues I've come across is when doing my path finding routine on dozens of enemies I had to break up the path finding over time rather than brute force in one cycle. I know a compiled language would handle that side much better but I've not come across any show stopping issues yet.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 08, 2019, 12:25:03 AM
@Qube

My "business" is Match3 game made of pretty big boards. This means several hundred of objects that interact between themselves with different behaviors. There are a lot of loops thru the board array and it takes a negligeable amount of CPU in bmax.
I found a piece of Match3 code in AGK which does a very simplified job compare to what my code do. And when I increase the board size of that sample, it just run like shit on my I7-6700K so I do not dare to go further with an interpreted language when I see that the same job is done effortless by a compiled exe. Of course everything can alway be optimized and rewriten but there is enough work to do when converting a game, no need to add extra work at reinventing the wheel. Of course I'll do a similar test in GameMaker, maybe I'm just used to bmax efficiency.
AGK seems perfectly fine for platform or action game, but for parsing arrays and recursive stuff (including pathfinding), it is not the best bet imo. I had a bit of hope seeing a new AGK product but it makes sense that they keep their interpreter, it is probably a huge work to handle a compiler for all targets while it is not their primary target as long as people are mostly fine with the interpreter.

(edit : if you are interrested, I can PM you the AGK code if you want to have a look at it)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 08, 2019, 02:10:59 AM
Quote
I found a piece of Match3 code in AGK which does a very simplified job compare to what my code do. And when I increase the board size of that sample, it just run like shit on my I7-6700K
Crikey, that doesn't sound right :o - A match-3 shouldn't be a hard issue for AGK. I was working on a match-3 game in Oct 2017 ( abandoned ) (https://www.syntaxbomb.com/index.php/topic,3441.msg6613.html#msg6613) and didn't come across any speed issues. Granted it's quite simple at this stage but the boards could have been much bigger without issue too.

Quote
AGK seems perfectly fine for platform or action game, but for parsing arrays and recursive stuff (including pathfinding), it is not the best bet imo
I did find that performance is a lot better in arrays when dealing with integers alone and performance suffers a lot when doing logic heavy stuff that compares strings. I know in general that integer vs strings is quicker on the integer side but in an interpreted language it can drain performance a lot if you're dealing with loads of strings per loop.

Quote
(edit : if you are interrested, I can PM you the AGK code if you want to have a look at it)
Sure, if you could send me a full working project I'd happily take a look :)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: GaborD on February 08, 2019, 05:50:09 AM
@Qube

My "business" is Match3 game made of pretty big boards. This means several hundred of objects that interact between themselves with different behaviors. There are a lot of loops thru the board array and it takes a negligeable amount of CPU in bmax.
I found a piece of Match3 code in AGK which does a very simplified job compare to what my code do. And when I increase the board size of that sample, it just run like shit on my I7-6700K so I do not dare to go further with an interpreted language when I see that the same job is done effortless by a compiled exe. Of course everything can alway be optimized and rewriten but there is enough work to do when converting a game, no need to add extra work at reinventing the wheel. Of course I'll do a similar test in GameMaker, maybe I'm just used to bmax efficiency.
AGK seems perfectly fine for platform or action game, but for parsing arrays and recursive stuff (including pathfinding), it is not the best bet imo. I had a bit of hope seeing a new AGK product but it makes sense that they keep their interpreter, it is probably a huge work to handle a compiler for all targets while it is not their primary target as long as people are mostly fine with the interpreter.

(edit : if you are interrested, I can PM you the AGK code if you want to have a look at it)

Is the constant array looping a must? I admit I am not an expert in match3 style games, mostly focus on 3D, but I have yet to see the code execution have any impact on speed. It must be some really complex high iteration stuff.

If the heavy loopage can't be avoided, what if you run the most impactful things on the GPU?
That's usually my choice for the potentially heavy impact "run in the background" things (particle movement, pathfinding, etc)
Looping through all the board positions sounds like a somewhat parallelized thing, doing similar simpler things for many locations, kinda exactly what a GPU is about.

But you are ofcourse right that compiled code would be faster and preferrable.
It's just not really an issue for most game scenarios (the bottleneck is almost always the rendering), my guess is that is why it hasn't been adressed yet.
There is a request thread for the upcoming version on the official forums, maybe this should be added. (my guess is it already is, I haven't checked)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 08, 2019, 07:45:10 AM
You should consider switching from a "permanent grid check" to an "action/event based grid check".

Means: instead of constantly checking all tiles/elements of wheather they "match 3" or so, you only check if you recently collapsed (aka an element on the grid changed). This alone will cut CPU costs by a big big bit.

Also you never need to check the whole grid if a cell changed. you know it needs three connected cells to match 3+... so you never need to look further if the first neighbour failed already. Special tiles need special checks of course.

bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 08, 2019, 05:21:07 PM
Is the constant array looping a must? I admit I am not an expert in match3 style games, mostly focus on 3D, but I have yet to see the code execution have any impact on speed. It must be some really complex high iteration stuff.

Match 3 games have evolved over the last few years. nowdays they are more dynamic - as in they update constantly when shapes are being moved and also will let you make a move while the update of the other objects is taking place. That's probably a case for newer games needing three times the welly compared to the old games that made you move then processed all the permutations before letting you have another turn.

I'm pretty sure that something like AGK should be able to handle it all still, however. I've never written a match 3 game but always thought that I'd one day have a go at doing a prototype for one - just for the challenge.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 08, 2019, 05:40:38 PM
Games having this "move tiles while others collapse" still do not need to check all elements versus others.
Each changed/updated/moved tile marks cells as changed. Now you only handle the neighbours of changed elements. Afterwards you mark the cell as clean. Also you could have a counter describing the amount of changed/dirty cells.

Is this cellcount 0 then you do not have to check for new matches.


Another idea is: while a tile still seems to animate/move into its new position the cells have a "state". It is either occupied or not. Blocks do similar stuff.

Animation is decoupled from game logic..or should at least be only loosely coupled (eg by triggers). You could define an animation and know its duration. You start a logic timer thing with this duration...and regardless of whether you render or not, the effect happens after "duration".


Even with totally dynamic blocks there is no need to handle all the other blocks each "loop".


Bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 08, 2019, 08:01:05 PM
@Pingus - I quickly looked over the code you sent me and there's nothing glaringly wrong with it. To test if there was a bottle neck I changed the code to capture min and max FPS while making various matches. The highest FPS was 683 and the lowest was 472 which shows there's loads of cycles free for other things.

This is on a 3.8 GHz Intel Core i5 CPU so slower than your i7 so it's a mystery as to why it's slow on your faster CPU? :o
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 08, 2019, 08:11:48 PM
@Derrron

Things are a bit more complicated than just marking a cell as busy or complete. Some pieces are moving at different speed, and when a piece can not fall due to an obstacle, it does check if diagonal moves are possible which may interact with other pieces falling in the new column. Some pieces also moves in different directions so you'd better check everything every frame. And of course special pieces or spells can be applied anywhere at any time. In fact it is closer to a real time strategy game than a puzzle game, even if visually everything only occur in squared tiles.



@Qube,

I'm not sure the calculated fps is usefull. On my PC it shows a constant 60, even if obviously the code stuck regulary when a lot of matches are done when you restart a new random board (watch the small gems moving). If on your PC the gem is always moving smoothly at constant speed then yes there is something odd with my rig (which run most VR games without issue ;))
Please send me your code update with the fps min/max.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 08, 2019, 10:18:10 PM
Things are a bit more complicated than just marking a cell as busy or complete. Some pieces are moving at different speed, and when a piece can not fall due to an obstacle, it does check if diagonal moves are possible which may interact with other pieces falling in the new column. Some pieces also moves in different directions so you'd better check everything every frame. [...]

What you describe is still doable in a way as I described above. Just think of the whole game not being rendered but just simulated. Simulation means you can always "predict" when eg. a falling block would reach a certain cell. You know when an element reaches something. You also know when it will reach a new cell which might eg. be the first next possibility for a match (depends on the blocks - see below).
Ok, let's assume you have a "special flying block". When can this block "match with others" ? To match it always needs to get assigned to a cell. If this is not possible (eg you have a flying toaster doing a chaos flight and destroying everything it hits) then this is a block which can get added to a "special list" which is handled every loop.
But ... if this object is only able to match with other blocks once it assigned to a cell ("reaches col2,row4") then you are back at the "mark cell dirty" approach which only checks dirty cells + neighbours until "no match" was found for all possible directions.

Next to "flying objects" you might have blocks which create "cluster bombs" on destroying. Of course these clusters do not need to get checked by all tiles on a board - the clusters know their grid position and can act accordingly (cluster stuff -> hit board cell,x,y -> inform block at x,y).


@ pieces move in different directions
So why? Piece 1 moves from x,y leftwards - ok, so you mark all changed cells dirty during the movement. After all "moving pieces" moved you have a list of dirty cells - you need to check them for "matches". After you checked all, clean the dirty state and move on to the next "step"/"turn"/loop.

If during such a "turn" no object was changing position enough (eg moves still on the same cell) and has no special effect ("pulsating wave of energy blowing away surroundings") then no cells will get marked dirty. Static blocks do not move at all, so their update routines are done blazing fast. After you handled all objects on the board you again check the dirty-list and if there is nothing dirty, then you do not need to do the "costly" collision/matching-check of the board.

So the most of the time you only update the dynamic objects (flying stuff, special blocks drilling holes to other rows, ...) and you handle all the "animations" (blocks wobbling, ...). Animation handling is of course the same as with other games, so the "board logic" is not coupled to it. In other words: performance problems with animations would then happen with other games too.


But ... regardless of above: if checking a simple 50x50 board for matches is already too slow, then it might either be the way you do the checks - or the language (scripted, compiled...). As said above you can easily get rid of many of these 2500 cell checks if you only check changed cells (and right at the begin you mark all "dirty" so the whole board gets checked). Qube might say something more on how the whole thing is coded - I mean if it is frame-rate-independend/render-decoupled and so on. FPS does not mean anything if it does not maintain a guaranteed logic rate ("updates per second"). Rendering a stuttering simulation will look "stuttering" even with 600fps.

The whole approach is similar to caching information. Eg. in BlitzMax you cannot simply access a "Count()" of a TMap. You need to iterate over all keys/values and sum them up - or you have a "count" variable which gets increased/decreased on adds/removes of items (its up to you to check if inserts are skipped because of duplicates). If someone decides to add items with a different then the "add()" function the whole "count cache" fails. In your board game this means that you needed to make sure to properly mark cells "dirty" and "clean".



bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Steve Elliott on February 08, 2019, 10:25:38 PM
I'm with Derron and Qube on this, it's more an algorithm problem, rather than a language problem because of the reasons they've spelt out.

Maybe a match 3 game should be the next competition theme?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 08, 2019, 10:31:41 PM
@ Pingus
BTW: why did you move from BlitzMax to AGK for the game? Platforms?
Did it run "trouble free" when it was done with BlitzMax?


@ match 3
"Match 3" could still allow creating a Leisure Suit Larry clone ;-)


Nice to see how we achieve derailing a thread :p. Maybe Janitor Qube cleans up later on (new thread for match 3 discussion). Would be interested in how others did it (assume some of you did Match 3 in the past - albeit Grey Alien does not write here).


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 08, 2019, 10:44:42 PM
Actually, a match 3 type game competition isn't a bad idea. It would give me the motivation to finally have a crack at it.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 08, 2019, 10:54:19 PM
The thread did not derailed so much as we speak about AGK and its (possible) limits for some kind of apps.

@Derron, I did not move from blitzmax to AGK, I envisaged it, did the test I sent to Qube and concluded that it would not worth to go further if something so simple can not run fluently on a I7.
I did other tests which showed that with AGK there is a kind of treshold (depending on the CPU) where a given amount of loops quite suddenly drop a constant fps into a choppy fps.
With AGK the purpose was to reach new targets (mainly IOS and Android).  I'm aware that there are many frameworks and game engines that can achieve what I want, but I'm looking for the simpliest and/or closiest to bmax. If Monkey2 was reliable I would have go that route.
I don't know what you mean by 'trouble free'. There are of course a lot of trouble while develloping anything, but with blitzmax I do not have to care about parsing several hundred objects. From that point of view, yes, it is trouble free and with a huge margin for more stuff inside the loop. At a time the bottleneck is more about rendering the bitmaps than handling the code.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 08, 2019, 11:16:03 PM
A bit barebone but BlitzMax NG tries to support iOS/android so ... if there is some will to test out these platforms Brucey (surely more or less) happily accepts issues/bug reports and suggestions to improve support there ;-)
 

@ trouble free
Yes, was talking about potential performance issues and so on - assuming your "board logic" was done the same in BMX and AGK (to be "comparable". You might even think of using Godot - pretty powerful for 2D and there are some basic tutorials for match3 games there (albeit they use this kind of "Flash games" approach which is not what we BMXers are used to).


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 08, 2019, 11:55:03 PM
@Derron,

Yes I had a look at Goddot. Too complicated for my skills (although I agree it looks good).

I also tried to compile samples for Android with BmaxNG a while ago and never get something working on my phone while it was a smooth as butter with AGK.
Anyway I'm running a business, I can only work with a commercialy based engine.

I sent you a PM in case you want to have a look at my AGK test.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 09, 2019, 12:36:34 AM
Quote
@Qube,

I'm not sure the calculated fps is usefull. On my PC it shows a constant 60, even if obviously the code stuck regulary when a lot of matches are done when you restart a new random board (watch the small gems moving). If on your PC the gem is always moving smoothly at constant speed then yes there is something odd with my rig (which run most VR games without issue ;))
Please send me your code update with the fps min/max.
PM sent :) - Yes the gem always moves at a constant speed and hasn't blipped once.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 09, 2019, 12:52:00 AM
Thanks Qube,

That's really odd. From what I see you disabled the vsynch, hence no limit to the fps and app running faster.
But that does not change that there is a lot of stutter when a lot of matches are made at the beginning, even if the displayed average fps is ~600
It seems that you are working on Mac isnt' it ?
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 09, 2019, 01:04:09 AM
I was just seeing how fast it ran overall to see if there was anything really obvious.

I do note that in parts it's going over the same for / next loop multiple times. Even changing something like the below will give a big per cycle speed increase :

I've not bug tested but a real simple optimisation here is not to repeat the same loop over again when it can be done in one pass.

Code: [Select]
    //X Matches
for i2 = 1 to rows - 1
for i = 2 to columns-1
if board[i,i2].color = board[i-1,i2].color and board[i,i2].color = board[i+1,i2].color
match=match+1
matches[match,1] = board[i-1,i2].currentgem
matches[match,2] = board[i,i2].currentgem
matches[match,3] = board[i+1,i2].currentgem
endif
if board[i,i2].color = board[i,i2-1].color and board[i,i2].color = board[i,i2+1].color
match=match+1
matches[match,1] = board[i,i2-1].currentgem
matches[match,2] = board[i,i2].currentgem
matches[match,3] = board[i,i2+1].currentgem
endif
next i
    next i2
   
    ////Y Matches
    //for i2 = 2 to rows-1
//for i = 1 to columns
//if board[i,i2].color = board[i,i2-1].color and board[i,i2].color = board[i,i2+1].color
//match=match+1
//matches[match,1] = board[i,i2-1].currentgem
//matches[match,2] = board[i,i2].currentgem
//matches[match,3] = board[i,i2+1].currentgem
//endif
//next i
    //next i2
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 09, 2019, 02:13:36 AM
Yes that's right, that double loop can be replaced by one.

It works the same. There is no visible difference performance wise but it is always satisfying to remove a useless loop :)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: blinkok on February 09, 2019, 02:24:39 AM
It may be that the first loop changes the board (i-1) which then needs to be checked again by the second loop

As was mentioned before, i think working from the affected tiles outward rather than a blanket check would bring about the greatest improvement
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 09, 2019, 02:34:12 AM
Having looked over this again it's not the best way to do it for massive boards. Problem is even if a handful of gems move the whole board gets checked each and every time. It's a big time sucker which leads to 1000+ worth of gems being checked when they don't need to be.

Ideally moving gems should be sent to a type array and then when they've stopped falling you check those and recursively build out from there for actions on matching gems. A bit harder to code but much more performant for larger boards. Why loop a 1000+ times when only a handful of gems have moved?. At the moment the code loops over 1000 gems for actions and then loops over it again for drawing them.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 09, 2019, 03:31:02 AM
Quote
A bit harder to code but much more performant for larger boards.

Probably a bit more than 'a bit'. I agree that there may be ways to reduce the loop amount, at the price of greatly increasing the code complexity, hence increasing complexity when time comes to add more features or simply debug.
There is an 'advantage' to that full parse : the execution time is somehow always the same; An algorythm that focus first on changes and grow its checking over several frames could work but could also leads to unpredictable cases with possibly big stutters occcuring from time to time.
Personally, as long as a compiled language can handle all this loops in less than few ms, I do not see the point to bother yet.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: GaborD on February 09, 2019, 04:55:25 AM
"It's more complicated to implement" is not a disqualifier but rather a motivator.
Solving these things and coming up with the best solutions is the fun part of game dev. :)

That said, if you feel a different engine is a better fit for the project, switch to it and don't look back (until the next project).
In my opinion the engine should always be chosen after the initial planning/draft-design phase and for the specific needs of a project and the devs.
Just don't say it's because AGK can't do it or is too slow for it, that's not fair. It can do it easily.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 09, 2019, 05:20:57 AM
Quote
Personally, as long as a compiled language can handle all this loops in less than few ms, I do not see the point to bother yet.
I'm with you on that, I'm the original brute force coder for any and all routines ;D - On the flip side I enjoy coding in AGK so I had to think differently for more heavy logic based routines. I love coming up with faster solutions as I like the challenge.

Sure a pure compiled language can brute force all the routines that you have at the moment but add a few more brute force layers and then the compiled language will suffer as 1000's upon 1000's of array cycles is going to kill frame rate. Don't forget that not everyone has i7 CPU's so especially for a match-3 game ( casual market who don't have high end kit ) you need to optimise rather than brute force.

In a nutshell use what tool works best for you for the project you're working on :)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: MikeHart on February 09, 2019, 08:54:59 AM
Plus never forget that you can outsource heavy computations to a plugin coded in C++ or whatever can create a compatible DLL for you.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 09, 2019, 09:48:06 AM
BlitzMaxNG can create DLLs - just did it the last weeks. So for you - being used to the BlitzMax language - it is a viable option.


Nonetheless I am _very_ interested in a new thread about match 3 - and how to approach a more or less "object oriented approach" to the whole thing. With OO I am talking about grids, properties, objects in lists ... and to a more or less intelligent way of handling the whole thing - including bonus objects including delayed effects (remove blocks after 1 second).
There are surely multiple approaches to this particular thing. The basic ideas should be translateable in various programming languages.


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 09, 2019, 11:37:55 AM
Nonetheless I am _very_ interested in a new thread about match 3 - and how to approach a more or less "object oriented approach" to the whole thing. With OO I am talking about grids, properties, objects in lists ... and to a more or less intelligent way of handling the whole thing - including bonus objects including delayed effects (remove blocks after 1 second).
There are surely multiple approaches to this particular thing. The basic ideas should be translateable in various programming languages.
Sounds like a good idea and something I’d be interested in :) not sure if I could comit much time during the current comp but definitely up for it.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 09, 2019, 01:39:32 PM
Sounds like a good idea and something I’d be interested in :) not sure if I could comit much time during the current comp but definitely up for it.

God no. Discussion is all good but actually having a crack at it before this competition ends. No way. Still think that it would make quite a good theme for the next compo.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 09, 2019, 02:01:31 PM
I did not wanted to see a complete game or so - just ideas on how to approach such stuff. How do you handle "blocks animation" or other stuff - in a static game you could simply store everything in a integer-array/grid. Numbers indicate the color and "0" means "there is none". But then you need to handle animation, special effects (non visual - eg. a wave destroying other blocks), ...
People use different approaches to such ideas - eg "scene independence" (each scene has to be "playable" on its own without requiring data of other scenes).

Discussing such stuff can be interesting for other gameplays too as each gameplay leads to a limit of some ones approach - somewhen at least. So some approaches do not suit well to certain game types.


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 09, 2019, 04:20:35 PM
@Gabor
Quote
"It's more complicated to implement" is not a disqualifier but rather a motivator.
Solving these things and coming up with the best solutions is the fun part of game dev. :)

Well, we are all different  ::). The funniest part to me is to think about a gameplay feature, implement it, discover that it does not works as expected (99% of the time) but it brings a new idea which is fun to play etc... I understand the fun about finding tricky solution to technical issues tough but its often very time consuming.

Quote
Just don't say it's because AGK can't do it or is too slow for it, that's not fair. It can do it easily.

I do not see in what it is unfair. AGK is fine, but I find interresting for people to know that it can not work the same way as a compiled language when it comes to solve some cases. The speed difference is not negligeable for some tasks. I'm speaking about ratio like x1000 faster. Saying "it can do it easily" is unfair if you have to find exotic solutions for problems that are usually solved with 'just' 2 intricated loops to parse an array.

@Qube

If I get your idea, it is to create a DLL with BlitzmaxNG and use it inside AGK ? That's indeed a good idea. It would works only for PCs tough.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 09, 2019, 04:41:53 PM
@ Pengus
(think you talked to me instead of "@Qube" ;-)).
It does not matter if the compiled language is a bunch of times faster for "array iterations". If you want to use it on a web-platform (html5) or android/java or ios you will end up with playing on either older hardware, limited hardware (intel IGP), ...
You will have to pay attention to: draw calls, texture sizes, ... and for CPU limited things: processing time for a "loop/tick".

So if it is "on the fly compiled" (jit compiled) or not: heavy array processing will sooner or later kill performance. If it does not do at the beginning it will be recognizeable later on - when you add all the bells and whistles. Updating a hundreds of particles, effects ... each "physics tick" is already costing a pile of free cpu cycles.

Means it is a good idea to think _ahead_ on how to properly approach an "x*y" check. Do I really need to check all x*y or can I get rid of some checks to save some time.
Yes, coding will be more complex but we still talk about the "basics" of the game. So all the later on added "advanced stuff" just is placed on top of the basement you built. Later added stuff does not need to know about a "marked dirty" cell or so - you call eg. "SetCell(x,y, item)" or so and the underlaying engine then handles everything for you.

Same is to say for all other games too. Assume you have a level - based on a gridmap. It is no good idea to loop over every tile in the gridmap to check for colliding objects. Only handle stuff there units walk along. Differentiate between "level tiles" (eg. background stuff) and "level items". But hey, even here you will find multiple approaches to it - and HERE I guess some forum users are heavily experienced with jump'n'runs and tilebased games.


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 10, 2019, 01:10:05 AM
I do not see in what it is unfair. AGK is fine, but I find interresting for people to know that it can not work the same way as a compiled language when it comes to solve some cases. The speed difference is not negligeable for some tasks. I'm speaking about ratio like x1000 faster. Saying "it can do it easily" is unfair if you have to find exotic solutions for problems that are usually solved with 'just' 2 intricated loops to parse an array.

Actually, that's probably a bit of a reactive statement rather than something thought through. The whole point of programming a game is to make it work with the tools you have available. If something doesn't work when you code it but you can see other examples of the same mechanic working just fine then surely it makes sense to look at how you've done it and try to improve upon your work.

What you're kind of saying here, without trying to offend, is that AGK isn't up to task for what you want to do with it because you've tried and not managed it. You're then putting on your blinkers and putting the blame on the system for not being able to create a dedicated executable even though, for the job you need it to do, it's more than up to the task if you follow the advice you're being given.

You think Andrew Braybrook looked at the C64 and thought "It's really hard to write a 50fps shoot-em-up on this machine. I'm going to wait till the Playstation comes out so I can cheese it."

You're basically wanting to throw a bucket of water over a fire in an ashtray.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 10, 2019, 03:26:13 AM
@Xera,

I apologize if I sounded reactive, this is not my point.

Quote
The whole point of programming a game is to make it work with the tools you have available.

For a hobbyst, maybe. To me the whole point is to finish a product that work as good as possible in a reasonable amount of time. If I have only one tool available, and if that tool can not do what I want... well, today I would just try to do something else.

A while ago I made a Match3 game with a 3D engine that was using an interpreted language :  biggest fail ever :)
It took a while to do because the nature of the engine was not appropriated for such a game, and cherry on the cake it was a total commercial fail but that was also because of bad design choices so I can not complain only about the engine ;).

When I discovered blitzmax few years later, the things that were a nightmare to handle became so easy with just object lists and fast loops thru arrays without having to think to optimize loops, because it was no more a bottleneck. The speed of devellopment was multiplied by 2 (at least).

Quote
If something doesn't work when you code it but you can see other examples of the same mechanic working just fine then surely it makes sense to look at how you've done it and try to improve upon your work.

True. So far I saw nothing made in AGK that is close to what I do in blitzmax that's also a reason of concern, but not a major reason in fact. If you know a M3 game with a big board (~20x20 or more) made in AGK, please let me know.
My approach is to avoid 'fanboying' for any engine, and obviously, different engines have strengths and weaknesses.

Quote
is that AGK isn't up to task for what you want to do with it because you've tried and not managed it.

There is a misunderstanding. I did'nt tried to make anything serious with it.
I just started some speed tests which led to see a huge difference of speed when a lot of code is used in a loop. This was a no-go to me because my purpose is to convert (somehow) a blitzmax existing code which was builded for years. Today that framework works fine and gives the result I expect in term of performances.
I want to have a look at the Android/IOS market but I do not want to reinvent the wheel. From my short and quick test with AGK, it became quite clear that it could not allow me to do the job expected, the way I plan to do it.
*Unless* of course rewriting from scratch the core base, hoping that it would not hit a wall when it becomes more advanced and sophisticated.
I learned programming on a ZX81 in assembler, it was in another life, it was great to push and pop :)!
But we are no more in C64 days where every line have to be carefully weighted, hopefully I would say (but this is a subject on itself).

Maybe AGK could do the job, but considering that there are competitors that can compile to machine code, at least one difficulty of the port I plan is solved.
Actually the two engines I consider are Unity and GameMaker (but I really dislike Unity).
I find AGK way closer to blitmax than the engines above, hence my interrest about a new version that could have seen some changes. Well it is not the case, too bad but not the end of the world. I'll continue to check AGK from time to time anyway.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 10, 2019, 04:46:31 AM
@Pingus

AGK can easily handle what you need. You just have to avoid multiple parsing of arrays over and over again :)

This was a match-3 game I was working on over a year ago in AGK ( not completed ). I've quickly adapted it to fill the full screen ( so ignore the background text on the left ) for a demo here which ended up at 19x11 ( not your 20x20 ) but you get the idea in it's execution.

Demonstrates full HD 1920x1080 animated + effects + background + multi drop board at 19x11 gems. Quite a busy scene which runs happily at 60fps.

The basic way it was coded was as follows...

An integer dimension of x, y, s

x = board x
y = board y
s = cell state

The cell state covered gem icon, animation frame, drop state, drop y offset, etc etc.

Although there was a lot of logic in the routine, it only had to parse over the board once per cycle. Each cycle after that was just updating what happened in the previous cycle.

You can get the idea from the video below that AGK can easily handle a match-3 game and you don't need to go into crazy optimisation as I'm a pretty old fashioned brute force coder myself :P

( full 1920 x 1080 @ 60fps video )

Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: iWasAdam on February 10, 2019, 11:04:39 AM
for a 20x20 grid you should be having about 400 checks (in total) per frame. If it is getting too much, then you can always spread the check out over different frames. E.G. odd frame numbers check odd cells, even frame numbers check even cells - that way you halve your checking...

just a thought :)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Derron on February 10, 2019, 11:16:46 AM
@ iWasAdam
That does only work if you enable "collapsing with already collapsing blocks" - or to delay the "collapse" to "every 2 frames".

If on frame 1 a "horizontal" match3 is found and "collapse" was started, then a potential second vertical match 3 with one of the cells (eg a "+" formation) cannot get catched in frame 2 as the vertical match 3 cells are already collapsing.

In that case you needed to only _mark_ the horizontal match during frame 1, then on frame 2 mark the second one ... and once you are done (you could split up in X frames...) you call "collapse" which handles all the marked cells.


BTW: In my game (TVTower) I had AI "thinking" split into multiple cycles too - they get "ticks" assigned which they can do small things instead of eg. checking hundreds of movies in one "blink". This also allows to have "slow thinking" AI and so on. It is needed as some complex stuff the AI does - cannot get handled "steadily" in the <15ms you have between a 60fps render - not to talk about 144hz displays and vsync ;-).


@ Pingus
As IWasAdam suggested, splitting the checks into "chunks" will help if it lags here and there. If your physical update rate is eg. 200 per second, you will loose 5ms if you alternate checks between 2 frames. You could even split them up in even more blocks.
BUT ... make sure to update the board state not every frame then - but only on "collapse" (eg. every 2 frames - or whatever you decided to) as you else end up with a inconsistent state (during first check you found something which is no longer valid on the second part of the check).

As said by me and others: writing the basement in the right manner is the key to a performance wise success. For prototyping it is ok to do "brute force" but if you plan to do stuff more than once (multiple games) you should consider putting in some efforts to the basics. And as written: your game does not change if you changed the basic engine. There is an "MarkCell(x,y)" and whatever it does is not of interest for the "high level logic" of your game. Also a game object might have an "OnKill()" method - and it is unimportant how it is called it is just important that it was called. So if the logic kills it after 2 frames of a collapse or after 1 frame... result is the same.


bye
Ron
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 10, 2019, 12:12:31 PM
@Qube: That demo looks better than a lot of Match3 games that have actually been published. You really should bounce that out as an actual game as it's already mostly there, by the looks of it.

@Pingus: For Qube to put that game at 20*20 squares then he'd probably need to have smaller graphics but looking at how it's running now I'd put money on it having no frame rate issues with that many objects to work with. The code tricks to save CPU load suggested by Adam and Derron also make a lot of sense, though I'm not even sure you'd actually need them unless there's a lot of other stuff that's heavy on the processor going on as well. I really don't think AGK is a bottle-neck to what you're looking at doing. If it was me then I'd rather acknowledge it's just a personal decision rather than pushing the blame onto something about the system that's unrelated. Blame is a harsh word there but I couldn't think of anything else suitable. This isn't a dig, I assure you, I just don't agree with your reasoning for writing the system off. Nothing personal.

Us old-school programmers - the kids who were growing up in the eighties - learned how to do everything the hard way. If you could save a few bytes by reusing a function or rotating/mirroring some graphic characters in code and make your game use that as a feature then you would. Everything had to be tight due to the limited memory you had to do what you wanted. I'm never going to be able to shake that mentality as I'm both too old and stubborn to want to get casual about it. When I'm writing a game now, if I use a bit of code more than once then it goes into a script (function) so I'm not duplicating code.

The world has moved on now and the processing is now far ahead of any need for optimising to really be needed most of the time. I think that the attitude of younger people who are writing games now don't have any thoughts towards making things tighter because they don't need to. They have all the memory and space they require for duplicated files with slight changes or whatever, so they just throw it all together in whatever system they are using and, if it does turn out to not run as well as they would like, then they can just throw it into whatever spankly-new-shiny system that's more recent and can handle it. And there's nothing really wrong with that, as long as it works. Old farts like me can't really tell the difference when they play the game. If it works, then it works. But then we are likely to question why this game is 2.3gb to install when it doesn't appear to be much of an advancement over the same kind of game from a couple of years back that was a 289mb install, for example.

Again, we won't really care that much with our 2TB hard drives, but it just makes me think to myself how wasteful we actually are just because we don't have to worry about it. I'd like to bring an analogy in with how the planet has got itself sincerely in the shit because of our lack of recycling for so many years because we weren't that worried about it but that would be another debate altogether.

Better to go off rant mode here but I hope you can see my point. It's more fun sometimes (and that's why we're all doing this) to actually work at coding to do what someone thinks isn't possible. I'll never get out of my habit of trying to keep things tight and save a bit of memory/cpu/storage but in a few more years I'll bet not many younger programmers will be bothering. This is probably why I think that some of these applications like Pico8 are genius. They impose hard restrictions on what the virtual machine can actually achieve then give you the coding syntax and tell you to try and achieve something amazing with it. Some people do really seem to dig this kind of thing so hopefully they apply that kind of thinking to when they jump back to Unity and plan to use the same image 100 times in different functions and don't just use the same graphic, for example.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 10, 2019, 01:19:44 PM
@Xerra,

I'm 100% with you about your ranting (memory and file size). All that terabytes are consuming a huge amount of energy, to create the PCs, the cards,  the hardisks, to cool the online servers, well... our love for HD movies and HD youtubes is not good for earth.

@Qube,

Your video is a mind changer to me :). As Xerra said you should continue working on it. Is it running on a PC or MacOS ?
Did you tried it on a smartphone ? That would be the ultimate confirmation.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 10, 2019, 04:02:05 PM
Quote
@Qube: That demo looks better than a lot of Match3 games that have actually been published. You really should bounce that out as an actual game as it's already mostly there, by the looks of it.
Thanks, it was an abandoned game for the 2017 Halloween comp. If I ever did do another match-3 game I'd just rewrite it from fresh :)

Quote
@Qube,

Your video is a mind changer to me :). As Xerra said you should continue working on it. Is it running on a PC or MacOS ?
Did you tried it on a smartphone ? That would be the ultimate confirmation.
It was on MacOS but I did test it on Windows during development and it ran the same.

Just tested on an iPhone 8+ and it runs at 60fps with no wobbles :)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Xerra on February 10, 2019, 11:06:31 PM
Just tested on an iPhone 8+ and it runs at 60fps with no wobbles :)

Just found my old Nokia 3310 in the cupboard. You reckon your demo would run on that? :-)
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Qube on February 10, 2019, 11:13:03 PM
Just found my old Nokia 3310 in the cupboard. You reckon your demo would run on that? :-)
I think one of the animated gems would fill up that phones memory :P
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Pingus on February 11, 2019, 03:31:53 AM
@Qube,

Thanks for testing.

I need to check on a weak laptop.
Title: Re: New TGC product: AGK Studio(=AGK3?) + discounts for early adopters..
Post by: Amon. on March 22, 2019, 01:19:23 PM
New version to be released today or early next week. It looks awesome.

https://forum.thegamecreators.com/thread/224061
SimplePortal 2.3.6 © 2008-2014, SimplePortal