coding vs events

Discussion and feedback on Construct 2

Post » Fri Mar 13, 2015 7:42 pm

Hello everyone,

I really am only aiming to discuss 2d game development, that way we can compare apples to apples...

I use both unity and construct2. Why? because they each have strengths, and weaknesses.

Construct 2 has often been hailed as a tool whereby one can make games really, really fast... but honestly, unity is just as fast. If you are faster in construct 2 than unity, its because you haven't learned to code.

People also favor construct 2 as a no programming gamemaker... but this is stupid... if you can use logic (i.e your brain) then you can program. When you fill out the event sheet, you ARE programming. People look at programming like it is some sort of foreign language, but its not (unless you don't speak english, then it kinda is, but that's a different issue). Event editing may be faster upfront, because you can browse through all possible conditions and actions, but once you have learned to use an api, programing usually becomes faster than visual coding, simply because the coding interface is more simple. For example, to declare an instance variable in construct you have to go clicky clicky here and clicky clicky there, type in the variable name, select the type you want and then voila, you have yourself a variable. but what if you want many, or need to delete a bunch? You have to do all those clicky clickys for each thing you want to change. In a code environment, you simply type:

int someVariable; (c++ / c#)
var someVariable; (javascript)
dim someVariable as integer (visual basic)

and here is the funny thing, I play starcraft so my clicky clicky is really good, but honestly I just typed out a variable declaration in 3 languages faster than you could clicky clicky your way to one instance variable in c2 via event editor. But then the code environment has things like copy, paste, delete all selected text and so on. I can even declare variable in mass:

int x1, x2, x3, someotherint, yourmomsage, castlength, bouncyballs;

And this is just the tip of the ice berg. Coding is fast, once you learn. and if you already can make a game through events then you certainly can program. If you say you can't program then you are just a winy looser, with a bad attitude. Can't died in the corn patch. Can't never can because it decided it can't. I know we all have our strengths, but when you only go with your strengths, your weaknesses will never improve.


And this brings me to the reason why I still use unity... because it was designed to support scripting (i.e coding). Sure, I code the random behavior here and there for c2 but construct 2 wasn't designed around coding. The sdk in construct2 is kind of an after thought. This needs to change in C3.

c3 needs to have a robust coding environment in the same way unity does. Even gamemaker has this (construct2 is way better though, lol). Coding is more powerful and faster to use in the long run. It is more flexible and unless the event sheets can match the speed and utility of programing, I will always be using other tools that do allow this.

Construct 2 is great for making little phone games and browser games... but beyond that... it just gets to slow as the game scales. More often than not, I start a game, only to find out I literally can't do something in construct without a mess of events (which I can't use again in another project) or a custom plugin. At this point why would I use construct instead of unity? Unity has a better environment for this kind of development, I can easily reuse my scripts, and it performs better on all platforms...

So why do I use construct 2? Because, construct 2 is faster to create objects add behaviors, and get a project up and running. Those benefits outweigh the downsides in a simple project, but as the size and complexity of the project increases, the cons outweigh the pros. I also really like how quick Ashley fixes bugs. Unity on the other hand leaves bugs in the program for years. Their goal seems to be to be continually adding features even if some don't quite work as expected in all situations.
Image
B
32
S
11
G
2
Posts: 563
Reputation: 5,096

Post » Fri Mar 13, 2015 7:47 pm

As you said, it's not the events that make C2 fast, but the behaviors. I can click 2 things and have a platformer engine ready to go for example. Click 2 more things and all my objects now have physics. Etc. You can do this stuff with unity with assets but obviously each of those costs money so it's hard to experiment ahead of time.

I do think event-sheets are much slower for me than programming.
B
11
S
2
G
3
Posts: 283
Reputation: 1,968

Post » Fri Mar 13, 2015 7:50 pm

I think the most important thing is if you feel comfortable with the engine of choice. Sure, both Unity and C2 have a lot of technical pros & cons (i use both, too) but more important is in which environment you feel more at home and this everybody has to decide on his own. I think you can also make bigger projects with C2, you just need to organize yourself better, with this i mean re-use eventsheets, use families, groups, custom folders and also comment your code. This helps me a lot. Special the structuring and reusing of event sheets can make life much more easy.
B
11
S
2
Posts: 213
Reputation: 1,266

Post » Fri Mar 13, 2015 8:08 pm

It sounds like you have a work flow that works great for you. Being a Construct 2 and Unity user myself, I can agree with a lot of what you are saying. There is power in coding that is lacking in a visual event system like C2s. I have also written games in C++, C# with XNA and straight Java (both PC and Android). I would definitely choose most of these over C2 for a large scale game project.

However, In defense of C2, for most current games that are built for the web or mobile devices, C2 is considerably faster than coding. For example, my son wanted to build a tower defense game and I had not built one myself in C2 yet. I decided to throw one together so I would have some understanding of how to help him. It only took me about 2 hours to have a near feature complete tower defense game working even without starting with the template. That is a really impressive build time for any engine for a game type that is new to a user.

Also, there are a lot of C2 users that are afraid (yeah, I said it, AFRAID) to try to learn to code because it seems so complex to them. A graphical event system can really ease a persons mind removing the stress of learning the tool so they can get their ideas into a playable product. I think this is the greatest strength of C2. People are at ease while learning it.

While it is far from the best or most powerful tool, it really has proven itself to a strong contender in the 2d game engine industry.
B
38
S
12
G
11
Posts: 331
Reputation: 7,712

Post » Fri Mar 13, 2015 8:55 pm

Two words, sin tax.
I would have just broke whatever I was doing if it was code.
In C2 not so much.
Image ImageImage
B
164
S
49
G
139
Posts: 7,969
Reputation: 92,404

Post » Fri Mar 13, 2015 10:35 pm

Being a Unity developer and C2. I know where ruskal comes from. However I do disagree on other points.

- Scirra doesn't promote no Programming. Scirra promotes no traditional coding required. I don't know why people still make this mistake.

- yep var creation is way better on programming. However a counter argument variables are objects through the system. So there are no remaining vars, or mistyped vars.

- C2 strengths are the behaviors and the API Scirra created and can get running so much faster.

-C2 biggest weakness is the SDK. first I make this clear. the SDK is NOT hard or difficult. The SDK is clunky, not clean and has scoping issues. Also features of Plugin and Behaviours are not shared. If the SDK were lean, clean and mean. Then I think the SDK would be a lot more useful and count as ruskals programming.

-I agree with ruskal. C2 should mostly act as an interaction of behaviours. Once lots of events are needed to handle basic processing, then it's too much. Should be created as a Plugin/behaviour. however do to C2 clunky SDK where you want to mix behaviour interaction. it's just bleah.

- C2 can do large projects. I see no difference from Unity or C2 when it comes to 2d game development. export is another matter.

- no syntax errors. I cannot express that having this issue removed increases productivity by a lot.

-Unity programming is not faster than C2 programming. However Unity scene editing is faster than C2 scene editing. The inspector and the robust options for vars and how they are presented just offer so much.
B
88
S
18
G
9
Posts: 2,455
Reputation: 14,928

Post » Fri Mar 13, 2015 11:13 pm

Will agree on the fact events could be handled in a better way (just having a way to actually do a behavior like interaction in events would fit all my complains), as events are not really great to have the "black box" C2 logic (aka when you simply hide out how things work, to concentrate on what they do and use them).

I never used he SDK (nor needed it really), so i cannot tell much about it, but third party plugins are really messy to use and install sometimes.

the "can't code because you just do not want to try to overcome yourself" is only matters of opinion, sure, I could code in lines of code, it is not hard (even though syntaxes errors are really boring), I just dislike it a lot, and I think the worst thing that could happen to C2 (or C3) would be to have a way to type code in it (to type events, however, would be fine, as long as both ways are translatable in an automatic way from one to another inside the editor, that is fine by me), events are a nice thing to use, yet flexible, improving them would be better than ditching them or giving an alternative that would make them irrelevant.

