Hello.
I searching very easy language to creating my games.
I have very big problems with mathematics. What's very easy for newbies?
Sorry for my English and thanks for all replies in this topic.

Thumbs up

the thing is you dont need to be a mathamatition to be able to program
and, for ease of use, learn bgt as it is easier than others or autoit which seems easy
then you can learn other languages

Thumbs up

Hi dash.
Let me tell you a few things, using which you can choose your own language:
1. Platform:
Under what platform do you want to write? Maybe you want to write not under Windows, but under Linux, maybe on iOS or Android?
You should definitely decide on this issue.
2. Cross-platform:
Do you need cross-platform? Do you need your applications to work under multiple platforms?
3. Syntax:
Do you need a simple syntax, or do not you care?
4. Applications:
Do you only want to program games, or are you interested in programming other applications?
These are the main selection criteria.
I offer you several options:
BGT is easy to learn, it has a simple syntax that will help you in the future, if you want to learn languages that have a similar syntax, such as C / C++ / C# / Java, you can start writing games very quickly.
There are many examples of good games on BGT. Redspot, STW, Manamon, Psycho Strike, etc.
Plus BGT is that you will learn how to build algorithms. I want to say that algorithms are more important than the programming language.
Python - in my opinion has the simplest syntax from powerful and large programming languages.
Plus Python is that you do not need to learn it for a long time. The main thing to learn the basics, then under the task to choose libraries and go!
Python is good in that, when developing, you think more about the application algorithm than about the code.
Python has its own philosophy. You can say that these are the rules for writing code that everyone is trying to observe.
The code in Python is just read. This allows you to simply read someone else's code and easily understand it, which is not in C++.
In Python, you do not need to know more about memory, you do not need to use pointers. Python does everything on its own!
But there are also disadvantages:
1. Python is an interpreted language. That is, you either need to publish the source code of the application, and run it through the Python interpreter, or for the .exe application, you will have to deal with some problems. All the same there will be an interpreter code, as at creation of.exe a file in application the interpreter Python is built in.
2. The speed of Python is not very high compared to C++ or C#. Yes, the speed is needed for video games, but if you conceived a huge project, you need to be sure before starting the development that the speed of Python will not hurt you.
3. The complexity of the choice of version. In Python, two versions are currently under development. 2x and 3x. If Python 3 has many fixes, then Python 2 has more libraries. For this reason, it is necessary to choose.
If you want to quickly develop, you want cross-platform, you want to quickly solve any problems, then Python is for you!
In Python, developed games such as Undead Assoult, now Python is running Deathmatch, previously it was developed on PureBasic, SoundRTS!
C# is a very good programming language from Microsoft. Its huge plus is that like Python, it does not require the developer to think about many things. But the C# code is more complicated than Python. This is a fully object-oriented programming language.
Benefits of C#:
1. C# combines the power of C++ and Java languages, simple syntax, a convenient IDE, a huge Framework in 1 language;
2. C# works with NETFramework, which includes the ability to work with windows, the ability to handle keystrokes, the ability to work with files, the network, etc., which many times simplifies the work.
3. C# has a large number of libraries.
C# has a lot of advantages, but let's talk about the disadvantages:
1. Windows! C# is the best language for Windows only!
2. For running applications developed in C#, it is necessary to have Microsoft NETFramework on the computer. But I think that this is not a problem.
3. Compared to Python, C# has a more complex syntax, but not as complex as C or C++! If you compare it to BGT syntax, it's 5-10 percent harder, but it's not always necessary to use all the features of C#. More complex capabilities simplify some tasks, but do not make them unresolvable.
If you want to program only under Windows, if you want to develop very simple applications with GUI besides games, if you want to be sure of the speed, then C# is for you!
On C#, the game Three-D-Velocity was developed.
C++ is the most reliable language for programming games. High speed, cross-platform, great community. But it is more complicated than all the languages I mentioned earlier.
Pros of C++:
1. High speed, but for it you need to write the code correctly;
2. A huge number of libraries;
3. Huge opportunities! In fact, I can say that in C++, you can develop anything, anything.
Cons C++:
1. A complex code. Elementary basics are simple there, but for qualitative development, you need to know what is define, stl. And for correct programming of C++ you need to learn a few years;
2. Development takes a lot of time and code. In C++, you will write a lot more than Python or C#. For example, 40 lines of code in C++, you can sometimes replace 10 with Python, and in some cases less.
C++ for those who have patience, is ready for big difficulties. C++ is a language for professionals

