]> git.tdb.fi Git - libs/game.git/log
libs/game.git
2 years agoAdjust Bassteroids for the lighting changes
Mikko Rasa [Sat, 28 Jan 2023 20:54:12 +0000 (22:54 +0200)]
Adjust Bassteroids for the lighting changes

2 years agoCreate the rendering sequence dynamically
Mikko Rasa [Sat, 28 Jan 2023 19:59:09 +0000 (21:59 +0200)]
Create the rendering sequence dynamically

Sequence templates are a bit too rigid for games where it's desirable to
tune many different graphics quality settings independently.

2 years agoAdd components for creating lights
Mikko Rasa [Sat, 28 Jan 2023 14:28:47 +0000 (16:28 +0200)]
Add components for creating lights

2 years agoFurther refactor Renderer and MeshRenderer
Mikko Rasa [Sat, 28 Jan 2023 12:38:59 +0000 (14:38 +0200)]
Further refactor Renderer and MeshRenderer

The ObjectInstance is now hidden inside MeshRenderer and RAII is used to
remove it from the scene.  This limits the instance to being in only a
single scene, but I don't think that will be an issue.

2 years agoAdd a transform propagator to stages by default
Mikko Rasa [Tue, 24 Jan 2023 13:01:17 +0000 (15:01 +0200)]
Add a transform propagator to stages by default

This is possible now that system dependencies have been implemented.

2 years agoRefactor Renderer to pick up components instead of entities
Mikko Rasa [Sat, 21 Jan 2023 18:44:36 +0000 (20:44 +0200)]
Refactor Renderer to pick up components instead of entities

This makes more sense since there isn't an entity class which always
contains a MeshSource.

2 years agoHave MeshRenderer's constructor take a GL::Object
Mikko Rasa [Sat, 21 Jan 2023 18:39:20 +0000 (20:39 +0200)]
Have MeshRenderer's constructor take a GL::Object

2 years agoUndefine the API macro at the end of a setup header
Mikko Rasa [Sat, 21 Jan 2023 18:31:25 +0000 (20:31 +0200)]
Undefine the API macro at the end of a setup header

Otherwise it may interfere with other setup headers.

2 years agoAdd basic networking infrastructure
Mikko Rasa [Tue, 17 Jan 2023 07:52:25 +0000 (09:52 +0200)]
Add basic networking infrastructure

Currently it only allows running a server, connecting to it and creating
players, but no synchronization yet.

2 years agoDerive GameSetupDefinitions from TemplateFile instead of SourceFile
Mikko Rasa [Mon, 9 Jan 2023 09:27:16 +0000 (11:27 +0200)]
Derive GameSetupDefinitions from TemplateFile instead of SourceFile

Builder's InstallMap checks for that class to figure out the install
locations for generated headers.

2 years agoUpdate .gitignore files
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.

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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.

2 years 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

2 years 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

2 years 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.

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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.

2 years 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

2 years 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

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

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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.

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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.

2 years 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

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

2 years 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

2 years 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.

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

2 years 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

2 years 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.

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

2 years 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

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

2 years 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.

2 years 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

2 years 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

2 years 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.

2 years 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

2 years 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

2 years 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

2 years 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

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

2 years 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.

2 years 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

2 years 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

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

2 years 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

2 years 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

2 years 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

2 years 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.

2 years 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

2 years 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

2 years 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.

2 years 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

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