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 / Switch to directX 11 or disable openGL? ...Or disable 3d processing?

Author
Message
Chmava
10
Years of Service
User Offline
Joined: 20th Jun 2013
Location:
Posted: 13th Aug 2021 05:39 Edited at: 13th Aug 2021 05:51
As the title stated: Switch to directX 11 or disable openGL? ...Or disable 3d processing?

Any help appreciated!

...Or anyway to get the app working on a 'Silicon Motion' GPU?

The one we have is a 'InnoDisk 1201' with hdmi output...
It does not come with a build in 3d accelerator, but it should work if AppGameKit app support directX 10 or 11 using 'WARP'...
Raven
19
Years of Service
User Offline
Joined: 23rd Mar 2005
Location: Hertfordshire, England
Posted: 13th Aug 2021 17:36
WARP (Windows Advanced Rasterization Platform)., is a CPU Fallback for when there is no Hardware Support for Common DirectX Features.
In essence it's a Software Rasteriser Engine... and should NEVER be used in a Retail Application.
It's basically there for testing / development of Advanced DirectX Features without the necessary Hardware (Raytracing, Shader Models, etc.)

As best as I can tell., the Inno 1201 Display Controller is little more than a VGA/HDMI Display Chip... it has no 2D or 3D Support, and the Drivers aren't Open Source.
What you can probably do is disable the Renderer (#Renderer None) to run AppGameKit in Console Mode., then support the Display Adapter directly via a C++ Plug-In; but I wouldn't recommend that approach.

Your best best is actually working in Native C/C++., as you'd essentially have very little of AGK's features available to you beyond the Scripting Language; which isn't exactly very good in regards to performance.
As it stands, AppGameKit Studio only supports OpenGL (2.0 / ES 1.1) or Vulkan (1.0)... there is no Direct3D Rendering Engine; and OpenGL/Vulkan have no "Software" Mode., either your hardware supports them, or it doesn't.
But as noted, you shouldn't be using WARP (Software Rendering) with Direct3D.
Chmava
10
Years of Service
User Offline
Joined: 20th Jun 2013
Location:
Posted: 14th Aug 2021 05:49 Edited at: 14th Aug 2021 05:59
Was using it because it is a server...
Does not wish to use a high wattage gpu just to get some video output...
But, without a gpu, no agk app runs either...
In the end, we got a 5700g, that was newly released in the last few days...
This should solve it, but it is still about ~5% slower than a 5800x...

The app need a GUI interface, as such, running in console... might required too much tutorial to get a staff running...

Porting it without the AppGameKit backend... might work...?
Raven
19
Years of Service
User Offline
Joined: 23rd Mar 2005
Location: Hertfordshire, England
Posted: 14th Aug 2021 17:18
Servers generally don't need Video Output., as when correctly setup, they should be entirely remote accessible for Admin, Maintenance, etc.
Now what you'd be better off doing is creating an ioT Application...

This would be an Application that runs via an Active Server (Active PHP, .NET Core, etc.) which can be easily programmed in a "Native" language; then for User Interface providing a Portal Page; thus providing access entire via a Web Frontend.
As a result regardless of whatever the Native Server Platform., the End-User Experience will then work on any device that supports Web Browsing (generally HTML 5.0; like Chrome, Firefox, Edge)
It's actually a major direction a lot of Apps, even Desktop Apps have been trending towards.

And there are a few good reasons for it.
Chief of which is Portability., given Tablets, Smart Phones, Computers and even Displays generally have Web Browsing Capabilities; thus becomes compatible with the output.
Updates and Upgrades can happen Asynchronously to the End-User / Front-End Application., so adding new Functionality or entirely changing something in the backend won't suddenly lead to compatibility issues for the End-Users.

Support for things like 3D / 2D Acceleration is down to the End-User., not Core (Server-side) Application., this means adding support for such then relies on the User System; rather than the Server.
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 14th Aug 2021 18:43
Maybe try;
#renderer "None"
As long as you don't do any screen output
Chmava
10
Years of Service
User Offline
Joined: 20th Jun 2013
Location:
Posted: 15th Aug 2021 05:36 Edited at: 15th Aug 2021 06:43
It is on a server, but the server is also 'someone's' workstation...
The app in question is similar to a 'PHP' & 'Apache' server running in the background...
...but it need a GUI interface for maintenance...
A 'Over The Web' suite to manage this app kinda open too many opening... and possible security issue...
Especially since agk have no build in 'Start A Network HTTPS Host("SERVERCONTROLPANEL", 65535)' function with SSL...

Even something like virtualmin or webmin required https for a secure connection...
Especially since most of the time, 'root' login is used...
Without the app being a https server itself, only an idi*t would risk something like this over the internet!

As for using php/apache to communicate locally to the app, I could not find a tutorial on how to connect to the app using a function similar to GetNetWorkJoin() and similar function from PHP/Apache...

...Or connect to app socket?
The document said that the first 4 byte of a string is the string length...
So maybe there is a way...

Also, how do you set '#renderer "None"' in c# and basic?
Raven
19
Years of Service
User Offline
Joined: 23rd Mar 2005
Location: Hertfordshire, England
Posted: 17th Aug 2021 01:22
Quote: "Especially since agk have no build in 'Start A Network HTTPS Host("SERVERCONTROLPANEL", 65535)' function with SSL..."


Yes, it does.
The problem is that YOU don't seem to understand how HTTPS works., or more specifically is setup.

In blunt terms here., you just have to configure the Host Software (I'm assuming Apache in this case) to Enable HTTPS... this will then use any Certificate you have within the Host Root Folder (not the Shared Root Folder).
This will enable the SSL Ports and any Connection Request made to said Ports (i.e. http://myWeb.com:443 or https://myWeb.com) will then handle Encryption / Decryption for you.

As such., from AGK's Perspective all you have to do is enable the "Secure" flag when you create the connection; or use the specific command to Enable / Disable a Secure Connection.
What this will do is it will try a HTTPS connection; if that fails it will fallback to HTTP while telling you it didn't work... and it will usually fail because the Host Software isn't configured correctly.

Quote: "Without the app being a https server itself, only an idi*t would risk something like this over the internet!"


The App isn't the HTTPS Server., that is entirely handled by your Host Software.
All you can do with the App is enable / check that secure connection is made; it can't create one unless you're manually writing security as part of your Network Solution.
That would mean the Security Handshake, Encryption, Decryption, etc.

Which is of course possible., but not recommended given it's unlikely you are a Network Security Expert; well that and AppGameKit as a runtime can't be virtualised and is hardly secure; meaning it's better to let established solutions handle it.
You just have to set it up properly; and there is typically a guide on how to do that in the Help / Documentation for your Host Software.
It usually takes a couple of minutes to setup and get running... it's more or less drag-and-drop.

Heck IIS will automatically enable HTTPS when a valid Security Certificate is present in the Host Root Folder.

In either case., a Web App (RIA / IoT) is a much better solution for a Frontend over AGK.
No Installation, No Special Hardware, No Additional Overhead, Fully Threaded, Fully Hardware Accelerated, Fully Portable, etc.



I don't know why you're so focused on using AGK... it's not a good fit for what you're trying to do.
Chmava
10
Years of Service
User Offline
Joined: 20th Jun 2013
Location:
Posted: 18th Aug 2021 13:08 Edited at: 18th Aug 2021 15:05
I am saying...
I am using BOTH AppGameKit app as server and client!!!
The agk app IS THE 'APACHE' SERVER!
Which it can't do...
I am not setting up a whole apache/php server to be it's 'somewhat slow' server...
The lag will be... quite high...

I also setup website for client...
I won't say I knows how the raw code works, but...
Godot has the ability to add this function for both side ssl connection...

https://www.youtube.com/watch?v=gcopx40pwvY

QUOTE: "how to implement these TLS/ SSL Certificates using Godot DTLS to ensure the line is encrypted, and the passwords of your players are safely communicated to the server"

The next video in that series show the auth server being made in Godot too...
Not A Apache server, but another Godot app....
Probably running 'somewhere on the internet' elsewhere...

Agk... probably is just not so good for multiplayer...
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 18th Aug 2021 19:20
I am pretty sure you can make a basic HTTP server in AppGameKit, you only need to set the output headers

this 170 line (including whitespace) example from PureBasic >> "Examples\Sources - Advanced\Atomic Web Server" shows how its done, I am pretty sure it can be recreated in agk



why not just use XAMPP? - its built for things like this
Open Source plugins
Cl - DnD Plugin
Chmava
10
Years of Service
User Offline
Joined: 20th Jun 2013
Location:
Posted: 20th Aug 2021 09:12
sadly, such function does not exists in any of the document here: https://www.appgamekit.com/documentation/Reference/Multiplayer.htm
or even in it's http document...
Perhaps it does not exists nor a build in scripted function in agk...

We are trying to get that in basic, but perhaps it is not needed...

Login to post a reply

Server time is: 2024-03-28 09:34:37
Your offset time is: 2024-03-28 09:34:37