Comments (10)
Would not be cool if it is :\
I found it real cool
from ecsy.
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
from ecsy.
@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.
from ecsy.
@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:
(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.
from ecsy.
Kind of a duplicate of #262, though that issue also does not give us a clear answer. π
from ecsy.
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~
from ecsy.
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?
from ecsy.
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;
from ecsy.
@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
from ecsy.
@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").
from ecsy.
Related Issues (20)
- Expose `getEntityByName` in `World`? HOT 1
- Fix stats for ecsy-devtools HOT 1
- Adding automatic system execution order using a system graph
- TypeScript: improve ComponentConstructor type
- Improvement: TypeScript tests
- Improvement: Inferring schema types on Components HOT 3
- typescript: TypeError: c.getName is not a function
- creating a new Entity copies over any values from Custom Entity class
- Integrate version.js in the build system
- [QUESTION] Project status/outlook HOT 9
- Is there any way to inject service in System or World? HOT 1
- Assigning default value for Ref type in a schema can cause sideeffects
- Babylon.js ball example seems a bit broken
- Feature request: Support multiple components of the same type per entity.
- Typescript - Mandatory field is not present on the SystemQueries interface
- Class constructor System cannot be invoked without 'new'
- Clear system resource after Removing a system HOT 1
- The removal queries can react pooled entity when removing entity inside system
- TypeScript: Generic type 'Component<C>' requires 1 type argument(s) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ecsy.