B
B
Ben_r0072018-03-20 22:39:45
Programming languages
Ben_r007, 2018-03-20 22:39:45

How to choose a programming language for sound game development?

I'm blind. We have sound games. Racing, shooters, etc.
I want to develop a game like Call Of Duty but without graphics.
I'm having trouble choosing a programming language.
I know the basics of C++, C#, Java and Python.
I can't use game engines like Unity or Unreal engine because they use visual editors that are not available to me.
I can create my own engine.
I need:
Confidence that my project will have sufficient performance.
High level programming. I don't like working with memory. I want to write a game algorithm.
Cross-platforming is desirable, but not required. The main thing is that my project works on Windows.
I want my game to be an experience in a programming language. So that I can use the programming language with which I will develop the game for other tasks.
I am interested in mathematical and physical libraries. To calculate 3D, for movement, turns, etc.
3D sound.
Keyboard.
Easy networking.
I decided to choose one of the programming languages ​​with which I am familiar. Here is what I think about each of these programming languages ​​for my task:
C++ is the perfect solution. There are many libraries and functions in C++. But C++ has many possibilities and ways to implement it. For this reason, I don't know how much I need to know in C++ for game development. I know the basics, variables, conditions, loops, arrays, functions, OOP. But I have problems with pointers. Now I can't understand it. Stroustrup, in his book Programming, Principles, and Practice Using C++, said that it is better to use C++ without ready-made solutions. That is, if I want to use libraries and APIs, C++ is not a good solution. But I'm attracted to C++ because it's high performance. And it has many libraries.
C# is a good solution for Windows. But it is tied to NET. Many libraries are ported to C#, but I'm not sure if this will work as well as to C++. C# is easier than C++ and I love it.
Java is a good cross-platform programming language. But I heard Java performance is below C#. I'm not sure Java can solve my problems.
Python is a programming language with which I can solve many problems. I like that in Python there is no need to use OOP, but there is a problem. I don't know how in version 3 of Python, but in version 2 of Python it had poor performance.
I want to hear your opinion.

Answer the question

In order to leave comments, you need to log in

5 answer(s)
S
sim3x, 2018-03-20
@sim3x

No graphics - any language will do
Start with prototyping

A
Artem Spiridonov, 2018-03-20
@customtema

Python of course.
The performance problem was solved 5 years ago.

E
Evgeny, 2018-03-20
Maltsev @loqiue

Hey! I think you are focused on performance. All of these languages ​​would not be so popular if their average performance did not cover the requirements of users and developers. I am sure that you can write an engine on any of them.

Stroustrup, in his book Programming, Principles, and Practice Using C++, said that it is better to use C++ without ready-made solutions.
Regarding APIs and libraries: they are used almost everywhere and, most likely, they will be in your project too. Didn't read Stroustrup, because. it's not my profile, but I'm guessing he might have said something like that for academic purposes, or at a time when development was predominantly focused on writing his solutions from scratch. In real projects, everything is not so, why re-discover Africa if there is already good functionality and you can use it. Of course, this does not apply to those tasks when, for example, thoroughbred frameworks are written. But are you sure this is what you need? Especially if you don't have good experience.
IMHO, if you are interested in the implementation of the algorithm, then there is no need to worry about memory access and performance, at least for now.
C# is a good solution for Windows. But it is tied to NET.
I'll defend c# a bit here. Microsoft is now moving in the right direction of cross-platform, look at net core.
I don't want to make it seem like I'm only drowning in c# :) I just wanted to dispel some misconceptions and share what I know. My advice: try to break the project into small parts and start implementing it, many questions will disappear.

K
Konstantin Kitmanov, 2018-03-21
@k12th

I'll just add to the discussion that for C # there is a nice enough game framework MonoGame, cross-platform, well-proven.

M
Mikhail Potanin, 2018-05-31
@potan

I did not work with sound, but according to the descriptions, it is worth looking at Supercollider. The language is sound-oriented, inheriting a lot from SmallTalk but moving towards functional programming.
I also remembered the overtone library for Clojure. For game logic, Clojure will probably be more convenient than Supercollider. They somehow know how to interact with each other, but I don’t know the details.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question