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 Studio Chat / Compiler versus Interpreter

Author
Message
dogheadedman
6
Years of Service
User Offline
Joined: 1st Dec 2017
Location:
Posted: 2nd Mar 2019 01:59
I have loved Appgamekit, and my only bugbear has been the fact that it requires a player to interpret the scripting language. Compared to some other languages I've used before such as Blitzmax, which will compile an easy to use scripting language into a fully compiled app - no need for an interpreter/player.

Before investing in a new Appgamekit, I'm curious if there are any plans to do away with the player and have a fully compiled tier 1 app that no longer requires an interpreter?

Thanks
SFSW
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 2nd Mar 2019 03:17
I wouldn't expect it to, given its cross-platform design and usage of a common bytecode format with various players for each platform. I'd be curious to hear your thoughts on what benefit, advantage, or need such an option would provide. To me, the current bytecode format with platform specific players makes quite a lot of sense. A way to change the icon within the IDE to more customize the various players would be an important addition though.

What it very much needs more though (both 'classic' V2 and AGKS) is a 'compile' to a protected media bundle/archive file. The entire \media folder and any plugins should be put into an encrypted (via user specified key) PCK file or something that is accessed during runtime. That way, you'd be left with just two core files and media protected as it should be. Doesn't have to be fancy, complicated, or slow loading, just some form of basic protection .
Seditious
10
Years of Service
User Offline
Joined: 2nd Aug 2013
Location: France
Posted: 2nd Mar 2019 04:06
I'm not familiar with AppGameKit (I just stumbled upon this thread by accident) but if you're referring to being able to create just a standalone exe/package that doesn't require external files, that should be possible even with interpreted code - you just have the code bundled with the interpreter as the same file/package. DarkBASIC Classic did this, as a matter of fact.
2002 - Present
dogheadedman
6
Years of Service
User Offline
Joined: 1st Dec 2017
Location:
Posted: 2nd Mar 2019 07:33
Thanks SFSW. My thoughts are around 2 different points.

1) The protected nature of a fully compiled app, which your suggestion would fix completely.
2) The additional speed of an assembly language app.

I know I can manually translate my files into tier 2, but that removes the advantage AppGameKit provides on being such a quick workflow - at least in the short-run, until I got the hang of working in tier 2.
Rick Nasher
6
Years of Service
User Offline
Joined: 25th Jul 2017
Location: Amsterdam
Posted: 2nd Mar 2019 07:55 Edited at: 2nd Mar 2019 07:55
What I'm wondering about is:
- If it's possible for AppGameKit to write a bytecode interpreter(probably done in C++), why is it not possible to write an actual compiler for them?
- Is this a completely different cup of tea?


Even though everything's working fine as is, still a great share of people who do serious work, will require/demand a solid single executable to be taken seriously, as interpreters are being looked down upon in the bizz world as they have a reputation of being unprofessional, more slow and hackable.
Fair or not, that's the way it is. Having a *true* compiler could therefore boost AGK's credentials by quite a bit, which in turn creates more buyers.


I know Blitz3D compiled to executables, but I remember hearing that the actual compiler had a piece that was written in pure assembler and did some weird optimizations.

This apparently was quite a beast by itself and prevented people from making really new versions of the language once was released as open source.
It had to be re-written and few knew how.
I know Ploppy ( I was one of his testers) rev engineered it and managed to get it done I think, just before he went to the other side(R.I.P).



So, I'd second that feature +1, but don't know how feasible it is due to lack of information. I can imagine it's quite a task and one could not just rip an existing C++ compiler's code, but surely there must be some open sourced, free ones out there. However those are probably just for 1 single platform. - with that I perhaps answered my own questions I now realize..


If anyone, who knows more about this please elaborate.
SFSW
21
Years of Service
User Offline
Joined: 9th Oct 2002
Location:
Posted: 2nd Mar 2019 21:39 Edited at: 2nd Mar 2019 21:41
@dogheadedman

Yes, for #1, AppGameKit V2 and AGKS both need a final compiled option that bundles everything (media, bytecode, and plugins) into a single protected file (ie asset bundles in Unity). It solves a variety of issues, not the least of which is meeting the licensing terms of many assets developers may acquire. If the interpreter/player itself were also linked to the protected media file in some way, the security issue Rick Nasher points out would also be somewhat/mostly resolved. It really is a basic functional element any game/app development system should have.

As for performance in #2, there could be noticeable improvement with a machine code compile, but the interpreted performance of AppGameKit (V2/'classic' at least) is quite good overall. For one example, I've found it to be just as fast or faster than DBPro compiled binaries in certain operations and graphics rendering (running nearly identical code). Where it falls short is with nested loop performance. That seems to be a bottleneck in AppGameKit that a different compile method might help, but I'm not sure if it would make much of a difference. AppGameKit could definitely benefit from faster loop results anyway as it seems to be one of the most significant performance limitations AppGameKit has.

Totally agree with you about the ease of use and implementation with Tier 1, it's one of the biggest advantages that AppGameKit has over other systems. In fact, with a few important fundamental options/improvements (including the ones we've discussed), it could be quite a major competitor for what else is out there and likely attract a broader range of developers. The last year of developments have been very encouraging and I hope both V2 and AGKS will see continued improvements in such areas in the future.
GaborD
6
Years of Service
User Offline
Joined: 3rd Dec 2017
Location:
Posted: 2nd Mar 2019 22:37
Agree to both @Rick Nasher and @SFSW
Having packed and secure code and media would be a great step forward.

nonom
6
Years of Service
User Offline
Joined: 12th Nov 2017
Location: Picking mushrooms
Posted: 2nd Mar 2019 22:53 Edited at: 2nd Mar 2019 22:54
Rick Nasher wrote: "What I'm wondering about is:
- If it's possible for AppGameKit to write a bytecode interpreter(probably done in C++), why is it not possible to write an actual compiler for them?
- Is this a completely different cup of tea?"


Sometimes I miss a "+1" button
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 3rd Mar 2019 18:00
Hmm yes need a way of protecting media to stop people altering graphics etc . At the moment I put both exe and media into a folder Hide the media folder and zip up the folder using 7z then upload to the internet for distribution . As long as the person who downloads it doesn't take the exe out of the folder all is fine . seems to work ok doing this .
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 3rd Mar 2019 18:10
By the way the only problem I have doing the above is I haven't found out how to make the media file show up again. Could somebody tell me if you know how . Thanks
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 3rd Mar 2019 18:14
As for having to have an interpreter I don't . It's wrapped up in the exe produced and thats that . I think . I used to use Blitz3D before this and find AppGameKit classic to be way nicer to use and if used correctly I don't seem to have an issue with it being too slow (so far).
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 3rd Mar 2019 18:34 Edited at: 3rd Mar 2019 21:15
would really like to try to try out AGKS but think I'll wait until I buy a new laptop as I don't think the one I'm using will support Vulken . It's not old but a bit crap.
we're talking 1.6 ghz 4 gigs ram and dual core. HD 400 graphics . Seems to like AGK2 though . If it'll run on this it'll run on anything.

Oh right yes the edit button never noticed it before thanks for pointing it out .
Phaelax
DBPro Master
21
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 4th Mar 2019 16:32
There is no additional player needed for AppGameKit to run on another computer. If there is, then it must be embedded in the executable. Even so, Java requires a JVM and it's become one of the most widely used languages these days.
Tiled TMX Importer V.2
XML Parser V.2
Base64 Encoder/Decoder
Purple Token - Free online hi-score database
Legend of Zelda

"I like offending people, because I think people who get offended should be offended." - Linus Torvalds

Login to post a reply

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