Thumbs up +2

Hi.
Thanks for your post smile.
My criterias is Programming for windows and Linux, simple syntax and creating games and applications.

Thumbs up

Then the best choice for you is Python!

Thumbs up

Hello,
@Jonikster: great description, I will add three things only.
First for C#, similar as Java this programming language is packaging its code to the executable, so it is decompilable like Java or Python.
Second: Is true, that Python 2 have more libraryes, but i personally say, that is better to have less but good libraryes, than more but unprofessional or out of date libs. When I take facts, that Python 3 have support for utf-8 coding, many code improvements and support of important libraries like Tensorflow by Google or wxpython and many other, I must say that is more better to use version 3, because 2.x is out of date. but it is my personal opinion, it depends also on personal requirements, there can be one thing that will force someone to use version 2.

And last I want to say, that python is slower, but for example like in Tensorflow's case, it can be tied with faster language, so you have fast c++ for example with readable Python, I create gui interfaces by this way in python, because in c++ it is really terrible thing, and it works perfectly, much much better than have hundreds of lines in c++ upto normal code.

Regards

Rastislav

Thumbs up

hi,
i will add more to it:
either C#, vb .net, or C++/cli which i will talk about it can be decompiled
although you can use something exe confuser to obfuscate your .net code, but those can be broken

everything can be dis assembled, eaven C++ code, but C++ code can be dis assembled harder
now about C++/cli or clr (common language runtime which is .net framework):
msvc has an option to use .net things which C# uses, vb .net uses, and also the speed is like C# then but you can do more with it than C# because you can use pointers to manage stuff and then you dont need to think about memory management as .net framework manages it for you
about developing with C# or C++/cli or vb .net on linux:
something caalled mono exists to help you with that, but i've used it only on windows and i dont know about performance on linux (i hadnt developed with it) so i cant eaven tell anything about its performance compaired to .net framework
but .net apps are a bit slower than native applications (i mean things that havent .net assemblies on them)

Thumbs up

Guys, do not do it!
Man novice, as I understand why he needs all these details?
About Python 3, I have not seen libraries to work with sound.

Thumbs up

But I personally can not decide on the programming language. I'm stuck between Python and C #. I do not know which one is the best for me!

Thumbs up

Hi,

