New Feature i think would help many of us.

Discussion and feedback on Construct 2

Post » Sat Sep 22, 2012 4:49 pm

Hi Scirra

I have build a few demo games, and at this point i'm finishing my first Iphone game through CocoonJs support. (i am super siked!)
There is 1 thing that i personally miss the most in Construct2.
I will first explain the issue.


Issue:
When building Ai for game characters i use my groups etc to keep my workflow at ease and functionally clean.
The moment a characters Ai is completely done i copy the group with all the events.
I copy the group, because i need the same Ai for a "clone" of the character.

This is where the issue is at.
To link all the made conditions & actions to the clone of the character i need to "Relink" them all manually.
Meaning i have to click on the condition, then edit, then back, select the clone, click next, click done.

When i have a few conditions of ai linked to 1 character this is no issue.
But u can imagine when u need to "Relink +-100 conditions" and actions!
Yeah, i can tell u it gives a numb hand and eye co-ordination after a while.


The solution could be simple. (if it is easy to implement)
Give the user of Construct2 the option to Relink all conditions "within a group" to a sprite of choice.
This way i could select the group, click edit group, select Relink Sprite, then select the sprite (*Edit* or Sprites) i would like to replace, and then select the sprite (*Edit* or sprites) i would like in the place of.
Construct2 then relinks all the conditions and actions "within this group" to this new chosen sprite.

This way "We all" could save hours in Ai building!
I'm guessing here that i'm not the only one.

The catch to this would be, that Construct2 needs to know: If sprite A is to be replaced with sprite B, (and sprite B does not have the same variables as sprite A), That Construct2 then automaticly copy's (Adds) the variables Sprite A has to Sprite B.
This way "All" the conditions and actions can be Relinked from sprite A to B.
Then we would have the perfect clone!



I have spend over 100 hours on my Iphone game in 10 days.
I can tell u that +-10 hours i have been Relinking.
It feels like Robot work after a while.
First im super happy that my Ai is working!!
But then comes the part of copying the Ai for another character and the relinking process starts.
Yep...

It would be awesome Scirra!
And my ques is that it would be a powerfull implementation for a future beta release.

Thanx for reading/thinking about it!
Kind Regards.

Savvy001Savvy0012012-09-23 03:11:14
B
56
S
20
G
13
Posts: 778
Reputation: 13,204

Post » Sat Sep 22, 2012 4:59 pm

Have you tried families yet?
Image Image
B
161
S
48
G
90
Posts: 7,347
Reputation: 66,749

Post » Sat Sep 22, 2012 6:03 pm

I also would recommend what newt said: use families instead!
And if you need to distinguish different instances you can easily use family variables (the condition "Family.Value = 'AI_type1'" can easily be copied between events).
B
20
S
5
G
4
Posts: 51
Reputation: 4,139

Post » Sat Sep 22, 2012 6:38 pm

@newt & @basti

I understand what u are saying but that doesnt take away the fact that i still have to set those different conditions for each character.
Family or not makes no difference.

Within the familie Ai It would be like:
For instance 1, this action
For instance 2, this action.

In other words: When i keep doing that im building up the Ai tree i allready have.
And in the end i have lots of conditions for both instances, which i can devide in 2 different groups.
There is no difference in the end result to what i allready have.
Because families have a "familie rule" until programmed differently through instance conditions, im better of cloning the entire Ai.

The issue lies in the fact that i do not want to go through all the work of cloning the same kind of conditions if i allready made them for another.
I know it looks like families would be the option for this issue but it is not.
Setting the actions for "different" instances within a familie requires different conditions, and that is exactly what im talking about of not needing to do.

I hope this clarifies a bit more what im talking about, and why "group cloning with the ability to Relink to a new character is a powerfull function"

Kind Regards.
savvy001
B
56
S
20
G
13
Posts: 778
Reputation: 13,204

Post » Sat Sep 22, 2012 6:58 pm

I'm not sure what your situation is, but having to set up events for different instances does not sound ideal.
Is there no way to optimize in that situation?
Image Image
B
161
S
48
G
90
Posts: 7,347
Reputation: 66,749

Post » Sat Sep 22, 2012 7:09 pm

One option would be to maybe make use of the function plugin for repetitious code.

http://www.scirra.com/forum/plugin-function_topic46104_post288742.html


I do understand what your saying. The way the editor works it likes to baby the user and when events are copied and cut it can act funky.

The event system is a dream for those that are unfamiliar with game events and those that do not know programming. It allows them to express themselves in a wonderful way.

