]>
git.tdb.fi Git - libs/game.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Mikko Rasa [Wed, 7 Dec 2022 10:02:59 +0000 (12:02 +0200)]
Schedule systems based on their declared dependencies
Mikko Rasa [Wed, 7 Dec 2022 09:56:51 +0000 (11:56 +0200)]
Add flags for declaring ordering between systems
Mikko Rasa [Wed, 7 Dec 2022 09:52:03 +0000 (11:52 +0200)]
Make it possible to find reflected classes by RTTI
Mikko Rasa [Sun, 4 Dec 2022 21:32:05 +0000 (23:32 +0200)]
Add move constructor and assignment from Owned of derived type
Mikko Rasa [Sun, 4 Dec 2022 21:25:40 +0000 (23:25 +0200)]
Change Owned's constructor to take a pointer to the parent
This avoids some awkwardness with overload resolution
Mikko Rasa [Sun, 4 Dec 2022 20:16:34 +0000 (22:16 +0200)]
Cosmetic fixes
Mikko Rasa [Sun, 4 Dec 2022 20:15:26 +0000 (22:15 +0200)]
Minor optimization to AccessGuard::check
It doesn't need to resize the vector since it can just use the default
flag.
Mikko Rasa [Sun, 4 Dec 2022 20:14:52 +0000 (22:14 +0200)]
Report which system caused invalid access
Mikko Rasa [Sun, 4 Dec 2022 20:13:56 +0000 (22:13 +0200)]
Enforce correct access to buffered components
Mikko Rasa [Sun, 4 Dec 2022 15:12:59 +0000 (17:12 +0200)]
Convert components to buffered where appropriate
Mikko Rasa [Sun, 4 Dec 2022 13:29:57 +0000 (15:29 +0200)]
Implement base support for buffered components
They hold two copies of data, one being read from and the other written
to. This makes it easier to write concurrent and order-independent code.
Systems can declare dependencies to such components to have their prepare
and commit functions called automatically.
Mikko Rasa [Sat, 3 Dec 2022 16:21:21 +0000 (18:21 +0200)]
Plug a memory leak in EventBus
Mikko Rasa [Sat, 3 Dec 2022 16:18:19 +0000 (18:18 +0200)]
Add unit tests for the event bus
Mikko Rasa [Sat, 3 Dec 2022 11:18:11 +0000 (13:18 +0200)]
Add unit tests for reflection
Mikko Rasa [Sat, 3 Dec 2022 08:47:45 +0000 (10:47 +0200)]
Add reflection infrastructure
This allows checking for type relationships at runtime, which will be
useful for annotating system dependencies and iterating over subclasses.
Mikko Rasa [Mon, 28 Nov 2022 12:12:15 +0000 (14:12 +0200)]
Defer creation of bullets until the end of the frame
Mikko Rasa [Mon, 28 Nov 2022 12:08:29 +0000 (14:08 +0200)]
Enforce no creation or destruction of objects during tick
Mikko Rasa [Sun, 27 Nov 2022 21:49:23 +0000 (23:49 +0200)]
Make asteroids take damage when shot and eventually be destroyed
Mikko Rasa [Sun, 27 Nov 2022 21:48:39 +0000 (23:48 +0200)]
Remove destroyed entities from the physics simulation
Mikko Rasa [Sun, 27 Nov 2022 21:45:30 +0000 (23:45 +0200)]
Emit events for colliding physical entities
Mikko Rasa [Sun, 27 Nov 2022 21:39:34 +0000 (23:39 +0200)]
Pass bullet's initial transform values directly to the constructor
Mikko Rasa [Fri, 25 Nov 2022 20:05:23 +0000 (22:05 +0200)]
Disable keyboard autorepeat by default
It's usually undesirable in games, and the setting doesn't affect
character input.
Mikko Rasa [Fri, 25 Nov 2022 20:04:30 +0000 (22:04 +0200)]
Make it possible to shoot bullets in Bassteroids
They don't actually do anything yet except bounce around.
Mikko Rasa [Fri, 25 Nov 2022 19:41:48 +0000 (21:41 +0200)]
Initialize Transform's matrices to identity
Mikko Rasa [Fri, 25 Nov 2022 19:41:31 +0000 (21:41 +0200)]
Fix various cases of bad math
Mikko Rasa [Fri, 25 Nov 2022 19:40:31 +0000 (21:40 +0200)]
Add missing initializer for player ship's moment of inertia
Mikko Rasa [Fri, 25 Nov 2022 19:38:42 +0000 (21:38 +0200)]
Use the correct inertial quantity for calculating velocity change
Mikko Rasa [Fri, 25 Nov 2022 19:38:09 +0000 (21:38 +0200)]
Don't apply more friction than it takes to nullify the velocity
Mikko Rasa [Mon, 21 Nov 2022 11:02:03 +0000 (13:02 +0200)]
Simulate friction in collisions
Mikko Rasa [Mon, 21 Nov 2022 10:02:08 +0000 (12:02 +0200)]
Add a controllable player ship to Bassteroids
Mikko Rasa [Sun, 20 Nov 2022 19:22:40 +0000 (21:22 +0200)]
Allow external forces and torques to be added on rigid bodies
Mikko Rasa [Sun, 20 Nov 2022 19:10:32 +0000 (21:10 +0200)]
Add rotation to physics simulation
There's no friction yet, so colliding objects don't start rotating.
Mikko Rasa [Sun, 20 Nov 2022 13:59:45 +0000 (15:59 +0200)]
Add infrastructure for receiving player input
Mikko Rasa [Sat, 12 Nov 2022 16:07:07 +0000 (18:07 +0200)]
Add playfield boundaries to Bassteroids
Mikko Rasa [Sat, 12 Nov 2022 16:06:14 +0000 (18:06 +0200)]
Implement box colliders in Bassteroids' physics system
Mikko Rasa [Sat, 12 Nov 2022 15:49:27 +0000 (17:49 +0200)]
Provide a way to request events for existing entities and components
The iterate_objects function does not account for derived classes, so
iterating over all Entity instances might not actually give all entities
on the stage.
Mikko Rasa [Sat, 12 Nov 2022 15:40:28 +0000 (17:40 +0200)]
Cosmetic tweaks
Mikko Rasa [Sat, 12 Nov 2022 15:34:32 +0000 (17:34 +0200)]
Add some useful constructors for TransformValues
Mikko Rasa [Sat, 12 Nov 2022 11:35:41 +0000 (13:35 +0200)]
Implement a simple physics system in Bassteroids
A more comprehensive physics system will be implemented in the game
engine later.
Mikko Rasa [Wed, 9 Nov 2022 20:58:23 +0000 (22:58 +0200)]
Begin creating an example game
Mikko Rasa [Wed, 9 Nov 2022 20:57:15 +0000 (22:57 +0200)]
Add setters for the individual parts of Transform
Mikko Rasa [Fri, 4 Nov 2022 22:42:06 +0000 (00:42 +0200)]
Cosmetic fixes
Mikko Rasa [Fri, 4 Nov 2022 22:40:55 +0000 (00:40 +0200)]
Add a way for systems to do things at the end of a tick
Objects should not be created or destroyed mid-tick.
Mikko Rasa [Wed, 2 Nov 2022 22:49:09 +0000 (00:49 +0200)]
Add components for giving entities a visual appearance
Mikko Rasa [Wed, 2 Nov 2022 22:19:21 +0000 (00:19 +0200)]
Recursively add subdirectories of the data directory to resources
Mikko Rasa [Wed, 2 Nov 2022 22:00:47 +0000 (00:00 +0200)]
Add less-than comparison for handles
This allows them to be used as keys for maps or binary search.
Mikko Rasa [Sat, 29 Oct 2022 22:16:18 +0000 (01:16 +0300)]
Add a view sub-library, including a Camera component
Mikko Rasa [Sat, 29 Oct 2022 21:13:27 +0000 (00:13 +0300)]
Add a function to remove a system from a stage
Mikko Rasa [Sat, 29 Oct 2022 18:46:28 +0000 (21:46 +0300)]
Put Director's destructor in the .cpp file
Mikko Rasa [Sat, 29 Oct 2022 18:30:25 +0000 (21:30 +0300)]
Add resource container references to Director and Stage
Mikko Rasa [Sat, 29 Oct 2022 17:46:04 +0000 (20:46 +0300)]
Add some useful accessors
Mikko Rasa [Sat, 29 Oct 2022 17:24:39 +0000 (20:24 +0300)]
Tweak the constructors of Owned
This makes it not break if an Owned is passed as the first argument.
Mikko Rasa [Sat, 29 Oct 2022 17:20:55 +0000 (20:20 +0300)]
Use template lambdas to avoid repetition of types
Mikko Rasa [Tue, 25 Oct 2022 21:17:06 +0000 (00:17 +0300)]
Make it possible to retrieve components and systems of a particular type
Mikko Rasa [Tue, 25 Oct 2022 21:16:04 +0000 (00:16 +0300)]
Add stage activation and events
Mikko Rasa [Sat, 22 Oct 2022 19:52:04 +0000 (22:52 +0300)]
Add a transform component and propagation system
Mikko Rasa [Sat, 22 Oct 2022 16:04:53 +0000 (19:04 +0300)]
Allow null handles to be created from nullptr
Mikko Rasa [Sat, 22 Oct 2022 16:02:57 +0000 (19:02 +0300)]
Fix some pointer/reference mismatches in EventBus
Mikko Rasa [Sat, 22 Oct 2022 15:44:01 +0000 (18:44 +0300)]
Adjust component ticking
Running pre_tick() for all systems before running tick() for any of
them is too inflexible. Also remove the virtual tick() function from
Component and use a concept for BasicSystem instead.
Mikko Rasa [Thu, 20 Oct 2022 21:29:23 +0000 (00:29 +0300)]
Emit events on entity and component creation and destruction
Mikko Rasa [Thu, 20 Oct 2022 21:02:25 +0000 (00:02 +0300)]
Add an event bus for delivering events
Mikko Rasa [Wed, 19 Oct 2022 08:07:44 +0000 (11:07 +0300)]
Make the parent handle in Owned templated
It may be useful for some components designed to be used with certain
entity types.
Mikko Rasa [Wed, 19 Oct 2022 08:01:30 +0000 (11:01 +0300)]
Adjust some things to make header dependencies easier to manage
Mikko Rasa [Tue, 18 Oct 2022 20:34:10 +0000 (23:34 +0300)]
Implement a basic ECS