Tags: srepollock/divine-engine
Tags
Version 1 (#106) * Building, unit testing, some base files Changes: - Setup base project files under `./src` - Setup Rollup bundling to Javascript as ES and CommonJS file formats - Using unit testing from Typescript files instead of the Javascript files; maybe look at this later - gitignore and npmignore files setup Issues: - No unit tests yet - No engine running yet - Very touchy for the type of module loading I'm using; need to look into different module loading Comments: - Need to look into CommonJS vs ES vs AMD module loading - For my project, should I look into building this just as a web app, or look into building this to an Electron application as well? - I have a lot of devDependencies, is there a way to start cutting these down? * Documentation building and compiling issues Changes: Added in documentation building with the 'npm run docs' command. Going to continue adding scripts to build the project, as I will eventually need to add in additional build steps for running the engine. Also updated the Rollup bundler to use Babel to compile from the projects target modules ESNext to CommonJS modules for consumption. This threw errors when running Mocha tests. I now have an environment variable being set by the 'unittest' script for the user. Issues: * None found at this time. Comments: None at this time. * Compiling, unit testing and Rollup fixes Changes: Updated Rollup to bundle files from ESNext to Javascript. Working on unit testing the engine to test running of the engine. Going to have to redesign and configure however. Issues: * Still working on getting unit testing working * Redesign of the engine needs to occur Comments: The engine needs to be redesigned. I'm debating between a static calling of the class or a variable to hold onto the object to check. Either way, also need to get the engine and each component to work separately for testing as well. * Added new engine files and unit testing Changes: Updated unit tests for the engine. Added DObject, GameObject, Component, and FlagComponent classes with test cases. Currently debugging and working on but would like to set a save point to continue working later. Working on GameObjects currently so that I test getting developer game files when deploying the engine to a new project. This will also be tested for when the developer compiles all the typescript files and deploys. This should be compiled through the engine when running. Issues: Unit test cases currently failing, working on solutions and implementations. Comments: Still working on the base engine to get it running and off the ground. Will As soon as some more base classes are in then I will work on bundling the package and running on Electron or Angular as a test. * GameWindow and Documents Changes: Added the GameWindow class. Should this have the direct link to the canvas or should the Render system ๐ค? (I will ponder this). That said, this will be the container to the window (so maybe it should have all the udpate calls and such, but the renderer should touch it as well). Also added some documentation building to the `docs` folder now. Issues: The GameWindow class is going to take some working on to get right. Going to have to do some testing with how it will work with the render system. Comments: Add some prepublish scripts to build and deploy the documents. Maybe I can get a hook to a website for this? I don't know quite yet. Also going to have to get Travis-CI working sooner than later. Maybe those will be my tasks for tomorrow * Initial Readme Changes: Added an initial version of the readme. I've looked at other project's readmes, and this is one of the best templates I've found. Going to bulid off of it for my project. More to come and be added, but would like an initial file. Issues: See previous commit 7cc6c9a524eb1434c1d40fdaa55e55f2ec3b1c42. Comments: None * Travis-CI script Changes: Added an initial Travis-CI script to run unit tests Issues: None Comments: None * Specifying branches for Travis-CI and uploading documentation Changes: Fixed Travis file to run master and develop branches only. Also added documentation pushing and building to Github Pages from the docs folder. Issues: None Comments: None * Set theme jekyll-theme-merlot * Updated travis.yml * Added Travis-CI button None * :confused: Had to update mocha * Updated package.json and tslint Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * I finally get it :fire: Changes: The developer will need to use my engine within their project - being browser, Electron or Angular based (working on just browser/electron first). Issues: - When trying to test Electron.BrowserWindow within Mocha test, running into an error where the BrowserWindow constructor is undefined. For now I have the test not running at all. Comments: Developers first setup their own project THEN use my application within it (install or download it). Going to have to do some major revisions, but I think the best thing to do is make a diagram explaining this in a system architecture diagram. Going to have to do some thinking over the next week on how to do this, but also just need to sit down and work when I get back on it. * Contributing file added Changes: Added the CONTRIBUTING.md file to the project tree in ready to submit the first projects pull request. Issues: none Comments: none * Building files ready (#6) * Building, unit testing, some base files Changes: - Setup base project files under `./src` - Setup Rollup bundling to Javascript as ES and CommonJS file formats - Using unit testing from Typescript files instead of the Javascript files; maybe look at this later - gitignore and npmignore files setup Issues: - No unit tests yet - No engine running yet - Very touchy for the type of module loading I'm using; need to look into different module loading Comments: - Need to look into CommonJS vs ES vs AMD module loading - For my project, should I look into building this just as a web app, or look into building this to an Electron application as well? - I have a lot of devDependencies, is there a way to start cutting these down? * Documentation building and compiling issues Changes: Added in documentation building with the 'npm run docs' command. Going to continue adding scripts to build the project, as I will eventually need to add in additional build steps for running the engine. Also updated the Rollup bundler to use Babel to compile from the projects target modules ESNext to CommonJS modules for consumption. This threw errors when running Mocha tests. I now have an environment variable being set by the 'unittest' script for the user. Issues: * None found at this time. Comments: None at this time. * Compiling, unit testing and Rollup fixes Changes: Updated Rollup to bundle files from ESNext to Javascript. Working on unit testing the engine to test running of the engine. Going to have to redesign and configure however. Issues: * Still working on getting unit testing working * Redesign of the engine needs to occur Comments: The engine needs to be redesigned. I'm debating between a static calling of the class or a variable to hold onto the object to check. Either way, also need to get the engine and each component to work separately for testing as well. * Added new engine files and unit testing Changes: Updated unit tests for the engine. Added DObject, GameObject, Component, and FlagComponent classes with test cases. Currently debugging and working on but would like to set a save point to continue working later. Working on GameObjects currently so that I test getting developer game files when deploying the engine to a new project. This will also be tested for when the developer compiles all the typescript files and deploys. This should be compiled through the engine when running. Issues: Unit test cases currently failing, working on solutions and implementations. Comments: Still working on the base engine to get it running and off the ground. Will As soon as some more base classes are in then I will work on bundling the package and running on Electron or Angular as a test. * GameWindow and Documents Changes: Added the GameWindow class. Should this have the direct link to the canvas or should the Render system ๐ค? (I will ponder this). That said, this will be the container to the window (so maybe it should have all the udpate calls and such, but the renderer should touch it as well). Also added some documentation building to the `docs` folder now. Issues: The GameWindow class is going to take some working on to get right. Going to have to do some testing with how it will work with the render system. Comments: Add some prepublish scripts to build and deploy the documents. Maybe I can get a hook to a website for this? I don't know quite yet. Also going to have to get Travis-CI working sooner than later. Maybe those will be my tasks for tomorrow * Initial Readme Changes: Added an initial version of the readme. I've looked at other project's readmes, and this is one of the best templates I've found. Going to bulid off of it for my project. More to come and be added, but would like an initial file. Issues: See previous commit 7cc6c9a524eb1434c1d40fdaa55e55f2ec3b1c42. Comments: None * Travis-CI script Changes: Added an initial Travis-CI script to run unit tests Issues: None Comments: None * Specifying branches for Travis-CI and uploading documentation Changes: Fixed Travis file to run master and develop branches only. Also added documentation pushing and building to Github Pages from the docs folder. Issues: None Comments: None * Set theme jekyll-theme-merlot * Updated travis.yml * Added Travis-CI button None * :confused: Had to update mocha * Updated package.json and tslint Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * I finally get it :fire: Changes: The developer will need to use my engine within their project - being browser, Electron or Angular based (working on just browser/electron first). Issues: - When trying to test Electron.BrowserWindow within Mocha test, running into an error where the BrowserWindow constructor is undefined. For now I have the test not running at all. Comments: Developers first setup their own project THEN use my application within it (install or download it). Going to have to do some major revisions, but I think the best thing to do is make a diagram explaining this in a system architecture diagram. Going to have to do some thinking over the next week on how to do this, but also just need to sit down and work when I get back on it. * Contributing file added Changes: Added the CONTRIBUTING.md file to the project tree in ready to submit the first projects pull request. Issues: none Comments: none * Delete LICENSE * Create LICENSE * Update README.md * Update README.md * Update README.md * More templates and to-fill stuff Conventions * Electron Apps Working (#8) Changes: Tested and used the engine in an electron application. There was a major issue with the babel configuration and not properly transpiling the code to commonjs. The app now runs while creating a new Entity child called Player in the electron application and prints the ID to the console (this was in a test project and is not setup or shown here). This is good as it means the engine can be installed and used as is which is great. Now I need to work on the engine to see if it can get which platform it's being used on. Issues: * Working on electron but not Angular2 or direct HTML5 canvas Comments: None. * Fixing the documents (#12) * Fixed document building Changes: Fixed the documentation building and displaying. Will be merging this into master as well. Issues: Fixing issue #7 & addressing issue #10 Comments: None. * Updated npm version Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * Merge master into develop Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * :beer: Updated readme and package.json. Having some issues with merging and pull requests. Fixed up now * Github, core and tests Changes: Added a .github/ folder for all templates as I did not know that Github had this feature originally. Fixed up some tests, and added a new component. There needs to be some work done, but I have some ideas on how to approach next. Issues: None at this time. Comments: I will be travelling the next 3 weeks and will not be updating my code. Currently my proposal needs to be submitted again and that will happen after I am back from my trip. This commit is to make sure that all my work the past 2 weeks (not that I touched it much after the first day) is saved. * Engine Running Changes: The Engine is now running. I have put in prompts to ensure that it can run in CLI. It runs out of sync as there is only the one system at the moment, but works. Issues: None. Comments: None. * Updated TSLint to run with TravisCI Changes: Travis CI now checks for TSLint to come back with no errors. Issues: Addresses issue #9 in the project. Comments: None. * :relaxed: Finally got a message system that works. I have installed a local npm file called tsuml that works by creating a UML of my project from a command line. Run tsuml --glob ./src/**/*.ts to create it * :beer: Message system working. Need to run more tests before fully complete. Need to look at reconfiguring the engine to make sure the system is using the message system and run more tests. * :zzz: Updated message system tests * :panda_face: Message class tests complete. Will work on implementing the system tomorrow * Many fixes to the system and tests. * Changed the DOjbect structrue and updated tests to reflect changes * Updated the Entity structure and changed the test file to reflect the changes. * Removed gamewindow test (not at that stage of the project) * Removed message test; merged into messsagessytem test * Removed system interface * Updated issue template (addressing issue #22) Current issues * #21 * #17 Still working on this commit. Will upload when complete. * :skull: Fixed some tests * :sweat_smile: Working on npm audit issues with the project * :skull: * :confused: Don't know where I want to setup my client for the engine. This will need to be pondered. I also am having an issue on how to setup the game loop. Should it be a web worker, or run on the main UI thread as it should be dependent on it for timing. Will be thinking this over for a bit. Tests currently fail. Consider looking at the game loop. Should I be utilizing my message system more? * :sleepy: Removed unecessary node modules * :beer: Working on a lot of changes. The engine will have to be redesigned for connecting with the GameWindow, scenes and Electron, Browser * :-1: Not working, changing to Windows * :-1: Still not working. Going to try a new implementation * :moneybag: -m Currently npm test is not running. Made issue #24 * :tired_face: Still not working, but here is my up to date file * :fire: Adding changes since last commit * :sweat_smile: Fixed tests compilation with help from @loganfsmyth on the Babel slack * :+1: Added Istanbul test coverage to the suite * :-1: Falsifying 2 tests to check if Travis-CI is working * :beer: Changed tests back to what they should be * :panda_face: Testing DOM with Puppeteer * :panda_face: * :zzz: Document is undefined still. Cant get it working and Im sleepy. Bed time! * Puppeteer working, Divine global and Document aren't Changes: Puppeteer has been added to the Unit Tests to check UI and in browser variables of the engine. So far Divine is "undefined" but that is what I'm working to fix. New tests can be run with `npm test` and `npm run-script unit-test` as Istanbul now gives a coverage mapping as well. Mostly build tools were added in this commit. There is lot's of debugging to come. Issues: * "Divine" must be a global variable in the browser scope * GameWindow is still not being populated as "document" is undefined. Comments: [Other general comments you wish to add] * Puppeteer, Rollup and Modules Changes: Puppetter has been added to the project for Chrome testing. This will allow me to check and see if the "users'" application is running in the browser. However, as much as I would like to continue this right now, I am not having the best time with it. Therefore, I am moving on to another part of the project, the renderer. Rollup was previously spitting out the wrong formatted files, that has been fixed to UMD and ES modules (named accordingly). Issues: * Puppetter not working. After this commit, the tests will be turned off until I return to them. Comments: This has been a long time working at this, and needs to be put aside until I can find some help in the matter. This will be saved on a separate branch labelled "feature/puppeteer" * :runner: Fixed unit test commands * Game loop complete for console and browser Changes: Note: browser should work for electron as well. The engine now runs in browser! This will now allow me to see real time loading and rendering. This is a great step but should have been done weeks ago. Will continue working on this later. Next step is rendering. Issues: n/a Comments: The greatest power is often simple patience. Joseph E Cossman * chore(package.json): Adding commitizen to the project for semantic-release * chore: * ci: Commitizen and Semver * fixed broken link in README.md that didn't point to CONTRIBUTING.md * fixed 2nd broken link in README.md that didn't point to CONTRIBUTING.md * Major message system rework. (#42) Merging from message_system This is a big merge of the message_system. From here I believe things should get easier, but time will tell... --- * :beer: Removed commitizen. Version control comes built into npm * :+1: Finishing scripts and will work on the feature scene now. Going to stick to standards from here on out * 0.1.0 * 0.2.0 * Major working feature (keep to 50 characters) Changes: * Added file: RELEASE_TEMPLATE.md * Updated the coverage for nyc (Istanbul) * Minor changes to NPM commands Issues: n/a Comments: Minor changes * Base Engine startup Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: Began writing subsystem class test files. Work on this later. * aMajor working feature (keep to 50 characters) Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * DObject extending MessageReceiver Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: Tests failing at the moment * DObjects extending MessageReciever interface Changes: DObject extending from MessageReciever GameWindow circular dependency fixed Continuing base engine creation. Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * SceneManager, Scene and Engine Changes: Engine now has a SceneManager and loads in the Scene for the Engine. The Engine loads the basic scene for now, but it is HARDSET in Engine.ts (in the start method). SceneManager runs in tests, and also tests the Engine's startup of the scene. Scene tests still need to be written. Helper functions have been written to read/write JSON data in files. This needs to be tested to see if the engine is pulling the files locally. This also needs to be tested to be running in a developers environment (Electron, HTML, etc). Helper functions to write the Scenes to JSON files should be tested. The idea is that the the scene will be written and read on start/stop of the Engines running to aid with compilation. Helper functions currently have no tests. These need to be added in when possible. Scene file basic JSON file needs to be written. How are scenes going to be read/written? Issues: * Tests currently fail * File reading/writing has been hanging tests Comments: * Add todo items in files to the GitHub Project * Add issues that are currently in the system to the Issues section * TravisCI .yml file has been updated * :zzz: Fixing vulnerabilities * :zzz: Going to bed. I can't work on this tonight. Mabye I'll have some cake :cake: too * Typescript Watch Working Changes: This will rebuild the library as a Rollup file each save. This will keep tests constant and concurrent. This will make testing in multiple environments much, much easier. Also a major feature of the engine implemented. This has been a long time coming and just has been slacked on. Updated includes. Removed all default exports. Default exports are not correct to use; see issue #28 [comment](https://github.com/srepollock/divine-engine/issues/28#issuecomment-429218927) Issues: Test still aren't running... Issue #16 Issue #28 Issue #11 Comments: Major feature complete. * Pinpointing fs issue in Rollup and plugins Changes: * Helper function error logging * Error log codes * Rollup config order Issues: Creating issue #37 at this moment. Commiting now for reference. * :beer: Saving for a reference point. Going to try and implement a Rollup config change * Using prototypes for DObject messaging functions. Changes: As the title describes. Going to be using the engine to define prototype functions and hopefully remove the circular dependency issue. Testing is needed for DObject to test these functions. Issues: This is a continuation of issue #37 * :sleepy: File loading isn't happening tonight. Going to call it and go to bed "early" * :beer: Test's running again. Better prints for logging - COLORS! Continuing researching loading from file * WebGL, MessageSystem and Assets Changes: Message system has had a major overhaul; lot's of errors failing because of this reason. WebGL is beginning to be added in as I need to start getting work done on this. I'm loading this in with three.js and my package size has skyrocketed. Such as it needs to be however. Asset loading is next to begin testing. I need to see if I can get an asset loading for scene files. Issues: Current project issues: * Asset loading needs to happen fast. * Message tests need to be fixed up again... Current relevant GitHub issues: * #28 * #11 Comments: Time crunch is real. * Message system overhaul Changes: I have done a complete message system overhaul. As there was a lot of circular dependency issues with the original system, I believe this may be a soltuion. It still relies on an event based system, but it now also has a priority cue order as well. To be included is a low, and urgent cue, but this is to be implemented later - shouldn't be too bad as a later task I have bigger fish to fry. There is also an asset loader from the previous commit that will need to be tested. This is the next priority item. After asset loading testing is complete, triage is going to need to be done on the rest of the project. Begin breaking down tasks and attacking them head on. Issues: GitHub issues changed with this commit: * #28: This commit will close issue #28 as the message system tests are all working. The current failing tests are from the Engine itself. * #11: An older issue that is more top level. I will reference this when working on the physics engines' queue however, for now it can be closed. Other issues: * Currently the tests fail, going to have to continue debugging this tomorrow. * 0.3.0 * fixed broken link in README.md that didn't point to CONTRIBUTING.md * fixed 2nd broken link in README.md that didn't point to CONTRIBUTING.md * :zzz: All Unit Test's are passing. Going to bed as this is enough work for the day. Look at merging this in as version 0.3.1 because there has been major changes to previous systems. * 0.3.1 * :zzz: Updated document generator. Note, the generator is not ouputting errorsystem.ts * :moneybag: -m Should not have removed types * If Engine.instance is undefined in Engine.shutdown(), throw a warning not an error. Calling shutdown on an undefined system should be silently handled * :tired_face: Added Entity.getChild test. Adding to pull rquest * :beer: Updated travis.yml * Addressing issue #44 * Addressing issue #44 * Addressing issue #44 * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .gitignore * Testing .gitignore adding coverage (#45) * Testing .gitignore adding coverage * Update .gitignore * Exporting coverage report as lcov instead of json * Update .travis.yml (#46) * :fire: Adding Codecov for code coverage reporting (#48) I need to run `nyc` to generate the report * :panda_face: Updated README and GitHub template files (#49) * Added code of conduct and link in CONTRIBUTING.md (#43) * Update and rename code-of-conduct.md to CODE_OF_CONDUCT.md * 0.3.2 * Build system, Message System, Entity Component System (#50) * :relaxed: Finally got a message system that works. I have installed a local npm file called tsuml that works by creating a UML of my project from a command line. Run tsuml --glob ./src/**/*.ts to create it * :beer: Message system working. Need to run more tests before fully complete. Need to look at reconfiguring the engine to make sure the system is using the message system and run more tests. * :zzz: Updated message system tests * :panda_face: Message class tests complete. Will work on implementing the system tomorrow * Many fixes to the system and tests. * Changed the DOjbect structrue and updated tests to reflect changes * Updated the Entity structure and changed the test file to reflect the changes. * Removed gamewindow test (not at that stage of the project) * Removed message test; merged into messsagessytem test * Removed system interface * Updated issue template (addressing issue #22) Current issues * #21 * #17 Still working on this commit. Will upload when complete. * :skull: Fixed some tests * :sweat_smile: Working on npm audit issues with the project * :skull: * :confused: Don't know where I want to setup my client for the engine. This will need to be pondered. I also am having an issue on how to setup the game loop. Should it be a web worker, or run on the main UI thread as it should be dependent on it for timing. Will be thinking this over for a bit. Tests currently fail. Consider looking at the game loop. Should I be utilizing my message system more? * :sleepy: Removed unecessary node modules * :beer: Working on a lot of changes. The engine will have to be redesigned for connecting with the GameWindow, scenes and Electron, Browser * :-1: Not working, changing to Windows * :-1: Still not working. Going to try a new implementation * :moneybag: -m Currently npm test is not running. Made issue #24 * :tired_face: Still not working, but here is my up to date file * :fire: Adding changes since last commit * :sweat_smile: Fixed tests compilation with help from @loganfsmyth on the Babel slack * :+1: Added Istanbul test coverage to the suite * :-1: Falsifying 2 tests to check if Travis-CI is working * :beer: Changed tests back to what they should be * :panda_face: Testing DOM with Puppeteer * :panda_face: * :zzz: Document is undefined still. Cant get it working and Im sleepy. Bed time! * Puppeteer working, Divine global and Document aren't Changes: Puppeteer has been added to the Unit Tests to check UI and in browser variables of the engine. So far Divine is "undefined" but that is what I'm working to fix. New tests can be run with `npm test` and `npm run-script unit-test` as Istanbul now gives a coverage mapping as well. Mostly build tools were added in this commit. There is lot's of debugging to come. Issues: * "Divine" must be a global variable in the browser scope * GameWindow is still not being populated as "document" is undefined. Comments: [Other general comments you wish to add] * Puppeteer, Rollup and Modules Changes: Puppetter has been added to the project for Chrome testing. This will allow me to check and see if the "users'" application is running in the browser. However, as much as I would like to continue this right now, I am not having the best time with it. Therefore, I am moving on to another part of the project, the renderer. Rollup was previously spitting out the wrong formatted files, that has been fixed to UMD and ES modules (named accordingly). Issues: * Puppetter not working. After this commit, the tests will be turned off until I return to them. Comments: This has been a long time working at this, and needs to be put aside until I can find some help in the matter. This will be saved on a separate branch labelled "feature/puppeteer" * :runner: Fixed unit test commands * Game loop complete for console and browser Changes: Note: browser should work for electron as well. The engine now runs in browser! This will now allow me to see real time loading and rendering. This is a great step but should have been done weeks ago. Will continue working on this later. Next step is rendering. Issues: n/a Comments: The greatest power is often simple patience. Joseph E Cossman * chore(package.json): Adding commitizen to the project for semantic-release * chore: * ci: Commitizen and Semver * Major message system rework. (#42) Merging from message_system This is a big merge of the message_system. From here I believe things should get easier, but time will tell... --- * :beer: Removed commitizen. Version control comes built into npm * :+1: Finishing scripts and will work on the feature scene now. Going to stick to standards from here on out * 0.1.0 * 0.2.0 * Major working feature (keep to 50 characters) Changes: * Added file: RELEASE_TEMPLATE.md * Updated the coverage for nyc (Istanbul) * Minor changes to NPM commands Issues: n/a Comments: Minor changes * Base Engine startup Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: Began writing subsystem class test files. Work on this later. * aMajor working feature (keep to 50 characters) Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * DObject extending MessageReceiver Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: Tests failing at the moment * DObjects extending MessageReciever interface Changes: DObject extending from MessageReciever GameWindow circular dependency fixed Continuing base engine creation. Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * SceneManager, Scene and Engine Changes: Engine now has a SceneManager and loads in the Scene for the Engine. The Engine loads the basic scene for now, but it is HARDSET in Engine.ts (in the start method). SceneManager runs in tests, and also tests the Engine's startup of the scene. Scene tests still need to be written. Helper functions have been written to read/write JSON data in files. This needs to be tested to see if the engine is pulling the files locally. This also needs to be tested to be running in a developers environment (Electron, HTML, etc). Helper functions to write the Scenes to JSON files should be tested. The idea is that the the scene will be written and read on start/stop of the Engines running to aid with compilation. Helper functions currently have no tests. These need to be added in when possible. Scene file basic JSON file needs to be written. How are scenes going to be read/written? Issues: * Tests currently fail * File reading/writing has been hanging tests Comments: * Add todo items in files to the GitHub Project * Add issues that are currently in the system to the Issues section * TravisCI .yml file has been updated * :zzz: Fixing vulnerabilities * :zzz: Going to bed. I can't work on this tonight. Mabye I'll have some cake :cake: too * Typescript Watch Working Changes: This will rebuild the library as a Rollup file each save. This will keep tests constant and concurrent. This will make testing in multiple environments much, much easier. Also a major feature of the engine implemented. This has been a long time coming and just has been slacked on. Updated includes. Removed all default exports. Default exports are not correct to use; see issue #28 [comment](https://github.com/srepollock/divine-engine/issues/28#issuecomment-429218927) Issues: Test still aren't running... Issue #16 Issue #28 Issue #11 Comments: Major feature complete. * Pinpointing fs issue in Rollup and plugins Changes: * Helper function error logging * Error log codes * Rollup config order Issues: Creating issue #37 at this moment. Commiting now for reference. * :beer: Saving for a reference point. Going to try and implement a Rollup config change * Using prototypes for DObject messaging functions. Changes: As the title describes. Going to be using the engine to define prototype functions and hopefully remove the circular dependency issue. Testing is needed for DObject to test these functions. Issues: This is a continuation of issue #37 * :sleepy: File loading isn't happening tonight. Going to call it and go to bed "early" * :beer: Test's running again. Better prints for logging - COLORS! Continuing researching loading from file * WebGL, MessageSystem and Assets Changes: Message system has had a major overhaul; lot's of errors failing because of this reason. WebGL is beginning to be added in as I need to start getting work done on this. I'm loading this in with three.js and my package size has skyrocketed. Such as it needs to be however. Asset loading is next to begin testing. I need to see if I can get an asset loading for scene files. Issues: Current project issues: * Asset loading needs to happen fast. * Message tests need to be fixed up again... Current relevant GitHub issues: * #28 * #11 Comments: Time crunch is real. * Message system overhaul Changes: I have done a complete message system overhaul. As there was a lot of circular dependency issues with the original system, I believe this may be a soltuion. It still relies on an event based system, but it now also has a priority cue order as well. To be included is a low, and urgent cue, but this is to be implemented later - shouldn't be too bad as a later task I have bigger fish to fry. There is also an asset loader from the previous commit that will need to be tested. This is the next priority item. After asset loading testing is complete, triage is going to need to be done on the rest of the project. Begin breaking down tasks and attacking them head on. Issues: GitHub issues changed with this commit: * #28: This commit will close issue #28 as the message system tests are all working. The current failing tests are from the Engine itself. * #11: An older issue that is more top level. I will reference this when working on the physics engines' queue however, for now it can be closed. Other issues: * Currently the tests fail, going to have to continue debugging this tomorrow. * 0.3.0 * fixed broken link in README.md that didn't point to CONTRIBUTING.md * fixed 2nd broken link in README.md that didn't point to CONTRIBUTING.md * :zzz: All Unit Test's are passing. Going to bed as this is enough work for the day. Look at merging this in as version 0.3.1 because there has been major changes to previous systems. * 0.3.1 * :zzz: Updated document generator. Note, the generator is not ouputting errorsystem.ts * :moneybag: -m Should not have removed types * If Engine.instance is undefined in Engine.shutdown(), throw a warning not an error. Calling shutdown on an undefined system should be silently handled * :tired_face: Added Entity.getChild test. Adding to pull rquest * :beer: Updated travis.yml * Addressing issue #44 * Addressing issue #44 * Addressing issue #44 * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .travis.yml * Update .gitignore * Testing .gitignore adding coverage (#45) * Testing .gitignore adding coverage * Update .gitignore * Exporting coverage report as lcov instead of json * Update .travis.yml (#46) * :fire: Adding Codecov for code coverage reporting (#48) I need to run `nyc` to generate the report * :panda_face: Updated README and GitHub template files (#49) * Update README.md * Update README.md * Update README.md * Beginning AssetManager tests Changes: * AssetManager using JSONFileLoader Issues: * Asset manager test failing. Cannot find the file from console (have not tried in browser yet, will tomorrow morning in a test project. Comments: I need to get this done by end of tomorrow, or else just move on to the render engine regardless. * Adding additional tests for coverage Added test to check if the instance is undefined that the system throws a critical error. * Remove allListeners() function This is a duplicate of allListenerCount() * NodeJS assets loading for tests, next Browser Changes: Assets are now loading! I can now load assets by name as long as they are given as relative paths in NodeJS. Next I need to ensure XMLHttpRequests are getting the proper files. AssetsManager calls shall only ever be from the IOSystem. Use the message system to request files from any other system or entity even (who knows). Engine should have a recollection of all types of DObjects being created(?). Scene will have a list of all entities in the system so far. MessageSystem will have all messages in the system as well as handlers. Issues: #11, #18 Comments: [Conditional importing in ES6 as of stage 3](https://stackoverflow.com/questions/36367532/how-can-i-conditionally-import-an-es6-module) * :smile: Trying to get things working on browser. So far it's not going well. The container is not being defined and sent to the engine * :smile: Organizing some files * :sleepy: Updating to make sure the new tests are covering properly * :sleepy: OK going to bed now * Adding clarification on how AssetManager should be called * Optimizing getAsset if statement and returns * Asset loading with user defined objects This is dangerous and needs to be thoroughly tested (which I'm working on now). I believe this will allow me to build scenes from cache though... * Added some AssetManager test cases Added some test cases to AssetManager that should cover some more of the code than before. Will have to pull and run a coverage check on my laptop over lunch. * Linting fixes * :relieve: GitHub written tests are working. * Updated getting parent * Entity module constructor Updated the entity constructor to use an object mapping to allow modular creation. * Update entity.ts * Updated Entity constructor Added parent to the constructor * Updated Entity.spec.ts to use new constructor * Entity parent and component tests. This file should be updated. I don't need 100 different test suites... * :zzz: Trying fix mentioned in #51 * :confused: Adding back coverage files * Loading files again, Entity constructor change Changes: Loading scenes from files. Going to start using threejs scenes. I believe codecoverage is fixed, but I don't have time to test or pursue the issue so I'm going to close and may reopen issue #52 later. Too tired from too much debugging, I will try this again tomorrow. Oh also, now tracking my time on [Waka time](https://wakatime.com/about), so there's that. Issues: Closing issue #52 as it's a minor goal of the engine Comments: I really need to get threejs working... * 0.3.3 * Abstract System class Changes: *Major:* Changing the System interface to an abstract class. Working on updating the other systems to this structure. Currently debating if systems should have their own cue or not. This will fall back to design of the engine. I need to sit and design from the current UML diagram of my system. Will work on this more tomorrow. *Minor:* Updated docs script. Now generates all the docs. The key was that I was using src/**/*.ts when I thought it would recursive open functions, but it does not. src/* fixes this. Issues: Comments: This weekend was a blur and so will this month. Power through and do what I can. Sprint sprint sprint. * :confused: For some reason when calling the cleanup on the engine, the sceneManager is undefined. Why? * :beer: Working? * System, Render System, Physics System, Changes: System is now an abstract class (should have been in the first place) and will have all Systems as children. It just standardizes a few functions for the systems to use. Read the notes in the class for more information. Render system is now using Three.js. This is going to cause some issues, and I'm going to branch here and give something a try before I continue. I need this commit as a stop point for now. Physics system is a placeholder for the moment, but it "works". All of these classes - and a vast majority more - of the engine needs to be documented and tested to hit 100% and 70% (respectivly) for codecoverage and general documentation. Issues: These will just need to get done, but I'm branching to try something first. Comments: Here we go... * feat(engine): Began creating the engine main loop The main loop is currently failing in node due to the requestAnimationFrame not being part of the core API (only in browser). Will look to extend a node loop process to run this otherwise. Currently not using the message system either as it will require integration tests. Logging system was also implemented, as I believe I left it out before. Will pickup tomorrow. BREAKING CHANGE: Currently the unit tests do not run as the requestAnimationFrame does not exist in Node * build(rollup): Fixed Rollup build Rollup is now compiling and running. The trick is that `tsc` is called first to compile ESNext to CommonJS, then Rollup builds the minified, bundled version into CommonJS, UMD and ES modules. * feat(Engine): Main loop Implemented a majority of the main loop. Some debug testing is not passing currently so I will need to update that tomorrow to get running. The unit tests are coming in handy as it appears it's not running, but also I think I have to much in the tests at this time as well. All play testing at the same time I suppose. * feat: Logging system and message system as submodules Updated the logger and the message system as their own separate projects. They will be handled there as they are completed projects, and should be managed accordingly. Working to continue the project's main goal of completing an engine. * Major working feature (keep to 50 characters) EDIT THIS LATER Changes: [This should be an overall summary of changes to the project at least done in point-form. More detailed prose format is of course allowed. The point of the description is to provide detail of changes and why.] Issues: [Please provide a point-form description of issues. Then please submit a formal issue on the GitHub project. Issue guidelines are doucmented in the project Wiki.] Comments: [Other general comments you wish to add] * build: Updated the build back to the old system New features a plenty. Why break what isn't broken? Going to head back to this build and focus just on getting an Electron build running. This is my goal for the moment. BREAKING CHANGE: - Tests currently aren't building * refactor(messagesystem): Working on integrating the new message system into the project. This has taken some time, and still working on the changes. Will continue as time progresses. BREAKING CHANGE: Unit tests are currently not running * feat: Bugs Bugs bugs and lots more bugs. I've got a lot of cleanup to do and sorting to figure out. Going to work on Babylon integration over the weekend. SocketIO to come. BREAKING CHANGE: Tests do not run * feat: RenderSystem BabylonJS integration Working BabylonJS into the system now and working to get it going with the scene manager. Working to have this done soon, then we can begin message integration and building. Hopefully... BREAKING CHANGE: Tests do not build currently * fix(rollup): Fixed up Rollup pipeline BREAKING CHANGE: Cannot read from src/core * fix(build): Fixes failing build Building to Electron is now functional. Engine is running in manual tests. Working on setting a basic scene now. This is not a bump or a fix, but simply a step in the right direction. Continuing now. * refactor(messagesystem): Submodule fix for the messagesystem * build: Major changes to the project Working on changing to strictly use TypeScripts compiler and running es2015 modules. Changing testing to jest instead of mocha/chai as it has builtin TypeScript compiling. Working to simplify the process as opposed to using 10 different tools BREAKING CHANGE: Removing references of Babel, using tsc, changing from Mocha/Chai to Jest * test(jest): Tests have mostly been refactored to jest. Continuing to work on tests and revamp them as they will need to be updated more. Things seem to be working smoothly at the moment (minus the failing tests), but this is just part of red/green testing and will be implemented shortly. * fix: This is not a fix. There are too many bugs to count. Working on changes now. * refactor(src/test): Refactored Engine code and Tests We are now using Jest for our tests as it uses builtin Babel to comiple and run the code. Also, we are targeting es2015 strictly, and will be using this as our base while writing ESNext code. Confusing, but we are following ESNext -> es2015 -> bundled code for usage. Tests are failing as there is still more to be written, but this took 2 days to refactor and run through, so it's an ongoing process. BREAKING CHANGE: Tests fail, but red/green testing is good * test(scenemanager): Scene manager update Updated the current scene manager class to change scene loading. Added in new options for the class to load the scene, add the scenes to the list and remove them. * feat(scenemanager): Added saving methods Setup the SceneManager and the DScene to have the saving methods as part of the class. The implmentation will be done in the IOSystem and passed as a message through the MessageSystem (to be tested later on). Did some minor fixes in the Engine, EngineArguments and a testing project in Electron to get the game working better. Still have some errors with the window size, but this can be fixed later on. Running into issues with the ThreeJS scene rendering, giving the warning: Rendercount or primcount is 0. This looks to be an issue with the objects being added late to the scene, or having an issue finding the scene. More debugging to come. * chore(rendersystem): Fixing up the render system Working to change render system tests and render system in general. Going to remove ThreeJS (as I can't get it working) and get my own WebGL context working. Going off of what I've learned in class about WebGL. This will be better for my thought process and what I understand. Going to also change up the tests to use Puppeteer or JSDom as it errors running Jest in the Node instance. This is going to be some heavier work, so I wanted to get a checkpoint saved and continue with my work. * feat(rendersystem): Personal implementation of WebGL and Rendering Changing to own implementation of WebGL. Camera, general rendering (just a simple box) and Matrix's have begun to be implemented * feat(matrix3/4): Created an inner Matrix3 / Matrix4 class Created and tested Matrix3 and Matrix4 classes for usage in the engine. This will be used for WebGL matrix convertions as gl-matrix could not be packaged and used correctly. Took extra time, but the classes and their functions are all working correctly and can be used properly with WebGL now. Going to continue creating a basic scene to render to the canvas now. * fix(fragment shader): Issues loading the shaders have been fixed Loading the shaders was a dumb error. Had the fragment shader loading as a vertex shader (bad copy/pasta). Continuing to build the basic scene now. Going to have to do a lot of finniking to get this working on time. * refactor(rendersystem): Not rendering Worked to get the renderer working, and still nothing is happening. I think this may be more trouble than it's worth, especially with the time frame that I have. I'm going to call it here to get ThreeJS working again. It's should remove most of the complexity in this aspect. * feat(rendersystem): ThreeJS is implemented and working This really didn't take that long, and I'm a little upset at myself for not doing this sooner and more efficiently. This is not using the scene in my testing project, but just a set scene in the render system that will have to be removed. * feat(rendersystem): Updated to use ThreeJS scene objects Should be rendering entities now, but things are going wonky on getting the scenes in my testing project. Going to troubleshoot this in the AM. Not much left before I can really start striding into place with my project. This seems to be going smoothly for the most part. * docs(readme): Updated README to better reflect the projects current status Reviewed and revised the README document to update it with current information of the project. This was mostly completed to write and update my final report for the project. This will be cherrypicked and applied to the master branch. * feat: Rendering and Sprites Worked on getting the sprite system implemented, but it began taking up too much time. Going to push this off for now and continue working on getting movement and physics implemented first. Going to take a bit of time, but I've got some ideas on the back burner for now. Also working on the report along side work to get things done on time. * feat(rendersystem): Updating textures and tests Worked on getting textures implemented into the engine. Cannot successfully get them loading in my test electron project from the assets folder. Continuting to work on this over time. Working on fixing the tests to get the working properly. There are a lot failing and out of date that need to be udpated, so these are being addressed now. Continuing to work on them as the night progresses. * chore: Working on tests and textures Still working on tests and textures, not making much headway but still plugging along. Got sidetracked by GitHub actions on a side project. They'll be implemented here eventually * test(tests): Updated the system tests to reflect the changes for the message system Tests have been updated with thresholds in the package.json file. Tests and the engine itself have been updated to reflect the changes in the message system. These are now passing the basic unit tests and should be good to go in the test project. Working on textures and the IOSystem next. * feat(iosystem): Working on getting file loading from the IOSystem The IOSystem will use fs to get files from the system. This is going to be tricky to get working as the system uses the message system for loading files and textures. Currently working on getting the scenes loading from the file, but this may take more time to setup than anticipated. Once setup through the message system, json file saves and textures will be loaded from the filesystem in cached memory. Working on getting this setup now BREAKING CHANGE: The tests now hang or fail. Working on resolving this as it's waiting for the message system in other files that is not running and doesn't exist currently * chore(eslint): Changed the project to ESLint Changed over to ESLint as that is the official supported linter for TypeScript. TSLint has been deprecated and therefore removed * feat: Updated engines streams, worked on implementing them into the engine's message system * feat: Major engine update Engine has been configured and setup for basic usage. This is a trimmed down version of the initial design, but functional and continues to work. * refactor(errorcode): Updated errors to use the logging system * fix: Updated collision, sprite origins and zones Fixed a rotation bug. Fixed the collisions to render in place around the object instead of the top corner. Working on implementing zone changing now * fix(aimovements): Updated the aimovementbehaviour I will need to go over components vs behaviours to narrow my focus. There is redundancy in both, and some can extend others. Going to update this after working on some diagrams * feat(behaviours): GUI Behaviours have been added into the engine This will allow developers to create gui options. Some work is hardcoded for now to be specifically relatedd to the zone file, but things are working for the most part * fix(engine): Updated the game loop Now getting constant changes and not using an fps count to determine the frame loop. This can be updated and reviewed later * feat: Zones, Collisions, Messages, Alpha version Welcome to the end game. This is the Alpha version of the Divine Engine. This is the version used in the playable demo Alpha release of (Save the Princess)[https://github.com/srepollock/save-the-princess]. For any issues, please send them under issues in the GitHub project. * chore: ๐ค Added loggingsystem commits * ci: ๐ก Changing build_test to use npm token * fix: ๐ Changing loggingsystem to de-loggingsystem * docs: โ๏ธ Updated documentation for assets and behaviours Also, updated the docs to run on deploy, and change the documentatoin theme to [eledoc](https://github.com/pirix-gh/eledoc). * docs: โ๏ธ Updated README Removed howler, threejs and others * feat: ๐ธ Updated player movement to fall off ground collisions This will provide the purpose of falling when not jumping. Also, can't jump while jumping, so falling is working properly. * feat: ๐ธ Added death sequence * feat: ๐ธ Wall collisions Added wall collisions for the player to bounce off of. * feat: ๐ธ Updated AIMovement and included platform collisions * docs: โ๏ธ Updated documentation for components and core Added more documentation and fixes for the engine * test: ๐ Added zones tests Continuing to update the tests. This also has an integration test for the ZoneManager as it requires the AssetManager and JsonAsset classes. This required a bit of hacking together, but it works as intended with some steps skipped (getting the JSON from an XMLHttpRequest, and waiting for the message system to inform the ZoneMangaer that it had been loaded * fix: ๐ Minor fixes for beta Updated the flag behaviour and some minor fixes and notes for player behaviours. Found a bug where the player may be able to fall through the map on spawning * feat: ๐ธ Adding Sequence behaviours and tests * chore: ๐ค Updated de-loggingsystem to latests version * docs: โ๏ธ Updated documentation Added documentation for classes in helper/, inputsystem/, math/, physicssystem/, and rendersystem/. * test: ๐ Added tests for scene, soundsystems Updated tests and incomplete tests for rendersystem and zones. * ci: ๐ก Updated deploy workflow to add documentation to master * docs: โ๏ธ Finished documentation on the engine * test: ๐ Adding tests for the rendersystem * feat: ๐ธ Sequence behaviour setup and ready * fix: ๐ Fixing sequences Updated and fixed sequence behaviours. There were issues with changing dialogs and to the next scene after the sequence. There was a race condition changing zones that was fixed by a static boolean in the sequencebehaviour class * feat: ๐ธ Updated dialogs and sequences Working on implementing a step by step sequence. May be changed into a different implemention in game due to difficulty. It may become a scene by scene how to play implementation for now * chore: ๐ค Updated sequences and dialogs slsightly * feat: ๐ธ BossController added Working on updating the boss controller. Currently can move around, but it's also jumpy and will need some smoothing. * feat: ๐ธ Updated bossbehaviour component * feat: ๐ธ BossBehaviour and ProjectilBehaviour Updated BossBehaviour to shoot projectiles. Other minor fixes for continuous movement in the controller. ProjectileBehaviour added. Projectiles are created programatically by the BossController when an action type of "action_1" is signalled in the Boss actions * feat: ๐ธ Added scoring component Added scores and high scores for the engine. Need to add printing the score to the canvas. There will need to be a new text component, and render it via triangles. Copy and look at sprite texture * feat: ๐ธ Updated BossBehaviour and Scoring Also added a TextComponent to print the score, but currently don't have it implemented. Going to update and work on this later. * chore: ๐ค Updated version number in package.json
build(deps): Bump handlebars from 4.0.11 to 4.1.2 (#81) Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.0.11 to 4.1.2. - [Release notes](https://github.com/wycats/handlebars.js/releases) - [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md) - [Commits](handlebars-lang/handlebars.js@v4.0.11...v4.1.2) Signed-off-by: dependabot[bot] <[email protected]>