Skip to content
This repository has been archived by the owner on Jun 1, 2022. It is now read-only.

is ecsy dead? #279

Open
grefrit opened this issue Feb 24, 2021 · 10 comments
Open

is ecsy dead? #279

grefrit opened this issue Feb 24, 2021 · 10 comments

Comments

@grefrit
Copy link

grefrit commented Feb 24, 2021

No description provided.

@jerrygreen
Copy link

jerrygreen commented Mar 5, 2021

Would not be cool if it is :\
I found it real cool

@simonihmig
Copy link
Contributor

Kind of a duplicate of #262, though that issue also does not give us a clear answer. 😕

@jerrygreen
Copy link

I just started a blog, and wrote a couple articles about starting game project with TypeScript:

In first article I'm starting an ECSY project, and in second I'm getting rid of ECSY part 😂

Spoiler: official sample project performs much better now without ECSY. I indeed thought ECSY is cool, but soon figured that's not ECSY is cool, that's ECS is cool

@iaiayou
Copy link

iaiayou commented Jul 6, 2021

I just started a blog, and wrote a couple articles about starting game project with TypeScript:

In first article I'm starting an ECSY project, and in second I'm getting rid of ECSY part 😂

Spoiler: official sample project performs much better now without ECSY. I indeed thought ECSY is cool, but soon figured that's not ECSY is cool, that's ECS is cool

please, can you provide the first article whole project or github address? thanks~

@jerrygreen
Copy link

please, can you provide the first article whole project or github address? thanks~

There’s none.

But what did you expect to see there anyway? ECSY project sample / boilerplate, with all the libraries included?

@iaiayou
Copy link

iaiayou commented Jul 6, 2021

please, can you provide the first article whole project or github address? thanks~

There’s none.

But what did you expect to see there anyway? ECSY project sample / boilerplate, with all the libraries included?

I use typescript+escy, has some warn problem by ts. the comp type is always wrong, why?
eg:
class ContainerComponent extends Component {}
ContainerComponent.schema = {
cubage: {type: Types.Number, default: 0},
};

const comp:any = entity.getComponent(ContainerComponent);
const {cubage} = comp;

@jerrygreen
Copy link

jerrygreen commented Jul 6, 2021

@iaiayou uhh, I don't remember exactly, but I, too, remember some troubles with types in ECSY (I didn't like the types). That's part of the reason why I ended up with my own ECS implementation

@dumblob
Copy link

dumblob commented Jan 10, 2022

@jerrygreen couldn't find your ECS-inspired project on GitHub - do you still develop/maintain it?

Btw. feel free to take a look at advanced yet minimal ECS for JavaScript: Polyphony.

@jerrygreen
Copy link

@dumblob I am, secretly*, continue developing the thing, it changed a lot but the most important: I'm still not entirely happy with it to ship to the masses.

A lot changed since back then, for example I now use Svelte instead of React: still, it has react-ish look, very simple to design interfaces (unlike any gaming frameworks), but it has much more lean code than React (I have to admit it, even though I've spent many years developing with React). I also use Tauri to be able to ship the game for desktops (instead of Electron, so the total executable size is small). I made my own AssemblyScript loader, so I can load AssemblyScript directy from files without any other "glue"-code like WebAssembly.instantiateStreaming(...), just as lean as any other function I'd import from JS/TS, like this:

image
(Svelte code; you can see the imported code is WASM/AssemblyScript, you can say this by the shown types)

What's also important, I try not to just build some game engine in vacuum, but I am also in the process of designing my own game (medieval-fantasy rpg-rts). I can barely say I've even started actual "game" code: only the engine code. Because apart from the engine, I'm spending time to many other things: making Design Doc (I rewrote it few times from scratch already), the sketches, designing UI, making PRs or filing issues to other related libraries, and I also spend a lot of inspirational time too: I am re-playing many games I've played early, which inspired me to make a game in the first place (because initially I'm more a software dev than game dev, and most of my professional work I spent on software other than games), and many other things like tinkering with UDP in web tech (it doesn't seem UDP is hugely used in web-based games, though it is technically possible... just unpleasant). So this engine I'm coming up, - still doesn't look to me to be ready for the masses. Particularly, I want this engine to better support client-server architectures, with dedicated servers, while as of now I mostly have spent time on client-side yet, and server-side is poorly supported and needs more thought.

Also I'm in doubt in overall if I should release this engine or any libs without an actual game. I would like the idea to be my own first customer of my own tool, and if I release the engine without a game, this fact will quickly become untrue and make me feel bad in many ways.

Last but not least, I am doing it all just by myself, no any hidden team behind, so the process takes real real long time, I don't even have a grasp on estimation of when any of it will be ready. Just doing it for fun in spare time. Not to expect any github project links anytime soon, unfortunately... And sorry for so much text, too.

* I mean not entirely secret of course, but at least I don't advertise or talk about this a lot. But yes I am working on it.

@dumblob
Copy link

dumblob commented May 15, 2022

@jerrygreen that sounds promising one way or another. Keep me posted, thanks!

Btw. if you'll find a few minutes, feel free to check out the Polyphony ECS system - it's a very good source of inspiration (see also discussion regarding "what could be done better").

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants