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 / AGK game engine or not?

Author
Message
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 12th Jun 2021 08:40
Is AppGameKit Studio a game engine or a frame work and what is the difference ? Thanks
Loktofeit
AGK Developer
15
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Sarasota, FL
Posted: 12th Jun 2021 13:23 Edited at: 12th Jun 2021 13:24
A game template would be a framework. AppGameKit is an engine.

From the about page:

Quote: " AppGameKit Classic is a powerful game development engine "

Source: https://www.appgamekit.com/about-agk

LynxJSA's web games/quizzes - LynxJSA's Android apps
AGK Resource Directory
"Stick to a single main loop (DO...LOOP) and loop through it every frame.
Do everything inside functions.
Use finite state machines to control your game.
Use lots and lots of source files.
hendron
8
Years of Service
User Offline
Joined: 20th Dec 2015
Location:
Posted: 12th Jun 2021 13:56
Game engines provide much higher level functionality and editor tools built in while requiring you to work within their own structural rules. Frameworks provide you with the basic boilerplate functionality needed to code and structure your own game engine.

AGK is a bit unusual. Personally I would classify it somewhere in the middle. While it doesn’t provide the tools and highly structured workflows that engines such as Unity or Godot provide, it does provide higher level functionality than your usual framework. Drawing and managing animated sprites for example is much simpler in AppGameKit than in Love2d or Monogame.
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 12th Jun 2021 16:10
I often wonder this myself, I see AppGameKit as more as a framework but with sprite and object management, does this make it an engine ...

I guess the bigger question is "how much abstraction can you add to a framework before it becomes an engine?"

I don't think AppGameKit is abstract enough to consider it an engine but it provides more high level functionality than a typical framework, it is a bit of an odd ball case for sure.

Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 12th Jun 2021 18:54
I think I'm gonna think of it as somewhere in the middle. Thanks for the info.
Conjured Entertainment
AGK Developer
18
Years of Service
User Offline
Joined: 12th Sep 2005
Location: Nirvana
Posted: 12th Jun 2021 21:13 Edited at: 12th Jun 2021 21:23
I consider it a programming language (extended flavor of BASIC, if tier 1 which is what I use), since its commands are unique to its user interface.

I'm sure this will cause disagreement (though that is not my intention), but it is just my opinion of what it means to me.

I have referred to it as... "the game engine I use", but I have said the same about FPSC and Game Guru, which I think are more like game engines, where AppGameKit is a language. (again, just me)

I guess if you are using the new editor and all that, then yes, an engine.

Quote: "Frameworks provide you with the basic boilerplate functionality needed to code and structure your own game engine."

Agreed, and since the licensing agreement prevents you from making a game engine with it (doesn't it?) then if cannot be considered a Framework.

Call it whatever you want, but I will still love it all the same.

Coding things my way since 1981 -- Currently using AppGameKit V2 Tier 1
hendron
8
Years of Service
User Offline
Joined: 20th Dec 2015
Location:
Posted: 12th Jun 2021 22:30 Edited at: 12th Jun 2021 22:39
Quote: "since the licensing agreement prevents you from making a game engine with it (doesn't it?) then if cannot be considered a Framework."


That's not exactly what I meant by creating your own game engine. You can absolutely create a game engine with AppGameKit, you just might not be able to sell/distribute it (I don't know). A game engine is really just a set of integrated tools, high level systems and structures that serve as the skeleton for a game or multiple games, and can be as genre/game-specific or agnostic as you want it to be.

The most well known game engines out there such as Unity, Unreal, Godot etc are all examples of general purpose engines that can be used to create any type of game, but you must develop the game around their specific structures -- IE Scene hierarchies with GameObjects and components etc in Unity, or Node trees in Godot. Also you generally use them to take advantage of their high level systems (animation systems, event systems, etc) instead of having to code those yourself.

I consider AppGameKit more framework-like because it does not enforce any specific structure, nor does it provide such tightly integrated editor tools. However it does give you the functionality needed to create such tools and structures yourself.

Anyway, at the end of the day it's really just semantics. I agree with PartTimeCoder in that the line between framework and engine is more of a spectrum.
Loktofeit
AGK Developer
15
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Sarasota, FL
Posted: 12th Jun 2021 23:23
Quote: "I have referred to it as... "the game engine I use", but I have said the same about FPSC and Game Guru, which I think are more like game engines, where AppGameKit is a language. (again, just me)"


That's how it works in my head, too. However since it's BASIC, I don't dare say that because around coding nerds that quickly devolves to "Pshhh... Yeah BASIC is a programming language, but no real programmer uses it" and other nerd-flex ackshually-ing that I have no interest in dealing with.

LynxJSA's web games/quizzes - LynxJSA's Android apps
AGK Resource Directory
"Stick to a single main loop (DO...LOOP) and loop through it every frame.
Do everything inside functions.
Use finite state machines to control your game.
Use lots and lots of source files.
hendron
8
Years of Service
User Offline
Joined: 20th Dec 2015
Location:
Posted: 13th Jun 2021 00:11
Quote: "I don't dare say that because around coding nerds that quickly devolves to "Pshhh... Yeah BASIC is a programming language, but no real programmer uses it""


Say it proudly, if you ask me. People who respond with "no real programmer uses [x]" are exposing their lack of experience and/or elitism. Either way, it's a good way to filter out people you wouldn't want to work with on anything, lol.
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 13th Jun 2021 01:34
Quote: ""no real programmer uses [x]""


Agreed, basic-obia and structured anti-functional OOP supremacist are the biggest threat to sensible languages ever!
fubarpk
Retired Moderator
19
Years of Service
User Offline
Joined: 11th Jan 2005
Playing: AGK is my friend
Posted: 13th Jun 2021 05:19 Edited at: 13th Jun 2021 05:24
My understanding on creating a game engine is as follows
1>You cant dis-assemble AppGameKit or use uploaded source as such to make a developing tool as such to make a development language such as another basic/hybrid etc for profit without written consent

What is allowed is the development of tools for profit likehttps://play8bitars.itch.io/quark-toolset and if i chose that path the land editor and mapper that i use in my krazygrandprix game

Where it gets a little unclear is can someone use AppGameKit to create a replacement language for agk?
NO
Can AppGameKit be used to make a Development Tool that can create apps/programs etc
I believe the answer is YES but.......
If for example you created a program that that was purely GUI controlled that could make perhaps a limited range of apps/games ie a pinball construction set
I understand that should be Acceptable For the reason

A> its not competing against AppGameKit and trying to take its piece of the pie (you should advertise that it was made with AGK)

if on the other hand you reused the AppGameKit commands and allowed users to write code as such to develop there own software and called it BGK or something
NOWAY is that allowed nor is it even acceptable
fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
Raven
19
Years of Service
User Offline
Joined: 23rd Mar 2005
Location: Hertfordshire, England
Posted: 14th Jun 2021 13:36
The terms "Engine" and "Framework" are simple to understand...
A Framework is something that requires something else in order to be usable., where-as an Engine is something capable of powering something on it's own.

