Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What features would you like to see in a game programming DSL?

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) { }; no const, static, public qualifiers anywhere except in the qualifier list), etc.
like image 496
GhassanPL Avatar asked Nov 23 '09 15:11

GhassanPL


2 Answers

Something to make concurrent programming easier. A blend of Erlang and C++ perhaps. I've been thinking about this on and off ever since the Cell processor was announced but it would take a serious chunk of R&D time to develop it and solve many of the problems that already have solutions in traditional C++ programs.

like image 133
Skizz Avatar answered Sep 26 '22 01:09

Skizz


Personally I enjoy writing games that are able to access the wide, wide audience of the web. Would be beyond interesting to make it simple to interface between the desktop and the web.

That is probably more the domain of apps built with the language than the language itself, I suppose, but perhaps something that's useful to keep in mind during the design phase.

like image 43
Kzqai Avatar answered Sep 23 '22 01:09

Kzqai