Initial FeedbackForum Home > Construct 2 General > Construct 2 general
|Post Reply||Page 12>|
Topic: Initial Feedback
Posted: 06 Feb 2012 at 5:30am
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 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
|Post Options Quote Reply Posted: 06 Feb 2012 at 7:03am|
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.
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.
Have you had a look at the SDK ?
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
|Post Options Quote Reply Posted: 06 Feb 2012 at 7:56am|
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:
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!
|Post Options Quote Reply Posted: 06 Feb 2012 at 7:59am|
Btw, the "How do I" list is very exhaustive. Bookmarked.
|Post Options Quote Reply Posted: 06 Feb 2012 at 8:47am|
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).
|Post Options Quote Reply Posted: 06 Feb 2012 at 9:14am|
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. :)
|Post Options Quote Reply Posted: 06 Feb 2012 at 9:43am|
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 ^^)
|Post Options Quote Reply Posted: 06 Feb 2012 at 4:35pm|
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!
|Post Options Quote Reply Posted: 06 Feb 2012 at 5:26pm|
How about implementing the use of these reserved words:
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.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.
Edited by HotGod - 06 Feb 2012 at 5:29pm
|Post Options Quote Reply Posted: 06 Feb 2012 at 6:13pm|
Hmm - IIDs used to index in to the SOL, so you used to be able to say Self.X and Self.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.
|Post Reply||Page 12>|
|Forum Jump||Forum Permissions
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum