It's really just a specific problem that affects my design for my Behavior system. It utilizes hash tables to store variables of any type, and with any name, but to properly view these variables and edit them during runtime via an editor or something, the system needs to track the type of the variable. This involves a change to the underlying hashtable and how it stores entries, and also changes a lot of function calls to include the type parameter, check the type parameter to verify it's valid, etc.
Basically, the system is going to take up a lot more memory and run slower when it's tracking the types of these essentially dynamic variable slots, and most games won't need that once the game is finished and all the testing is done, so there's no need for the code to execute, and there's no need for the extra tracking entries in the hash table, etc. So, basically, I plan to create two distinct versions (although all function calls will be identical, it's just some parameters will be ignored with the variable tracking off), and the programmer can then compile their code with the release module when they no longer need to track variable types or need the functionality of being able to see any/all variables and their values in an object at anytime (although that functionality will be quite handy when testing/debugging.)
It'll be clearer once I get to the point where I can release an early version of this system.
Basically, the system is going to take up a lot more memory and run slower when it's tracking the types of these essentially dynamic variable slots, and most games won't need that once the game is finished and all the testing is done, so there's no need for the code to execute, and there's no need for the extra tracking entries in the hash table, etc. So, basically, I plan to create two distinct versions (although all function calls will be identical, it's just some parameters will be ignored with the variable tracking off), and the programmer can then compile their code with the release module when they no longer need to track variable types or need the functionality of being able to see any/all variables and their values in an object at anytime (although that functionality will be quite handy when testing/debugging.)
It'll be clearer once I get to the point where I can release an early version of this system.