about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* chore(lib,client): fix build failures and update version bounds HEAD mastersternenseemann2020-12-253-11/+10
|
* chore(default.nix): override broken flatsternenseemann2020-12-251-5/+7
|
* add protocol message and message parsersternenseemann2019-10-311-0/+14
|
* add protocol mockup for multiplayersternenseemann2019-10-293-0/+128
|
* processTick now returns all changed objectssternenseemann2019-10-292-19/+31
| | | | | | | This currently means all Dynamic objects and all created objects. This is probably fine, since Dynamic Objects stay the same during a Tick very seldomly.
* remove LocalMod switch to pure Id basted modificationsternenseemann2019-10-292-11/+12
|
* switch to lazy StateTsternenseemann2019-10-292-2/+2
|
* expand documentationsternenseemann2019-10-273-11/+73
|
* test insertMapKey instead of unused insertSeqsternenseemann2019-10-272-15/+4
|
* hlint suggestionssternenseemann2019-10-276-18/+17
|
* simplify object updatesternenseemann2019-10-271-29/+34
| | | | | | | | | | | | | * previously deletion of objects was partially done by applyControls and partially by processObject. Now a single action deletionNecessary determines if an object has to be deleted or not, which is then done by processObject. * The remaining functionality of applyControls, i. e. applying a Modification to an Object, has been moved to modifyObject, which is now less nested and doesn't return a Maybe anymore.
* internal rework of state handling and world updatesternenseemann2019-10-279-227/+294
| | | | | | | | | | | | | | * moved internal types and essential functions to Grav2ty.Core * store Objects in a Map and give them an Id * update the World using a StateT Monad instead of State-updating functions. This makes Grav2ty.Control much cleaner (although it can probably be improved), but Main uglier. I'll rework Main eventually. * Make RelGraph use Ids instead of full Objects. Still missing new props for this behaviour. * Use StateT actions as hooks instead of ExtractFunctions * Rework State, renamed to Grav2tyState * Remove TimeScaling (not applicable for planned multiplayer mode)
* increase timeStep to 1sternenseemann2019-06-061-2/+2
|
* correct behavior of chainFunsternenseemann2019-06-011-2/+5
| | | | add extraction of spawned objects
* use relation graph for gravity calculationssternenseemann2019-06-016-91/+124
| | | | | | | | | this should improve performance a bit, since we don't call gravityForces for every object anymore. this change was achieved by making the relation graph directed, while enforcing that every (directed) edge is accompanied by one in the opposite direction.
* fix bug leading to not centered viewportsternenseemann2019-05-301-1/+2
|
* enable profiling againsternenseemann2019-05-301-0/+2
|
* prevent insertSeq form overwriting an value thus computing it twicesternenseemann2019-05-302-7/+26
|
* use relation graph for collision detectionsternenseemann2019-05-303-11/+25
| | | | | this prevents collision a b from being called more than one time.
* add defaul-language for teststernenseemann2019-05-301-0/+1
|
* switch from list to seq; simplify state updatesternenseemann2019-05-303-37/+51
|
* add UGraph Util and testssternenseemann2019-05-304-5/+99
| | | | | | this utility module is intended to improve performance. in the future and might be reworked internally if i find a better way to implement undirected graphs
* build with profilingsternenseemann2019-05-272-3/+12
|
* make scaling feel more naturalsternenseemann2019-05-261-3/+3
|
* show developments of grav2tysternenseemann2019-05-242-1/+6
|
* limit lifetime of projectilessternenseemann2019-05-244-37/+45
|
* add support for projectilessternenseemann2019-05-244-30/+70
| | | | currently you can only shoot yourself and the orbiting asteroid
* update roadmapsternenseemann2019-05-241-3/+5
|
* don't collect info about destroyed objectssternenseemann2019-05-221-2/+4
|
* re-add collision and add time scalingsternenseemann2019-05-224-16/+38
|
* generalize state updatesternenseemann2019-05-222-31/+28
|
* simplify renderGamesternenseemann2019-05-221-9/+8
| | | | use bimap were applicable
* introduce Modification typesternenseemann2019-05-212-17/+29
|
* make all state types lens-enabled & implement zoomsternenseemann2019-05-214-44/+70
| | | | | | ported eventHandler to a lens-based approach, other game logic left to do. the viewport can be zoomed by using '+' and '-'
* ignore nix build resultsternenseemann2019-05-201-0/+3
|
* add version constraintssternenseemann2019-05-201-5/+6
|
* add lens to libraryDependssternenseemann2019-05-201-2/+2
|
* move screenshot to doc/sternenseemann2019-05-202-1/+1
|
* add an asteroid/moon orbiting the starting planetsternenseemann2019-05-201-0/+1
|
* integrate collision detection into game logicsternenseemann2019-05-203-12/+25
| | | | fixed logical erros and cleaned up hitbox handling on the way.
* rotate in steps that have pi as multiplesternenseemann2019-05-201-4/+6
|
* structure documentation for Grav2ty.Simulationsternenseemann2019-05-201-2/+20
|
* implement own rotation and translation of hitboxessternenseemann2019-05-202-11/+23
| | | | | | | these functions replace our usage of the Rotate and Translate constructors of gloss. these were fine, but only for rendering. since we want to do proper collision detection we had to manually implement rotation and translation.
* add new ideas to roadmapsternenseemann2019-05-201-1/+3
|
* add first version of collision detection algorithmsternenseemann2019-05-194-4/+78
|
* allow for rendering-related storage in Statesternenseemann2019-05-193-23/+60
| | | | | | | this allows data collection used for rendering like the position of the controlled object. this is used to rework the gloss rendering engine in order to clean up various spaghetti code. introducing centered viewport which can be toggled using 'c'.
* make viewport centeredsternenseemann2019-05-181-3/+14
| | | | a practical demonstration of relativity. should be made configurable in the future
* split grav2ty into library and executablesternenseemann2019-05-185-139/+176
| | | | | | this keeps simulation and game logic separate from graphical implementation, allowing for future switch of graphical backend or a client-server multiplayer mode.
* adjust values of initial statesternenseemann2019-05-171-2/+2
|
* add roadmapsternenseemann2019-05-171-1/+14
|