just my two cents.
Game design is all about decomposing the core of your game so it becomes simple instructions.
B
43
S
18
G
18
Posts: 2,106
Reputation: 16,436

Post » Sat Mar 14, 2015 5:40 pm

@Aphrodite - don't get me wrong, I would never suggest ditching the event system - I just wish it also was scriptable as an api. For me, looking at pictures in boxes connecting to other boxes makes sense. The event system does this well, but it also is a hold up when you just 'need to code' so to speak. That moment where you know how everything is handled and there are no theoretical problems left; The only thing left to do is hammer out code. And when I need 20 variables and I need the ability to copy all 20 to various locations, events get heavy and time consuming, where as, in code you can simply encapsulate these variables in a struct and pass that around. An properties... c2 needs properties...

@jayderu - I don't think the sdk is hard, I agree, it is just clunky. Not fun to work with. I think that that is my major beef with c2. When I get to the, "I should just code this" point, I usually just say screw it and make it in unity, simply because it will take less time to script there than in construct. But ya, c2 comes with some nice stock behaviors, and they can be super fast, but once you have your own set of scripts in unity, the advantage becomes irrelevant.

again though, that's assuming the base behaviors are robust enough... which they are, only if the game is typical (in a mechanical sense). The physics behavior sucks, because it is lacking, and has no power. It offer no advanced abilities, and thats just not enough. The platformer behavior is one of the best I have ever encountered pre-stocked in an engine, but again, it isn't enough for me. There are little things about that make it, ultimately, a bad solution for all but once again, a very typical platformer (collision logic has alot to do with this). You can't even make a perfect mario clone with it. And the list goes on. Basically, If I want to use a behavior, I usually end up making my own custom version. That all aside, when I make web games and minigames for phone.... Construct is the way to go. I can make a complete game in a few hours as opposed to days, and that is AMAZING.

One question for you though: When I say big c2 can't make big games, I should define big. I don't mean to say that you can't have large levels, spanning a continets worth of content. I meant it more in an oop sense. Making a game like smash brother would require a lot of abstraction to avoid having to rewrite large swaths of logic. With c2 inability to have multiple inheritance, no interfaces, etc... Games that require abstraction can become a nightmare. Also the fact that, at that point your entire event sheet is filled with the defualt icon for families, events can become less readable than code because they lack the visual component. Also, pick uid becomes a pain times two. It is in this case that event scripting takes longer than codeing because it requires "more".

I like your list though. nice and succinct.
Image
B
32
S
11
G
2
Posts: 563
Reputation: 5,096

Post » Sat Mar 14, 2015 5:46 pm

@newt - lol ya... there is that whole mess. so many wtf moments. But I promise those are fewer and fewer as your experience coding grows. And that is where c2 has a definite speed advantage, but that advantage diminishes as coding knowledge grows.

However, I teach programing to kids using c2... and guess what? There is syntax in c2 as well... and the little munchkins do their finest job messing up every expression that comes there way. And they don't seem to know how to fix or whats wrong with it... so there still is a bit of a learning curve in c2. Having learned to program before coming to c2 allowed me to hit the ground running with very few problems, so I kind of took it for granted.
Image
B
32
S
11
G
2
Posts: 563
Reputation: 5,096

Post » Sat Mar 14, 2015 5:50 pm

@FragFather - Agreed, your second paragraph, is to me, the primary draw of c2. It is clean and fast. For small things, I choose c2 everytime. I teach younger kids to program using construct2 and it is amazing how fast they can pick up things and then go to town with them. You can't do that with something like xna. For those who haven't learned to code, c2 offers a quick and easy way to bypass a solid month or two of "just learning the basics".
Image
B
32
S
11
G
2
Posts: 563
Reputation: 5,096

Next

Return to Construct 2 General

Who is online

Users browsing this forum: Kermad and 8 guests