tatogame's Forum Posts

    For me, it's great news that the plugin system is being renewed. The current base dates back to an evolution of Construct 2, so we're talking about technology that is around 10 years old. It's a very solid system, but it was starting to show some issues and "old" patterns. The move to TypeScript is an excellent choice, and the provided support period is commendable. I am confident that the support and documentation will be sufficient to facilitate the transition.

    I understand that there will be some resistance from the community, as I see here in the forum. However, the given timeframe seems more than adequate to adapt the plugins. I'm sure additional tools will be developed, just as they were for Construct 2, to assist with the conversion of plugins from the old to the new system.

    I have some years of experience in Construct and software development, and I know that Ashley and his team have a wealth of experience as well ;)

  • Open source is not the same as compatible with hacking the runtime. In a native engine, you could do things like identify memory addresses where useful things are and overwrite memory addresses with custom data to achieve new things. Anyone who knows anything about reliable software engineering will be cringing at that idea because it is obviously a disaster and you will end up with a total nightmare with everything breaking all the time. The main reason people don't do that with native engines is because it's particularly difficult. JavaScript lets you do something similar, but more easily. It does not make it a good idea. Again, this is not the same thing as whether or not the engine is open source. It is a matter of maintenance and long-term reliability. Being able to look at the code does not mean that hacking memory addresses in a native engine becomes reliable, and likewise, being able to look at the code does not mean that hacking internal JavaScript APIs is reliable.

    I'd say the open source equivalent would be forking the engine and making a bunch of modifications to the internal engine. Now you have a compatibility nightmare as the main branch diverges from your customized codebase. You might try to occasionally merge over changes, but then you might end up with merge conflicts and a huge mess in the codebase. The easiest thing to do is never update the engine. Now it's game over for support - nobody can support your customized engine, and you cannot easily merge in any new features or bug fixes in the main engine. Anybody who has been through this process knows the only good approach is to merge any changes upstream in to the main open source project, so you are still working with the single shared codebase shared and supported by everyone. If you have your own hacked fork, you do so at your own risk, and it will probably end in disaster for you, but that's on you.

    The difficult thing for me here is that this is all well-understood stuff learned over decades of the software industry. But right now people are already doing it with Construct, it looks like it works, and why would Scirra go and break it? It's because in the long run, it ends in disaster. This has already happened with Construct 2, and it is obvious to anyone else who has maintained a software platform for a long time, but it may not be obvious to people tinkering with the engine right now. So you can downvote and argue all you like, but our responsibility is to make sure the engine is reliable and will continue to be reliable even a decade ahead from now; we know what that involves; and we are advising people accordingly.

    The exception to all this is the documented, supported APIs. If you use those, we promise to support them indefinitely. That's why part of my advice is to stick to those.

    Totally agree with Ashley POV. Is thanks to this experience and POV that Construct supports old project way better than the competitors.

  • Midi plugin is updated now with this feature!

  • Hello,

    For a client I'm using a NW.js build with external URL in order to have a fixed version of chrome and more control on the PC where the experience is "installed".

    Everything great except 2 issues. This is my current package.js configuration

    	{
    	"main": "http://www.risingpixel.com/others/previews/platano/",
    	"name": "TestPlatano",
    	"description": "",
    	"version": "1.0.0.0",
    	"window": {
    		"icon": null,
    		"title": "TestPlatano",
    		"width": 1920,
    		"height": 1080,
    		"position": "center",
    		"resizable": false,
    		"frame": false,
    		"kiosk": true,
    		"show": true
    	},
    	"user-agent": "Mozilla/5.0 (%osinfo) AppleWebKit/%webkit_ver (KHTML, like Gecko, Chrome, Safari) NWjs/%nwver",
    	"chromium-args": "--enable-node-worker --disable-plugins --disable-internal-flash --disable-popup-blocking --allow-file-access-from-files --ignore-gpu-blacklist"
    }
    

    1) How do I auto-enable sound? If I tap on the screen the sound can play, but in a vision of "autoplay video without any touch" how enable sound without first tap?

    2) How do I really disable cache? I tested with –disable-application-cache –media-cache-size=1 –disk-cache-size=1 — "%1" but no I see no effects... Only workaround I've found is a .bat file on startup which delete %APPDATA% folder of this application.

  • kingpirux

    > I found out that the plugin in Construct3 works as charm but it is incompatible with the worker. If you deactivate worker it goes fine.

    What do you do exactly? What's in your logs? Can you provide a repro project, preferably modified demo from Photon plugin package.

    Hello ThePhotons, Luca from Rising Pixel here, the error in the console is

    Uncaught (in promise) TypeError: Cannot read property 'ConnectionProtocol' of undefined

    at new PhotonInstance (1bf167ca-039d-4121-8cc2-b030b1eb8a55:176)

    at Function.New (jsutil.js:9)

    at Instance._CreateSdkInstance (instance.js:7)

    at ObjectClass._CreateSingleGlobalInstance (objectClass.js:12)

    at new ObjectClass (objectClass.js:7)

    at Function.New (jsutil.js:9)

    at Function.Create (objectClass.js:7)

    at C3Runtime._LoadDataJson (runtime.js:28)

    at C3Runtime.Init (runtime.js:21)

    at async InitRuntime (2094b93e-dfc2-40ac-8f0d-d26af86f456f:4)

    I've created an empty (but working) demo from Photon demo to show the issue.

    github.com/tatosgames/testphoton

    It can be workarounded disabling web workers in construct 3 but this will affect the performance in the whole game.

    The issues are that in the instance.js you create all Photon stuff in the constructor when the base Photon couldn't be already initialized. May I suggest adding an new explicit init action in action.js where load balancer and Photon instance can be created?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • maybe is Nw.js? If i export the same game with minify in browser version works, if I use the nw.js version not :(

  • The minify on this launcher doesn't work and sometimes is closing without saving/message or anyting.

    Any updated version?

  • Hello,

    I was checking this open source project. Not very "pluginnable" because the JS is handling everything from webpage, to render, to canvas, to shaders....

    github.com/PavelDoGreat/WebGL-Fluid-Simulation

    It could be possible port this as C3 plugin or effects? At least the fluid simulation in WebGL

    My best results are having a new transparent canvas on top of C3 rendering this :\</p>

  • lol sorry, dunno why but I thought to post on different thread :P

  • hey, any news or workaround on that?

  • great! Please do it, you have my support :D

  • I'll try, but is strange that it works with 267, some plugin related stuff is changed?

  • Hello,

    I've recenlty updated Construct 2 from R267 to R268 with the usual installer but when launched i'm prompted with

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    ACE table: expression does not specify one return flag - did you specify more than one, or forget it entirely?

    Condition: return_flags == 1

    File: c:\c2\source\exporters\html5\..\..\common\ERAHelpers.h

    Line: 285

    Function: void __cdecl era::ACETable::AddExpression(int,int,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,void (__cdecl *)(const class era::StaticResult **,int,class era::StaticEvaluation *))

    Build: release 268 (64-bit) checked

    Component: HTML5 exporter

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort Retry Ignore

    ---------------------------

    and

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    ACE table: Expression ID duplicated in ACE table

    Condition: exp_ids.find(id) == exp_ids.end()

    File: c:\c2\source\exporters\html5\..\..\common\ERAHelpers.h

    Line: 269

    Function: void __cdecl era::ACETable::AddExpression(int,int,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,void (__cdecl *)(const class era::StaticResult **,int,class era::StaticEvaluation *))

    Build: release 268 (64-bit) checked

    Component: HTML5 exporter

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort Retry Ignore

    ---------------------------

    Reverted to 267 and it works

  • Thank you! This is what I'm looking for, I will test it soon :)

  • Hello, we made a Construct 3 game for the global game jam but the airconsole plugin didn't work for the Construct3 runtime, can you please update?