there are so many things that were already said, so let's me just add a few things.
I think I saw that he said that he doesn't just want to develop games, which counts BGT out. Let me also add that, even if some people here seem to stuck with two or three of their favourite languages, there are loads of languages out there which all have their advantages and disadvantages and each one of these languages gets advised as hell. Since the people here stuck deciding between C# and Python, I'll try to help deciding here.
Python is absolutely cross-platform. Python can be run under Windows, Linux and Mac without any problems, there usually just need to be some simple tweaks if there are some critical differences in those systems, but you can tweak them on your own with ease. Yes, Python could even be run under iOS or Android.
Whoever said that Python 3 contains more bugfixes than Python 2 is absolutely wrong. Python 2 is as bug-free as Python 3 is, since it is still under development and as soon as bugs are found, they will be fixed in Python 2, and if bugs are found in Python 3 which exist in Python 2, they will be backported and fixed in Python 2 too. Python 3 probably has even more bugs than Python 2, related to it's larger standard library and new base features.
Python 2 is a solid scripting language which can do almost everything you want, if not even more. Of course Python 3 can do this too, but not only the amount of libraries is some criteria to select Python 2 or 3, but also the availability of documentation, tutorials, blog posts, books and such stuff. Python 2 is older, you can find blog posts with Python 2 solutions far more easily than Python 3 solution blog posts. And yes, there are not even half the amount of libraries available for Python 3 than for Python 2. Yep, it's nice that you can get the tensorflow library for Python 3, but honestly, who wants that, except of some scientists and stuff, but at least not a user who doesn't know, and that's what he said, mathematics very well. Apart from the fact that I think that you're not going to develop very good applications if you lack the ability to at least know the math basics, more libraries available means more helpers which might reduce your need to know mathematics at all. So maybe Python 2 should be your swiss knife to the world of development.
Of course noone wants some one-sided view of things, so I'll try to explain the C# side too:
C# might be quite elegant and more speedy than Python in any case, but it's limited in use on other operating systems than Windows. Linux might be possible, but at least Mac OS X should be really hard. As far as I know there are some transcoding tools out there which intend to translate C# int some native code for Mac OS X, like e.g. Objective-C. C# has the larger and more complex standard library on it's side, since it can point with .Net, which Python doesn't have, at least not by default. If it's only the .Net Framework you want, you could also use IronPython, which assembles a standard Python interpreter, but supports the whole .Net Framework under the hood, which makes changing sides for dedicated C# developers more easy. Anyway, C# is also used in large Game Engines like Unity or Unreal Engine, Cry Engine and such stuff, so if you know how to use C#, you might be able to develop more complex games or applications using those frameworks later too. On the other hand, those engines often support multiple languages and Python tends to be one of those quite often too. C# is absolutely object oriented, which was told already, but I intend to call it out here again, since not everyone might be familiar with object-oriented programming yet. That's definitely a thought worth thinking, since most people, and I think that this is the best way of learning programming, start off training procedural programming attempts before going into class and object models. Python allows both, procedural and object-oriented programming, which makes it a great language to learn the change from procedural to OOP by trying it out on your own.
Both languages are devided into two different syntax groups. Since C# uses the block-oriented syntax which other languages like BGT, C, C++, Java, JavaScript, PHP use too, it's more safe to learn it early, because it will be more easy to learn other block-syntactic languages later, and with C and C++ on their site, those might be the best languages available you can work with. Python is probably the largest combatant in it's syntax group, which is the indentation block group, but this syntax group is intuitive and generates great code the hard way, because your code won't work without formatting it nicely. Many blind people tend to program, starting each line off right at the line beginning, which makes the code extremely unreadable in my oppinion, and that might be the first thing you hear when beginning a job as a developer in an organisation with sighted people too. They'll tell you that you'll have to indent your code nicely, have to use speaking variable names and so on. Or they might just use the pretty printer each time you change something, but that's not the way it's supposed to be. The fact is, Python will scult you if you try this. Python identifies blocks by the indentation level you use, which forces you into writing nicer code, which is extremely helpful for teams of programmers working together or for people who you ask to help you with a problem you don't understand.
Also not said is the type difference between both languages. While you'll have to learn different variable types like integers, strings and such stuff the hard way in C#-like languages, python is soft-typed, which means that you don't need to bother with such stuff here, variables in python can be type-casted all the way around, you can even twist them in circles if you want too. That makes Python a far more easy language to learn for beginners.
I could go on for maybe ages like this, but I think you should just start of doing anything which results into cool stuff quite fast. E.g. if you don't know languages like HTML yet, maybe do this first, because the motivation level will skyrocket if you see results after typing 5 lines of code. Of course you can get this with Python and C# too, but at least you don't need anything installed to try and use HTML, since a browser is already installed on every system. Using markdown stuff like HTML won't help you learning developing games, but it will show you how developing is, how it works (at least you'll get some taste of it) and if that's really the thing you want to do. And if you're sure about this, just take any language you want and try it out on your own. Asking people which language to use more or less only results into people disgusting each other, but not you getting any useful information.
Best Regards.
Hijacker

Thumbs up

Hi,
@Hijacker: there is a nice article about differences between Python 2 and 3 on Python wiki:
https://wiki.python.org/moin/Python2orPython3

