A game-specific programming language

Asked

Viewed 1,435 times

13

Is there any programming language specific for the development of video games? A language that is high-performance optimized to use media processing instructions, which is linked to GPU?

I know a lot of people will say that when you talk about games you talk about C++, but this is a general purpose language, I wanted to know if there is something really specific to gaming and media area in general. I don’t care about graphic libraries or anything like, I care about a language.

Is there any scientific research in this area? Some project under development, or even a prototype?

2 answers

12

None serious with the requirements placed in the question. There’s even a toy language that makes it easier to create games, but you can only do really gross things. It’s practically for children to play games (example). If you want to make serious high-performance game you use general-purpose languages with specific libraries for games. Nor does it make much sense to have a specific language. Library makes sense. Support tool makes sense (much more tied to assets than programming).

Even if you pick up a language like Blitzbasic, what differentiates it is the library and not the language.

There are languages that have been adapted to facilitate the use by game developers, but in the background are still general-purpose languages that serve a specific application/game, it is not what you are looking for. An example is Quakec. Another is Unrealscript.

Experiment is possible to exist, but it will be more to prove that it can be done and then virtually discarded. The market does not need this. You need better libraries.

It is unlikely that it will exist or at least have strength in the market. What exists is appropriate. Not wanting to use PHP to make high-performance graphics games is a good start

  • 1

    I get it. But why do you say you’d be thrown out? A well developed language, with a syntax friendlier than c++ and optimized desempemho seems to me quite acceptable. At least it would arouse interest in some developers.

  • Are you talking about something specific to the game, or just something better than C++?

  • Something specific for games. I used c++ as a pivot.

  • 1

    So I return the question, what would be so good in that language to make people adopt her? So whatever else you had that couldn’t be in a library that would make it so useful to make games?

  • Dude, I don’t mean to belittle anyone’s work, let alone choose, let alone belittle some programming language, but for Games, what I saw that gets closer to the real world is python

  • Ok, you can have that opinion. I have seen absolutely nothing that it specifically helps games. It helps in many things. It doesn’t have the performance you’re looking for, not nearly, on the contrary, it’s one of the slowest languages there is. Can you play games with Python? Can you. Is it the right language? No! There are almost no games developed in it for good reason. What gives is not the fruit of the language or the libraries that will run it? Of libraries. If you think that, you should justify why she’s so good at playing games.

  • 1

    I imagined a language with few rules but well defined, as in Java. It would be in terms of syntax and semantics a mixture of C++ and Java. There would be dynamic allocation and it would be compiled. It would have a performance as good as a low-level language or even equivalent to C. It would have a simple interface and direct with the GPU (nothing complicated like CUDA) for media processing in general. If there was something like that on the market I’m sure many would adopt, I sure!

  • And who knows even a multiparadigmas support, but this would only be a perfumery compared to the main goal.

  • 1

    And I want a million dollars to fall into my lap. Huumm, it didn’t. Things aren’t that simple. I don’t know your age or your experience, but everyone wants something so miraculous, it’s hard to do it. If the best engineers in the world financed by the largest companies that have a lot of interest have not made it is possible to suspect that it can not do (this is a simplification that fits in a comment). All this together in a general way does not match well, the rest is library. Note that what you described is the opposite of Python and the goal you want. It would be too long to explain each point.

  • Turn and move a new language appears that says it will solve all the problems of others. Language that came to be all that C++ came to the mounds. None settles. Java did this, settled down, but of C++ Java has nothing, Precisely because it is very different and meet a need at a certain point it worked. Whoever does something great will settle down. It’s just that everyone thinks they can do it when it starts, when it ends, it’s the same thing as always, it solves some problem that everyone has learned to deal with and causes new ones that nobody wants to deal with.

  • Anyway none of this has to do with the question, the chat is good, language is my favorite subject and I study this a lot, but they are ramblings nothing related to specific languages for games, it is only about any language that is better than those existing today. The intention of the site is not to create debates about what would be good in a language. Here we answer objective questions from existing technologies.

  • 3

    I believe the key point was the question returned: "Then I return the question, what that language would have [...] more than it might not be in a library that would make it so useful to make games?" :)

Show 7 more comments

8


Is there a specific programming language for development video game?

No. Simply because there are no unique or special requirements when developing games that would require a specific programming language. In fact, your question could be remade to any problem domain and the answer probably would still be "no". For example:

  • there is specific programming language to develop supermarket systems?
  • there is specific programming language to develop cattle tags trackers?

Depending on the domain of the problem there may be a specific language because it is owner, that is, created by the manufacturer of a certain hardware equipment and therefore necessary for use on that equipment. But I’d say that’s rare to occur because:

  1. manufacturers do not wish to have that effort (of time and money)
  2. manufacturers want suppliers and customers interested in using their equipment to do so with ease

This is why it is common, even in problem domains involving specific hardware, to use portable languages already known as C, C++ and even Assembly, with the provision of at most one platform-specific SDK (Software Development Kit).

In the case of games, the consoles (Playstation, Xbox, Nintendo, ...) are the equipment and therefore it is very common that the development of systems (the games!) for them is executed in C++ or Java with the help of Sdks from manufacturers.

A language that is optimized for high performance to use media processing instructions, which is linked to the GPU?

It depends on what you mean by "high performance optimization". If the language is compiled (for example Assembly, C, C++) or use dynamic build resources (for example Just-In-Time in Java, for example), its performance will be the best possible on the machine considering the solutions implemented by the programmer.

The use of GPU does not necessarily depends on the language. Directx and Opengl make just this bridge when it comes to the manipulation and rendering of graphics. I say "not necessarily" because there are "languages" (let’s call it that) geared to the use of the GPU for the parallel computing, and that therefore, has nothing to do with a specific problem area.

Cuda, for example, it is the "language" (which is actually more of a platform developed on top of NVIDIA’s C/C++) for problem solving with intrinsically parallel nature (for example, the sum of two vectors, whose items can be summed into competing kernels) with very high performance. It explores the GPU to perform this processing concurrently and the language is constructed in a way that abstracts from the programmer the parelelism and the consolidation of the results (examples here). Can it be used in games? Of course! Not only for the rendering of graphic elements, but also for Artificial Intelligence and any other problem that benefits from parallelism. But see how it is not something specific to this problem domain.

I know a lot of people will say that when you talk about games you talk about C++, but this is a general purpose language, I was wondering if there is something really specific to gaming and media area in general. I don’t care about graphic libraries or anything like, I want to know a language.

C++ is widely used because it is very well known and because it is widespread on various hardware platforms. There are numerous others that can be used. Java is quite common too. Python, as mentioned in the comments, is becoming more and more common. Only that, as I answered before, none of them is specific to games and there will hardly be one because there is no need.

You say you have no interest in reading about graphic libraries or "nothing of the kind". But here is the very heart of the matter: what games really differ from other problems is in their needs. And I’m not just talking about graphics. Physics is an important necessity of many games, involving the detection of collisions (when one object "touches" another) and even the simulation of natural effects such as gravity, friction, torque, etc.

But is there language specific to this? No. C++ is widely used in building libraries that assist in this development, but there are libraries with several languages. The same goes for Artificial Intelligence, network communication, light and shadow simulation, image processing (camera capture), sound processing (from simply "playing" music and sound effects, to simulating perceptual variations regarding obstacles and types of obstructive materials), and so on.

Is there any scientific research in this area? Any projects in development, or even a prototype?

If you talk about scientific research regarding the creation of a language specific to games, I don’t think it exists. I believe that there are not many people interested in employing efforts to create yet another language, because of the arguments put forward so far. What there is, in fact, is a lot of effort to create more languages palatable (read as "easy to use for a non-specialized audience"), mainly for children. The Scratch (from MIT), for example, is very famous and uses a visual approach. Although it may be considered a new "language" (this is somewhat controversial), it has been used in engines/libraries such as, for example, the Stencyl, he is not specific to games! You can build anything with a language like that. Stencyl is much more game-oriented because it is an environment with many of the needs of ready-made games (collision detection, animation, etc), and so it is more for a library than for a language.

Scratch example screen: inserir a descrição da imagem aqui

From an industry point of view, what really exists is a huge proliferation of game engines (Engines), such as Stencyl. A is one of the most famous, but the list is huge.

An important addendum

Everything mentioned above is related to programming of games. It is worth remembering that the word "development" is too broad and generic, and does not include only programming. Game development also includes task planning, advertising, selling, etc., and chiefly, o Game Design: the process of designing the game in terms of its objectives, conditions of completion, victory and defeat, phases, artistic elements, mechanical elements (rules and how actions map themselves into results), methods of interaction, expected emotional experiences, etc. I know that your question did not involve all these aspects, but there are also studies on languages for the formalization of Game Design.

The formalization of Game Design (necessary not only for documentation and understanding of the "problem", but also for communication between team members, stakeholders, customers, etc.) is commonly done freely (with the GDD - the Game Design Document). However, some people work on formalisms to describe mechanics, for example.

For example, a colleague at the University of São Paulo proposed a language for the analysis and specification of elementary mechanics (which he called "components") in games. Information from his work can be found in this article.

Note, however, that this discussion is much more controversial. The process of Game Design is very creative, and so even producing a software system, some say that attempts to formalize rules only serve to analyze existing games or make variations and combinations of these, but would hardly be useful for building new games, with innovative themes and mechanics.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.