I'M interested in programming tools (For animation, UI, etc). Can anyone suggest me the resources where I can start learning or which technologies I need achive it.
Thanks,
Rakshit
I'M interested in programming tools (For animation, UI, etc). Can anyone suggest me the resources where I can start learning or which technologies I need achive it.
Thanks,
Rakshit
This is a difficult question because doing tools is a wide range of different topics. A tool is just usually a console supporter program that solves a task, what task this is is up to you. Usually a tool is based on a console program that takes a few arguments to control the work of it, maybe with a graphical interface, mostly there isn't.
You can write tools in any language you know/ are convinient to work with, the trend tends to more C# based tools and this is what I do too. However, there might be needs to also have tools written in another language like C++, if the engine core code that provides access to certain feature (for example ECDSA signing) is written too in that language and you have no chance to create an interopt layer between that language and C#. In C/C++ based core code this is for example possible using CLR/CLI or the DLLImportAttribute.
In my case, I have a core dll that contains some usefull C# classes I've written for my tools. Foremost the AutoConfig class is very usefull because it matches the arguments passed when starting the given tool into a static or instance class so you won't need self splitting/parsing and processing your arguments instead map them to specific C# fields and properties.
To the tool itself, this depends on the task you want to solve. If you ask for a more specific topic of something like for example "I want to make a tool that mixes two sounds together" then there will be more specific resources we can suggest but otherwise thats all for now
Programmer tools typically read some files (the stuff that the programmer works on), and writes some other files (the output that he can use in a game). Such tools quite quickly end up in the area of DSL (domain specific language) construction (you parse input files, perform sanity checking on them, do a few conversions, and generate some output), or in the area of compiler construction techniques.
The input and the output usually don't match up nicely, so you have to perform conversions or compute derived properties in several steps before you end up in the position where you can write the output. A firm understanding of container types and algorithms helps a lot here.
If you're thinking about a more graphical tool, where the programmer can edit stuff, you'll land somewhere near editor construction, or gui construction, or gui toolkits (ie how to build a graphical desktop application.) Basically, after reading some input files, you don't generate output files, but you open a window that displays what you've just loaded, and let the programmer change the loaded information with keyboard and mouse.
Finally, good tools make the user the most important person. The tools are documented in terms understandable to the user, and provide helpful feedback to the user when something is wrong. These things are often under-estimated, but they make a huge difference in user-experience with your tools.