My 3¢ about c2 and c3

Discussion and feedback on Construct 2

Post » Mon Sep 28, 2015 7:12 pm

shinkan wrote:@megatronx exactly, Like I wrote in some post in the past, plugins and behaviors should be all compatible with each other, should do what you expect them to do and every single parameter of the plug/beh should be visible in ACE to be set or modified.

Solid is probably the best example here. You would expect that it will block every other solids no matter what, unfortunately Solid only works with selected and very specific other behaviors. It should be the other way, if I set Sprite to be Solid then it is solid for everything - drag and drop, bullet, 8dir etc.


Yes. I agree that plugins should work together and I've been thinking of that even back at the cc days.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
89
S
30
G
22
Posts: 1,985
Reputation: 20,099

Post » Mon Sep 28, 2015 8:57 pm

@eli0s: items 2, 3 and 4 sound like they are already possible, 5 and 6 via existing third party addons (e.g. Spriter). It sounds like you're underestimating what's already possible.

megatronx wrote:Game is on layout the size of single screen, and enemies fly trough it, but there no way of bouncing off bullets of the borders of the layout

This sounds pretty easily solvable with events.

Silverforce wrote:If we had control over loading into vram, we can specify which sprites to load on start of layout or between transitions, and when they are called, there's no stutter.

Placing an object in the layout view is how you tell the engine to load it in to VRAM on startup. If you don't need it on startup, just destroy it on start of layout - it still gets its textures loaded and can be created without stutter. So I think you already have the control you need?

Multi-thread is difficult to get it to work well, big engines have it and little engines don't.

It's not that simple. For the reasons outlined in the blog post, even big engines run a lot of their core logic on a single thread, because due to the architecture of modern computer systems multithreading it would have either little or negative effect. The blog post explains why this is the case.

I wrote that blog post specifically to combat this perception that "C2 sucks for being single threaded and needs to be made multithreaded pronto", but it seems to have been ineffective! There is unlikely to be any real-world performance benefit to multithreading events. And again as the blog post describes, significant parts of modern browser engines are aleady multithreaded, and that is already in effect today with all your existing games. I think that is underappreciated.
Scirra Founder
B
398
S
236
G
88
Posts: 24,441
Reputation: 194,671

Post » Mon Sep 28, 2015 9:02 pm

Ashley wrote:
megatronx wrote:Game is on layout the size of single screen, and enemies fly trough it, but there no way of bouncing off bullets of the borders of the layout

This sounds pretty easily solvable with events.


Yes it is possible, and I've made it. However, it is that hacking I am talking about, and it is waste of time. There should be a ready made options for that and more scenarios that all work together.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
89
S
30
G
22
Posts: 1,985
Reputation: 20,099

Post » Mon Sep 28, 2015 10:17 pm

Spriter is excellent for animating your main character, but it's a 3rd party program: so small adjustments have to be reimported into c2 to be tested (time consuming, convoluted save and import process) and, also, the Spriter animations are super-demanding of cpu time (my pc can only run a few scml objects on screen at any one time before it frame drops!!). Having a built in animation keyframe/timeline editor would have been simply outstanding for c3. Sigh... I take it that c3 will not have such a feature.... :(

On the bright side, Godot Engine is open source, has a robust animation editor and a simple native desktop export...
A big fan of JavaScript.
B
74
S
20
G
71
Posts: 2,230
Reputation: 44,892

Post » Mon Sep 28, 2015 11:45 pm

Also would like to remind about the fact that interacting with black borders around the canvas still make things happen in game. Atm, in my rts project, when I click on black border, the units just go to the edge of layout, then press themselves against it, and some of them gets stack in there forever.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
89
S
30
G
22
Posts: 1,985
Reputation: 20,099

Post » Tue Sep 29, 2015 12:53 am

newt wrote:@eli0s
#4: check
viewtopic.php?f=146&t=161617


Yes, I am aware of this method, but it is very restricting, it only affects stuff that exist on the same layer, or on layers that are stacked together. What I am asking is vastly more powerful, because you could use any sprite to cutout (or mask in) any other sprite on any other layer! Multiple sprites/layers included! Now, the only way to achieve something like this is to have multiple sprites everywhere. And the applications graphic-wise are many, to name a few: decals (from explosion burns to blood stains), reflections, shadows that affect some parts of the image and can be controlled from the mask to reflect z-order changes etc...

Ashley wrote:@eli0s: items 2, 3 and 4 sound like they are already possible, 5 and 6 via existing third party addons (e.g. Spriter). It sounds like you're underestimating what's already possible.


I am sure I underestimate what is already possible, because I am not proficient with coding/programming and I can't even imagine what can be done when someone is! I have a clear idea however, every time I see a capx made by R0J0hound I stand in awe, feeling like a slightly evolved monkey! :lol:

