msecret / aronnax-deprecated Goto Github PK
View Code? Open in Web Editor NEWA JavaScript game engine that isn't necessarily more special then the rest.
License: Other
A JavaScript game engine that isn't necessarily more special then the rest.
License: Other
Rather the a test value like 'itemA' do a value like 'testItemA' so you know what the test data is.
Objects such as entities and maybe even particles should all be ID'd. This could maybe come in the form of a mixin class or an inherited class. There will also need to be a static property or class to correctly increment the id numbers.
This could be useful in hashing and linked list data structures. The linked list data structure could keep a hash table of the objects and ids for quick and easier lookup. The linked list class should still be available to take vanilla objects, so it should only be extended for ID'd objects.
The pools could be set up at the beginning of game load.
One grunt task should only build essential things
Another grunt task should do extra things such as building docs, etc.
See src/logger line 108 for instance where global config is needed
Functions still missing:
This may include changing the directory structure
http://www.bdoran.co.uk/2011/11/28/introduction-to-googles-closure-tools/
The logger test is using the real window.console and actually outputting. Using mocks to changes this so it doesn't actually log would be much better.
Currently, when an object is returned from a pool, it's an empty object and has no prototype. It should have it's prototype set to the base classes prototype, so that only the instance specific properties need to be copied over. This will help with performance. The main properties of the base class should not be extended by copying though they should be on the prototype.
This will be done with jsdoc3:
https://npmjs.org/package/grunt-jsdoc-plugin
This will most likely be done with benchmarkjs: http://benchmarkjs.com/
There is a grunt task for benchmarkjs but its only supporting grunt 0.4.0. It still could possibly be modified to work for grunt 0.3 but might require more work then just writing a new task.
https://npmjs.org/package/grunt-benchmark
This will allow some of the static methods that are called on the Pool class to be called on the Pooled prototyped object.
This makes it useful for testing and other functionality.
Google Closure:
There are some complications with setting up the correct folder directories: Google closure wants files to be saved all the the same directory as closure. I want closure to be in a separate lib directory. This article explains a solution to this:
http://www.bdoran.co.uk/2011/11/28/introduction-to-googles-closure-tools/
The closure builder and dependency management tools should be used. Using the grunt closure tools plugin is probably the best way to go. This will be switched out from current closure task:
https://npmjs.org/package/grunt-closure-tools
The deps range of modules are all dependencies that are being injected into the system at various points. Currently they are being configured on an individual basis in the requireJS config for only one environment. Modify this so that the configuration for them is in a separate json file based on environment so they can be switched around with relative ease.
Keep an internal length property for the Linked list. All add and remove functions will manipulate this.
It could either hook into javascript throws, or it could be called directly and it would pick how errors are handled. Could have multiple options for how much it reports.
Currently the log writer dependency is set on the static logger class, rather then the individual log objects which actually use the logWriter.
The interface will be something like this:
NewObject.make(params);
Array.make(params);
So there will a new function that gets added to any constructor that will receive the new functionality. It would be nice if this function augmented the base object so this make function would not need to be created any time it inherits from Pooled.
Another decision is if the object should use mixins or other inheritance.
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.