400 reputation
213
bio website
location Germany
age 43
visits member for 3 years, 8 months
seen Jun 27 '14 at 18:18

Software Engineer. Mostly Java atm.


Sep
13
comment Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
Yes, this is what I do, but how do I get blocklist? Obviously, the blocks have to be created before the list of blocks, and therefore, if the block is really immutable, it cannot receive the list of blocks as parameter. So where doe it get the list from? My general point is, by making the code more convoluted, you solve the chicken-and-egg problem at one level, just to get it again at the next. Basically, I see no way of creating a whole application based on immutability. It seems only applicable to the "small objects", but not to containers.
Sep
12
comment How to design a system that allows for multiple parallel extensions of the same “component”?
Well, I think that this applies to many games. The problem is "as long as they weren't overriding assets". Very many mods do precisely that, and without this ability, modding isn't have as interesting. Without "overriding", plain OSGi would do everything i need.
Sep
12
awarded  Editor
Sep
12
revised Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
Added important missing information.
Sep
12
comment Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
I know this would make more "scientific sense", but in a game it's easier to model it as two different material with "fixed" properties, rather than one material with "variable" properties depending on the context.
Sep
12
comment Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
(assuming I understood Haskell's syntax) I think my current solution is actually very similar, but I was wondering if it was the "right one", or if something better exists. First I create an "handle" (reference) for every (not-yet-created) object, then create all objects, giving them the handles they need, and finally initializes the handle to the objects. The objects are themselves immutable, but not the handles.
Sep
12
comment Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
This is a good answer, but unfortunately only because I failed to mention that my "materials", indeed my "blocks", are all singleton, so new WaterBlock() just isn't an option. That is the main benefit of immutable, you can reuse them infinitely. Instead of having 500,000 blocks in ram, I have 500,000 references to 100 blocks. Much cheaper!
Sep
12
awarded  Nice Question
Sep
12
comment How to design a system that allows for multiple parallel extensions of the same “component”?
This question: programmers.stackexchange.com/questions/92811/… is less specific, but provides a good explanation of plugin based design.
Sep
12
awarded  Supporter
Sep
12
comment How to design a system that allows for multiple parallel extensions of the same “component”?
It will a be an Internet Client-Server (Cluster) model running on OpenGL. I am mostly "framework unencumbered", that is, I can choose whatever fits my needs, but I want to stick to the JVM. OSGi is an attempt at standardizing "components" (called bundles) for the JVM.
Sep
12
asked Is there a specific design strategy that can be applied to solve most chicken-and-egg problems while using immutable objects?
Sep
12
comment How to design a system that allows for multiple parallel extensions of the same “component”?
Internet Client-Server (Cluster) model. The "mods" have to be installed both on the client and the server to work, but server is partitioned to allow different mods in different regions.
Sep
12
awarded  Student
Sep
12
asked How to design a system that allows for multiple parallel extensions of the same “component”?