]> git.tdb.fi Git - libs/game.git/log
libs/game.git
15 months agoUpdate .gitignore files master
Mikko Rasa [Sun, 8 Jan 2023 22:34:29 +0000 (00:34 +0200)]
Update .gitignore files

This includes pre-emptive changes for Windows build products.

15 months agoLoad the various setups through resources
Mikko Rasa [Sun, 8 Jan 2023 22:33:29 +0000 (00:33 +0200)]
Load the various setups through resources

15 months agoAdd dependency to mspmath in Bassteroids
Mikko Rasa [Sun, 8 Jan 2023 13:11:42 +0000 (15:11 +0200)]
Add dependency to mspmath in Bassteroids

15 months agoUse the setup generator to create setup structs
Mikko Rasa [Sun, 8 Jan 2023 13:08:08 +0000 (15:08 +0200)]
Use the setup generator to create setup structs

15 months agoSupport API decorations for setups
Mikko Rasa [Sun, 8 Jan 2023 13:01:17 +0000 (15:01 +0200)]
Support API decorations for setups

15 months agoPrefix C++ types with namespaces in the setup generator
Mikko Rasa [Sun, 8 Jan 2023 12:55:14 +0000 (14:55 +0200)]
Prefix C++ types with namespaces in the setup generator

15 months agoAdd import functionality for setup modules
Mikko Rasa [Sun, 8 Jan 2023 12:53:07 +0000 (14:53 +0200)]
Add import functionality for setup modules

Also install setup definition files so definitions from libraries can be
used.

15 months agoRefactor the setup generator to store types in modules
Mikko Rasa [Sun, 8 Jan 2023 12:50:45 +0000 (14:50 +0200)]
Refactor the setup generator to store types in modules

15 months agoCreate a builder plugin for the setup generator tool
Mikko Rasa [Sat, 7 Jan 2023 13:25:13 +0000 (15:25 +0200)]
Create a builder plugin for the setup generator tool

15 months agoRemove a temporary hack
Mikko Rasa [Sat, 7 Jan 2023 13:24:25 +0000 (15:24 +0200)]
Remove a temporary hack

The bug it was for is now fixed.

15 months agoAdd an include which is now necessary
Mikko Rasa [Sat, 7 Jan 2023 13:23:11 +0000 (15:23 +0200)]
Add an include which is now necessary

Changes in the Variant class require classes retrieved from a collection
to be fully defined.

15 months agoDecorate things which constitute the public API of the library
Mikko Rasa [Sat, 7 Jan 2023 13:19:47 +0000 (15:19 +0200)]
Decorate things which constitute the public API of the library

16 months agoAdd a tool for generating setup structs and loaders for them
Mikko Rasa [Sat, 17 Dec 2022 12:17:08 +0000 (14:17 +0200)]
Add a tool for generating setup structs and loaders for them

16 months agoAdjust system dependencies to resolve scheduling ambiguities
Mikko Rasa [Wed, 7 Dec 2022 10:03:35 +0000 (12:03 +0200)]
Adjust system dependencies to resolve scheduling ambiguities

16 months agoSchedule systems based on their declared dependencies
Mikko Rasa [Wed, 7 Dec 2022 10:02:59 +0000 (12:02 +0200)]
Schedule systems based on their declared dependencies

16 months agoAdd flags for declaring ordering between systems
Mikko Rasa [Wed, 7 Dec 2022 09:56:51 +0000 (11:56 +0200)]
Add flags for declaring ordering between systems

16 months agoMake it possible to find reflected classes by RTTI
Mikko Rasa [Wed, 7 Dec 2022 09:52:03 +0000 (11:52 +0200)]
Make it possible to find reflected classes by RTTI

16 months agoAdd move constructor and assignment from Owned of derived type
Mikko Rasa [Sun, 4 Dec 2022 21:32:05 +0000 (23:32 +0200)]
Add move constructor and assignment from Owned of derived type

16 months agoChange Owned's constructor to take a pointer to the parent
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

16 months agoCosmetic fixes
Mikko Rasa [Sun, 4 Dec 2022 20:16:34 +0000 (22:16 +0200)]
Cosmetic fixes

16 months agoMinor optimization to AccessGuard::check
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.

16 months agoReport which system caused invalid access
Mikko Rasa [Sun, 4 Dec 2022 20:14:52 +0000 (22:14 +0200)]
Report which system caused invalid access

16 months agoEnforce correct access to buffered components
Mikko Rasa [Sun, 4 Dec 2022 20:13:56 +0000 (22:13 +0200)]
Enforce correct access to buffered components