I also can not agree with you that Tensorflow is only for scientists and mathematics, we have one editor in Czech, who is writing articles about Tensorflow neural nets used by totally amateurs, I mean people do not understanding neural nets or math, and there can be done wonderful things also with that state. Hovever that is for other discussion, I taked Tensorflow as an example because I am using it, but there are other nice python libraryes too, see the article I mentioned above. Btw, I am using AGK from Mason for sound, it uses Libaudiowerse and Bass if I am right. There are also some binaural libraries with python bridge, hovever they are writen mainly for c++, so it is hardly to tell about availability.

Hovever, these all stuffs are just details not important for beginner as Jonikster sayd, I saw one principle on few courses I readed in Slovak and czech as sayd also in that Python article, it is better for beginner to learn new first and after add knowledges about older principles, I totally agree with this, so also recommending for others, but it is personal stuff.

Just small question about c#, as I know it is decompilable language, not disassembleable only like c++. That is huge difference, but I am not sure if I using right words, by decompiling I mean getting of original code of program, disassembling can give you only assembler instructions, which are hard to understand in most cases.
I decompiled few c# programs by JetBrains Dotpeek, and get clearly readable code, what is interesting when we take fact, that I know nothing about c# syntax. big_smile
So, how it is with that decompiling? I don't know c#, so that is why I am asking, i think this is also interesting for beginners, if someone can read theyr codes or not, and I mean now people with basic knowledge about programming, not pro hackers which can disassemble and read directly processor instructions, what they probably will not do, because it is hard also for them, so they are doing it only if there is something useful from it.

Regards

Rastislav

Thumbs up

It is a pity that there is no comparison article for Python and C #.
My problem is that I can not choose between Python and C #.
The advantage of Python in the simplicity of the syntax, I do not need cross-platform, although it would be good to have a Linux server on online games.
Python as far as I know has a bad speed. And I do not know where this speed is needed, and whether it is necessary for my tasks.
C # compiled, which is good, in C # I've seen perfect games, which was not in Python, in C # there is NETFramework, which helps in solving many tasks.
On syntax, in general, I'm comfortable with the syntax in both Python and C #. Both in Python, and in C #, there is a syntax that I do not understand. In Python, this is decarations, and in C #, there are more. Cyrilization, threads, etc.

Thumbs up

Hello,
well, there is easy help, learn them both. big_smile

For example also great advantage of Python for me is pip, package management system, you do not need to search something on the net first, then download, then compile which probably results in fail, because you don't have some dependency. Write only pip install package_name, and you are done in most cases, all dependencies and similar things are downloaded automatically, so it is very easy to extend python functionality.

And I thing python speed will not radically hurt you, take for example Sound rts, there must be done many calculations in realtime to emulate battle situation, and it looks fine, games like Stw or Redspot needs less calculations.
Also speed will depend on style, how you write the code, I found a nice article some time ago about optimalizing python code, and I was surprised by some points, which really go faster. As sayd in that article, python is not c++, so there are also different principles how to write fast app, that I did not know as c++ programmer.

Regards

Rastislav

Thumbs up

Hi,

just don't mess this around. Python is slower than C# or native compiled languages like C or C++, but it's not very slow. It's speed is perfect for most cases, at least for prgrammers usually found in those forums. Speed is just a matter for highly skilled programmers. If some code is too slow (which happens in C or C# or whatever too sometimes), then the code in 95% isn't optimized enough, in which case you can improve it further to gain some speed. In any case Python should be fast enough for almost everything you plan to do.
If you want to have a server for linux, you should definitely stick to Python. As I said, launching C# programs under Linux can get really tricky.
Decorators and threads and loads more are programming concepts which don't just exist in Python or C#, and you don't need them instantly to program the stuff you want. I would suggest you confront yourself with such details as soon as you need them, but not too early.

Best Regards.
Hijacker

Thumbs up

For example, pyglet uses dicarations. Using them, it confuses me. I do not understand where to write a story, etc.

Thumbs up

