Initial Feedback

Discussion and feedback on Construct 2

Post » Mon Feb 06, 2012 5:30 am

Hi All,

I have been using C2 for almost around 3 days now.

I have gathered a few thoughts over this time, thought it would probably help make c2 better. Apologies if I mention something that is fixed / featured but I simply have been unable to find it.

The positives:
The best part about C2 is the pace at which you can kick start your game. I had a basic prototype running within half a day. I have a programming background so it simply was a very natural way to work. The architecture is solid, the event system is fantastic, it is very similar to a custom engine I had worked with in a RTS game (and they are very complicated! so this speaks volumes of C2's architecture). The forums are very active as well so any issues I faced were quickly overcome by a little browsing here and there. Thanks to everyone! Plugins are a great help! I could generally find many solutions in plugins, maybe they are few in number at the moment, but that's fine considering its early.
The interface is great, the comments, the scopes, the indentation on nests, etc, make your project clean \ readable, and full marks for this.

Things that can be improved:
Power. C2 gives you the most basic things you need, but lacks when you want to do some really polished stuff. I understand it is hard to find the balance between power and generality. But I felt the lack of power as I had and am currently having some trouble with a few things. One is improving the accuracy of my physics (I require an approximate point of collision, finding mid point between objects is not accurate enough). So I thought I could find mid point between closest image points of both objects, but then they are instances of the same object type! and the only way I could get around filtering based on instances is comparing between families. Now when I try to do that, I lose the additional data I require from my original data type, for e.g playing a fx based on velocity (which I cannot retrieve from just families). I do not wish to have different object types because this would lead to a lot of loss in flexibility and generally is very poor design.
Phew. But yeah, the customization provided by plugins (which btw is the feature that makes C2 exponentially that much more attractive) help people overcome these shortcomings, but it just takes a little bit more time. I guess if we can expose some of the core stuff within the engine, we would able to overcome these, but of course I do not know how far this is possible, but anyway.

On a final note, I really enjoyed the short period I have worked on C2, and really hope this keeps expanding, and we can make some awesome games. :D
B
4
G
1
Posts: 26
Reputation: 1,146

Post » Mon Feb 06, 2012 7:03 am

[QUOTE=bhavanvaishnav]Things that can be improved:
Power. C2 gives you the most basic things you need, but lacks when you want to do some really polished stuff. [/quote]
If you respect the recommended best practices and follow the performance tips (as well as use image compression efficiently) you can already do pretty polished games.
And webGL shaders are already on their way too.


[QUOTE=bhavanvaishnav]I could find mid point between closest image points of both objects, but then they are instances of the same object type! and the only way I could get around filtering based on instances is comparing between families. Now when I try to do that, I lose the additional data I require from my original data type, for e.g playing a fx based on velocity (which I cannot retrieve from just families).[/quote]
Two things here.
First have a look at this post giving the first clue about "index picking" and have a look at the topic listed in the section "Picking/selecting instance(s)" in the how do I FAQ you can see picking is way powerful but tricky to master.
Also for now, families make you "lose the reference" to objects, but be aware that families variables and families behaviors are on their way already. Families were recently added and are still more or less a WIP, an active WIP.

[QUOTE=bhavanvaishnav]I guess if we can expose some of the core stuff within the engine, we would able to overcome these, but of course I do not know how far this is possible, but anyway.[/quote]
Have you had a look at the SDK ?
This contains all the things and exposed methods to make custom plugins and behaviors in javascript. The manual is comprehensive and quite exhaustive and the javascript SDK development's forum is there to cover all the missing spots or devs questions.

[QUOTE=bhavanvaishnav]On a final note, I really enjoyed the short period I have worked on C2, and really hope this keeps expanding, and we can make some awesome games. :D[/QUOTE]
Imo we can already do awesome game, and seeing that still less than a year old, C2 is soon to hit its 78th release, I'd say it keeps expanding and will keep on for the foreseeable future without a doubt.

Welcome on the forum and enjoy using C2
New to Construct ? Where to start

Image Image
Image Image

Please attach a capx to any help request or bug report !
Moderator
B
247
S
85
G
40
Posts: 6,998
Reputation: 57,786

Post » Mon Feb 06, 2012 7:56 am

Thanks kyatric, for the really quick response.

I have been reading the good practices stuff, apologies for not being clear, but by power I only meant exposing some inner layers of the engine. I think architecture (and performance) wise, C2 is very impressive. :)

Its awesome to hear there is going to be a lot more functionality added into "Families". I think the concept of families opens up millions of possibilities, and its good to hear these things are going to come through soon. :)

About object picking, from your links what I understand is these are picking by UID? But what if I had something like:
http://dl.dropbox.com/u/24356445/C2/sameinstance.jpg