16 months agoConvert components to buffered where appropriate
Mikko Rasa [Sun, 4 Dec 2022 15:12:59 +0000 (17:12 +0200)]
Convert components to buffered where appropriate

16 months agoImplement base support for buffered components
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.

16 months agoPlug a memory leak in EventBus
Mikko Rasa [Sat, 3 Dec 2022 16:21:21 +0000 (18:21 +0200)]
Plug a memory leak in EventBus

16 months agoAdd unit tests for the event bus
Mikko Rasa [Sat, 3 Dec 2022 16:18:19 +0000 (18:18 +0200)]
Add unit tests for the event bus

16 months agoAdd unit tests for reflection
Mikko Rasa [Sat, 3 Dec 2022 11:18:11 +0000 (13:18 +0200)]
Add unit tests for reflection

16 months agoAdd reflection infrastructure
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.

17 months agoDefer creation of bullets until the end of the frame
Mikko Rasa [Mon, 28 Nov 2022 12:12:15 +0000 (14:12 +0200)]
Defer creation of bullets until the end of the frame

17 months agoEnforce no creation or destruction of objects during tick
Mikko Rasa [Mon, 28 Nov 2022 12:08:29 +0000 (14:08 +0200)]
Enforce no creation or destruction of objects during tick

17 months agoMake asteroids take damage when shot and eventually be destroyed
Mikko Rasa [Sun, 27 Nov 2022 21:49:23 +0000 (23:49 +0200)]
Make asteroids take damage when shot and eventually be destroyed

17 months agoRemove destroyed entities from the physics simulation
Mikko Rasa [Sun, 27 Nov 2022 21:48:39 +0000 (23:48 +0200)]
Remove destroyed entities from the physics simulation

17 months agoEmit events for colliding physical entities
Mikko Rasa [Sun, 27 Nov 2022 21:45:30 +0000 (23:45 +0200)]
Emit events for colliding physical entities

17 months agoPass bullet's initial transform values directly to the constructor
Mikko Rasa [Sun, 27 Nov 2022 21:39:34 +0000 (23:39 +0200)]
Pass bullet's initial transform values directly to the constructor

17 months agoDisable keyboard autorepeat by default
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.

17 months agoMake it possible to shoot bullets in Bassteroids
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.

17 months agoInitialize Transform's matrices to identity
Mikko Rasa [Fri, 25 Nov 2022 19:41:48 +0000 (21:41 +0200)]
Initialize Transform's matrices to identity

17 months agoFix various cases of bad math
Mikko Rasa [Fri, 25 Nov 2022 19:41:31 +0000 (21:41 +0200)]
Fix various cases of bad math

17 months agoAdd missing initializer for player ship's moment of inertia
Mikko Rasa [Fri, 25 Nov 2022 19:40:31 +0000 (21:40 +0200)]
Add missing initializer for player ship's moment of inertia

17 months agoUse the correct inertial quantity for calculating velocity change
Mikko Rasa [Fri, 25 Nov 2022 19:38:42 +0000 (21:38 +0200)]
Use the correct inertial quantity for calculating velocity change

17 months agoDon't apply more friction than it takes to nullify the velocity
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

17 months agoSimulate friction in collisions
Mikko Rasa [Mon, 21 Nov 2022 11:02:03 +0000 (13:02 +0200)]
Simulate friction in collisions

17 months agoAdd a controllable player ship to Bassteroids
Mikko Rasa [Mon, 21 Nov 2022 10:02:08 +0000 (12:02 +0200)]
Add a controllable player ship to Bassteroids

17 months agoAllow external forces and torques to be added on rigid bodies
Mikko Rasa [Sun, 20 Nov 2022 19:22:40 +0000 (21:22 +0200)]
Allow external forces and torques to be added on rigid bodies

17 months agoAdd rotation to physics simulation
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.

17 months agoAdd infrastructure for receiving player input
Mikko Rasa [Sun, 20 Nov 2022 13:59:45 +0000 (15:59 +0200)]
Add infrastructure for receiving player input

17 months agoAdd playfield boundaries to Bassteroids
Mikko Rasa [Sat, 12 Nov 2022 16:07:07 +0000 (18:07 +0200)]
Add playfield boundaries to Bassteroids

17 months agoImplement box colliders in Bassteroids' physics system
Mikko Rasa [Sat, 12 Nov 2022 16:06:14 +0000 (18:06 +0200)]
Implement box colliders in Bassteroids' physics system

