Visual, How Visual is Visual?

New releases and general discussions.

Post » Thu May 07, 2009 11:01 pm

You fellows seem to be on the right track with regard to game making. I like your stated concept of presenting everything in a "visual, human readable way".

Having downloaded the program and clicked around quite a bit, I can't say I find it to be totally as comprehensible as I had hoped. I couldn't even figure out how to start creating a "world" or "scene" or layout. That is the very first step anyone will try to take, and it is not graphically obvious where to start. I had to load one of the templates to see anything in action, but even that gave no visual clues as to how to "begin at the beginning".

Another thing I noticed after studying the Wiki and such is that the tiny icons that are strung together in sequence, indicating the order of "events" and "functions" are not incredibly descriptive - many functions are depicted with the same rather cryptic icon of what looks like an "eye" or an "angle" symbol or something. The true meaning is only visible by hovering over the icon for a time with the mouse pointer. Why not use a different icon for each action or function?

The "root" screen that intends to indicate the program flow in a "human readable way" does a fair job at doing so, but I found that once one delves deeper into actions and "functions", the obligatory "programmer speak" begins to emerge all over the place - words like "variables", "global variables", "functions", "z-order", "exclusion", etc. - none of which I found very descriptive, even in the context of actual programming functionality. Why not use "plain English" here that will be comprehensible to everyone, as well?

Believe it or not, a product of Microsoft Research has actually succeeded in hitting the idea of "layman's programming" on the head with their soon to be released 3D game making application called "Kodu" - I encourage you all to watch the inventor's own explanatory video demonstrating their programming paradigm: [url:3eccs5wv]http://hk.truveo.com/Kodu-Videos-X360-CES-2009-Developer-Commentary/id/2653837507[/url:3eccs5wv]

Kodu uses the language of the senses to explain all of its programming functionality. I wonder if Construct would enable a motivated user to enter the "source" and change all of these cyptic, programmer specific terms into their "human readable" forms? If you can explain it to me, a non-programmer, I'll happily set out to "fix" the lot.

Still, from what I have been able to find, after many weeks of searching for the ideal game making environment, it appears that the authors of Construct see at least part of the picture.

Psmith
B
2
G
3
Posts: 25
Reputation: 900

Post » Thu May 07, 2009 11:10 pm

I think Construct was made the way that it is assuming that users already have at least a small understanding of game making programs. You don't HAVE to have prior experience, but if you've ever used any other program things as simple as "variables" should be instantly recognizable.

I think most programs use "programmer speak" because it's what most semi-experienced to expert users know. If they used simplified terms for everything it might help complete newcomers, but it would detract experienced users who are used to programs using common terms.
B
4
S
2
G
4
Posts: 401
Reputation: 2,302

Post » Thu May 07, 2009 11:27 pm

I don't find Construct to be that much visual :). Kodu is Microsoft(R) creation tool... MS(R) always takes simplicity of use to the maximum, IMO there's nobody who has that much application design skills to match MS(R) products.

If someone doesn't have much experience with non-MS(R) game creation tool interface, it's always hard to start. Unlike graphic or sound creation programs, in games you have to parallely organize all those: graphics, music/sound, logic, what is more complicated :(.
B
6
S
3
G
6
Posts: 219
Reputation: 3,013

Post » Thu May 07, 2009 11:38 pm

yes, construct uses some programming terms for things, but to try to abstract it into something else would be more confusing.

take variables
what do you call something that you can use to store any value in any form you can think of?
want to remember a sentence someone typed in, need to remember the name of something, need to remember the x coordinate of something, need to remember the angle of something? need to remember a value that represents a characters emotional state? need to remember the value you're plugging into an equation? a player's score? the 3rd item in someone's inventory?

what are you going to call something that can do all these things?
I think variable is as good a word as any, and even if we called it box, or memory cell, the concept would still need to be explained to a lay person. Don't be intimidated by words. if you want to do away with variables altogether, you're going to severely limit the power of your software, if not, it's the best word, because as caspis said, you're going to alienate people who enjoy programming already.

variables are just one example. functions is another one. functions do something. that something can be a complex math equation, renaming a character, resetting the game, putting some objects in order. anything you can program, you can make a function...it's a shortcut in a sense.
like if we had a function called "get ready for school"
get up,
eat breakfast,
brush teeth,
get dressed,
comb hair,
get bookbag

but we just explain that once and from now on we just tell construct to "get ready for school"

you don't have to work those things out over and over again. it's useful, it's powerful, it's necessary in any powerful language. what would we call it? a tasklist? it's still the same thing no matter what it's called, and other than the first second where you say "ok, so what's a tasklist?", instead of "ok, so what's a function?", there's really no difference

also, you'd be surprised by how much you can do without variables, functions, z-orders, exclusion, etc, anyway.

one more example, this one is a simpler concept
z-order is what's in front of what
so if the tree and the guy are at the same spot, which one should be in front, and which one should be obscured by it? what's the order of all the objects?
what should we call z-order, front-to-backness? I can't think of a word that will explain that sentence to someone. and as before, now you understand z-order, so it doesn't matter that it was called that.

don't allow yourself to be intimidated by a few new words, you might be surprised by how easy things are in construct. also, kodu, is not nearly as flexible as construct. Other than the 3d aspect, you could create a program like kodu in construct. kodu is legos, construct is a factory. construct is a real development tool. kodu is like a fun toy that let's you play around with some programming concepts. know what I mean? it's like the difference between MTV music maker for playstation, and FL Studio, or the difference between sony eyetoy movie editor and adobe premiere.
those other things are fun, and let you be a little creative, but they aren't serious tools.
Spriter Dev
B
87
S
21
G
12
Posts: 3,240
Reputation: 16,461

Post » Thu May 07, 2009 11:55 pm

[quote="Psmith":310po22e]change all of these cyptic, programmer specific terms into their "human readable" forms?[/quote:310po22e]
Hehehe, you should try real programming!

Seriously, though, I do think the terminology used in Construct is sufficiently simple. We have to strike a balancing act. On the one hand, beginners like you have to have a fighting chance. On the other hand, we aim Construct to design commercial quality 2D games, and if you're an experienced user, the "big colourful simple easy" approach of software like Kodu is nothing but a hindrance. By the way, I fired off an email to one of the guys on the Kodu project a while ago because I thought it was interesting. He described the project as aimed at children, and their site emphasises their young target audience. Construct isn't meant to be a kid's program and completely dumbed down.

[quote:310po22e]Having downloaded the program and clicked around quite a bit, I can't say I find it to be totally as comprehensible as I had hoped.[/quote:310po22e]
Did you try a tutorial like Ghost Shooter or Deadeye's excellent Platform School? They guide you through the basics step by step. I wouldn't be surprised if you couldn't figure out a fairly complicated bit of software like Construct just by "clicking around".

[quote:310po22e]Another thing I noticed after studying the Wiki and such is that the tiny icons that are strung together in sequence, indicating the order of "events" and "functions" are not incredibly descriptive[/quote:310po22e]
Are you in the right event sheet editor view? It sounds like you're in chronological view, which is designed to be compact and you have to hover over icons to see what they are. If you switch to List view in the Events tab of the ribbon, everything's laid out descriptively.

[quote:310po22e]the obligatory "programmer speak" begins to emerge all over the place - words like "variables", "global variables", "functions", "z-order", "exclusion"[/quote:310po22e]
Many of these terms are not programmer specific and are actually general to game design. If you want to design games, for example, you have to ultimately use variables, even if they're managed by something as simple as drag and drop blocks. You simply can't avoid it for game design with any tool, any programming language, any design system anywhere. It's like trying to do math without being able to count. Another tool might "simplify" it by calling them "numbers" or something, but that's misleading. For example, you can store text in variables as well as numbers, so it would be counterintuitive and confusing to call variables "numbers" in Construct. Ultimately, that's what they are - they really are variables - so it's correct and appropriate to name them so. If you want to get in to any specialised field, even in an amateur way, you have to learn a little bit of jargon.

FYI the terms you mentioned mean:
variable: a value that can be changed (varied, hence variable), such as your current speed
global variable: a value that keeps its value over the whole application, between layouts, such as your score
functions: this is in fact named after the programming equivalent, and is to do with a special plugin that can be very useful for intermediate/advanced users. However, beginners can get by just fine without ever having to use it, it's more a shortcut for experienced users.
z-order: the front-to-back (depth, hence Z) order of objects, such as which object shows on top when two overlap
exclusion: an effect which has the same name and appearance of the photoshop exclusion blend

You can find much more on the wiki.

In short you a) need to learn a few terms to give yourself a fair chance of succeeding in game design and b) can safely ignore anything you don't understand. With Construct a beginner can make a wide variety of simple games with very few plugins and features: sprites, tiled backgrounds, text and simple events. If you don't understand a plugin or term, you don't have to use it. But it's there for if you ever do need it, and for experienced users who need to take advantage of it.

Hope that helps ;)
Scirra Founder
B
359
S
214
G
72
Posts: 22,946
Reputation: 178,478

Post » Fri May 08, 2009 12:06 am

If you've never used Photoshop, would you know what Adjustment Layers do? If you've never used Dreamweaver would you be able to create a CSS rule? If you were using Flash for the first time, would you know how to tween an object?

Probably not. These are skills that need to be learned. Just as Construct needs to be learned.

So... when faced with a blank document page, what needs to happen? Adding content, of course. Was the "Insert object" button (or the right-click / "Insert object" context menu option) not apparent enough? If you want to see something in the layout, you have to put something in the layout.

As for getting started, that's what the beginner's Ghost Shooter tutorial is for. Take the tutorial. At the end you should have a basic understanding of how Construct works.

Anyway, I fail to see how this Construct is any more complex than your average design program, whether it's a game maker, a spreadsheet maker, an HTML editor, or some sort of design layout program. It uses the same sort of standard program interface that many, many design programs use. It's a tool for making games, not a toy for snapping together pre-made game pieces (which is what Kodu appears to be).

