Ribis's Forum Posts

  • Sparsha Does it works when exporting on Android or iOS?

    Thanks

  • Yes it should put a sprite on each collision polygon point, but the mesh is doing weird things to it.

    If it is supposed to be like it is, then you would have to disregard my previous post suggestion.

    Well, in my game I generate all the design depending on the specific sprite. If I can achieve the same method with the mesh distortion, where the sprite distorted spawn on the edge the tiled background with the right amount of polygon following the sprite distortion it could work.

    However, the result will be always slight different from the unity tool. This sprite shape should allow us to design a level as the artist whish without using thousands of objects on the screen editor.

    an amazing example of a smart way to design level can be seen in the Rayman game:

    Subscribe to Construct videos now

    As someone suggested already, is already possible to do it by using the editor, but is not realistic. When I started developing the game, I spent a long time to understand how I could achieve a nice level design without making the level design crazy and destroy the mobile performance. I tried the manual way where you place all the design in the editor. After a while the level gets too big, and if you need to change the level it is just too hard. After I while, I decide to develop my own "engine" that would allow me to develop the design similar to the video above, with the difference that it still have a lot of limitations.

    Also, if this tool is built into Construct, I bet the performance would be much better compared to thousands of object needed. If you think about, it is quite simple what the unity tool does. It allows a solid to spawn tiled background edges (including the corners/distance between the collision solid) selecting specific design for each side. Then, the designer just build up the platforms making shapes that would require hundreds of single objects to do.

  • Sounds like you're describing mesh distorting applied to a 9-patch style object to me? Or basically a flexible 9 patch that can be created with a dynamic number of edges to make any polyhedron, or even just a circle with repeating center/edge textures that can be mesh distorted... That would be pretty nifty.

    Otherwise, you can already distort a sprite or tiled background directly, or use a mesh distorted sprite with a blending mode applied on top of a tiled background to paint "textures" over dynamic shapes.

    Using the sprite or tiled background wouldn't solve the actual problem. You would still need to use hundreds of objects to design a level. You would need to use a sprite as a collision, then on top of it the tiled backgrounds.

    but yes, it should work similar to the 9-path, with the difference that can be solid. The idea is to use one single object.

    newt

    I tried the example but I didn't quite understand. Are you trying to spawn a sprite for each edge point?

  • I'm not familiar with the Unity tool, but you can repeat mesh distorted images with Tiled Background.

    Hi Ashley, this is how works the Unity tool in the editor:

    The problem using the mesh distortion directly in the editor is that is extremely hard to manage thousands of object only for making a simple 2d level.

    For my game, I applied the concept of the unity tool before the mesh editor was released:

    You see, when I make a level using this method it allows me to manage few objects to actual build the level design. The design flow is pretty fast and it allows me to build nice looking levels pretty quickly without copy and paste hundreds of objects. The only problem is that I need to use multiple sprite to design curvy shapes, and I cannot see the result in real time since the level is generated in-game.

    That's where the mesh distortion can take place.

    If is possible to build a simpler version of the unity tool, it would allow us to build up platform directly in the editor without the use of hundreds of objects.

    The property of the object would be kind simple:

    Repeated background in the image itself. The only addition would be add the border (and angles) from a custom image that we can choose, and repeat it. With the mesh editor, the border could follow the shape of the original object.

    If Construct3 can support this, it would be a game changer for anyone who is making a platform 2d.

    Thanks

  • Hi Ashley, is there any plan to develop this feature similar to the one in Unity called "Sprite Shape"? The Mesh feature is out, what it would need is "only" repeated background images on the edges.

    I bet most of the users will use this feature since construct 3 is mainly for 2d games. Thanks

  • If you use them as separate text, using the same sprite font yes, you can. If I remember there is the color setting in the spritefont itself. Make sure to use a scale of white/grays to do the various color shades.

    Also, you could apply the tint effect.

  • Hello there,

    I'm experimenting the z sort in order to make a quick isometric demo. I basically want to sort the order of each object inside a family depending on the Y.

    I have done a part of it, however, I have some problem with the logic of the events. Basically, each player has 3 sprites (player skin, weapon, cape) where weapon is on top of the player, and the cape is behind. What I want is that if the player is above another element of the family, then all the elements of the player should be on top of the other player/object, otherwise should be the opposite. This can be tricky since the cape and the weapon should sort accordingly to the parent player.

    I can sort the players, but the items do not sort well. Also, the sorting of the family doesn't work properly.

    Does anyone have any experience with isometric games? Here the file I'm trying to make it work.

    http://www.feribi.com/sort_problem.c3p

    Thanks!

  • You do not have permission to view this post

  • El Constructorr Thank you very much for your example!

    I don't quite understand the concept of the rooms (I'm seeing on the event "Join Room").

    Who keep tracks of the rooms available? Like in among us, you can make a room and then the other player can join the room. I already worked with database, and I could make a lobby using php and mysql. But does Photon has its own database/system?

    About the logic of the game, basically, when you make a multiplayer game you must send the data to tell other players where the other player x,y is. I was thinking that the plugin would handle it automatically, but I guess I was wrong.

    For instance, if you move the player using a,w,s,d, for each button you would send an input to everyone saying "playerX send A to everyone", and the other client would move the playerX to the left because if there is an event saying "on event 12" if player ID = Photon.EventData,0 then simulate platform control A.

    However, the platform behavior and the movement can change depending on the framerate of the client right? That's why sending the x,y would be better, however, sending the x,y would take much more bits to send.

    May I contact you on Discord? In this forum is not possible to send PMs for some reasons.

    Thanks again!

  • among us is not peer to peer

    you can reconnect if the host leaves in the multiplayer plugin, just make sure to store the game state on each peer, when a host disconnects, connect to a room of the same name, everyone else in the game does the same, one of the players will become host, players never lost connection to the signalling server so they preserved their multiplayer ID, assign the objects to the respective players by playerID by having the player ID stored in them. If you keep player inputs the same and keep the game loop running for everyone while this is happening they might not realise it even happened.

    bottom line is photon is easier to use but has less features, worse ping, is limited to blocking websockets traffic, 16 players per room limit, and is way more expensive at 0.05$ per both Egress and Ingress GB

    for comparaison, "high tier" infrastructure like google cloud or aws go for around 0.12$ to 0.15$ for the first few Egress TB per month (ingress is free), while more budget friendly providers like vultr or digitalocean charge 0.01$ per Egress GB (ingress is free) and keep in mind that you won't be charged for most of the bandwidth since it's peer to peer.

    nodejs exports for running multiplayer game instances headless were promised with the release of construct 3 a while ago, but might not come to fruition for a long time since scirra says that there is very low adoption of the multiplayer plugin so uh here'S a project to get you started i guess drive.google.com/file/d/1FmEtzZJt_18EVaAoL5sBFS6h69xCr1OD/view

    I have heard that among us is peer to peer. They have been having huge issue with cheater, and is well known that in peer to peer is easier to cheat since the host can change the stuff.

    Constructorr Do you have any suggestion on how to approach the multiplayer logic? How would you explain how to develop the events logic to someone who is already really familiar with Construct? I'm about to start working on a small project that would allow a player to move in a scenario and solve some puzzles. But I would need to implement the multiplayer at some point. Is it possible to start the project and then implement the multiplayer? or do you suggest to implement the multiplayer at the beggining?

    Thanks

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • sure i made this a while ago eleanorjmorel.itch.io/truthordare

    you can basically do this

    https://www.construct.net/en/make-games/manuals/construct-3/plugin-reference/multiplayer

    So basically is possible to make all the features that Amongus have using only the multiplayer plugin.

    Do you suggest any particular tutorial to develop a lobby list, a chat, and basic configuration to make sure that the multiplayer run smoothly? For example move some players around a room where they can interact with objects? like if someone turn on the a switch light, then all player would see the light turning on...etc

    I have a good amount of experience in Construct, and I developed complicate game. However, since I study networking I understand that the approach would be completely different.

    One thing that I don't clearly understand about the multiplayer factor is that, when I make a game in construct3, you make specific action that will change the state of a particular instance. I guess with the multiplayer, any changes must be sent to the peers. However, I know also that there is a latency problem. Does the plugin handles all of this? or do we have to specify any changes within the game by sending a message?

    I would like to develop a quick demo, however before starting I known that the logic behind it would be different than making a single player game.

    Thank you!

  • 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.

    I never did any test with the multiplayer. Is that true that there is no way to transfer the host to another peer using the multiplayer plugin if the host disconnect?

    AmongUs is a peer to peer multiplayer based game I believe, but I'm not sure. they use the hazel-networking. If the host leave quit, the game keep going anyway. The nice thing of having the peer to peer is that you don't have to worry about having a server and dealing with any provider (even if you would need to deal with cheater).

    Peer to peer means players can get low latencies if they play with people near them. Photon forces everyone to connect to a single physical location, and adds latency by forcing the bathwidth to pass through that server without adding any functionality. if the host leaves in photon, you still need to create a new "host" that will control the game state just like you do in construct's multiplayer.

    You can use a cheap 5$ per month VPS to act as a STUN + TURN server to get pretty much 100% connectivity and still benefit from not having to pay for most of the bandwidth whereas with photon you have to pay for all of the bandwidth and it'S expensive. Photon charges 0.05$ per GB while a cheap VPS provider like digitalocean charges 0.01$ per GB

    photon also uses the worst networking scheme possible, every single time you send data to photon, it sends it to everyone else connected to the game, so 10 people means 10 people sends data to 9 other people on every update, whereas with the multiplayer plugin, everyone sends data to the host, and the host sends data to each player, greatly reducing bandwidth required

    you can totally do this and if you need help you can get in contact with me, its not as hard as people make it out to be, you can greatly simplify multiplayer games using the sendmessage multiplayer action, and you can pack that data using the binarydata plugin

    eleanorjmorel

    Do you know any example that show how to do a lobby where a player can choose a room to join and then play? similar to AmongUs?

  • Hey friend! Thank you so much for your anser!! I apologize for answering so late. Could you explain me how I get it with global variable step by step, please? I have not made it yet. Thank you!!

    if you need to restart the level and respawn all the objects in their initial state, you have two options:

    Make a variable that keep track of the checkpoint status. For example, the ID of the checkpoint sprite. If the player touch the checkpoint, set the ID to the variable. When the player dies, make an event that on restart level, the player will be set at the ID checkpoint X,Y.

    Another way to do it, is to use the save/load as you already doing, adding the behavior "No Save" to the objects you don't want to safe. This one should work, even if I never tried it.

  • I appreciate your time Ashley, but honestly that was not helpful, nor did it answer my question.

    > For example playing Pokemon Go made my Android phone get pretty warm (and that of course was not made in Construct)

    I was never blaming Construct 3 for the device heat up, and yes I do expect some games could warm up a device. But in my case, it's literally extreme heat up within 1 minute of play. I already acknowledged the inefficiencies in my methods that's probably causing the massive heat up. Shouldn't I work towards making it better? maybe end up to heat up half as much?

    If yes, then I would appreciate a more specific response, especially from you, from the list of possibilities above (and profiler/inspector charts) on which of these could be more related to heating up, than the other.

    Unless, it is "None" of them could be related to heating up, and optimizing any of those would not help. But you didn't also mention that statement, so I am still confused if there is or not anything I should do.

    Thanks!

    Make an empty project and check if the phone warms up or it get too hot. I had the same problem years ago making a mobile game with Construct2, but now it seems that the problem is solved.

    If the phone get the same result with the empty project, it might be a "problem" with the devices that you have used for testing.

    Also, why do you use full 1080p background in a mobile phone? I'm just curious.

  • I think it's more likely that what you propose will make things worse, not better. Either the developers or the players will be likely to mis-configure the option, and then the situation is worse than it was to begin with.

    We can already publish the game with unlimited frame rate mode. I read on the forum that even someone is using it to make sure that the app run smoother in all devices.

    The phone isn't going to explode. So I don't see all these problems. When you encounter a player with diver issues there is already a bad situation. You said that the Construct3 team can't do anything about it, but you could actually do something.

    As I said, I did a test. the game was running at 25/35fps in a device (totally unplayable). I tried to use the unlimited frame rate and the game was run much smoother (50/60). Still, I have to blacklist that device because I don't want to publish my app as unlimited frame rate since my game it runs smooth in most devices.

    So, if it is an easy implementation to do it you will make just the developers happy. I also think that it would be helpful if we want to debug stuff in real time.