Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | chore(lib,client): fix build failures and update version bounds HEAD master | sternenseemann | 2020-12-25 | 3 | -11/+10 |
| | |||||
* | chore(default.nix): override broken flat | sternenseemann | 2020-12-25 | 1 | -5/+7 |
| | |||||
* | add protocol message and message parser | sternenseemann | 2019-10-31 | 1 | -0/+14 |
| | |||||
* | add protocol mockup for multiplayer | sternenseemann | 2019-10-29 | 3 | -0/+128 |
| | |||||
* | processTick now returns all changed objects | sternenseemann | 2019-10-29 | 2 | -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 modification | sternenseemann | 2019-10-29 | 2 | -11/+12 |
| | |||||
* | switch to lazy StateT | sternenseemann | 2019-10-29 | 2 | -2/+2 |
| | |||||
* | expand documentation | sternenseemann | 2019-10-27 | 3 | -11/+73 |
| | |||||
* | test insertMapKey instead of unused insertSeq | sternenseemann | 2019-10-27 | 2 | -15/+4 |
| | |||||
* | hlint suggestions | sternenseemann | 2019-10-27 | 6 | -18/+17 |
| | |||||
* | simplify object update | sternenseemann | 2019-10-27 | 1 | -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 update | sternenseemann | 2019-10-27 | 9 | -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 1 | sternenseemann | 2019-06-06 | 1 | -2/+2 |
| | |||||
* | correct behavior of chainFun | sternenseemann | 2019-06-01 | 1 | -2/+5 |
| | | | | add extraction of spawned objects | ||||
* | use relation graph for gravity calculations | sternenseemann | 2019-06-01 | 6 | -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 viewport | sternenseemann | 2019-05-30 | 1 | -1/+2 |
| | |||||
* | enable profiling again | sternenseemann | 2019-05-30 | 1 | -0/+2 |
| | |||||
* | prevent insertSeq form overwriting an value thus computing it twice | sternenseemann | 2019-05-30 | 2 | -7/+26 |
| | |||||
* | use relation graph for collision detection | sternenseemann | 2019-05-30 | 3 | -11/+25 |
| | | | | | this prevents collision a b from being called more than one time. | ||||
* | add defaul-language for test | sternenseemann | 2019-05-30 | 1 | -0/+1 |
| | |||||
* | switch from list to seq; simplify state update | sternenseemann | 2019-05-30 | 3 | -37/+51 |
| | |||||
* | add UGraph Util and tests | sternenseemann | 2019-05-30 | 4 | -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 profiling | sternenseemann | 2019-05-27 | 2 | -3/+12 |
| | |||||
* | make scaling feel more natural | sternenseemann | 2019-05-26 | 1 | -3/+3 |
| | |||||
* | show developments of grav2ty | sternenseemann | 2019-05-24 | 2 | -1/+6 |
| | |||||
* | limit lifetime of projectiles | sternenseemann | 2019-05-24 | 4 | -37/+45 |
| | |||||
* | add support for projectiles | sternenseemann | 2019-05-24 | 4 | -30/+70 |
| | | | | currently you can only shoot yourself and the orbiting asteroid | ||||
* | update roadmap | sternenseemann | 2019-05-24 | 1 | -3/+5 |
| | |||||
* | don't collect info about destroyed objects | sternenseemann | 2019-05-22 | 1 | -2/+4 |
| | |||||
* | re-add collision and add time scaling | sternenseemann | 2019-05-22 | 4 | -16/+38 |
| | |||||
* | generalize state update | sternenseemann | 2019-05-22 | 2 | -31/+28 |
| | |||||
* | simplify renderGame | sternenseemann | 2019-05-22 | 1 | -9/+8 |
| | | | | use bimap were applicable | ||||
* | introduce Modification type | sternenseemann | 2019-05-21 | 2 | -17/+29 |
| | |||||
* | make all state types lens-enabled & implement zoom | sternenseemann | 2019-05-21 | 4 | -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 result | sternenseemann | 2019-05-20 | 1 | -0/+3 |
| | |||||
* | add version constraints | sternenseemann | 2019-05-20 | 1 | -5/+6 |
| | |||||
* | add lens to libraryDepends | sternenseemann | 2019-05-20 | 1 | -2/+2 |
| | |||||
* | move screenshot to doc/ | sternenseemann | 2019-05-20 | 2 | -1/+1 |
| | |||||
* | add an asteroid/moon orbiting the starting planet | sternenseemann | 2019-05-20 | 1 | -0/+1 |
| | |||||
* | integrate collision detection into game logic | sternenseemann | 2019-05-20 | 3 | -12/+25 |
| | | | | fixed logical erros and cleaned up hitbox handling on the way. | ||||
* | rotate in steps that have pi as multiple | sternenseemann | 2019-05-20 | 1 | -4/+6 |
| | |||||
* | structure documentation for Grav2ty.Simulation | sternenseemann | 2019-05-20 | 1 | -2/+20 |
| | |||||
* | implement own rotation and translation of hitboxes | sternenseemann | 2019-05-20 | 2 | -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 roadmap | sternenseemann | 2019-05-20 | 1 | -1/+3 |
| | |||||
* | add first version of collision detection algorithm | sternenseemann | 2019-05-19 | 4 | -4/+78 |
| | |||||
* | allow for rendering-related storage in State | sternenseemann | 2019-05-19 | 3 | -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 centered | sternenseemann | 2019-05-18 | 1 | -3/+14 |
| | | | | a practical demonstration of relativity. should be made configurable in the future | ||||
* | split grav2ty into library and executable | sternenseemann | 2019-05-18 | 5 | -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 state | sternenseemann | 2019-05-17 | 1 | -2/+2 |
| | |||||
* | add roadmap | sternenseemann | 2019-05-17 | 1 | -1/+14 |
| |