TheRealDannyyy's Forum Posts

  • Hi guys I know most of you have had many problems with NW.js and are getting fustrated. I was wondering if anyone has used alternatives like this Electron ...

    Don't get me started with NWjs issues, I constantly hope for updates that fix bugs and don't add new ones.

    Any bug that I experience mostly gets blamed on chromium/nwjs by Ashley and in return they are blaming it on the game engine, leaving me in an endless loop with nothing but frustration and literally no progress being made. (I end up with dropping the feature for 90% of those cases...)

    I think for 2016, Electron beats NWjs in a lot of different factors but see and judge by yourself HERE.

  • We have a method to help with bottlenecks on large layouts with many static objects.

    I believe you mean "render cells" right? In any case I guess I will use that on my static background layers, I have 3 layers in total with different parallaxes for the illusion of dept. I hope that parallaxing doesn't turn the essentially static layers into a dynamic one or does it?

    This is kind of pointless cause everything that is not visible on screen is not rendered, so setting a layer to invisible for objects that are not rendered have no point at all.

    What exactly does this mean though?

    For my understanding this would mean that C2 games load content like the old Super Mario games did?

    For this one i think you are over complicating things a bit. All you have to do is store important stuff in arrays, dictionaries or whatever - which are global objects

    There are a ton of instances and things that I have to consider though, besides the fact that I also have to sync it up on the connected peer.

    I think for me this would be a pain to do, I'm not really good with "predictive" eventing that contains content from a lot of different instances.

    My game can only use solution 3, as it is a big game world with an emergent "ecology".

    There are some "persistent" objects which are destroyed / recreated based on camera position (happens on a timer, i carefully tested the trade-offs).

    All in all, if you know how to use timers and don't exceed with webgl effects, the main issue is number of objects, as we all know...

    quote]

    #2 is the safest method but you lose your "world reference" - you have no idea where each layout is connected so you'll have to draw out your map beforehand.

    Sounds like #1 and #3 are just dynamically loading portions of the layout based on zones. This is what I do in the Metroidvania Game Kit and other projects. This works fairly well and performance is nearly identical to having each zone a separate layout. Managing all the objects can be troublesome later on but I'll take that over managing 100+ layouts with independent layers and properties any day. Only drawback is like you said - the layout sizes will be pretty big. Loading times could blow up on larger maps or games with large graphics. Also you'll probably want to destroy objects and use "recreate initial objects" for unloading/loading instead of just setting their opacity to 0 or whatever like you mentioned.

    My background layers are static as mentioned before and I'm also not using 100 different building/tree sprites, I'm rather re-using existing ones and randomize the frames. So my background does always look different but I'm going a little off topic with this. Also the only weblgl effects that I'm using are bound to a layer that is on top of all others, "outline" and a bit of "noise". I think this was the recommended method, instead of applying the effects to each sprite individually.

    From a gameplay standpoint I would also chose to use system #3, not only because it's easy for me to do but also because I think that gameplay wise it would be better to have a giant game world instead of multiple smaller ones. I think that my player base would complain about the 5-10 sec. loading times, if I would use separated layouts.

    My question is, how could I handle the loading times well? As far as I know C2 doesn't offer any "loading screen" feature, so this would mean that each time when such a giant layout has to be loaded in, it would display a black screen for about 10 seconds or even longer. I believe that a lot of players would think that the game crashed when waiting over 10 seconds for a layout to load it.

  • Introduction + Minor Request

    Hello there, before fully going into this, I would like to advise everyone that doesn't know anything about this, not to post on this topic!

    I don't mean this in an offensive way, I just want to avoid posts like "I want to know this too!", which tend to make topics like this unnecessarily big.

    Reason + Short Explanation

    This topic is meant for opinions on how to handle large "game worlds" (also knows as "game maps") and their impact on performance.

    For this purpose I've made a poorly drawn example of a typical game world.

    Game World Example (with sections named as "layers")

    Game World System #1 (Layer Based Loading)

    This system would be based on the current players position on the world.

    The layers would have world borders, which would detect on what part of the world the player currently is

    and unload* all other layers that are not next to the current layer.

    *with "unload" I mean setting the layer invisible/opacity 0%.

    Here are some scenarios that should make it clearer:

    Player is on

    Layer#1 = Load Layer #2 + Unload Layer #3

    Player is on

    Layer #3 = Load Layer #2 + Unload Layer#1

    Game World System #2 (Layout Based Loading)

    This system would separate each layer into its own layout.

    That means when the player has reached the edge of one layout, it will have to change to the next layout.

    Using this system also means that the game has to load a whole new layout and pass all the data

    from the previous layout over to the newly loaded one (e.g. last enemy positions, player state and many more).

    Here are some scenarios again:

    Player is on the

    right edge of the layout named Layer #2 = Go to the separated layout named Layer #3

    Player is on the

    left edge of the layout named Layer #2 = Go to the separated layout named Layer#1

    Game World System #3 (Full One-Time Layout Loading)

    This system would be the easiest to setup and basically have every layer loaded as a whole, inside one single layout.

    This also means that the layout will have a giant size of 100.000 or more.

    You could take this system as a lazy version of System #1 but without changing any visibility/opacity and only one layer.

    Conclusion

    Please note that my game is a multiplayer game, if that matters in any kind of way.

    The game also uses HD sprites which could drastically increase layout loading times.

    Which system would be the best performance wise and why?

    Please share your opinion or suggest better systems below.

  • What in your opinion should be the steps after you finalized your game (or even before)?

    what do you do next? what do you think is the path to get it most noticeable?

    But what would be your personal steps?

    Polish your game even further, there is always room for major or minor improvements.

    Then depending on your target platform you should focus on finding the right distribution platform.

    While on mobiles you pretty much only have the option to use the official stores, HTML5/Web distribution has a variety of options like:

    • Steam (Mostly used for desktop games [NWjs], recommended for "bigger" games.)
    • Itch.io (Platform with many users, mostly mature "Let's Players", also great for game testing.)
    • Gamejolt (Platform with many users, mostly below the age of 14, good for game testing.)
    • Kongregate (Platform with a good amount of users, official C2 support included.)
    • Facebook Games (A lot of users, official C2 support included.)
    • Newgrounds (Platform with a good amount of users, mostly below the age of 18.)
    • Scirra Arcade 2.0 (Official C2 support, still in BETA and a bit buggy sometimes.)

    These are not all platforms, just the ones I know and I've tested.

    Generally polish your game+webpage as good as possible and try to add custom features based on what your distribution platform has to offer.

    People want to play unique and engaging games, so try to do something by yourself and don't steal the idea by someone else.

    Feel free to ask for more help if you have any questions left.

  • I don't know how you guys feel about this but I think it would be a good thing to call Ashley here and listen to what he can tell us about this.

    It's just that I'm also going to launch a game on Steam sometime next year and I personally wouldn't like to deal with additional "workarounds" just to fix issues caused by NWjs.

  • THIS might help you out and give you a general direction on how to create a menu for keybinds.

    Please note that I didn't make this example, so I cannot guarantee that everything works as intended.

  • Has anybody had any problems with their C2 games not working/showing in Steam Big Picture mode?

    What exactly do you mean with "problems"?

    Do you experience a crash, does it start at all, if you receive an error message what does it tell you?

    Please provide more details so I might be able to help you, if it's really related to Steam.

  • ... You should also be able to select multiple sprites at once and delete multiple sprites at once, both from the object bar and project bar.

    I totally agree with that. I'm someone who uses a lot of sub-folders and generally deletes or moves a lot of objects around, one by one.

    This gets even more annoying when the project bar is automatically scrolling up, forcing me to scroll down and select the next object for each change.

    I guess that Ashley blocks multiple picking for technical reasons but C3 should definitely bring changes to smaller quirks like these.

    I don't know much about how the bar systems work within C2 but if you'd allow me to suggest something.

    I think a "locking" system for the object and project bars could improve this.

    By "locking" I mean blocking certain features for those tabs so that you can only delete or move objects while it is locked.

    This would ensure that nothing else can be done, which could possibly lead to some sort of project corruption.

  • Okay, thanks for your answer.

    Hmm.. How about a plugin? Maybe can work with this way. I don't know, to activate a "fake" action, whatever.

    Maybe inside "Browser" plugin there is a line for this, to modify....... Just a thought..

    It's a browser limitation nothing can be done about that, it's all up to the browser vendors as far as I know.

    You could do a classic startup menu where you'd ask the user to "press any key" or "tap the screen" to continue.

    If you want my opinion about this, I would never try to force fullscreen mode.

    I would rather start in windowed mode and add an option to toggle it on demand.

  • I had something like that while using C2 on my laptop too.

    You should try to "reset dialogs" in the preferences, that fixed the problem on my end.

  • I've set it to 15 inside my game, C2's collusion checks work fine even on lower framerates for the most part.

    The only problem with skips is when the framerate isn't stable and drops extremely fast, for example when creating 1000 sprites at once.

    I also recommend to use dt in all of your movement based events, that seems to help with this issue as well.

    You cannot say me saying Android,IOS, and Windows section is equal to "bug section" that honestly thats straight BS and got me mad cause your excuse for a lie is worst than the actual lie. A bug section is a bug section and an Android section is an Android section.

    ---

    "...android section looks like the bug report section go look"

    For me this looks like you just wanted us to add insult to injury.

    Sorry to say the following but I don't want to go on like this.

    You seem to misinterpret a lot and go full on defence mode about any kind of criticism about C2.

    If other community members want to add something to whatever you aim for with this topic, they can feel free to do so.

    I don't want to spend my free time discussion about things that you misinterpret.

    ~Have a good day, I'm out.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads

    You insult me by straight up you lying saying that I posted the bug section of Unity

    Where is the insult?

    Yes I cut down the words to "bugs section" because you are clearly aiming for bugs with this topic, even the title says that.

    I did never say that you are a "liar", nor did I ever personally attacked your opinions in any way.

    4) Yes if your making 3D games go to Unity. But for 2D games I am saying Construct 2 runs faster than Unity.

    If you know that C2 games run faster than Unity, why do you need examples in the first place?

    In my opinion native apps will always run better than wrapped ones, however that doesn't mean that wrapped games are necessarily worse performance wise.

    We're currently in a time were wrapped games run acceptably well, that you can almost feel no difference to their native competitors anymore.

    I would like to ask you one more time to turn down and be less "passive aggressive" about this, I'm just trying to bring some more general arguments about C2 and Unity.

    If you are as passionate in looking for examples as you are here with commenting, you will surely be able to make a Unity 2D game and do measurements by yourself.

    Share the results if you please.

    Ok lets break this down simply.

    1) I didn't post to the bugs section of Unity

    ...

    Come down from your high horse buddy, no need to be so salty about this.

    This is pretty much the proof that you aim for a battle here and don't want to talk in a polite/non-insulting way.

    I made comparisons and gave fair arguments, I did never "fight" for anything here.

    I said it might be what you were looking for, I don't want to do the work for you.

    You should be able to find some 2D games on the overpopulated marketplace, if you need practical examples to win the "fight" that you are clearly aiming for here.

    To make it clear, both engines have their ups and downs and what you prefer is up to you.

    If you want to go on discussing, I'm up for it but please explain me the way that you were heading with this topic, so I can adapt and discuss about what you were aiming for.

    No what you did was a rant haha. I posted links to show what I was talking about and kept it short. Ok well help me then I want you to find a mobile unity game that came out this year that has equal amount of onscreen action as the Android game I made. The game I made is in my signature, it has 25+ enemies onscreen plus explosions with no slowdown. Go find a Unity Android game right now that has that and then we can talk more.

    There are a ton of 2D/3D Unity games that run better than Construct 2's 2D wrapped games on the market (I found THIS list which might help with practical examples).

    Besides the obvious event/code optimizations which affect performance, Unity's native export is easier to handle and runs better, propably because it doesn't have to do all the additional work that a wrapped browser game has to do. (I don't want to start a Native VS Wrapper discussion with this argument.)

    The only thing that bugged me out were your arguments (opinion or not), that are so vague and only seem to target the bugs section of Unity.

    I don't really want to discuss about what's better since this would be the 4th (?) topic about "which engine is better...", which wouldn't differ much from the previous ones.

    I mentioned everything in my previous post and you could take that as a fair comparison.

    I personally think that a topic with a pretty clickbaity title "...C2 is way better", isn't fair without proper comparisons.

    It just feels like that this would go the way of people fighting for which game engine they like more.