joafalves / Gibbo2D

All In One 2D Game Engine
Other
31 stars 10 forks source link

Proejct is dead. #22

Closed darkhog closed 6 years ago

darkhog commented 7 years ago

Severity: CRITICAL Status: Probably WONTFIX

Jokes aside, there's no good C# 2d engine with such good tooling as this is. Shame this one died because of the uncaring parents (a.k.a. Gibbo's developers).

joafalves commented 7 years ago

aha!

Gibbo2D had a good run đź‘Ť

But to be fair, it wasn't completely discontinued, it's evolving into something else :)

We are working on the Gibbo2D successor, a project named Scarlett Game Studio (a multiplatform game engine)! You can check more information on the following links:

https://github.com/scarlettgamestudio/scarlett-editor https://github.com/scarlettgamestudio/scarlett-framework https://github.com/scarlettgamestudio (github project main page)

Apidcloud commented 7 years ago

Just a heads up. We are also planning on using Typescript in the future.

darkhog commented 7 years ago

TypeScript? Type, fucking Script? as in language that is actually WORSE than JS? Not as bad as CoffeeScript is (which has same brain-dead syntax principles behind it as Python), but ew...

I wish you'd rather stick with C# or use some sane scripting language like Lua (that is also faster than JS, especially LuaJIT) and, by extension TS (which compiles to JS).

Apidcloud commented 7 years ago

The scripting language itself can be changed (as long as there is an available transpiler - e.g., Lua2JS), but the underlying tech would still be the same. To be honest, I wasn't really a fan of JS, but at the moment it is probably the best (or fastest) solution to achieve a cross-platform editor while keeping it highly customizable (XAML allowed that in Windows only), as well as target browsers, mobile and desktop without the need of translating the whole framework.

darkhog commented 6 years ago

Most compatible!=best && most compatible!= fastest.

Windows is very compatible (I can run viruses from mid 90s on win10 in my ex house and have done so in the past after she broke up with me) which makes windows definitely not the best system. And despite high compatibility (or rather because of it) Windows is slow after it's installed for more than a year, not to mention "game mode" in win10 destroying performance of games.

Lua is better and browser gaming is on the way out. There's a reason Kongregate branched out into mobile and now desktop publishing (by the way, mobile games have a lot in common with flash games, design-wise).

Mobile/Linux/OSX can be targeted with Mono or .NET Core. Which is way faster than JS and way better as a language. Mostg gamers I know don't give a rat's ass about playing games in a browser, not anymore. Browser gaming was popular... in like 2008. Get with the times.

Apidcloud commented 6 years ago

Precisely. I meant both best and fastest in terms of compatibility or amount of work required to accomplish such thing.

Back when we were about to remake Gibbo2D (there was a prior versions built on top of windows forms), Mono wasn’t what we were looking for in an editor (i.e., customization) and we picked WPF due to XAML. There wasn’t .NET Core, which made C# in Mono not that appealing.

I heard some rumors about using XAML with Mono, but even if they were true, .NET Core would still need to be a multi platform mirror of .NET (which, last time I checked - 1 year ago give or take - was not the case. Not even close back then).

Using such technologies now would require, once more, a complete remake of Gibbo2D. It’s not that we didn’t think about it back then. It’s just that the technologies weren’t there quite yet. Heck, we could even use Docker now! How cool would it be to do so some years ago?

Jokes aside, we might give it a go one more time in the future, but for now we are betting on a more direct approach which - wanting or not - is accomplished with JavaScript. I hated JavaScript when we started. I still prefer C# a million times over it. That’s not the problem.

Our decision was precisely based on getting with the times, where JS (Node) is mainstream. Love it or hate it, that’s how it is. I don’t think speed or the language are an enough deciding factor in our case.

Finally, browsers weren't our first bet nor a deciding factor or requirement, but they are within reach due to this approach.

joafalves commented 6 years ago

In addition.. you would be surprised how well WebGL behaves. We have done some benchmarks using Monogame vs WebGL and we got much better results in the later. You can also compare known benchmarks of WebGL vs common technologies & frameworks (for eg. PlayCanvas vs Unity). Heck, we are getting 3x~4x more performance on Scarlett than on Gibbo.

It all comes down on how you use the technology, WebGL per itself is a quite stable, reliable and performant. In the end we could not find a strong reason to keep using native technologies. We know that the web environment isn't perfect, but none is.

Also, http://webassembly.org/.

joafalves commented 6 years ago

Scarlett also takes full benefit of ES6 features and you can use classes on scripting. Example:

    class BaseInput extends Script {
      constructor() {
        super();
        this.myVar= "abc";
      }
    }

    class PlayerInput extends BaseInput {
      constructor() {
        super();
        this.speed = new Vector2(100, 15);
      }

      update(delta) {
       // Todo: handle movement
      }
    }