'Software' Category

  • C++ Metadata – Part II, Inheritance, Dynamic Casting, and Allocation

    January 21, 2012
    This entry is part 2 of 2 in the series C++ Metadata

    In Part I in the series on C++ Metadata, I explored how to build the basics of a runtime metadata system for C++ types, including custom classes, third-party libraries’ classes, and even C++ primitives. The article detailed building the low-level facilities to have metadata, but did not cover any real-world uses of metadata. Today’s article [...]

  • C++ Metadata – Part I, Singletons and Lookup

    January 13, 2012
    This entry is part 1 of 2 in the series C++ Metadata

    Class metadata systems allow C++ applications to have a sizable fraction of the runtime reflection and introspection available in other high level languages, such as C#, Python, or Java. While C++ does not offer any true metadata system itself (excluding the nearly useless typeinfo/RTTI system, which is barely enough to handle dynamic_cast‘s needs), it’s certainly [...]

  • Custom Containers in C++11

    January 2, 2012

    C++11 has brought us a few significant language and library improvements which can make for greatly increased API ease of use and performance. Several of these features have a huge impact on how we write custom containers. Since I haven’t seen any in-depth articles on this topic, and honestly haven’t seen any truly in-depth articles [...]

  • SONAR Released

    September 6, 2011

    Our game SONAR is now available on the Chrome Web Store! SONAR is one of the first commercial WebGL games released (possibly the first one ever to be written from the ground up in pure JavaScript). The gameplay is very similar in spirit to Subsonic, our sophomore DigiPen project. Aside from snazzy new 3D visuals, [...]

  • C++ String Library Best Practices

    June 7, 2011

    String libraries have been a frequent topic of conversation lately. There’s a lot of things wrong with the C++ standard’s implementation, a lot of missing functionality, and a lot of discussion about the best ways to fix it or work around it. I’m going to go over a few suggestions that I and my fellow [...]

  • Compile-time String Hashing in C++0x

    May 28, 2011

    I have written a small demo (tested in GCC 4.6) showing how to get compile-time hashing of a string literal in C++0x.

  • Multi-threaded Game Engines

    April 13, 2011

    Just a few years ago, we had it easy. Optimizing a game engine was all about low-level code. Machine optimizations. Instruction counts. Black magic mathematics. As technology rolled on, however, things got more complicated. CPUs got faster while memory stayed slow, invalidating many optimization techniques relying on tables and pre-computed values while new optimizations involving [...]

  • Object-Oriented C Programming – Part I

    December 12, 2010
    This entry is part 1 of 2 in the series Object-Oriented C Programming

    To say that the object-oriented programming paradigm is the most popular and widely supported method of creating software today would be an extreme under-statement. Not only entire sets of tools but entire organizational development processes are built around the object-oriented model. The popularity of languages like C++, Java, C#, and other object-oriented languages has skyrocketed [...]

  • Cross-platform Xbox Gamepad Support

    October 8, 2010

    For those who are interested in using the Xbox Gamepad in cross-platform titles, I’ve written a small library to help out. On Windows it is just a thin wrapper around XInput. On Linux, it uses the native joystick interface provided by the xpad driver. OS X and other platforms are currently missing (I don’t have [...]

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org