That's right. Pyglet isn't the framework I'd use for developing games, but it should be nice. But anyway, the examples on the website should explain almost everything. You don't need to know how decorators work, you just need to know how to write them (the [ a-t ] decorator symbol) and how they work. In fact, you add several decorated functions with given names (which should be present in the pyglet documentation I guess) and the functions will be called as soon as an event occurs which relates to the function. Take this one as an example.
He decorates two functions here. on_key_pressed() which gets called each time a key was pressed (thanks to the decorator) and on_draw() which gets called each time the window redraws it's content (this won't be quite important for you as long as you're just going to develop audio games).
And that's it. There's no magic to it you need to understand yet. At least as long as you don't want to implement decorators yourself, which I wouldn't recommend, since they are quite advanced for beginners.
Best Regards.
Hijacker

Thumbs up

visualstudio wrote:

the thing is you dont need to be a mathamatition to be able to program
and, for ease of use, learn bgt as it is easier than others or autoit which seems easy
then you can learn other languages

OK! You wrote, that You don't want to be mathematically good for programming. But, programming needs logic, arithmetic to programm good things. Arithmetic is connected with mathematic, because It is from greek word Arithmé, which means "numbers".

Thumbs up

ok, let me elaberate
first, logic doesnt mean that you should calculate lots of things (for example you dont need to calculate the logorithm of 20), when you need it, you will call a pre-written function to do this
but if you dont want it, you will just write the algorithm and the computer calculates for you this makes programming more powerfull
and i want to convey my meaning better with an example:
you won't calculate 4*3*3*748/128*294 you will write it, and computer calculate it
you will write the algorithm
now about C# and python
dont compair python code as it is an interpreted language with C# which turns its code into .net assemblies which uses jit code at runtime
about decompiling:
all of the .net applications can be decompiled (please note it is not decompiled to original code), but it can be decompiled that you can see the information
but about a way that can help you prevent decompiling:
use an obfuscator (it can be broken, but it is a security layour)
i have to say, everything that can be read by computer can be read by the people so a C++ app also can be disassembled
and, c and C++ compilers will optimize the code and produce assembly which is changed also by linker, which somehow makes hard to disassemble but it is also possible to disassemble the code which you can use cryptors and packers to prevent this (these are also breakable and these are security layours)
also they are some ways exist to help you prevent running your app inside a debugger
about speed and performance:
try to execute a loop and see how mutch it takes to be executed?
or, try to calculate a fibunatchi (the algorithm is simple):

int main(int argc, char** argv)
{ 
double i, first, second, next; 
first=0; 
second=1; 
for(i=1;i<=100;i++) 
{ 
 next=first+second;
 first=second;
 second=next; 
} 
}

this is a simple algorithm of fibunatchi, you can use printf and things to print it on the screen
it requires changing
it is simple but because of loops, it can become slow

Thumbs up

visualstudio wrote:

you won't calculate 4*3*3*748/128*294 you will write it, and computer calculate it

You see, that's the actual problem people have nowadays. They think the computer will do everything for them. I can tell you that this is not the case. Don't ask me how often I've to find and correct mathematical bugs each day at work, because people don't know the order of calculations the computer will process, don't use brackets, or simple aren't capable of creating the required formulas they need. Just imagine a situation like that.
You've got a player who can increase his level by gaining exp, but of course each level will need some more exp than the level before. So obviously you'll need a formula which calculates the level of the player by only giving it the experience points he currently has. You'll never be able to write a game like this without mathematical knowledge, because the computer may be able to calculate your formula, indeed, but there are several steps before the computer even knows the formula. Those steps include creating the formula by hand, calculating it through, securing it works as you expect it and then giving it to the computer to process it properly, and even there you can improve things to make calculation more easy and speedy. That's one of the reasons why people studying some IT job always have to proove themselves capable of doing even high mathematics themselves, at least that's the case where i'm studying, and I think that's absolutely needed.
Best Regards.
Hijacker

Thumbs up +2

