Text-based browser roleplaying game built in Unity. Currently working on significantly more updated fork https://github.com/lizard-entertainment/runityscape. Don't fork this one!
Requires inheritance from the abstract PooledBehaviour, which handles the resetting of fields
Object pooler will call Instantiate on GameObjects if it runs out of pooled objects of a specific type, dynamically increasing the size of the object pool as neccessary
Object pooler will reject already-returned objects, performing a contains check on a HashSet using the object's InstanceID as its hash
Uses GameJolt's API for scoreboards and achievements
Saves can be exported and imported using into GameJolt's data storage by associating it with a unique key
This reduces the ~1770 character save string to a more manageable 1-8 character string
This is needed because WebGL prevents the use of the clipboard
Programmed a solution for maintaining references when serializing
For instance, if A casts a buff on B that redirects damage taken by B to A, the game will maintain that reference between loads
Code structure based on the Model-View-Presenter pattern
Heavy use of object-oriented programming and lambda expressions
Regex-based string parser for writing text one letter at a time, while maintaining word wrap for the full string, and allowing rich text tags
Regex-based string parser for easily creating dialogue for characters by detecting specific tags in a string
Wrote unit tests to test the serialization process
Flyweight pattern used to store constant string, integer, and color values