However, my point is that most of these features should be included and be easily accessible by default. For example, I know that R0J0 can make an amazing multi-lighting system just by using his canvas plugin, but I can't, it's too convoluted for me and it shouldn't be like this. I know that pathfinding's nodes can be used to create a grid based system, but it is also somewhat complicated, even considering the fact that I was lucky enough to see lolpaca's LinearPathfinding.capx. Masking also leave a lot to be desired, as I wrote above.

As for the text, I know that rexrainbow had made behaviors that add some of those functions, but shouldn't those be already implemented by default? And I can't see how I can change part of the written text to be bold, an other color or an other size... Something basic if you want to emphasize some parts of a dialog for example.

Finally, I own Spriter, but as Colludium already stated, it's too time consuming and convoluted to design and work like this. I don't mind using Spriter for extremely complicated character interactions, but I would very much like to be able to move any part that exist within my scene, record this movement with keyframes, apply easing and call these animations with events, in any order, at any time, at any rate! And this, ideally, should be done and previewed within the editor! :o

I know, I might ask for too much, I am sure that most of those things are insanely difficult to program, never the less from my point of view, as a creator, seem essential to have!
composer - multimedia artist
www.eli0s.com/en/
B
69
S
27
G
6
Posts: 1,146
Reputation: 10,379

Post » Tue Sep 29, 2015 1:58 am

Ashley wrote:
Silverforce wrote:If we had control over loading into vram, we can specify which sprites to load on start of layout or between transitions, and when they are called, there's no stutter.

Placing an object in the layout view is how you tell the engine to load it in to VRAM on startup. If you don't need it on startup, just destroy it on start of layout - it still gets its textures loaded and can be created without stutter. So I think you already have the control you need?


Yes, it's what I've learnt to do for some assets which can be loaded and set invisible or destroyed on startup. But others cannot as its tied to game logic and AI. I notice those micro-stutter, the first time weapons fire or explosions go off awhile ago and hack it on start of layout to avoid it. Ultimately I'm sure its possible to add all the sprites one needs on the layout (off the margins so they aren't view-able) and destroy those instances on start-up (or add destroy on outside layout behavior)...

But more explicit control would be very useful. Just an event to "Load Sprite X into memory" would be much more easier to use avoiding all the workarounds.
B
70
S
24
G
19
Posts: 1,757
Reputation: 17,614

Post » Tue Sep 29, 2015 9:49 am

@eli0s Yes, example like this are good and are showing not only that such basic features are time consuming and difficult to implement, but also that we all implement it in the same way! That's one of the points of my post! We all just copy step by step what someone else figured out! That leads to thinking that this just could be there from the start as it is pretty much always done same way. It is a creative process for those who figure things out, but for all rest IT IS NOT. And I want to be creative with gameplay, not recreating features that are standards these days and allow for solid and interesting gameplay to happen.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
89
S
30
G
22
Posts: 1,985
Reputation: 20,099

Post » Tue Sep 29, 2015 10:45 am

"It is a creative process for those who figure things out, but for all rest IT IS NOT."

You've just pointed out a pretty big issue with plugs. If you take too much of the process out, the process of learning, no one will be able to figure out better ways to do things.
If all you are doing is copy and paste, then we are failing at teaching as well.
Image ImageImage
B
169
S
50
G
174
Posts: 8,331
Reputation: 110,806

Post » Tue Sep 29, 2015 11:27 am

newt wrote:"It is a creative process for those who figure things out, but for all rest IT IS NOT."

You've just pointed out a pretty big issue with plugs. If you take too much of the process out, the process of learning, no one will be able to figure out better ways to do things.
If all you are doing is copy and paste, then we are failing at teaching as well.


People earn by copying. Also you need to diversify those who want to learn programming, from those who rather learn other game development elements. Pretty sure that niche for none-programming required software are the latter. Plugs should take care of all the standardized features, and events should be there to expand or create own plugs, but not to hack trough plugs.

Also after years of using construct, ho many ways there is to create a menu, or pushing out of objects? Really there is only one that works best it can, thought not perfect. Same for keybindings - when you think about it there is only one way to do it right, due to how c2 is structured. And could go on with lights etc. Instead of recreating existing and common technologies with events, I'd rather see them being there from the get go, and instead innovate in the design and gameplay environment, with additional elements done trough events.
My professional Royalty Free Music at Scirra Assets Store
--------------------------------
Specs: i5 2500, 16gb of ram, gtx 770, win 7, Focusrite Scarlett 8i6, Mackie mr8mk2, Alesis 320, browsing the net on chrome.
B
89
S
30
G
22
Posts: 1,985
Reputation: 20,099

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: Tokinsom and 10 guests