My 3¢ about c2 and c3

Discussion and feedback on Construct 2

Post » Mon Sep 28, 2015 1:12 pm

One thing that I don´t like to see in Scirra's home page is "No Programming Required!". That is true for little demo games, but if you want to do a more "serious" games you need to program it with event sheets. From my experience, I do not use behaviors except for shadow casting. When you mix behaviors and custom movements, setting custom coordinates..., you get unexpected results. Things like pausing a game with event sheet are really easy breaking loops, but with behaviors is different. I usually always use families for everything too.

Anyways I think that Construct is the easiest and most powerful game creation tool out there, even I do not share Construct html future. And when I say Construct, I include Classic. I think they are 2 different products; one for making native games and the other for making web games.
B
34
S
16
G
10
Posts: 285
Reputation: 7,349

Post » Mon Sep 28, 2015 1:47 pm

megatronx wrote:Stuff like units pushing out of object, to be used in games like rts or hack and slash etc.

This type of problem is incredibly difficult, period. No matter which framework, technology or approach you use, getting a large number of moving objects to move co-operatively is very tough (I've tried!). This is not really something someone can just whip up a quick plugin to solve.

As for other suggestions, I'm always curious to see concrete suggestions for features and the use cases you could use them for. We're always trying to hit a balance between making it easy to get results, but avoiding cookie-cutter engine features. Sometimes people are looking for a built-in feature to implement a large portion of their game logic, but that's not our intent. For any logic specific to your own game, there is no substitute for events. I don't think it should be viewed as a failure of the product if you have to use events, that's actually part of the design.

shinkan wrote:Also i think C3 should go full on WebGL. Sorry to say this, but forget about canvas2d, there is really no point to have it. It makes everything more complicated than it should be.

I agree completely! However around 10% of desktop devices, and maybe more like 25% of Android devices, still don't support WebGL. I'd love to ditch the canvas2d renderer but I think it's just too soon, I think we need closer to 95% support on all devices.

Silverforce wrote:I'd be happy with some memory controls, load sprites into vram, unload from vram, giving the developer more control (optional) over this is required for very large games to run well on weaker hardware.

The engine already does this automatically on a layout-by-layout basis. The problem with adding more control over this is you create the opportunity for mistakes in memory handling to actually make things worse and use even more memory, or you rely too much on mid-gameplay texture loading which can cause serious jank, which is something everyone wants to avoid.

The biggest limitation I see currently is single-thread logic.

See Why do events only run on one core? The blog post goes on to detail many features which modern browsers (and our own engine) run multithreaded.
Scirra Founder
B
387
S
230
G
87
Posts: 24,249
Reputation: 192,240

Post » Mon Sep 28, 2015 2:15 pm

@Ashley , some of the things mentioned here and on other posts are not cookie-cutter engine features. To name a few:
1) A basic platform path finding,
2) A more accurate path finding that can be used in a grid basis,
3) A proper lighting system that is integrated with the ability to have normal maps on the same spites,
4) A masking system that allow any sprite and/or layer to act as a mask upon any other sprite/layer,
5) A text object that supports basic formatting options (bold, italic, underline, color change, size, font, alignment) to be changed within the same text, as well as some scrolling-typewriting functionality,
6) An animation timeline to create key-framed animations that can be triggered with actions!!!
7) Support for curves and curved path movement
8) A way to have any 3rd party plugins auto-update
9) To have behaviors intertwined in a manner that they can coexist and be self aware at the same time (have physics, platform/solids and sine based movements interact for example)

These are of the top of my head and I don't believe they are either niche features nor too genre specific...
composer - multimedia artist
www.eli0s.com/en/
B
68
S
26
G
4
Posts: 1,146
Reputation: 9,649

Post » Mon Sep 28, 2015 2:21 pm

Another example of what I've been talking about. Just doing shmup with my mate.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 (set to unbound scrolling), and adding solids to compensate is impossible, due to the enemies needing to fly trough the screen. Those little things matter. And no one is saying to not use events. But mixing plugns and events creates a lot of mixed resoults, as sometimes they just not compatible. Plugins need to be more feature proof and also work better.

@eli0s additional option in pathfinding to avoid selected units / integration with physics!
Last edited by megatronx on Mon Sep 28, 2015 2:28 pm, edited 1 time in total.
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
85
S
27
G
21
Posts: 1,968
Reputation: 19,165

Post » Mon Sep 28, 2015 2:28 pm

Ashley wrote:
Silverforce wrote:I'd be happy with some memory controls, load sprites into vram, unload from vram, giving the developer more control (optional) over this is required for very large games to run well on weaker hardware.

The engine already does this automatically on a layout-by-layout basis. The problem with adding more control over this is you create the opportunity for mistakes in memory handling to actually make things worse and use even more memory, or you rely too much on mid-gameplay texture loading which can cause serious jank, which is something everyone wants to avoid.

The biggest limitation I see currently is single-thread logic.

See Why do events only run on one core? The blog post goes on to detail many features which modern browsers (and our own engine) run multithreaded.


I know the engine already does this per layout, but the option to do it manually for a sprite that we want when we want it is what allows more flexibility. Sure, people can mess up if they don't know how to use it, but that's a poor excuse to not have that level of control at all.

I'll give you a basic example of the jank that people notice in C2 games. When a layout is changed, everything prior is flushed to gc, a new layout is started, sprites are spawned etc, but they are spawned fresh when called in the first time in that layout, so creating a big sprite or one with many frames cause a visible stutter. Why? Because it has to be loaded from HDD and as its not present in vram.

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.

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

It's up to you guys for C3 if you want to be part of the big boys or not, its bluntly put but that's reality, I see it all the time when devs talk about game engines and compare them on forums and reddit. I regularly defend C2 on r/gamedev! Single-threaded on JS which incurs extra overhead is a limiting factor. Most C2 users wont ever hit that ceiling but it's lower than other engines and much lower than big engines that support multi-core CPUs well. So it's a question of how grand do you want your engine to be capable of?
B
70
S
24
G
19
Posts: 1,757
Reputation: 17,614

Post » Mon Sep 28, 2015 2:49 pm

Stuff like units pushing out of object, to be used in games like rts or hack and slash etc.

- what if you use something like Spring RTS engine uses? each unit has it's own thread and a bit of time (yes it's really cpu dependant, but still around 1000 units runs pretty well, maybe even more, since i've done some games in spring). (i know spring RTS uses lua for scripting but.. )
Sea Monsters template - Isometric
Also includes 40 pages PDF of optimizations and "how-to" for your games, and how the "sea monsters" template was built. Follow link for details :)

sea-monsters-templates-and-assets_t162705
B
41
S
14
G
12
Posts: 623
Reputation: 9,359

Post » Mon Sep 28, 2015 2:55 pm

Everytime when I see post like that instantly I'm seeing UE4 blueprints in my head. There is really no point to compare epic to scirra (hundreds of hands vs only few couples) but they have nice system with object blueprints and level blueprints working together.
So maybe this is a thing worth do some tests. Not only to make events more clear - you could have object events on objects only and everything else on level events, but maybe level events could work on 1 cpu and objects on another etc.
And on the other side this kind of system have more sense, at least from my point of view. Even for beginners who tends to make one huge and messy event sheet with everything on it. "Double click on sprite to add some logic to it" feels more natural and most engines are using similar approach. You don't make just one text file full of code for entire game to compile.

But I'm just a user, so I'm just saying what I see xD
ImageImageImageImage
B
157
S
64
G
41
Posts: 2,590
Reputation: 34,640

Post » Mon Sep 28, 2015 3:02 pm

In regards to advanced memory management and multi-core threading, I think it would be cool, but first the basics need to be nailed down.
Last edited by megatronx on Mon Sep 28, 2015 3:19 pm, edited 1 time in total.
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
85
S
27
G
21
Posts: 1,968
Reputation: 19,165

Post » Mon Sep 28, 2015 3:18 pm

megatronx wrote:Also, there is plenty of other weird quirks. Right now I have object that uses rotate plugin, and it is suppose to shoot every x seconds and when is in between angles. It does shoot, however the projectile with bullet behavior only moves at 180 degrees instead, even thought of having the angle of motion set to spawning objects angle. What to do? Sorry to say, but this is irrational.


Use set angle on your projectile rather than set angle of motion. There's a few things like that which once you figure it out, it's understandable why.

Let me take a screen from my own example, I hope it makes sense:

https://halfgeekstudios.files.wordpress ... /09/00.jpg

Image

It's a shotgun, 8 round blast in a cone from the gun.
B
70
S
24
G
19
Posts: 1,757
Reputation: 17,614

Post » Mon Sep 28, 2015 3:20 pm

Silverforce wrote:
megatronx wrote:Also, there is plenty of other weird quirks. Right now I have object that uses rotate plugin, and it is suppose to shoot every x seconds and when is in between angles. It does shoot, however the projectile with bullet behavior only moves at 180 degrees instead, even thought of having the angle of motion set to spawning objects angle. What to do? Sorry to say, but this is irrational.


Use set angle on your projectile rather than set angle of motion. There's a few things like that which once you figure it out, it's understandable why.

Let me take a screen from my own example, I hope it makes sense:

https://halfgeekstudios.files.wordpress ... /09/00.jpg

Image

It's a shotgun, 8 round blast in a cone from the gun.


Thanks. But I figured out it was due to collisions being turned off! So collisions need to be turned on, otherwise bullet just goes at 180 degrees if another object is pinned to it.

Anyway, don't want this thread to turn in to "how to fix it" kind of thing. ;)
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
85
S
27
G
21
Posts: 1,968
Reputation: 19,165

PreviousNext

Return to Construct 2 General

Who is online

Users browsing this forum: Brendan2007, Yahoo [Bot] and 4 guests