Commit graph

  • 3e7575c4b2 Bug fixes -fix: UnittestRunner don't catch RangeError -fix: sometimes onUpdate was called with empty array of entities Mergul 2020-06-15 17:21:29 +02:00
  • d733bb514c Make common draw system, moved some components to basic components and fixed bug with GUI for signed short integers Mergul 2020-06-12 20:51:05 +02:00
  • 3a7a5b2a21 Slightly changed rendering code -renderer draw function now takes struct instead of multiple parameters Mergul 2020-06-12 14:53:59 +02:00
  • 8cba2626be Added entity filering support and fixed minor bug Mergul 2020-06-10 15:35:42 +02:00
  • 5018464a41 Demo GUI fixes and improvements plus some shortcuts -added option to override components (by remove them before adding) -added shortcuts for tools -fixed mouse scroll on WASM -addding entity filtering option (WIP) -added some tooltips -remove Components duplicates in ComponentManipulator menu -fixed ImGUI controls IDs -added possibility to change values of component to add Mergul 2020-06-10 14:13:01 +02:00
  • e76c5ccdb2 Huge demos update -moved C stdlib function definitions to ecs_utils.utils -added function to calculate mix(linear interpolation) and rsqrt(fast inverse sqrt) -added some math to vec2 (length, normalize...) -improved renderer with possibility to use multiple materials (one per block, not perfect solution for parallel compute, but works with some requirements) -added blending support for material (opaque, additive, mixed) -added Android support -added gprahical representation for mouse tools (tool_circle.d) -added initial support for editing template components variables -better Component and Templates listing -added possibility to add/removes components using mouse -move CLocation to game_core.basic and reuse in every test -moved tools code from demos to App (now code is fully separated from demos!) -some improvement and fixes in Snake demo, with additional systems to handle adding and removing entities -added new demo: Particles. By now demo has several particles to spawn and support for attractors and vortexes (calculation is made as every attractor with every entity) -fixed bug with window hover and tools -improved tool behaviour -added new material -now window is always opened as maximized windowed mode -some minor fixes and improvements Mergul 2020-06-06 22:46:29 +02:00
  • 13e6ed8fd5 ECS core imprevement -Adedd function to resize array to Mallocator -significant speed up for first time ID allocation by using resizeArray instead of makeArray -fix: onUpdate called with zero length arrays -call updateBlocks before updateEvents (it's more accurate behaviour) -some minore fixes -fixed meson.build for GDC Mergul 2020-06-06 22:26:59 +02:00
  • 66860b9042 Android update and small improvements -fixed code do cross compiling to android -fixed build with GCC (workaround) -added little benchmark -several small fixes -updated meson build (demos building, working with GCC, LDC and DMD) -added some meson options -added ImGUI bind for OpenGL3 Mergul 2020-06-01 11:24:50 +02:00
  • 86edfa4a57 Merge branch 'master' of https://gitlab.com/Mergul/bubel-ecs.git into Demos Mergul 2020-05-28 18:51:07 +02:00
  • eb15a8ac7f Merge branch 'Demos' into 'master' Dawid Masiukiewicz 2020-05-28 16:48:43 +00:00
  • 024356df9b Common update: -added multiple new function to allocate template and add entity -updated README.md (complete initial version) -empty components now don't take memory -fixedd small bug with TestRunner -added many new tests (HashMap, Vector, EntityMeta, ...) -added default hashing function to HashMap -fixed critical bug with adding entities -fixed small bug with adding entity with remplacement components -added asserts into code to better bug detection -small performance improvement for events -added ComponentRef structure which contain data pointer and componentID -remove EntityID from Event structure -now events are handled before removing entiteis -fixed GDC compilation -fixed rendering of rotated sprites -added weapons as separate entities to space ship and others -added Tower enemy to SpaceInvaders demo -added Boss to SpaceInvaders demo (boss has four tower attached to it) -Boss towers shoot multiple bullets upon death -fixed critical bug with demos switching -fixed critical bug related to adding/removing entities form inside onAdd/onRemove entity callback -added animation support -added particles sypport and particles for firing and explostions, and more -multithreaded rendering now has same rendering order as singlethreaded -application automaticallu detect host CPU threads count -added upgrades to SPaceInvaders demo -fixed texture memory freeing -improved documentation -improved multithreaded performance -improve shader code -fixed registration issue -some additional performance improvements -added depth and colors to rendering parameters -jobs now has names corresponding to their systems -change execute() -> willExecute() -added EntityMeta structure to speedup getting fetching components form entity -improved multithreading rendering -added possibility tio change number of threads runtime -added bullets collision detection in SpaceInvaders demo -some CI changes -added VBO batch rendering (current default, no render mode switch yet) -fixed camera positioning calculation -fixed buffer issue with WebGL -added viewport scalling (at least 300 pixels height). Pixels are scalled if screen is bigger. -center demos gameplay area -added fullpage html template for Emscripten build -added many new sprites to atlas -fixed critical bug with CPU usage in multithreaded mode -snake render tile coresponding to body part -snake is destroyed after collision and emit some particles -added some functionality to vectors -fixed documentation issue in Manager.d -more minor code changes and cleanup Dawid Masiukiewicz 2020-05-28 16:48:42 +00:00
  • 2ad238841b Fixed .gitlab-ci.yml emscripten build Mergul 2020-05-28 16:41:58 +02:00
  • 9af1cee60b SpaceShip demo update -added wave shooted upon death of boss tower -cleanup code a little bit -moved to new entityAdding method -fixed bug with changeing demos Mergul 2020-05-28 16:11:27 +02:00
  • 7a0ddf7494 Bugfix update -fixed critical bug with adding entities -fixed small bug with adding entity with replacement components which entity hasn't -added multiple asserts to faster bug detection in future Mergul 2020-05-28 15:53:05 +02:00
  • 3719cdaee0 Some small fixes Mergul 2020-05-28 09:39:17 +02:00
  • f964d7bf85 Added more tests -added Vector test -added HashMap test -added EntityMeta test -added default hashing function to hashmap Mergul 2020-05-27 19:46:11 +02:00
  • 2f827a94db Fixed betterC compilation Mergul 2020-05-27 18:22:55 +02:00
  • 6929f5a748 Mostly bugfix update + empty components support and remove EntityID from Event structure -empty components now take no memory, so flag components is now far better -added test for critical bug -fixed critical bug with adding/removing entities form inside events -fixed small bug with TestRunner -improve basic tests -fixed betterC compilation on DMD -remove EntityID form Event structure -added "return" attribute to some functions -moved some code from Tempalte side to actual implementation -fixed bug with EntityTemplate copying -commented out some possibliy unused code -use code formatter Mergul 2020-05-27 17:03:44 +02:00
  • 15cd57dbcb Basic update, multithreading emplate support, fixed -Added possibility to add entity form template + components to replace template data -basic tests for new functionality -small performance improvement for events -added ComponentRef structure which contain data pointer and component ID -now events are called before entities removing Mergul 2020-05-24 21:57:48 +02:00
  • 3d98b0ee5e Demos update -fixed critical bug with demos switching -change multithreaded rendering method (now draw order is keeped even witch multithreading there is no popping) -added particle emitter components and systems (WIP) -bullets (laser) now sending EBullet event insead of EDamage which gives possibility to not destroy bullet if shooted entity is already killed Mergul 2020-05-23 10:55:31 +02:00
  • 233f4abd47 Added job_id parameter to EntitiesData (index of currently executing job) Mergul 2020-05-23 10:53:36 +02:00
  • bfc0da47e4 SpaceShip demo updage -Update sprites texture atlas -added support for separate collider and graphical scale -weapon now can be located on specific sprite relative position -SpaceShip has two lasers which are separate entities -added following parent system -added Boss -parent destroy children after being destroyed -added towers (Tower consist of 3 entities, parent take damage and one is weapon) - added targeting system which rotate entity to target Mergul 2020-05-22 15:58:35 +02:00
  • 43f8755a39 Fixed ECS bug related to adding/removing entities inside onAdd/onRemove entity callback Now whole committing process is called in specific order: - UpdateBlocks - ChangeEntities - RemoveEntities - HandleEvents Whole process is repeated until there will be no more changes to commit Mergul 2020-05-22 15:44:31 +02:00
  • d89df28f85 Fixed rendering of rotated entities Mergul 2020-05-22 15:41:28 +02:00
  • abc4d0c509 Modified codecov.yml Mergul 2020-05-22 15:40:53 +02:00
  • 0b924ae77c Demos update (SpaceInvaders demo) -added new sprites -added new functions to vectors -fixed rendering rotated sprites -small performance improvement and some bug fixes -added animations support -bullets get initial velocity from parent -added partiles for fire from gun and explosion of enemies Mergul 2020-05-19 20:27:18 +02:00
  • 6c3c803d1e SpaceShip demo update -fixed issue with firing lasers in multithreaded mode -fix: enies can't grab upgrade anymore -there is a change that enemy drop bonus upon death Mergul 2020-05-14 22:20:41 +02:00
  • 9589a5cb2d FIxed GDC compilation (basic betterC WIP) and some improvements -fixed issue with adding/removing entities inside events handling -fixed EntityMeta.getComponent() (added check if component_id is valid) -added function hasComponent to entity to check if component exists Mergul 2020-05-14 22:18:57 +02:00
  • f731b4cedb Added Upgrade bonuses to SpaceInvaders demo Mergul 2020-05-13 21:51:38 +02:00
  • d26c940b80 Fixed shader compilation on GLES Mergul 2020-05-13 21:30:56 +02:00
  • c29ace661b Added laser collision response to SpaceInvaders Mergul 2020-05-13 21:27:09 +02:00
  • d257a6c9f8 Updated codecov.yml Mergul 2020-05-13 16:24:32 +02:00
  • 3647fa4b86 Demos update -added functionality to detect host CPU threads count -fixed some memory leaks -now textures free memory corectly -added support for up to 32 threads Mergul 2020-05-13 15:34:24 +02:00
  • dd491302af Fixed system reregistration issue and added funtion to allocate EntityTEmplate as copy of different teamplte Mergul 2020-05-13 15:31:26 +02:00
  • 9580ee9af9 Add bullets collision system to SpaceInvaders demo Mergul 2020-05-12 18:21:25 +02:00
  • 1b925b7ab1 Change component name from "modified" to "writable" Mergul 2020-05-12 17:30:57 +02:00
  • 5e884352ba Add support for external depencencies Mergul 2020-05-12 17:28:31 +02:00
  • b19fbb1528 Fixed shader compilation on WebAssembly Mergul 2020-05-12 12:30:21 +02:00
  • c94510a487 Improved Demo and multithreading rendering: -added support for multithreaded rendering (fast) -improved shaders -added support for rendering depth -added rendering color support -improved DeptThreadPool (dynamics setting number of tryWait counts before TryWait. Low cpu usage with high responivity) -added possibility to change number of threads Mergul 2020-05-09 19:41:00 +02:00
  • f6e7af1014 Some preformance tests and added EntityMeta structure Mergul 2020-05-07 21:58:34 +02:00
  • 4bd5a37b5d Demo update and start counting tests times -Fixed performance issue with multithreading and rendering -start making better shaders (by using many macros) -speed up rendeing when maximum objects count was reached -remove map rendering form Snake demo, and render entities by themself -start adding depth and color rendering parameters -added properly names to jobs (for debugging purpses) -starts adding multithreaded rendering -added some math to vectors -changes execute() to willExecute(). Probably should have different name. Mergul 2020-05-07 14:07:07 +02:00
  • 46aba822d0 Improved documentation and removed some old code Mergul 2020-05-06 10:55:40 +02:00
  • 5411e97cb1 Move ECS to Bubel module Mergul 2020-05-05 16:56:51 +02:00
  • a7a63f6a20 Merge branch 'Demos' of https://gitlab.com/Mergul/bubel-ecs.git into Demos Mergul 2020-05-04 16:17:54 +02:00
  • 167ad5437a CI changes Mergul 2020-05-04 16:17:40 +02:00
  • 109775af87 Update README.md Dawid Masiukiewicz 2020-05-04 10:33:54 +00:00
  • 7bc07666d0 Initial release README.md Dawid Masiukiewicz 2020-05-02 21:11:22 +00:00
  • b21e2b0109 Merge branch 'master' of https://gitlab.com/Mergul/bubel-ecs.git into Demos Mergul 2020-05-01 21:36:21 +02:00
  • 2ddb97e9ce Merge branch 'ci-update' into 'master' Dawid Masiukiewicz 2020-05-01 19:26:21 +00:00
  • 54a6d5dec2 CI and common update: -added webpage deploymnet stage -added separate build stage which build all binaries and generate documentation -added Emscripten build stage for merge to master only -added VBO batch rendering (current default, no render mode switch yet) -fixed camera positioning calculation -fixed buffer issue with WebGL -added viewport scalling (at least 300 pixels height). Pixels are scalled if screen is bigger. -center demos gameplay area -added fullpage html template for Emscripten build Dawid Masiukiewicz 2020-05-01 19:26:21 +00:00
  • 50715fbc40 Demos update: -modified texture atlas -fixed bug with high CPU usage (use pthread instead of builtin D multithreading) -added new graphics -snake now render tile coresponding to body part -snake is destroyed after collision and emit some particles -added some functionality to vectors -fixed documentation issue in Manager.d Mergul 2020-04-28 14:13:55 +02:00
  • f67eb452cc Merge branch 'ci-update' into 'master' Dawid Masiukiewicz 2020-04-25 11:09:35 +00:00
  • b434d851ed CIUpdate - added build test - probably fixed some trash - coverage test should only wait for test_dmd_debug Dawid Masiukiewicz 2020-04-25 11:09:35 +00:00
  • d47a5c3e5c Merge branch 'TestRunner' into 'master' Dawid Masiukiewicz 2020-04-25 08:19:16 +00:00
  • c609b45a3d Merge branch 'master' of https://gitlab.com/Mergul/bubel-ecs.git into TestRunner Mergul 2020-04-25 10:13:53 +02:00
  • d68eecf272 Add LICENSE Dawid Masiukiewicz 2020-04-24 20:10:23 +00:00
  • 8381ac166b Common update: -added VBo batch rendering (current default, no render mode switch yet) -fixed camera positioning calculation -fixed buffer issue with WebGL -added viewport scalling (at least 300 pixels height). Pixels are scalled if screen is bigger. -center demos gameplay area -added fullpage html template for Emscripten build Mergul 2020-04-24 20:55:25 +02:00
  • 7c263d3ed4 SimpleVector test improvement Mergul 2020-04-24 20:47:42 +02:00
  • f7a1e9bd05 More test and fixes: -added test for addEntityCopy -test order of onAddEntity, onRemoveEntity, onChangeEntity callbacks calls -testing onAddEntity, onRemoveEntity, onChangeEntity callback -test callEntityFunction call -fixed bug with crashing ECS (setting callers for entity change callbacks) -commented debug asserts conering duplicated components ids (to further consideration) Mergul 2020-04-22 16:23:42 +02:00
  • cb9eaad123 More tests: -removed some unused code -fixed bug with struct destructors (Mallocator called __dtor instead of __xdtor) -added unittests for events -addded _d_eh_personality null implementation as LDC betterC bug workaround Mergul 2020-04-18 19:16:45 +02:00
  • d0b7138f9f More tests: -fixed bug in EntityManger.addComponents -added many new tests Mergul 2020-04-17 17:17:37 +02:00
  • 84e04191c8 Unittests and demos update -fixed bug in EntityManager -added better support for non-betterC unittests -added many new unittests -slightly improved JUnit xml output -fixed WASM compile script -added new textures -fixed model texture coordinaes in demos -some minor bug fixes in demo TODO: demos cpu usage in non-betterC mode Mergul 2020-04-16 22:16:20 +02:00
  • 72617bc2a5 Added pipeline status indicator to README.md Dawid Masiukiewicz 2020-04-14 18:37:00 +00:00
  • 46530ff45b Merge branch 'WebAssembly' into 'master' Dawid Masiukiewicz 2020-04-14 15:44:26 +00:00
  • 14839b3765 Better assertion infos and formatted code Mergul 2020-04-14 17:39:52 +02:00
  • 0670aed506 BetterC improvement -fixed some bugs -non betterC code has better assertion messages -fixed limited count of components in system -small dub.json fix Mergul 2020-04-14 17:29:49 +02:00
  • 2aef76d75a Unitests update -unittest runner works for non betterC build -working unittest coverage generation -unittest runner support for named tests. Simple regex is supported (* as any substring) and two list of expressions are used, one for include regex and one for exclude regex Mergul 2020-04-14 13:41:39 +02:00
  • 998240f7be Template allocation update and some tests -test runner support before/after everty test callback funcion -added some basic tests for template allocation -added function to allocate new template from different template and list of addition and removed components Mergul 2020-04-09 22:14:51 +02:00
  • 8f5f2f3baf Removed unused code and failure test Mergul 2020-04-05 21:23:12 +02:00
  • 7b053a6abc Added better formating Mergul 2020-04-05 21:16:11 +02:00
  • d485824ab5 -better JUnit generation -testing unittest failure Mergul 2020-04-05 21:11:38 +02:00
  • 09633d1056 -removed not used code and testing (failure) unittest Mergul 2020-04-04 22:20:08 +02:00
  • c63f3a9727 -added some tests -improved test runner Mergul 2020-04-04 22:11:52 +02:00
  • 19687b9f88 -fixed critical bug with adding components -some fixes -minor optimization -added debug assert test Mergul 2020-04-04 13:58:31 +02:00
  • 913cf1aef8 Merge branch 'WebAssembly' of https://gitlab.com/Mergul/bubel-ecs.git into WebAssembly Mergul 2020-03-28 22:42:19 +01:00
  • a080a6d415 -fixed bug with adding components -optimize adding and removing components Mergul 2020-03-28 22:34:11 +01:00
  • 3c4f2be9c6 Update .gitlab-ci.yml mmcomando 2020-03-21 22:18:38 +00:00
  • dcc48116c5 Merge branch 'WebAssembly' of https://gitlab.com/Mergul/bubel-ecs.git into WebAssembly mmcomando 2020-03-21 23:14:04 +01:00
  • 67a785f2dc Add betterC test runner mmcomando 2020-03-21 23:13:08 +01:00
  • 7fcf0462db Merge branch 'mmcomando-master-patch-70881' into 'WebAssembly' mmcomando 2020-03-21 19:07:09 +00:00
  • 3eb124ae46 Add GitLab CI script mmcomando 2020-03-21 19:07:09 +00:00
  • 845f468d59 -added more documentation -remove update() function from entity -currently max supported components count is 64 per type Mergul 2020-03-21 13:27:14 +01:00
  • 546b73c567 -fixed events bug with calls for unsupported systems -now empty systems can't handle events and listeners Mergul 2020-03-07 13:21:29 +01:00
  • d6b53425dd -added EmptySystem supprort (called once per frame, sholud be once per jobs) -EntitiesData can contain "thread_id" which is filled with ID of current thread Mergul 2020-03-06 13:52:21 +01:00
  • 5399b584dd -IDManager reserve EntityID(0) as empty -fixed bug with events called on destroyed entities (crash) -don't call event on system for unsupported entity -added "entity_id" property to EntitiesData Mergul 2020-03-06 10:12:52 +01:00
  • 87e9a31d7f -PageSize and PagesInBlock values can be adjust in runtime (at initialization time) -added support for calling custon delegate function for all entities supported by selected system Mergul 2020-02-09 21:51:54 +01:00
  • 1f78f2506c -Events system update order is now choosen according to system priority -added mixin for adding exluded components using it's type -demos: *added GUI for selecting templates and choosing tools *change SpaceInvades SideMove system to not using events for better performance and multithreading *added Entites spawning support *fixed some Snake demo bugs *GUI work's better now Mergul 2020-02-09 15:24:26 +01:00
  • 19fc440ed6 -updated meson.build Mergul 2019-11-25 21:15:44 +00:00
  • 946fbf2934 -updated tests: *updated build scripts *removed tls variables from code (needed to support WebAssembly) *some mmutils tweaks *some fixes *pthread TLS thread ID implementation -added Atomic file (reimplementation of atomics templates for emscripten) -added emscripten support to ecs.std Mergul 2019-11-25 20:06:16 +00:00
  • 46de0f6adb -builded demos on linux -small gitingore fix Mergul 2019-11-20 16:42:44 +00:00
  • 5894e76540 -updated wasm build scripts -multitheaded wasm tests -updated dub.json -fixed thread pool assert issue -added windows libraries -added demos: *launcher *simple *snake *space invaders (WIP) *statistics window *changable gui styles *tips window *profile window *demo window with automatic generation *multithreaded job updater Mergul 2019-11-19 10:37:34 +01:00
  • cb7609dcaa -Demos: *added ImGUI styles *added new assets (fonts, shaders) *added cimgui.dll *added imports for bindbc-sdl (for WASM) *added simple demo *added demo launcher *added snake demo *impoved demo utils *added cimgui.bc library for WASM -improved wasm build script -small change in vector Mergul 2019-11-12 20:33:31 +01:00
  • 73f2aa6861 -improved WASM compilation scripts -added external bindbc.sdl import for WASM -working on demos (WIP, working simple demo with ECS and SDL2) -small change in ecs.std Mergul 2019-11-06 20:38:46 +01:00
  • a8c74d5045 -make tests working on web -WebAssembly now is compiled with emscripten use (stdc functions bindings only) -added python script to build WASM version Mergul 2019-11-05 09:21:02 +01:00
  • 015783bf5c -remove '-defaultlib' from dub.json -start working with WebAssembly -modified .gitignore -added meson build file (WIP) Mergul 2019-11-02 18:51:03 +01:00
  • 7fa41f7671 -fixed bug (Events was called before onAddEntity callback) betterC Mergul 2019-10-30 19:41:21 +01:00
  • d0c3926316 -betterC working on GDC -added some attributes like export and nothrow Mergul 2019-10-12 14:54:13 +02:00
  • d8b01ee097 -working betterC Mergul 2019-10-11 19:15:01 +02:00
  • cde772c077 -betterC works on linux with DMD Mergul 2019-10-11 19:05:41 +02:00
  • 633aad6cb7 -enabled handleEvent Mergul 2019-10-11 08:31:26 +02:00