I wonder how FF7 implemented materia sockets on items. |
Having been a professional software developer for over 10 years, I think I can honestly (cynically?) say
that the grass is always greener on the other side of the fence. It is easy for me to "see" the object-
oriented-ness of other companies' products. But when I look at my own -- it isn't a whizbang state-of-the-art
(insert your favorite buzzword here) design. It, as most other large products (my cynical side would say,
in consideration of the companies [plural] that I've worked for) was designed in pieces over time by a collection
of engineers whose experience and competence levels follow that of a typical bell curve: a few are really good,
a few are outstandingly bad, most are somewhere in the middle. The overall design therefore tends toward
average, although there are pieces of the system that are architected much better or worse.
Furthermore, game programming (of which I have only second-hand stories and no experience myself) is perhaps
a different beast. The cliche, true or not, is that game programmers work a lot of hours. Furthermore, game
programming requires special characteristics: when designing some game-specific piece of software, perhaps
such as the materia mechanism on FF7 (have they used the materia mechanism unmodified in any other games?),
the focus isn't necessarily on readability or maintainability; it is rather on getting the job done and, in many cases,
on a solution that is fast.
Having said all that, I would not be the least bit surprised to see the materia mechanism implementing in a
disappointingly low-tech manner. No whiz-bang template solution or object hierarchy: perhaps just a single
struct containing the attributes of the materia and a lot of if() statements.
IMHO.