C3 Architect Request list

Discussion and feedback on Construct 2

Post » Tue Feb 03, 2015 3:45 am

@lucid
Thanks for the wonderful write up. I added it to the document. Either as new features or to just re-inforce why certain featured. Very well written. Thanks :)
B
90
S
18
G
9
Posts: 2,455
Reputation: 15,013

Post » Tue Feb 03, 2015 4:06 am

I have a single one:

For....

in C2 you can state start and end number.. For 0 to 10..

I miss the Step (with default setting at 1)! Where you can type +2 so it will count up 0 2 4 6 8 10..

or For 10 to 1, step -1 then it will go backward 10 9 8 7....

YES it is possible to add more event lines to make it go the way you like, but it would be better to make it simpler!

The "Step" I am referencing to is from my experience with basic.
B
58
S
18
G
13
Posts: 447
Reputation: 10,735

Post » Tue Feb 03, 2015 4:16 am

@lucid

It's cool, to integrate capx file into IDE, i.e. gui controller (plugin) in event sheet which could be loaded into editor.
So users could have their custom C3 gui interface.

Event sheets are composed by events and plugins, and any plugin might composed by other plugins and some events. Run at edittime (editor) and runtime (application).

Or editor is just another kind of runtime.
B
108
S
26
G
260
Posts: 4,435
Reputation: 146,195

Post » Tue Feb 03, 2015 6:49 am

Edit: Made some extra additions/edits to the list.

Okay, this is pretty sweet. I'd like to add my own suggestions, though I might've missed things that might've already been suggested:

Behaviour/AI
Someone already suggested platformer pathfinding (Notch actually made an A* Mario pathfinding thing once), but to add onto that, I'd also like to see 'off-mesh links' (or in this case, 'off-grid links') that inform pathfinders of unusual methods of moving around an environment, such as teleporters, elevators, etc, and tell the behaviour what to do when they encounter such links.

Oh, and be able to provide platformer AI pathfinding information for custom behaviour, in case of custom platforming behaviours and whatnot - defining 'actions' that can allow an AI to do things such as crossing horizontal or vertical gaps (dashing, jetpacks, etc.) that they might not otherwise be able to cross or get past certain obstacles.

Controls
In my experience, coding up local multiplayer is awkward and requires giving every object control information via variables and additional variables for every button for stuff like knowing when the player has only just pressed a button, etc, and setting up controls for individual players either requires arrays for control sets or manual control definition. And then you have to individually define via variable which player controls which set of objects, which can get messy with 'for each' object picking and making sure they don't conflict.

I'd like to be able to add a 'player' behaviour/component to an object, that defines that object as being controlled by a particular player (or AI), and only responds to particular controller or specific set of controls. In addition, controls for both keyboard/mouse and controllers for each player can be defined via the editor independently of the behaviour/components, and also modified at runtime (and also whether certain players are using either keyboard/mouse or controller, or both). This would make implementing local multiplayer so much easier. Input systems generally aren't great for game engines in general out of the box, Unity's is kinda awful as well for many of the same reasons.

Really, being able to easily define certain objects and the objects they contain as being associated with certain players would solve a ton of problems by itself.

Object Picking and Prefabs
Also from my experience, if you want certain sets of objects of the exactly same type interacting with each other, such as multiple players who use the same object, aside from the aforementioned controls problem, you also need to do a mess of picking to ensure that certain events don't affect objects that shouldn't be affecting them at any one time, especially if each player has different 'skins' that do different things.

Lemme provide an example of this: with my last game, I had to consolidate my player/AI characters into two objects, the single main object that handles controls and behaviour, which has to be just one object, because otherwise, even with families, you end up getting into an absolute mess of picking nonsense, and thus I can't use that object as a container for the 'skins' that represent the player, so I have to spawn and assign each skin with its main player object individually, couple each pair with their event behaviours in picking, and then also handle what happens when, say, a player attacks another player. Unfortunately, this still results in an entire mess of picking nonsense, with for each object loops, and then a bunch of picking events during certain inter-player events to tell which skin belongs to which player and vice-versa. And then you get into issues with spawning and what happens with save states, and you can get that it gets especially messy trying to clear out bugs. No, families aren't actually that much help.

