You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split ComponentType into two new types, MembershipType (for Field and Virtual) and Semantics (Unique). This might allow easier extensions in both directions, such as adding Flag semantics and Required membership.
Allow user-defined storage equations, particularly for WorldOf. For example, if the previous idea isn't implemented, this would still allow many of the same performance benefits, such as using compressed bitmaps for Boolean values, or unboxed Vectors for positions/velocities/etc.
Expose an optical interface!
The text was updated successfully, but these errors were encountered:
process l a =do
ecs <- get
iforMOf l ecs a
movement =
process (with @Position. with @Velocity. with @(NotFlying)) $\ent (position, velocity) ->do
position.x += velocity.x
if ent `in` bosses thenputStrLn"gotta go fast"elsepure()
Style #2 seems like it would be more amenable to having GHC.Generics produce the correct code to minimise traversal, pushing the filtering of entities into the traversal code, and not relying on, say, Alternative/MonadPlus instances.
Split
ComponentType
into two new types,MembershipType
(forField
andVirtual
) andSemantics
(Unique
). This might allow easier extensions in both directions, such as addingFlag
semantics andRequired
membership.Allow user-defined storage equations, particularly for
WorldOf
. For example, if the previous idea isn't implemented, this would still allow many of the same performance benefits, such as using compressed bitmaps for Boolean values, or unboxed Vectors for positions/velocities/etc.Expose an optical interface!
The text was updated successfully, but these errors were encountered: