Puedes implementar un lenguaje propio, pero como dices, es un coñazo y es tiempo que inviertes en reinventar la rueda, y no en tu propio juego. Lo más habitual es usar uno de los lenguajes de script ya existentes diseñados precisamente para este tipo de situaciones.
Si no me equivoco, creo que LUA es el más usado en videojuegos, porque es bastante ligero y fácil de integrar con tu aplicación. Personalmente, como lenguaje prefiero Python, pero tras haber probado a integrar los dos en proyectos C/C++, LUA me pareció menos problemático.
El proceso de integración consiste, básicamente, en montar un intérprete en tu programa, y exponer una serie de funciones e interfaces de tu código C/C++ para ser llamadas desde el script. Estoy seguro que buscando "LUA C++ integration tutorial" en Google te salen miles de artículos de introducción al tema.
Existen sistemas automáticos para construir un wrapper de tu motor para LUA, de forma mucho más rápida, pero la verdad es que no los he probado, así que no sé qué inconvenientes tienen.