17 months agoProvide a way to request events for existing entities and components
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.

17 months agoCosmetic tweaks
Mikko Rasa [Sat, 12 Nov 2022 15:40:28 +0000 (17:40 +0200)]
Cosmetic tweaks

17 months agoAdd some useful constructors for TransformValues
Mikko Rasa [Sat, 12 Nov 2022 15:34:32 +0000 (17:34 +0200)]
Add some useful constructors for TransformValues

17 months agoImplement a simple physics system in Bassteroids
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.

17 months agoBegin creating an example game
Mikko Rasa [Wed, 9 Nov 2022 20:58:23 +0000 (22:58 +0200)]
Begin creating an example game

17 months agoAdd setters for the individual parts of Transform
Mikko Rasa [Wed, 9 Nov 2022 20:57:15 +0000 (22:57 +0200)]
Add setters for the individual parts of Transform

17 months agoCosmetic fixes
Mikko Rasa [Fri, 4 Nov 2022 22:42:06 +0000 (00:42 +0200)]
Cosmetic fixes

17 months agoAdd a way for systems to do things at the end of a tick
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.

17 months agoAdd components for giving entities a visual appearance
Mikko Rasa [Wed, 2 Nov 2022 22:49:09 +0000 (00:49 +0200)]
Add components for giving entities a visual appearance

17 months agoRecursively add subdirectories of the data directory to resources
Mikko Rasa [Wed, 2 Nov 2022 22:19:21 +0000 (00:19 +0200)]
Recursively add subdirectories of the data directory to resources

17 months agoAdd less-than comparison for handles
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.

17 months agoAdd a view sub-library, including a Camera component
Mikko Rasa [Sat, 29 Oct 2022 22:16:18 +0000 (01:16 +0300)]
Add a view sub-library, including a Camera component

17 months agoAdd a function to remove a system from a stage
Mikko Rasa [Sat, 29 Oct 2022 21:13:27 +0000 (00:13 +0300)]
Add a function to remove a system from a stage

17 months agoPut Director's destructor in the .cpp file
Mikko Rasa [Sat, 29 Oct 2022 18:46:28 +0000 (21:46 +0300)]
Put Director's destructor in the .cpp file

17 months agoAdd resource container references to Director and Stage
Mikko Rasa [Sat, 29 Oct 2022 18:30:25 +0000 (21:30 +0300)]
Add resource container references to Director and Stage

17 months agoAdd some useful accessors
Mikko Rasa [Sat, 29 Oct 2022 17:46:04 +0000 (20:46 +0300)]
Add some useful accessors

17 months agoTweak the constructors of Owned
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.

17 months agoUse template lambdas to avoid repetition of types
Mikko Rasa [Sat, 29 Oct 2022 17:20:55 +0000 (20:20 +0300)]
Use template lambdas to avoid repetition of types

18 months agoMake it possible to retrieve components and systems of a particular type
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

18 months agoAdd stage activation and events
Mikko Rasa [Tue, 25 Oct 2022 21:16:04 +0000 (00:16 +0300)]
Add stage activation and events

18 months agoAdd a transform component and propagation system
Mikko Rasa [Sat, 22 Oct 2022 19:52:04 +0000 (22:52 +0300)]
Add a transform component and propagation system

18 months agoAllow null handles to be created from nullptr
Mikko Rasa [Sat, 22 Oct 2022 16:04:53 +0000 (19:04 +0300)]
Allow null handles to be created from nullptr

18 months agoFix some pointer/reference mismatches in EventBus
Mikko Rasa [Sat, 22 Oct 2022 16:02:57 +0000 (19:02 +0300)]
Fix some pointer/reference mismatches in EventBus

18 months agoAdjust component ticking
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.

18 months agoEmit events on entity and component creation and destruction
Mikko Rasa [Thu, 20 Oct 2022 21:29:23 +0000 (00:29 +0300)]
Emit events on entity and component creation and destruction

18 months agoAdd an event bus for delivering events
Mikko Rasa [Thu, 20 Oct 2022 21:02:25 +0000 (00:02 +0300)]
Add an event bus for delivering events

18 months agoMake the parent handle in Owned templated
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.

18 months agoAdjust some things to make header dependencies easier to manage
Mikko Rasa [Wed, 19 Oct 2022 08:01:30 +0000 (11:01 +0300)]
Adjust some things to make header dependencies easier to manage

18 months agoImplement a basic ECS
Mikko Rasa [Tue, 18 Oct 2022 20:34:10 +0000 (23:34 +0300)]
Implement a basic ECS