In regards to the technical terminology: The term "variable" isn't that difficult to figure out, even for a layman with no experience. And it's good in the long run, because if a layman starts off with Construct and later moves on to a "real" programming language, then they will at least be somewhat prepared.

As for the "humanly readable" aspect: I would argue that yes, it is... again, as much as any other design software. Some of the more complex features may not be entirely accessible, but neither are they nearly as hard to decipher as, say, C++ code. And the learning curve is much shallower than that of a traditional programming language.

Construct is middle-ware. It gives you much of the power and flexibility of programming without having to learn a programming language. But, to keep that flexibility, a certain amount of openness has to remain. The more closed a system is, the less flexible it is (such as with Kodu). By keeping the system open to more customization (such as variables, functions, loops, arrays, etc.) you have more power at your disposal. But these things need to be called something... why not call them by their proper programming counterparts, rather than make up some new term for them? It would alienate those with actual programming experience or at least a fundamental understanding of programming architecture.

So, is it completely noob-friendly? No, probably not. But as I said before, it's a tool, not a toy. Noobs and laymen can click together some simple games with a little practice, but it's also powerful enough to create some truly complex games.
Moderator
B
5
S
2
G
6
Posts: 4,348
Reputation: 10,971

Post » Fri May 08, 2009 3:11 am

Kodu looks interesting but at the end of the day it's still a toy.
If you were comparing Construct to something Microsoft, it would have to be XNA. And there's quite a lot of coding involved in XNA.

The nice thing about Construct is that it speeds up the learning curve and the time needed to get results. It does not "relieve you from the burden of clarifying your ideas" ([url:1xj5loq3]http://xkcd.com/568/[/url:1xj5loq3]). I think many people here are planning releasing commercial games made with this (amazing!) tool. It's simple enough to hit the ground running with your game (insert sprite, draw something on it, give platform behavior, then insert a box and make it solid, use as a floor. TADA!) but it's powerful enough to do the kind of stuff that makes people bail out from other game-making tools and learn programming.

And no... construct's logic is nowhere NEAR as difficult as making games in C++
I'd know. I spent quite some time trying :)
B
3
S
2
G
4
Posts: 1,445
Reputation: 4,665

Post » Fri May 08, 2009 3:51 am

It always amazes me how programmers reply to reasonable questions like the ones I have posed.

What can you call a thing other than "variable" that is more descriptive and more readily understandable to non-initiates? I'm sure you can find a better word or phrase if you cared to think about it for longer than a second or two. I know I can. For non-global variables, instead of a dead and indeterminate noun, why not use a verb like "remember". "Remember"(something) would hold whatever you wanted in its "memory" until it is replaced by something else. A global variable could be equally descriptive by using another active phrase that everyone can understand like "remember forever" (something). This is how we speak and this is how we think.

Considering that something is "advanced" or "professional", simply because it is obscure is nonsense.

It is quite alright that you have designed this engine for making professional quality 2D games, but that does not require you to make it difficult for non-professionals to do so. Games and game logic are incredibly simple if you care to be honest about it. There is no need to add layers of complexity just so those who consider themselves "professionals" don't feel let down.

Actually, PhotoShop was one of those programs I learned to use quite proficiently by clicking around and not reading a single page of documentation or following a single tutorial. Any really professional application that claims to have even a fraction of PhotoShop's utility should provide the same facility.

Oh yes . . . Deadeye - that avatar of yours speaks volumes, you know.

'Good programming makes simple things simple, and complex things possible' (Alan Kay, more or less).

Programs must be written for people to read, and only incidentally for machines to execute. - (Abelson / Sussman)

One of these days the Priesthood of the code will be thoroughly disbanded. Mark my words.

Psmith
B
2
G
3
Posts: 25
Reputation: 900

Post » Fri May 08, 2009 4:23 am

If you can't help yourself to understand and learn the program, then DO NOT use it.. go to your Doku or whatever shit software you want to compare with construct.

Look how many beginners has learned much about the program by not being [u:beug8hvu]lazy[/u:beug8hvu] of reading tutorials and stuff.

We're not going to spoonfeed you, the program won't give descriiptions to every word in the program.. It's completely up to you, and I think the community is not being unfair in giving help to those who really need it. What do you really expect?

EDIT:
What layers of complexity are you talking about???
the term variables and z-depth? research or ask to understand, if you're gonna complain cause you don't understand them, blame yourself.
B
16
S
10
G
5
Posts: 255
Reputation: 3,934

Post » Fri May 08, 2009 4:47 am

This is such a strange argument... :?

There is a learning curve with every new program that you try, but once you've gotten used to the layout and terms doesn't it seem much less mystifying? Isn't it better to use the same terms that other programs use, so if and when you decide to try a similar program you won't have to learn a whole new set of commands?

I sort of understand where you're coming from, but it's not like Construct is using undocumented terms. Just give it some time and patience and I'm sure it won't seem so alien before long.
B
4
S
2
G
4
Posts: 401
Reputation: 2,302

Next

Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 0 guests