With this said., these term essentially stem from Car Analogies (don't ask me why Software Engineers have a fascination with using such., but said analogies are commonplace).
You think about it like your Car... sure with a Chassis you can build something around that; but without an Engine., it'll just be a pretty paper weight; as it won't be able to do anything on it's own.

That's where the definition sits.
There are two much more pertinent questions though;

(1) Is AppGameKit a GOOD Game Engine?

(2) is AppGameKit a Comprehensive Game Engine?

And I'd say in both cases., that it isn't. Rather I'd say that it is an excellent Prototyping Engine... something to build quickly from Concept to Working Example Product; but it isn't something that is really capable or more aptly "Good" for a Finished Product.
Some elements of the Engine are comprehensive enough to be viable; while other elements are Framework (Bare Bones) Implementations that aren't.

Audio, for example is SO incredibly bare bones and needlessly difficult to work with; but for Games is an exceptionally important element for a Game Engine to get right.
Having full control over Voices, Lifetimes, Balancing, Positioning, Mixing, Post-Processing, Input-Output, etc.
And what does AppGameKit have... Load, Play, Volume.

In fact in many ways the same is true for most of the 3D Support as well... which might sound odd as there are several dozen 3D Commands., but the issue isn't the volume of commands, it's the quality and utility of what those actually do.
Ever tried to Load / Create Animated 3D Objects? Again a dozen Commands for such; but very little is actually supported to make things easier / simplified / possible.

This is wholly different from DBP., which has the same number of commands but not only would it load Animations from any 3D Format Supported (which also supported Animations) but you could quite easily manually craft them with the provided commands; and without needing to comprehensively know any 3D Formats.

Elements like this, just end up making the Engine worse as a whole; and showcase that TGC themselves simply don't have the experience with Game Development to understand what is and isn't important for such; and then as the majority of the Community are also NOT Game Developers., it's not like they in general know any better; and instead will assume said awkward / terrible implementations are "Fine" or hit a brick wall and become discouraged dropping their projects / AppGameKit as a whole.

I mean there is a SERIOUS problem at play when the AdSense "Extra" has a more comprehensive implementation than the entire Audio Subsystem.
What exactly are the Priorities there?
Another thing is a common thing for Game Engines isn't to simply bug-fix but strive towards Performance Optimisation., but again with AppGameKit it's like a deliberate avoidance from such, just to ensure Legacy Hardware support.

I've said this before and I'll say it again... What is the point in AppGameKit Studio adding Vulkan., when there is a refusal to increase the Minimum Support Specifications from OpenGL ES 1.1?
It makes Vulkan little more than a bullet point; when it could be a major performance and feature upgrade; ESPECIALLY IF Vulkan (Mobile) 1.0 was set as the Minimum Feature Support... or at least OpenGL ES 3.2; at least then it could be somewhat more modernised.
Loktofeit
AGK Developer
15
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Sarasota, FL
Posted: 14th Jun 2021 15:13
Raven, your post has me considering going back to DBPro with my current project, primarily for the better camera, lighting, and sound support.
LynxJSA's web games/quizzes - LynxJSA's Android apps
AGK Resource Directory
"Stick to a single main loop (DO...LOOP) and loop through it every frame.
Do everything inside functions.
Use finite state machines to control your game.
Use lots and lots of source files.
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 14th Jun 2021 22:13
I don't disagree with what your saying Raven and I'm not new to AppGameKit but I like AppGameKit Studio and haven't outgrown it yet. If you had to recommend a BASIC orientated language to use professionally what would it be ? I tried Pure Basic a year or so ago but due to the fact it won't run on windows 10 without installing DX 9.0c and a few other things I decided it wasn't for me . Maybe TGC need an AppGameKit professional version which would be good for any project . Beginners All purpose Symbolic Instruction Code should mean it's good for all programs games business educational whatever and I think it is with the right plugins. I like writing games but I also want to program other software or at least know I can if I want to without having to start from scratch. I spent a couple of months with python a couple of years ago and that relies on plugins (modules) for a lot of stuff. I really think AppGameKit Studio is better than Python but that's just me . Each to their own I suppose .
Have an excellent evening.
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 14th Jun 2021 22:43
Raven makes some good points, as usual.

@Pfaber1, I get what you are saying there, having everything in-one package and not, "I used that function so must include this file" nonsense and 1 click deploy are great attractors to AppGameKit for sure but these are indicator's of:

A. the person is lazy (this is me)
B. the person is a noob (no shame, we all started once)
C. the person is just a hobbyist (again, me)

The result of this is a lesser demand on the complex things that are missing, so what makes AppGameKit great is also its biggest flaw .. Ironically!
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 15th Jun 2021 00:50
The only thing I really liked about Pure Basic was it's speed but AppGameKit although interpreted is fast enough for my needs so far . I guess I'm a hobbyist too but I aspire to be more . I sell the odd game ( very odd) but a sale is a sale .
in the last 3 years I have made one game in blitz3d a few demos in python one game in Pure Basic and a few in AppGameKit studio and classic and out of all of those my favorite is AppGameKit Studio.
agkcoder
19
Years of Service
User Offline
Joined: 12th Dec 2004
Location:
Posted: 16th Jun 2021 06:15
@ Raven

"Having full control over Voices, Lifetimes, Balancing, Positioning, Mixing, Post-Processing, Input-Output, etc.
And what does AppGameKit have... Load, Play, Volume. "

AppGameKit has volume and L/R balance control over every sound instance, and a master volume control over all the sounds. You can also pitch every sound instance up and down independently. You can get such info as how many instances are playing, if a certain instance is playing, and how many times it has looped. I agree that it's nothing fancy but it's definitely more than "Load, Play, Volume".

"I've said this before and I'll say it again... What is the point in AppGameKit Studio adding Vulkan., when there is a refusal to increase the Minimum Support Specifications from OpenGL ES 1.1?"

You mean OpenGL 2.0/OpenGL ES 2.0? The 1.1 is the GLSL version. A significant chunk of the Android market is not Vulkan capable, and a big part of that chunk is not even OpenGL ES 3.2 capable. For me AppGameKit being compatible with and being fast on lower end mobile and desktop hardware is one of its strengths. Just that you have the option that you can set the interpreter/player to automatically switch to Vulkan when it runs on compatible hardware makes it worth having Vulkan as a choice just for the performance gain alone. Probably this will change in the future and the emphasis will be on Vulkan as compatible hardware will be more and more widespread but set it as a base requirement now would be a very bad move. Rendering wise the 3D engine as it is now definitely won't hold back anybody from making an impressive looking 3D game.

@ Pfaber1

I would call AppGameKit Studio a development tool.
Conjured Entertainment
AGK Developer
18
Years of Service
User Offline
Joined: 12th Sep 2005
Location: Nirvana
Posted: 17th Jun 2021 22:51 Edited at: 17th Jun 2021 23:41
All I know is the memblock commands rock. (when I can remember how to use them correctly )

The sound can probably be manipulated a lot through the memblocks too but I have not really played with those much, but it has a lot of potential I think.

Just looking at the list of commands in the AppGameKit documentation is most impressive, and confirms the power and potential that AppGameKit offers.

As said, the other 'engines' are full of proprietary features that require many more steps to do basic things, but in AppGameKit it is very simple and straight forward.

Godot is very redundant IMO, and good luck with Unity if you don't have a team. (just getting a 3d model in and textured was a pain back when I tried them out. (maybe it is better now))

Anyway, I am off to play with the memblocks again in AppGameKit, and calling it other than what the name suggests is fine, because it is definitely not limited to game making, that's for sure.

I lost all of my steganography work, so I have to start from scratch again, but that is okay because I had forgotten a lot and need a refresher anyway.

I need to play more with the shared variables for HTML5 exports too, now that Xbox releases are possible with AGK. (memblocks image test I just did for AGK-HTML5 to UWP via VS2017 works great!!)

Have fun guys.

Coding things my way since 1981 -- Currently using AppGameKit V2 Tier 1
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 18th Jun 2021 12:41
Yes I do agree that AppGameKit Studio can pretty much used for anything beginners ALL PURPOSE symbolic instruction code but is especially good for games of all types. I think this is how TGC should sell it too. May the force be with you.
chikega
FPSC Reloaded TGC Backer
3
Years of Service
User Offline
Joined: 28th Jan 2021
Location:
Posted: 20th Jun 2021 20:23
Would it be fairer to say that AppGameKit Tier 1 (Basic) compiles to an intermediate bytecode which runs on a virtual machine, more like Java/JVM vs being interpreted like Python?
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 22nd Jun 2021 14:34
Yes but with java the java thingy has to be present. This is not the case with AppGameKit . Just the exe and media file . And with a few clicks will run on virtually anything .
Loktofeit
AGK Developer
15
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Sarasota, FL
Posted: 22nd Jun 2021 15:00 Edited at: 22nd Jun 2021 15:02
Quote: "Yes but with java the java thingy has to be present. "


In his example, the "java thingy" (JVM) would be the equivalent of AGK's EXE - executing compiled code, as opposed to interpreting raw code.
LynxJSA's web games/quizzes - LynxJSA's Android apps
AGK Resource Directory
"Stick to a single main loop (DO...LOOP) and loop through it every frame.
Do everything inside functions.
Use finite state machines to control your game.
Use lots and lots of source files.
Pfaber1
6
Years of Service
User Offline
Joined: 7th Jan 2018
Location: England
Posted: 22nd Jun 2021 22:48 Edited at: 23rd Jun 2021 09:36
I think I'll just have to agree from this point onwards as it's getting rather confusing .
Well I've been using AppGameKit for 3 years and never realized the .EXE files are the same size . I finally get it . The EXE file is a fake EXE file and just contains the interpreter . Very clever .
I've never thought about this before so our programs are the byte code not the .EXE file . Damn I'm gobsmacked.

Login to post a reply

Server time is: 2024-04-25 07:05:18
Your offset time is: 2024-04-25 07:05:18