This is going to pick two totally unrelated pens (not the ones that collided). What you really want is to treat the 0, and 1 as indexes into the SOL. Cant think of a way we can get/set information from instances of interest within a filtered SOL. Any pointers on this would be highly appreciated! :)

But hey I did not know you could pick stuff that way! These things are cool, and this is what I meant by power, let me see if I can find a few docs explaining these tricks.

And yes, I will definitely be looking at the SDK soon. I am sure there is going to be a lot of untapped potential in making custom plugins and will be posting any useful ones for sure.

Thanks again for taking the time to answer / post links pointing me to the correct direction, they are very helpful!
B
4
G
1
Posts: 26
Reputation: 1,146

Post » Mon Feb 06, 2012 7:59 am

Btw, the "How do I" list is very exhaustive. Bookmarked.
B
4
G
1
Posts: 26
Reputation: 1,146

Post » Mon Feb 06, 2012 8:47 am

Indeed, the index expression (Object(index)) "syntax skips the picked objects and uses the full instance list" (full post source).

In your case, you should nest a subevent and use the system condition "Pick Nth instance".
Since sub event picks up from where the parent left (here, two instances colliding), then "Pick 0 instance" and "Pick 1 instance" will allow you to get the datas you want out of the instances and store them in a local variable for example.
A last blank subevent will allow you to do computation of the datas.



This should work. (Not tested, just made for the illustration purpose)
In event 4, the first 2 actions are two ways of doing the same thing. One is using the newly affected local variables, the second one is by using the object(index) syntax.

Also thanks for the notice on the How do I FAQ, it's not as exhaustive as I'd like it to be/should be, there are far more topics in the forum that weren't listed, ar items in the list badly formulated and even out of date (there were many releases since the beginning of this list ^^).
Still it covers quite a lot of ground and should be helpful.

Congrats on your quick picking up C2's ways (in a matter of 3 days you seem to have been a long way already).
New to Construct ? Where to start

Image Image
Image Image

Please attach a capx to any help request or bug report !
Moderator
B
247
S
85
G
40
Posts: 6,998
Reputation: 57,786

Post » Mon Feb 06, 2012 9:14 am

Confirming this works! :)

This is pretty cool.. I did not know that pick n'th instance could work on the filtered objects. Hmm, so its always about not reading the reference docs. :D Apologies. And thank you for your patience. :)
B
4
G
1
Posts: 26
Reputation: 1,146

Post » Mon Feb 06, 2012 9:43 am

No problems.
IMO, picking is what makes C2 so powerful.
It's like everything, it comes with practice, and the fact that in your third/fourth day of use you're already at that stage just announce very bright days incoming in your future (as well as a lot of headaches too ^^)

New to Construct ? Where to start

Image Image
Image Image

Please attach a capx to any help request or bug report !
Moderator
B
247
S
85
G
40
Posts: 6,998
Reputation: 57,786

Post » Mon Feb 06, 2012 4:35 pm

Thanks for the feedback @bhavanvaishnav, always interesting to hear from new users!

@Kyatric has posted a most excellent summary of how to handle individual picking. We're aware it can be a bit tricky sometimes so if you have any ideas on new features to simplify this we'd be happy to listen, but it should at least be possible (if cumbersome) to do everything with subevents and the advanced picking tools at the moment like Kyatric showed.

We have a very big todo list with lots of things still to add to C2, so we hope its power and the polish you can add to games will continue to increase with time!
Scirra Founder
B
357
S
214
G
72
Posts: 22,946
Reputation: 178,208

Post » Mon Feb 06, 2012 5:26 pm

How about implementing the use of these reserved words:
- This
- Other

These words will help us refer to the object we're examining and the other/s object/s the "This" object had activity with.

Here's a sample of a semi-code using the This/Other idea:

cPen On collision with cPen
     Draw a line between (This.X,This.Y) and (Other.X,Other.Y)

If the Other includes more than 1 object than maybe it can be referred to as an array of Objects - Other[2].X for example.

This can be shown here:

cPen On collision with cPen
    For counter 1 to Other.Count
     Draw a line between (This.X,This.Y) and (Other[counter].X,Other[counter].Y)

This will draw a line between the object and all objects which tocuh it.HotGod2012-02-06 17:29:11
B
35
S
12
G
6
Posts: 111
Reputation: 7,087

Post » Mon Feb 06, 2012 6:13 pm

Hmm - IIDs used to index in to the SOL, so you used to be able to say Self[0].X and Self[1].X, etc. But I changed it to not work in the SOL because there are other situations it doesn't work. I guess we need both, as well as UID indexing.
Scirra Founder
B
357
S
214
G
72
Posts: 22,946
Reputation: 178,208

Next

Return to Construct 2 General

Who is online

Users browsing this forum: Zonacas and 14 guests