<p>We are developing a middleware SDK, both in C++ and Java to be used as a library/DLL by, for example, game developers, animation software developers, Avatar developers to enhance their products.</p>

<p>What I would like to know is this: Are there standard "Best Practices" for the development of these types of API?</p>

<p>I am thinking in terms of usability, readability, efficiency etc.</p>

There are lots of ways to design apis, depending on what you are solving. I think a full answer to this question would be worthy off a whole book, such as the
gang of four patterns book
. For Java specifically, and also just OO programming in general, I would recommend
Effective Java 2nd Edition
. The first is general and a lot of popular programming patterns, when they apply and their benefits. Effective Java is Java centered, but parts of it is general enough to apply to any programming language.