Mikal's Recent Forum Activity

  • I think WackyToaster has a great suggestion to make something like an idle-mmorpg as a starting point. Keep the scope small, so you can complete it. Something that does infrequent updates, does not require detailed game state to be synced, etc.

    _After_ that, think about something more complicated, again I would keep the scope small.

    We have implemented a MMORPG using C3 for client, with Spine for animation and skinning of the character and a lot of Javascript/Typescript on the client side to sync state with server.

    The server is node.js. Does game logic, interface with db, auth, etc.

    We use Colyseus for the networking/rooms (server and client).

    This all took a _lot_ of work and iterations by our team. It is complicated.

    Colyseus info: (we don't use the C3 addon ourselves, we use the TS/JS client library instead.)

    docs.colyseus.io/getting-started/construct3-sdk

  • Hmm, after more experimentation, I can't replicate the editor mode version, that I thought I had seen before. Also experimenting with 3D Shape, it seems similar to apply the blend mode during the original 3D render. Hmmmm.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I see there is a WorldInfo method SetBlendMode, however when I use it, it behaves different vs the BlendMode effect property for the object.

    The effect property blendmode applies to the 2D image of the 3D object (e.g. when using the intermediate buffer as a texture to render to the final buffer).

    So far, when I use the WI SetBlendMode, it seems to apply _during_ the 3D render to the intermediate buffer instead. I have tried putting it before my draw commands, after my draw commands and during the action code itself, but the behavior is the same.

    I imagine I am missing something, so looking for help/suggestions.

  • You are rocking it! Love all the contributions.

  • Could move over to capacitor instead of cordova, also accepts cordova plugins.

  • Is there a way to limit what plug-ins a behavior can be added to? For example working on a 3D Physics behavior, right now I only support 3D Shapes (not Sprite, Tilemap, etc.)

  • Thanks for this.

    I hope it is useful to others too :)

    I imagine other addon devs just were not aware it was possible (e.g. didn't read the docs about it.)

    DiegoM - I replied in the github issue about sending the updated addon, which I would appreciate seeing, but no worries if it is a pain to do.

  • Ok, sounds good Ashley, I will take a look.

    A general comment on the ACE mechanisms and response handshake behavior, I'm going to look at creating a more generic response for success/error, do it does not need to be done for every action (adding a success/error condition for each action gets tedious from my greengrinds experience of extending greenworks), so I am thinking of having one success/error condition per addon with perhaps a drop down for which ACE it is and an optional parameter (so an "On <action-combo-drop-down> <parameter> success" condition).

  • Just getting a feel for the new Webview2 and C3 C++ 'SDK' from the steam addon github repo, I added a new set of ACEs for getting a user stat (action, trigger, expression), the JS is relatively straightforward, passing messages to the plugin extension.dll which in turns call steam dll, then on result / callback send message back.

    The JS functions handle async requests. This was just extending and building the plug-in and c++ extension with some new source. The only build gotcha I had was to make sure all the dll and header files for the Steam SDK are from the same source (I replaced the ones that were checked in to make sure they were all consistent with SDK 1.57 which I downloaded.) In terms of passing messages and values back and forth, do need to be aware of potential type mismatches between JS support and C++ support (see the 64-bit userId).

    I was doing basically copy and paste to add in the messaging and C++ steam calls in the extstension and recompile to add in the functionality.

    This was just a test of changing the existing example, will not release it. I am hoping that Ashley creates a companion plug-in template that is clean, so can start adding some classes of companion addon steam functions. If not will take a look at making a companion template using the webview32 steam addon as a start. Very thankful that Ashley released the source for this.

    I am not sure about the future of webview2, but this implementation for Steam with webview2 looks like a promising start. The overlay didn't really work that well in terms of appearance for me (compared to nw.js / electron, I know Ashley has been investigating that).

    Ashley - do you expect to create a template for a companion app, or should we roll our own (I am not in a rush.)

    Finally another big thanks to Ashley for making this available for us to work with and build from.

  • Thanks for the reply Ashley, I generally agree, though if you do fallback to nw.js and native node instead of webview2, I think electron is worth a look as an nw.js replacement (for its better native node support and steamworks.js support).

  • Ashley,

    I applaud your work on webview2, definitely an interesting export possibility (especially as your epic and steam work come to fruition and hopefully macos support soon becomes available.)

    I did see a reference on the Discord community that you are still also working some on nw.js, looking at NAPI issues with nw.js. I have run into similar issues with nw.js, difficult to get native binaries working with nw.js. I am referring to this discussion: groups.google.com/g/nwjs-general/c/5KAAGsjEALg

    On the other hand electron has been more stable for activities like this (using NAPI and native binaries with node across versions) and I have seen folks use electron for publishing html5 games, including on Steam. For example, in this case they use steamworks.js (rust based library which creates node binaries and js to allow html5 games to work with steam.) It also uses NAPI, so fewer version issues over time.

    github.com/ceifa/steamworks.js (which in turns use napi-rs to have a napi interface to node)

    So, just a suggestion, but it might be interesting to look at electron instead of nw.js for export (in the past a community member was creating a build system for electron and C3, that some games used to release to Steam (in those days they were using Greenworks as an interface to Steam)

    I imagine an electron addon may also be needed, but at least a lot of the nw.js addon functions are now possible using normal web sdk (e.g. file access).

    Another somewhat interesting package for both nw.js and electron is koffi.dev/, I have had some success using this to use js to interface directly with the steamworks dlls and do Steamworks init and get user info, though it seems like they are some issues with calling certain dll functions, probably because I am still figuring out the details.

    Note: Electron on MacOS still does not support Steam Overlay (same as MacOS nw.js).

Mikal's avatar

Mikal

Early Adopter

Member since 22 Apr, 2016

Twitter
Mikal has 103 followers

Trophy Case

  • 8-Year Club
  • Entrepreneur Sold something in the asset store
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Popular Game One of your games has over 1,000 players
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x10
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

19/44
How to earn trophies