lennaert's Forum Posts

  • Thank you for the response! I've been trying to understand the basics of construct, and I've read quite a bit of the manual, is there any tutorials or tips you have/recommend? I'm up for anything.

    When I started out with construct, for most of the mechanics I fancied using, I made small projects to test and play with it, tweaked it and make it easily to port (copy) to another project. These files contain little examples I often reference for copying purposes, or to try new angles/approaches with a given mechanic, so it perhaps better suits my needs for another project.

    From what I gather from your project and questions is, you lack some insight to local variables, global variables, object variables. This combined for when its used and the data is available. I took a gander in the newer tutorials and found 1 that covers some of your issues.

    construct.net/en/tutorials/using-instance-variables-2326

    Its for dialogues, and it uses instance variables (variables on objects at runtime)

    Its not an all solution for your current issues, but it is some training that covers some grounds of your current problems.

    Good luck

  • I tried following some of the problems you ran into, saw some issues the others pointed out too. A major problem with the requests you perform is the sheer size of the project. I opened it, and saw like 20 tabs open .... yikes.

    Suggestion: trimming down an example, to pin point out a problem, often helps a lot to understand whats going on yourself. And from those willing to help, you will get a lot more feedback if the request and information is manageable, in bite size chunks.

    There are some basic fundamental flaws in how you looks at some values and variables.

    For one, I noticed that you used a defined local variable in a function, in the condition, before any information is set to it. Like this a couple other small mistakes. Understanding what your doing in a large scale project will save you heaps and heaps of frustration.

    Taking on a big project is admirable, but is bound to fail if you do not understand the basics of the tools your working with.

  • Ah Bro I cant Understand

    Yes its multiplayer, i need to purchase singling server for that project ?

    Most likely, if you want to use it in production (game on playstore for example)

    Multiplayer is a hard concept in construct, perhaps follow some of the tutorials first if you havent yet.

  • That depends on who determines what message needs to be send out.

    Situation Host sends out a message for all:

    Host: broadcast message "TheMessage" -> "This is the message." From HostID

    Peers: On message received "TheMessage", set Text to Muliplayerobject.Lastmessage

    Situation Peer wants a message send to all:

    Peer: send message to Host, "NewMessageForAll" from Mulitplayer.MyID

    Host: On message received "NewMEssageForAll" -> set Text to Muliplayerobject.Lastmessage and Broadcast message Muliplayerobject.Lastmessage from Multiplayerobject.PeerID (sending peerID here from the message the host gotten from previous peers ID, prevents this message being sent back to the peer where it originated from)

    Peers: On message received "TheMessage", set Text to Muliplayerobject.Lastmessage

  • > If you added an "original" somewhere, and decided to add it to a family at a later stage. Then which one becomes the original one for the settings for the things added to the family. Monkey wrench I tell ya.

    Yeah.. And when you add a new object to the family, it inherits the properties from one of the instances of one of the existing members, but you can never guess which one. It's a mess.

    So, Templates for families would be nice, not sure if its feasible though.

    Given all the different properties varying objects can have once stuffed into a family.

    One solutions would be to a "default value" for each and every property of an object/family. So you can do away with all the "original object" references, and simply set the values from within the project tree.

    So many extra input fields .... betting ashley will be really waiting for that '^_^

  • I simplified things in my explanation. The sprite was actually a family of about 50 sprites. And there were many hundreds of instances of them on layouts, all manually placed in the editor and configured. The game was "find an object and solve puzzles" type, so everything was heavily scripted. Objects behaved differently based on the values in their instance variables.

    Now that's a variable that might be the one throwing things off, Families.

    If you added an "original" somewhere, and decided to add it to a family at a later stage. Then which one becomes the original one for the settings for the things added to the family. Monkey wrench I tell ya.

  • Made 2 debug apks with the different mechanics.

    old paster, runs smooth while testing in construct, running smooth as debug apk, touch response feels instant. 60 fps everywhere (slight dips meh)

    draw canvas, runs at near twice the cpu load compared to paster in the editor, 45 / 60 fps while testing in construct.

    Odly enough, as debug apk it runs smooth too, 55/60 fps. Sadly the tiny response in delay is noticeable compared to the pasted one. Not sure if it would really hinder gameplay, lets just say I'm spoiled.

    Other:

    paster, several of the effects, warp ripple and some others, work, no issues. Some other don't.

    Also, paster does not need sorting of objects when pasting multi layers of objects. All in 1 family, 1 paste objects action and it works.

    draw canvas, none of the effects I used that worked in paster, works in draw canvas, perhaps I'm doing something wrong, but things just weren't working with effects.

    Pasting objects, from multiple layers, in 1 go, mixes up the sorting of which object is on top, had to run a loop from the bottom layer up to get the sorting right, atm it requires 8 past actions to get a single image with the images correctly stacked.

    Pff, I think I am gonna switch to the draw canvas, especially with an eye on longevity. Not to mention all the extra and new features and less bugs ^_^

  • > Isnt that what the new template function is for ?

    It is, but this feature is more like a workaround than a solution. It's not feasible to set up templates for all objects in the project and it may still be necessary to find the default object instance.

    Besides, templates are only for runtime. The default instance is used as a reference when you create an instance both in runtime and in the editor.

    Wouldn't the idea of a objects layout handle that ?

    Create the first object and instance on that/a dedicated layout.

    Later in the editor, if you drag an existing object from the project tree on to the layout, it takes the settings from the object on the objects layout, the first one created.

  • Isnt that what the new template function is for ?

  • Thanks Rojo

    I used your example and made it work, ... in a way.

    I'll try and switch it out for the project and give it a go.

  • Does the official "Drawing Canvas" plugin do all the things you need?

    I remember worrying about the lack of Paster and Canvas when moving from C2 to C3.

    But drawing canvas works well for me, I use many of then in my project for pretty visual FX.

    I just use 1 function mainly, paste objects (an entire family at that). Well, that and set resolution and opacity, the the former version did lack a bunch of other common construct interfaces, but never really needed them.

    I remember paster abusing some functionality, which gave the mechanism I use great performance. (jump to a location on the layout where player is, paste family of objects (twice on different paster objects, for 2 players) set sizes and resolutions, and set position back to the Viewport for both objects, resulting in 2 screens from the same layout, all in 1 tick, resulting in 60 fps game play :)

    I also remember the newer version from construct not having this performance.

    So, if the above sounds doable with the drawing canvas, I am willing to give it a try, but I fear this is still not the case.

  • R0J0hound

    It’s not something I’m willing to do though. There are too many more fun ways to spend my time.

    Times past, perhaps new options hehe

    R0j0, are you able to create a new paster plugin for CS3 ? mainly, one that has the same functionality to do the pasting of objects, and repositioning the paster object in the same tick, with the cs3 runtime. (and if it could handle effects, that would be most def more awesome.

    Perhaps CS3 allready has something similar I don't know, I haven't looked thoroughly yet. Black Hornet's version is working, just not beyond release 251.2 with the cs2 engine.

    I am busy once again with the dual screen things, but I am working in CS3 251.2 with the CS2 engine. Would love to work in the modern engine, if at all possible.

    Wouldn't mind paying you 150 for it.

    Reason, running in to all sorts of little nuisances with the 251 version :( and the later version have new stuff I want try in combination with your plugin.

    Anyways, hope its possible ...

    Here's are some screenshots ...

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You do not have permission to view this post

  • Are the UIDs ? the same ? I think not, you will require an ID thats the same on both ends.

    Several approaches:

    1. easy

    loop through your trees in a specific order, on both host and peer, during the loop, have the trees set an a variable, TreeID (number)

    This requires the loop method to be identical to get the same numbering on both ends.

    2. hard.

    -Destroy all trees on peer.

    -host loops through Trees, adding an ID, or reusing the UID to set a new ID

    Each tree gets broadcasted, wit X, Y, size, angle in 1 message per tree during game start; just once.

    -peers received the info during game start up and generate all the trees broadcasted by the host.

    After one of these, you can apply the mechanic from the previous post.