Basically, here's some ideas on how this can be fixed:

  • Don't have containers set entirely in stone. Unity can have child objects (and children within children) and even add or remove children without problems, as long as they're not using said children for something that might cause errors due to their absence. Instead, allow a parent to spawn objects as children (or despawn children), and then check if they have a certain object as a child. This saves a lot of time and grief with sorting out picking when instead more flexible containers can do it automatically.
  • As well, allow for 'child slots' or dummy objects that children can be slotted into, so a child slot/dummy that can represent many different objects that might be in that slot, while performing the same event behaviour. This preserves the existing container behaviour while adding additional flexibility. That way, the designer can create containers with dummy objects that can be substituted by more than one object, and still work fine even if the slot is empty, and if they want to replace an object in a slot with another, they can easily do so with a single action.
  • A 'hierarchy' window that can be used for both assembling containers and sorting z-order, similar to Unity. That would actually be fairly convenient.
  • In events, if two of the same objects do something with each other, be able to distinguish between "Object A" and "Object B", and the groups of objects that they contain. For example, if Object A collides with Object B at a high enough velocity, do damage to Object B, and so on.
Last edited by Candescence on Tue Feb 03, 2015 10:34 am, edited 3 times in total.
B
94
S
37
G
11
Posts: 404
Reputation: 11,275

Post » Tue Feb 03, 2015 8:30 am

+1 to everything in this thread.
B
30
S
7
G
7
Posts: 102
Reputation: 6,533

Post » Tue Feb 03, 2015 1:08 pm

I love these kind of topics, it really shows the power of a great community (whitch is a result of Scirra treating it's users really well).

I agree with the ideas before this post, and I'd only like to add one little thing (I guess it will be possible with the customizable editor):
- Dark GUI for the whole editor to make it easier for the eyes during longer developments.
B
129
S
33
G
17
Posts: 1,552
Reputation: 20,515

Post » Tue Feb 03, 2015 2:03 pm

That's an excellent discussion guys! I can't bring anything really useful that hasn't been said already, but I would like to second the work you're doing!
B
77
S
22
G
4
Posts: 311
Reputation: 12,634

Post » Tue Feb 03, 2015 3:05 pm

@Candescence
Hey thanks for the suggestions. Seems farther down the road of suggestions there is less to put into the document. These suggestions are great, because I get to look at them and think. Can the document suggestions currently support this idea... yes, great just add it as a sample. No... hmmm what does it need.

As an example
AI Platforming: You could use the current AI for finding paths and then navigate them yourself. however I find that the A* used as it is now; Is more for object avoidance. Where as platforming AI would be based on following a predefined path. I wrote a NodePath for this reason. However and this is the important part. I found when I wanted to make it a Behaviour. I had a serious lack of visual tools. Such as being able to create the visual pathing in the level. So right now it's kinda a hit/miss. Can it be made. yes, can it be made easy for people to use. No :(

Object Picking and Prefabs
Yep. Same problem. I put it in the architect list that Objects can be referenced directly, saved and used later rather than having to pick every time. Even lucid posted about more granular SOL picking. I also added prefabs to the doc.

However. Unity2d system does not use Object Hiearchy as part of layering. Unity 3d did as a model of forced 2d. However the "new" SpriteRenderer class has sprite sort level which now handles that. So it doesn't matter where SpriteRenderer is in the object heirarch anymore. It's sort level.

As for child dummies. I added a SceneGraph Object to base where most extra features of SceneGraph are all based on behaviours rather than being their own plugin. That way you enhance a GameObject with Sprite Render rather than everything being there own object.
B
90
S
18
G
9
Posts: 2,455
Reputation: 15,013

Post » Tue Feb 03, 2015 4:31 pm

Here's few more:

- Ladder object ( don't know if it's poss in c2 currently ), and some sort of way to easily make top down platforms to make paths for players, instead of need to build "walls".
- Properties column should have some tabs for Project and current layout preferences. Currently need to select "Projects" tab from right col, the scroll to the top to select main folder in order to display Project properties, and hen swipe mouse across the screen is cumbersome.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
86
S
28
G
21
Posts: 1,981
Reputation: 19,316

Post » Tue Feb 03, 2015 6:43 pm

Here's one that probably all of us have forgotten already:
Create object by name

And few more:
- scale, offset, rotate, tile (on/off) object texture (per instance would be really neat!)
- import few textures for one object (diffuse, normal, mask... in example)

If C3 would get this prefab/gameobject/component/dummy thing (would be nice if we could make up some proper name to use xD) and some interaction be possible in editor (something like events that run in editor not the runtime *) then some kind of helper object would be nice. Just an object that can have position and some variables to hold.

*this would be really great for things like:
You want to make a grid of objects that is based on two variables GridWidth and GridHeight. So instead of making events and preview the game every 5 seconds to tweak your grid, You could only change these variables in editor and the grid will be created in editor based on these variables.

It's hard to explain for me (non english person) But closest to it would be something like "Exposed variables" from UE4.
ImageImageImageImage
B
157
S
65
G
41
Posts: 2,594
Reputation: 34,748

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: Garrey, grym57, RoboticPhoenix, The Mnk and 1 guest