g--o / jscf Goto Github PK
View Code? Open in Web Editor NEWJavaScript Canvas Framework
Home Page: http://g--o.github.io/web-JSCF/
License: Apache License 2.0
JavaScript Canvas Framework
Home Page: http://g--o.github.io/web-JSCF/
License: Apache License 2.0
Physics engine, Rigidbody, Scene and Game aren't synced on tick_update vs. update methodology.
Delta time should be configurable at runtime and callbacks should have update vs tick_update.
Should be as follows:
These should allow customizability again, as manual update/render should be non-relevant as JSCF becomes an engine rather than just a library, as well as it's editor, which perhaps might be usable for meta-editing.
Documentation is lacking to say the least. We need to move from looking at source code to a page or two of API and explainations.
Making an auto fit for entity's dimentions via container component.
Simply set dimentions of fixed name background graphic renderer of the default container to the dimentions of the entity (automatically returns the largest/encapsulating dimentions).
Relevant source: gui.js
To make ui as simplistic and performant as possible we'll change the default theme to a flat one
Adding an existing web code editor to be combined with the editor (essentially meta-program).
Will allow to edit the game scripts and save them to disk. Will update engine as well.
Right now considering:
Note: Should work client-side only, AND work offline (beware of chrome cross origin stuff).
We need to consider wether or not to use existing code for layout management and either way - getting it up and running already because as of now all elements are centered and any repositioning is done manually.
Relevant files: gui.js mostly.
Right now even after deleting the owning entity, a textbox will still be invisibly active. This has to do with cleaning up after using CanvasInput textbox.
Probably we need to call Textbox.Destroy()
in an elegant way.
Implement friction in the physics engine.
Relevant source files: physics.js, rigidbody.js
Rename Entity -> GameObject
Rename PhysicsEngine -> JSCFPhysics and allow physics engine selection
Basically using a paradigm of inheritance via:
function child_ctor(...) {
parent_constructor.call(this, ...);
// actual initiator
this.init = function() { ... };
//...
this.init();
}
The problems considering this option are:
nope
We need to integrate JSCFEditor from external repo.
We can might want to use git-submodule
assets viewer, including sprites.
drag 'n drop (external lib allowed)
simple and easy.
Visual controls of assets.
We want an inspection panel that will be updated with selected entity/component/object.
This is a huge step to making the engine more comfortable.
We can use the rectangle editor component for selection. (might want to add treeview later)
For now, we need help planning this out, and later on we'll make an implementation issue.
A resolve method that is type aware of other collider, and invokes the resolver.resolve if compatible.
Files: Components/Collider.js
moved to discussions.
To improve performance we need to use better scene management techniques like spacial trees.
A simple suggestion would be having a QuadTree to speed things up.
Implementing it without breaking other modules would be a great achievement.
Relevant files: scene.js, sceneManager.js and maybe entity.js.
Good luck!
A decision has to be made: Are making Transform a component as well? Or do we keep it a property of Entity?
Let's discuss!
Fixing stop() when using dynamic update() + render().
Need to set flag to call ClearTimeout().
Right now we've got linear momentum worked out but we're missing angular momentum conservation.
Relevant files: physics.js, rigidbody.js, components/collider.js, aabb.js
Seems like code conventions aren't as strict as they should
Differentiate member naming vs. function naming to solve the issue
Right now it's a property, but we'll want it to be a component.
This will create dependency between components but entity should be free of properties that aren't part of it's definition.
createEntity() will not add transform.
createGameObject() will.
Notes on the decision:
While a lot of engines might force you to keep the transform component, I suggest entity to be an abstract thing, that can exist without any definite location.
Since the core principal of the engine to begin with was extendibility - custom types and scripts can be made only if the entity is abstract as to allow to override update & render, but still provides hirarchy.
When the javascript inheritence concesus will arrive (issue #8 ) we might have actual Game Object that inherits from the abstract entity.
We need to add rectangle editor removal from all entities on toggle
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.