Ruskul's Forum Posts

  • Do you like math :D ? You can calculate the position using the angle of the camera...

    or there is already some inbuilt expressions for this:

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

    CanvasToLayerX(layer, x, y, layerZ)

    CanvasToLayerY(layer, x, y, layerZ)

    Transform a position in canvas co-ordinates to layer co-ordinates on a Z plane given by layerZ. This is similar to the system expressions of the same name, but working in 3D.

    LayerToCanvasX(layer, x, y, z)

    LayerToCanvasY(layer, x, y, z)

    Transform a position in 3D layer co-ordinates to 2D canvas co-ordinates. This is similar to the system expressions of the same name, but working in 3D.

  • You could export a tiled map and then export to construct.

    This looks super interesting! Json output and javascript API means one way or another you can def get this in construct 3. I'm going to have to dig in.

  • -1 means that the tile is "empty" or "erased"

  • It would be good to be able to edit a pathfinding cell directly. You can ask conditionally about whether or not a cell is an obstacle, but you can't query the movement cost or edit it directly.

    Both of these things are important. as it stands, if you want to update the collision cells, you have to calculate them. This is overkill when you already know what cells you want changed. Likewise with editing movement path costs... you have to sometimes clear the whole map just to make a few changes and you also can't decrease a cells cost.

    Tagged:

  • Hi

    Super basic question... Where can I find the official plugins and behaviors in C3. I've been blundering around for like 20 minutes and can't find them. I thought you could download them online at the asset store but I don't see them there either.

    *Edit* Okay, I found them on Construct3 -> Addons & Extensions , but the download link on official files is broken or something and downloads an htm file which is basically a copy of the page you are on. Am I missing something here?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Can you clarify: are you looking for a pixel artist to create the needed tiles, or are the tiles complete and you just need an artist to decorate the level with existing assets?

  • Not sure why your message needs approved, but in response:

    Whoever said you can't run 800 sprites needs to qualify that statement. Construct can do Alot more than 800. I have a project with a customized version of box2d where I run 1000 physics objects in C2. C3 is even faster by miles. I imagine, with some smart optimization after you find bottlenecks, you could run 800 units around no problem. You can easily create 1000 objects with behaviors such as Car and not have a problem (i5 8th gen)

    In my experience, construct is amazing and fast at small projects and prototyping. It is no slouch at rendering either. It begins to fail when you need to scale and that is more of a human problem than a construct problem. Part of this is that it is more difficult to do good "SOLID" event scripting and write reusable code across multiple projects in Construct. Behaviors and plugins become a good way to help solve this problem, BUT, if you are developing plugins and behaviors you can easily find that your time goes much further programing scripts in Unity or Unreal. A lot of useful OOP practices simply can't be done or taken advantage of in construct. Almost every major product I start in construct gets moved to Unity as soon as I have an idea for how the game feels and the relationships between objects. I once converted almost all behavior from events to scripts for optimization reasons, and used events for game manager stuff, but it would have been faster in unity.

    When I start a new project and want to "SEE" things fast, I work in construct. When I want to structure logic and work on abstract stuff, and scalability.... I tend to fire up unity first. I have this weird draw towards Construct though. It makes me feel good working in it, even if I know I will switch later. If you know you are switching to something else after prototyping, then you don't need to worry about optimization at all right now.

  • You might try also replacing the distance calculation (if you still do those anywhere) to just a sum square (a^2 + b^2). This wont give you the actual distance, but you can compare these sums to get a cheaper idea of which objects are closer (smaller equals closer). Then, after you actually have the object you need, if you still need the actual distance, you can calculate it.

    In regards to game logic, I thought of something, the target scan frequency can introduce RNG in unit target acquisition. be sure to scan further than the range of the weapons in order to ensure once a target is near, it will be fired on as soon as it is actually in range. Does this make sense? Or you can leave it if preferred.

  • The absolute Sprite box size only sort of matters. The sprite you use doesn't need to be rendered at all so that really doesn't matter. The thing that matters the most is going to be unit count and if you already are having trouble. As a matter of fact, I usually always use a number of collision sprites for overlap tests and never render them at all, but it can bog down with many units. If you are testing overlaps, construct has a decent algorithm for narrowing down the number of items it has to test. Obviously, the more items in collision, are then more items to test range against. But in no way is construct events going to be able to outperform behaviors. Likewise those will never beat unity or unreal.

    This is a tough problem, and kudos for trying to build an RTS in c3. Unfortunately, if you are trying to build a massive RTS (on the scope of say COH, SC2, Supreme Commander), you probably can't. Not unless you are willing to compromise massively, build your own pluggins and behaviors, etc...

    I advise you run alot of tests. Figure out what you NEED, and then determine how many units you WANT. Create some tests.

    If you want 100 units per team and envision 4 teams possible to be built, then a simple 400 unit test map can be helpful.

  • It could be the screen size has changed and the text is wrapping around around. I'm thinking of HTML / CSS wraparound problems in the context of web dev, so this might not be accurate, but something to consider.

    Do you have a picture you could share?

  • I understand you have a gameboard and need the actors to stay on their paths?

    If this is the case, I would use a graph structure where the guards move along edges between nodes in the graph. You could roll your own plugin to store a graph tree, use the editor, or build up waypoints using plopped gameobjects and use the "moveto" behavior.

    If you have other behaviors or custom movement already controlling the guards, then simply use some game objects for the catwalk itself or the boundaries. You can text for collisions (overlaps) and then provide logice for the guards to go a different direction.

  • Do you already have in mind how the backend communicates with C3 (custom plugins or the like?)

  • I'm not sure you can do that, if I understand correctly. You can of course, use data you create anything from a csv, to json, etc... and save to locations etc...

    Are you trying to create a data and then save those datas into the game so when it is exported its all together?

  • Hey, I'm curious why you want all families getting other nearby families every 10th of a second? Are you trying to keep a potential target list?

    The only reason I wonder is because in order to provide an alternate method, I need to know the goal of the current code.

    If you simply need every entity knowing about all other entities in proximity every 10th of a second... you probably are going to have to live with that. Either it won't be a problem and you are pre optimizing, or it already is. This could be an instance where you either have to compromise, find another solution (need to know goals to help here), or consider a more powerful platform.

  • Heloha,

    I'm mostly familiar with c2 scripting environment. I was digging through the sdk for c3 trying to understand how one behavior might access another on the same object or different object. I think I was told that this is not allowed but wanted to confirm.

    An example use case is Solid/Platforming behaviors. My use case is creating relationships between different types of components such as Stats, stat modifiers, etc...

    Cheers

    Tagged: