Me and my friend are in the first stages of creating a domain-specific language designed for game programming, for his thesis paper.
The language will be fairly low-level, it will have a C-like syntax, optional garbage collection, and will be geared towards systems that have little memory or processing power (ie. Nintendo DS), but should be powerful enough to facilitate PC development easily. It won't be a scripting language, but a compiled one, but as we don't want to spend months writing a normal compiler, the first implementation will basically be a LanguageName-to-C translator, with TCC or GCC as the end compiler.
Now, I have a question for all you game programmers out there:
What would you like to see in such a language? What features, implementation- and syntax-wise, would be best for it? What to avoid?
Edit:
Some things we already thought up:
- state-based objects - an object can exist in one of it's states (or sub-states)
- events and functions - events don't have to exist to be called, and can bubble up
- limited dynamic allocation and pointer support - we want it to be as safe as possible
- support for object compositing (Hero is composed (dynamically) of Actor, Hurtable, Steerable, etc.)
- "resources" in states, loaded and unloaded automatically at beginning/end of state (for example, an OpenGL texture object is a resource)
- basic support for localization and serialization
- a syntax that is quickly parsable
- we want to make the language as consistent as possible: everything is passed as value, every declaration has predictable syntax (eg.
function retType name(type arg) is (qualifier, list) { }
; noconst
,static
,public
qualifiers anywhere except in the qualifier list), etc.