Start from the scratch

Started by
19 comments, last by Nopp 7 years, 7 months ago

Hello there,

my english skill may lack, cause i am from germany, but i think you'll be able to understand me quite well.

I work as a system administrator and till now, i had nothing to do with progrsamming.

Sure, sometimes i wrote tiny scripts for automatic backup, or some powershell stuff, but nothing big.

I set some goals for myself and ask you, how to reach them, to be more precise, what language will fit my needs?

1. For "learning purposes" a little game like pong and a small explorer, for learning and understanding the basics of programming and the language itself.

2. A 2D (3D) Game. I have something in my mind, for quite long i have to say. But for studying reasons, i never had the time to accomplish it myself. Now the time is finally there :)

I know, the goals are quite rambling, but i am not able to expound my thought on it.

But i struggled like the last few days, with "finding" the right language(s) for me.

I came to the solution, that for the beginning, as you wrote in your FAQ, Python would be the best.

I can make a Pong game, i can make an explorer and i can learn very easily and see results, what is the most important for me.

BUT, can i make a solid, fast and stable 2D or even a 3D Game with Python, when it will be a fast acting PvP Arena game? Something like the "Warlock Funmap in Warcraft 3" ->

If not, would it be better to learn a language after Python, with Similiar Syntax, which can manage that (Does this even exist?), or something like C++ / Java?

A lot of questions and i hope i don't offent the damedev guidelines :)

Have a nice day, Nopp

Advertisement

There are many games developed in Python, and frameworks for 2D and 3D games, so I would say it's a safe choice. I should say, that many games written in Python use C or C++ for low level stuff like graphics rendering and such, but that doesn't mean you need to learn low level graphics in C++ if you're using Panda 3D, for instance.

But the truth is that learning a language is the easy part. The hard part is learning to code. That will be hard no matter which language you choose. The good part is that most knowledge transfers from one language to the other. And starting with a language that is easy to learn, like Python, will make it easier.

If you are serious about programming, chances are you'll learn many languages in the way, so stop overthinking it and start coding already!

There are many games developed in Python, and frameworks for 2D and 3D games, so I would say it's a safe choice. I should say, that many games written in Python use C or C++ for low level stuff like graphics rendering and such, but that doesn't mean you need to learn low level graphics in C++ if you're using Panda 3D, for instance.

Thanks for the links here. Didn't know Panda 3D!

The good part is that most knowledge transfers from one language to the other. And starting with a language that is easy to learn, like Python, will make it easier.

Good to hear that!

If you are serious about programming, chances are you'll learn many languages in the way, so stop overthinking it and start coding already!

I get the point, really. But i am a "little" planner... I like to concept in a large way. Like 3-5 Years. :D

I don't recommend sticking with Python for game development. The library support is poor, performance is often poor, and there isn't much of a community of Python game developers.

If you're not interested in C++ then Unity with C# is a good compromise.

I don't recommend sticking with Python for game development. The library support is poor, performance is often poor, and there isn't much of a community of Python game developers.

Doesn't PyPy fix all this performance issues? I will stick to Python for my learning phase. But then, i am not sure. There are a lot of disagreements about using Python for Game Develpoment...

If you're not interested in C++ then Unity with C# is a good compromise.

I didn't say that i am not interested in C++. But isn't it easier to learn a language which can handle all this, which syntax is similar to Python?

PyPy helps with some performance issues. But not every library will work with PyPy (in fact probably most performance-related ones will not), and PyPy is still not going to deliver the type of speed you need in all circumstances. Besides which, performance is only one of several problems with using Python for games.

Sadly I don't know any language that is similar to Python and which is suitable for a "fast acting PvP Arena" game. I like C# because it is usually faster than Python while still being easier to use than C++, and since you can use C# with the Unity engine, you're using a system that is known to deliver commercial-quality games across multiple platforms and which has a big community and lots of support.

Sadly I don't know any language that is similar to Python and which is suitable for a "fast acting PvP Arena" game. I like C# because it is usually faster than Python while still being easier to use than C++, and since you can use C# with the Unity engine, you're using a system that is known to deliver commercial-quality games across multiple platforms and which has a big community and lots of support.

Ok, thank your for the great answer :) !

That was it, what i was looking for :)

PyPy helps with some performance issues. But not every library will work with PyPy (in fact probably most performance-related ones will not), and PyPy is still not going to deliver the type of speed you need in all circumstances. Besides which, performance is only one of several problems with using Python for games.

Perhaps you could list other problems you see with using Python for games? I still think it's a good choice for beginners. And having engines like Panda3D that implement critical performance stuff in C++ for you I fail to see why would be such a bad choice for the game Nopp is talking about.

I'll repeat from above: "The library support is poor, performance is often poor, and there isn't much of a community of Python game developers." Python itself is a good language. However it's not got a good ecosystem when it comes to game development functionality. Partly this is down to performance issues, partly down to the fact that the language core and library devs don't know or care about games or any sort of multimedia, which produces a chicken and egg problem.

As for Panda3D - it's a pretty old engine and is not widely used. I think the most important thing for a game developer is to have a community of people they can discuss things with, and if you choose a technology that is too uncommon you can easily find yourself stuck.

I'd also recommend people read this thread before choosing Panda3D: https://www.panda3d.org/forums/viewtopic.php?f=1&t=18980
"Panda3D is lacking many things a modern game engine such as Unreal and Unity have"
"Panda3D does not support mobile platforms"
"Panda3D still makes the user write shader code instead of creating materials in a visual shader editor"
"Panda3D does not have a scene editor."

Personally I don't think it's worth using a framework like Panda3D that will make you do a lot more work, just to keep a language like Python. Programmers can usually adapt to a new language in a matter of weeks, but creating your own scene and shader editors could take months.

Very interesting.

I am just confused, maybe Python is sufficient enough for my needs?

Could you "evaluate" it for the game i posted above?

Greetings and many thanks :)

This topic is closed to new replies.

Advertisement