Cascade Games's Recent Forum Activity

  • El Constructorr: I don't know how to mention your special username.

    Completely agree with everything you have been able to explain from the start.

    Just:

    > The next one is $95 for 3 months

    Nowadays the very first paid plans are one-time for "60 months" (5 years):

    - $95 one-time for Photon Realtime (100 CCU, 500 msgs per second per room).

    - $45 one-time for Photon Chat (100 CCU, 100 msgs per second per channel).

    Beware, one-time is not lifetime.

    The free versions offer the same amount of msg/s, which is more than sufficient in terms of bandwidth (see details) with well thought out, coded and called multiplayer patterns. And yes, no need to send player updates to everyone, every time (target in raise events). Finally, no need to tear your brain out with the native Construct plugin or the management of a server, which, it must be admitted, represents a significant amount of additional work, human and technical cost.

    - Realtime pricing: photonengine.com/en-US/Realtime/pricing

    - Chat pricing: photonengine.com/en-US/Chat/pricing

    That said and of course there are pros and cons everywhere (cloud / self-hosted / provider, etc), it is a view of mind and decision-making strategy, not to mention the wallet aspect.

    To develop and learn all the concepts, the free plans are already very good and an interesting compromise to test a project.

    Some good practices (valid for all multiplayer games):

    - Performance tips: doc.photonengine.com/en-US/realtime/current/reference/performance-tips

    - MMO concept: doc.photonengine.com/en-us/server/current/applications/mmo/mmo-concept

    More informations:

    - A Photon blog post about pricing model: blog.photonengine.com/photon-pricing-explained

    - Realtime Glossary: doc.photonengine.com/en-US/realtime/current/reference/glossary

    - Realtime FAQ: doc.photonengine.com/en-us/realtime/current/troubleshooting/faq

    There is a lot of other resources on their website, faqs, documentation, forum...

    And ThePhotons is often around here. Good luck! :-)

    Final question,how did you implemented photon in your construct 3 game? I mean is there a plugin dedicated for that or JavaScript or what?

  • Jase00 Yes. Massive difference. My advice: Switch to Photon, Scirra's Multiplayer will drive you crazy sooner or later.

    Main differences:

    1. Scirra's Multiplayer is simply a Peer-to-Peer connection, where one of the peers is hosting the server. If that "host" leaves, the game basically ends! No more communication possible between peers, whereas, Photon has a Master server which is hosting the room on Cloud (not at any players' end), so if any player leaves, or even all of them leave, they can join back and continue. Game continues.
    2. Second main difference: Scirra's Multiplayer has Firewall/NAT connectivity issues. So basically, you'll be reaching out to 50% to 60% of the audience, rest won't be able to connect. (I made a really cool game, and found out, I could not connect myself when I changed my network provider). And many other players complained they cannot connect. Photon connects literally 100% of the time! Very stable and reliable.
    3. Third main difference: Photon is far easier to use, set-up, and understand (even as a complete beginner) than C3 Multiplayer. No need to "Sync" objects beforehand. Just "Connect to server" and "Connect to a Room", then start communicating/send messages/data. etc.

    The only con of Photon, the Free version allows maximum 20 simultaneous connections (players) to be connected at a time. For more CCUs, there are paid packages.

    But ! I'll tell you what, if you're getting 20 players at a time regularly in your game (that has Ads/inApps), that means you're definitely earning enough to cover for the paid package that allows 100+ simultaneous players. So that's also not really a drawback.

    AnConstructerBro Among Us style game can easily be made through Photon, but as Sebastien said, I agree, first learn C3 (non-Multiplayer games) thoroughly before jumping into making a Multiplayer game.

    Casually asking what is the cost of photon ? I guess it will later become expensive when userbase becomes huge

  • So, I have a game that the "save game system" is saving .save files to %AppData% but I noticed it's extremely easy to manipulate these values, since the player can just edit the .save file and change the number inside, for example number of coins, how can I make it impossible for the players to edit the save files so easily?

    Generally speaking, DON'T USE plugin for such tasks. Build your own simple algorithm:- just make the save data so complicated that it is practically impossible for user to become oversmart

    Issue with plugin is that you can't be sure how it works. Even worse,you can't be sure that whether it will be maintained in the future.

    Just spend some time on a basic algorithm. Remember the task:- make the data unreadable to the user.

  • > I am creating a web application using construct 3. And I want to support both desktop and mobile. How can I do that?

    > (I mean mobile is portrait and desktop is landscape).

    > I guess that I will have to create different versions for different platform. Then in the beginning I will have to compare platform's resolution and on basis of that I will redirect them to correct version which will be best for their platform

    Probably the best way is having 2 versions for each case, and using PHP you can detect if is mobile and redirect it to the mobile version

    > $useragent=$_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
    header('Location: http://url/mobile');
    

    Thank you

  • How to add Google ads for web games made in construct 3? Because construct 3 is a html type engine so I guess that it should have been inbuilt in it like admin for mobile games

  • I am creating a web application using construct 3. And I want to support both desktop and mobile. How can I do that?

    (I mean mobile is portrait and desktop is landscape).

    I guess that I will have to create different versions for different platform. Then in the beginning I will have to compare platform's resolution and on basis of that I will redirect them to correct version which will be best for their platform

  • What I am currently doing:-

    There is a textbox where I paste text data in it

    What I want to do:-

    There will be a 'select' button. On clicking it,file explorer will open. I will select txt file which have data in it. And then construct will automatically extract text from it

    Any idea how to implement it?

    I don't think that 'select' button should be an issue. I have uploaded many files from my mobile also. I guess that main issue will be in copying data from text file

  • You do not have permission to view this post

  • Super brilliant

  • In latest version,the audio is not working in chrome android (r228)

    Otherwise it was working in r226 and earlier version

    Audio format is webm. Same thing just the version (construct 3) is different.

    I used advanced minification for the export. And volume was -13 dB for the audio. And obviously I am talking about html export

    Edit: Also I have been noticing that when I move to new layout and if I start playing music, either it freezes/music does not play/freezes for 20 seconds and music does not plays

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads

    I was yesterday playing with it and it is cool but i believe that it can be improved in one way(given below)

    When I drag a GIFs in layout,a sprite is made. But when 2 or more GIFs are dragged, construct 3 just "combines" them in same animation frame.

    It would had been better if construct 3 automatically creates different animation frame for different GIFs,or different sprites for different GIFs . Otherwise the user will have to drag GIFs one by one in current scenario

  • You can do this in a script:

    runtime.objects["ObjName"].getFirstInstance().width

    In events the only way to do this is to add all objects into a family and pick family instance by ObjectTypeName:

    System Pick Family by evaluate Family.ObjectTypeName="ObjName"

    After that you can use Family.width

    Thanks for the help

Cascade Games's avatar

Cascade Games

Member since 31 Jul, 2019

Twitter
Cascade Games has 2 followers

Trophy Case

  • 5-Year Club
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

10/44
How to earn trophies