oops, again miss conception
i mean, you will write the formula, but you wont calculate that!, the amount of mathamatics is here!, now, how to calculate percentage of a number with another?
you will devide both of them by 100, then multiply them
this is the formula that you should know and write, but you won't calculate it in run-time
ok, thing of a calculator, how can it calculate something which people give to them? do all your numbers are constant variables?
eaven xp variable is not constant, you do not do the calculation!, you will give the instruction: "if xp is greator than a value which is calculated by another formula which might taken from a level", then add level by one
i wish i could convey what i'm talking about now

Thumbs up

21 (edited by Hrvoje 2017-06-25 19:22:27)

Learning multiple languages at the same time, or learning one by one and trying to actually write code in each of them is good idea. That's what I'm doing every time when I want to learn some programming language. Also, you will never, never know if the programming language is good for you or not if you actually don't try it. I've learned C++ before Python. I found it too complicated for my current computer knowledge and programming needs, so I switched to Lua and after a short amount of time I've learned Python. Now I got a job as a developer, so I finally got a reason to learn few more languages, so now I'm learning Java and Perl. Java is now much easier for me than I thought it would be, because it's syntax is similar to C++ or C#, and thanks to Python I can understand object oriented programming much easier because both Python and Java are object oriented languages. The point is, the more programming knowledge you have, the easier it will be for you to switch between various programming languages. Also learning BGT as someone who already has some coding experience was not a problem for me. In fact the bigger problem for me in BGT were it's advanced features such as handlers and function handlers, interfaces and similar stuff that is not available in Python. And just to mention for the end of my post, regarding sound libraries for Python 3, the answer is Libaudioverse.

Thumbs up

Hi. Let me clear some things for you here, as a person who tryed to learn C++, python, java and C#:
Well actually i could not go around pointers in C++, and i still don't know what they do because they need a bit thinking to be understood correctly but not only thinking is needed. In fact, You need to understand word by word a tutorial, At least the tutorial which you're reading to learn pointers, as they are one of the most important things in C++ programming. I personally like C++/C#/JAVA/PHP sintax, As they're easy to be understood and easy-to-use while in python you'll get confused sometimes when you need some blocks in each other. You will get scrude by those spaces (At least if you are a beginner)
but keep in mind that if I couldn't learn pointers, that doesn't mean you can't learn them too. Give them a try and if you feel you're good with them, C++ is awesome!
Now let's compare C# with python. We assoom that a developer wants to code an audio game and he doesn't know which programming language is better for his perpous. If you're like him, so I have to tell you that python's game development libraries are a bit hard to understand for a beginner. Even libaudioverse is hard to use. You need to mess around with notes, buffers, and it will take a lot of time only for playing a fiew sounds while you can easily do this with C#. In c#, there's a sound library called IrrClan, Which is very, very very easy to use and easy to implement. To play a sound in Irrclan all you need to do is declare the engine, and you can do everything with it if you want! Perform effects, revers, wave-reverbs, Gargles, and some others or you even can push them away and use it normally with no environmental effects. In this case, here's the code that you write to play a sound:
engine.play3d(soundfile, x, y, z, looping);
and the interesting thing is that this library is really like bgt's sound_pool include, which makes it much more easy-to-understand and easy-to-use for a programmer who knows bgt.
Speaking of guis, The most and simplest programming language to create guis is C#( Inn my opinian though). If you're using visual studio, Your good with toolbox menu and its designer, you can insert everything with it easily! Otherwise if you want to do that yourself, Here's a simple example of inserting a button in your GUI application:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        Button btn = new Button(); //We declared the button
        public Form1()
        {
            btn.Text =

Thumbs up

Weird, Where is my completed code, Lol its interesting. So we start from where we was:
            btn.Text = "Click me! "; //We just set our button's text
            btn.Click += btn_click; //We told the program to call the function "btn_click" when user clicks on our button
            this.Controls.Add(btn); //We added our button to controls so it's ready to use!
}
        public void btn_click(object sender, EventArgs e)
        {
//When user clicks on our button, Something should happen of course! They all go here
                    }
}
}

Thumbs up