forked from TacticalMetaphysics/LiSE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
193 lines (159 loc) · 9.8 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
== 0.15.2 | 2024-07-05 ==
* Crash fixes involving time travel
* Speed up interbranch time travel somewhat
* Switch to ruff formatter
== 0.15.1 | 2024-06-24 ==
* Fix another concurrency issue
== 0.15.0 | 2024-06-18 ==
* Automatically unload history, thus minimizing memory usage for long games
By default, this happens whenever you commit changes to the database.
* Improved support for ELiDE widgets in games
* New example sim, awareness.py, to demonstrate this
* Moved `game_start` into its own module
* Dropped support for Python 3.7 and the lz4 module
* A lot of fixes regarding thread safety and interprocess sync
== 0.14.2 | 2023-04-27 ==
* Fix the rest of the loader
== 0.14.1 | 2023-04-26 ==
* Fix a loading error when you make two keyframes and then start the engine before the first
== 0.14.0 | 2023-04-07 ==
* Seek bar for time travel in ELiDE, and some other minor UI improvements
* Vastly improved performance in ELiDE for large worlds
* History queries no longer require the whole of history to be loaded, and are faster
* SQLAlchemy is now a hard dependency
* numpy is required again
* Save the state of the randomizer every time you use it, not just on time travel
* Rule stepper now works when you reopen the sim
* New example sim, wolfsheep.py
* `enforce_end_of_time` option, so it's not so trivial to make voids of time by accident
* Lots of crash fixes
* yapf formatting, with tabs
* Improved documentation
==0.13.2 | 2022-07-31 ==
* Fix an intermittent error where entity deletion sometimes wouldn't go through all the way
* Performance improvements
* LiSE now saves keyframes on close by default. Change ``keyframe_on_close`` to ``False`` to disable this
* Renamed "modulus" options to end with "interval" instead
* Disable the cache arranger by default
== 0.13.0 | 2022-07-23 ==
* ELiDE now has the Timestream view, easing time travel when history gets complicated
* Rename "avatar" to "unit"
* Nodes now support the `.user.only` property, just like characters' `.unit.only`
* Improve interprocess communication some more, particularly when time travelling between branches
* Tab indentation, with yapf formatting
* Rename some Engine methods to use snake_case
* numpy is no longer required for the LiSE core (will speed up IPC, though)
* Fix a loading error with changes in branches other than trunk
* Crash fixes
* Drop support for Python 3.6
== 0.12.1 | 2021-07-04 ==
* Optimize interprocess synchronization
* Fix some inconsistencies in the rulebook sync
* Crush all of a character's initial state into the one keyframe, fixing integrity problems
* License change; no longer accept later versions of the AGPL
* Support networkx 2.5
* ELiDE changes
* Rule stepper to help you view the state of the game after one rule's run, just before the next
* Don't crash when resuming the game on non-trunk branches
* Fix stats configurator
* Fix rules configurators
* Accept a prefix on the command line
* Grid view shows characters other than the one you started with
* Dialog options from the game itself don't appear more than requested
* Fix crash when laying out one-dimensional boards
== 0.11.2 | 2021-04-19 ==
* Fix the branch input in ELiDE
* Performance improvements
== 0.11.1 | 2021-03-17 ==
* Fix a flaw in the keyframes implementation that caused them to overwrite each other when several were made in a single session
== 0.11 | 2021-02-03 ==
* Add support for "keyframes," snapshots of the world state at some specific time. These are currently most useful for supplying the world's initial state by instantiating a Character with a networkx graph, eg. `engine.new_character('new', nx.grid_2d_graph(3, 3))`
* Drastically improved load times for large initial world states
* Removed the would-be world generation API; for now, use [the networkx graph generators](https://networkx.org/documentation/stable/reference/generators.html), and `LiSE.character.grid_2d_8graph`if you want a square grid that's connected at the corners as well as the sides.
* Removed the "sense" feature. It will need a reimagining at some point. In the meantime you can still use `Character.facade()` to get a transient, mutable view onto a `Character` that won't be saved
* `allegedb` is a submodule of `LiSE` now, and will not be published on its own.
* Dropped support for graph types other than `DiGraph`
* Dropped support for Python versions prior to 3.6
* Compatibility with msgpack 1.0.0
* ELiDE changes
* Grid view
* File browser
* Grid generator when starting new simulation
* Symmetrical portals
* New agenda widget, for scheduling things in the future
The stat list on the left of the default ELiDE view is technically a calendar now, where an agenda is a related widget class that offers more flexibility to interface designers.
* Require Kivy 2.0
== 0.10.1 | 2020-01-08 ==
* Compatibility with networkx 2.4
* Smaller database
* Performance improvements
* Default database filename is now 'world.db', and you can instantiate Engine with no arguments
== 0.10 | 2019-03-16 ==
* Improved documentation.
* Improved performance.
* Prevented the user from trying to start the rules engine while it's already running.
* Minor API changes. clear_world and clear_code are now one option, clear
* Any trigger that's going to run in a given turn is now guaranteed to run prior to any prereq or action. This is mostly to prepare for experiments in parallelism.
* If you branch the timeline while stuff is planned for the future, the plan will be copied to the new branch, unless the plan has not yet started.
* Made facades act more like regular characters. They still aren't very useful... I'm planning to add some new API to them that lets you munge and filter their data lazily
== 0.9 | 2018-10-29 ==
This release is for ProcJam 2018.
* Changed license to AGPL3+, but also waive rights in case of my death.
* Switched to semantic versioning.
* Made the frontend experience faster by implementing deltas. Use Engine.get_delta(...) to rapidly generate a dictionary describing changes between two points in time in a single branch.
* Switched serialization format from an abuse of JSON to msgpack.
* Improved the API of the ELiDE widgets, making it easier to use them in your own game. See https://github.com/LogicalDash/DungeonUniversity for an example.
* You can zoom the map with the mousewheel now.
* Reduced memory usage for large worlds. They still take a long time to load; I'll work on that.
* Wrote a real tutorial for building LiSE games in Python outside of ELiDE.
* Made the order of execution for rulebooks easier to understand. Basically, rulebooks are followed in alphabetical order; rules within them go in whatever order they were added.
* Rearranged the UI a little.
* You can edit every rulebook in ELiDE now, including the ones that apply to all a character's avatars and so forth.
* Rules will only be followed for entities that still exist when they're run.
* The turn will always increment *before* running any rules, and no rules will be run on turn 0.
* Various little performance improvements and fixes to things like data integrity.
== Alpha 8 | 2017-10-06 ==
This release is for ProcJam 2017.
* Made the time model more granular. What was formerly called a tick is now a turn, which contains as many ticks as you need.
* Support a rudimentary form of dialog menu for player interaction.
* Rules and rulebooks are now journaled, and may change throughout the game.
* Python source code is no longer stored in SQLite--just plain text files.
* Changed the rule API so that rule functions are only ever called with a single argument, the entity that they apply to.
* ELiDE is now a pure Python module.
* Performance improvements.
=== Alpha 7 | 2017-05-06 ===
* Restructure everything in LiSE around a new caching strategy.
* Generally cleaner UI.
* If all your places are named with pairs of integers, you get automatic grid layout in ELiDE.
=== Alpha 6 | 2016-02-01 ===
* Opening a functions editor no longer crashes the app.
* All the function editors are now in tabs of one screen.
* Nicer auto layout of spots.
* Various smaller fixes.
=== Alpha 5 | 2016-01-03 ===
* A whole new approach to interprocess communication resulting in much more acceptable performance within ELiDE.
* LiSE caches the whole world state.
* ELiDE has a new caching scheme as well. This is invisible to the user but rules out some aliasing bugs.
* Fixed some rules not being polled.
* A new example, college.py, and some fixes to kobold.py where it hadn't kept up with API changes.
* The first sprouts of a world generation API, currently undocumented since I myself don't know how to work with it. Observe its methods within the class AbstractCharacter in the LiSE.character module. Chain the methods together and play around with the order to the best effect.
* Lots of refactoring.
* Some new graphics from Marsh Davies for Procjam 2015. And it's easier to include your own now, with an atlas and a change in elide.ini (though undocumented).
* Real version numbers in the Python packages.
=== Alpha 4 | 2015-08-26 ===
* The rules editor is now usable under normal conditions. After you've made Actions and Triggers, check this out by selecting something and pressing the Rules button.
* The big > button will cause time to pass for so long as it is toggled, as it was always meant to.
* Improvements to input handling and collision detection.
* Less cryptic README.
* Crash fixes.
=== Alpha 3 | 2015-08-11 ===
* Performance improvements.
* Architectural changes in ELiDE.
* Many crash bugs fixed.
* Pop-over windows changed into Screens, making them tidier and enabling transition animations that aren't much to look at presently.
* Thing and Place graphics can now be added in the elide.ini configuration file.
=== Alpha 2 | 2015-03-29 ===
* The core LiSE simulation process and the ELiDE graphical frontend are now running in separate processes.
* Fixed some UI interactions.
=== Alpha 1 | 2015-03-06 ===
* Initial release.