I am planning to write a game/application in Nimrod and make extensive use of dynamically-loaded plugins which are also written in Nimrod. Ideally, I want the plugins to be able to interact and get runtime type information from each other. The end goal is that a user need only pick the plugins they want and download the correct versions for their system.
Is Nimrod a good fit for this, or should I look elsewhere? If Nimrod can be used for this, where do I start?
Should work with Nim's DLL support. You have to compile every app/DLL against nimrtl.dll for this to work. However avoid the of operator and multi-methods; these do not work across DLL boundaries.
That said, personally I avoid plugin architectures like the plague, no matter the used programming language (Nim, Java, C#, C++...). You always pay for the flexibility and end up spending more time fighting the plugin system (poor debugging etc.) than it takes to write the code in first place.