For others that do have a coding background it feels slow and clunky and in all honesty it actually hinders and slows the process. I will continue to use it because I love it, but I do understand fully what the OP is saying.
B
8
S
1
Posts: 61
Reputation: 1,210

Post » Sun Sep 23, 2012 12:18 am

@newt

To clarify the situation you are not shure of, just imagine this.

A painter, lets say "van Gogh " wants to paint 2 paintings.
Both paintings have a canvas, colors, perspective, beauty, etc.
What van gogh also wants is that the 2 paintings have their unique differences.
One of these differences is:
The orientation of 1 painting needs to be to the left.
The orientation of the other painting needs to be to the right.

Van Gogh now starts painting his "first" painting, and when nearly finished he comes to his conclusion.
"He needs to spend the same amount of hours painting on the second one"
But this time, he also needs to put in all these slight differences.
Spending all that time again is something van Gogh doesnt look forward to.
He cant just walk up to a copy machine that says.. lets make a whole familie of the same paintings, that all look the same.
Even when he would... he then still needs to "fix" all the differences he wanted in the first place.
So "for van gogh" it has no use to go to the copy machine.

In our case talking about Construct2 we "could make use" of a copy machine that enables us to make Group "clones".
With this we can:

Make a group.
Build Ai in it for sprite player1.
Then Clone the group.
Then edit that new group.
Then choose the option: Relink all conditions connected in this group from " sprite player1" to "sprite player2".


This way it "could" be done in 5 sec no matter how much total conditions are in the group.
We still would have to fix that sprite player2 runs left instead of right, because thats the difference we want.
But only having to change "those" actions is a whole lot less time consuming, than first having to relink all of the copied settings from "sprite player1" to "sprite player2".
Because when we copy paste a group at this point, the group doesnt know we intend to use it for an other sprite.
But hey!!!
"We" could tell it to the group right .
This would make Ai Cloning perfect for the use in 1 project or multiple projects.
Just building uppon the Ai we allready have.
Van Gogh would say... Thats marvelous, i wish i had that in my days .
The optimization is what i am talking about and handing over to Scirra as a new function of the event editor.

Hope it makes more sense now.
It was simply the best explanation i could manage at this point.

Kind Regards.
Ronny. Savvy0012012-09-23 00:24:11
B
56
S
20
G
13
Posts: 778
Reputation: 13,204

Post » Sun Sep 23, 2012 1:32 am

This is why I often prefer "objects in objects" instead of families. From my understanding you want, say, and enemy with some AI. Then, you want a totally different enemy to have that same AI, but maybe with a few differences. Well, since you made them separate objects, you'll have to "re-link" the events by hand. But, if you made both enemies the same object, all you have to do is copy those events and place them under a sub-event defining which enemy that object should be. Unless I'm missing something, that is the solution.
Image
B
225
S
27
G
13
Posts: 1,774
Reputation: 18,024

Post » Sun Sep 23, 2012 1:44 am

I see what your saying, but I'm not sure that groups are the best way to go.
What you need is something reusable, but that needs to come from the ai side rather than the object side.
Image Image
B
161
S
48
G
90
Posts: 7,347
Reputation: 66,749

Post » Sun Sep 23, 2012 2:28 am

@Tokinsom

Thats very close.
However, what u are kindly submitting would "eventwise" build a 2 headed creature (if u understand what i mean by that).
I use different Characters because both have different looks and are controlled by different players.
Thats why i need them, not being the same object.
If i however would build a Ai for 1 type of enemy like a Horde, then i would use your technique.

@newt
The perfect use of groups is organisation.
As in.
Group = Characters
Subgroup = Soldier 1
Subgroup = Soldier 2

In my current game i allready have a big character list.
As seen in the link below.
Those groups have subgroups for shooting, life, etc etc.
http://www.vrijetoekomst.nl/NapalmRush/Characterlist.jpg

The Groups is where the Ai is at.
So in my simple logic it is also the source where i need this new function.
Then, it all becomes "reusable" in a fast way, no matter what i program into the group.
And because the "Ai side" has a source, which is the sprite it is connected to.
I am hoping Scirra gives us the option to "relink" the source, to the Ai.
Both in the condition and in the action at the same time.
Then what remains, is a little tweeking here and there.

I thank u both for the great help in making this understandable!
Kinds Regards.
Savvy001Savvy0012012-09-23 02:30:53
B
56
S
20
G
13
Posts: 778
Reputation: 13,204

Next

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 4 guests