Sign in to follow this  
game of thought

What do i do now?i

Recommended Posts

I have spent since early December on python, learned the basics, released a first game, and have moved on to other libraries to no real avail. I have done C/C++ in the past(but no where near the detail i have done in python) and prefer both the syntax, the speed, the vast array of libraries and the fact you don't need perfect indentation.

 

However, i am worried that i will have a massive struggle with it eventually give up and go into a limbo where i am not sure again. It almost seems as if there isn't a language i can find that is either useful to me or easy to type while maintaining speed(I have tried a heck of a lot of languages over the last 2 1/2 years, and C/C++ and Python are the only ones i have spent more than about 3 days on, which i know is stupid).

 

I know that there are literally thousands of languages but there seems to be only about a dozen worth learning(Java,Python,C,C++, Javascript, Pascal etc.) but i cannot find the right one.

 

I have considered Lua because of it's use as a scripting language but i want to write games without the weird pointers and malloc/free syntax of c++ and the weird indentation and lack of ; in python. Which seems to lead to Java or C#, but i don't want to do either because one is tied to microsoft and the other isn't known for speed.

 

What on Earth should i do? 

 

Thanks

Edited by game of thought

Share this post


Link to post
Share on other sites

I have spent since early December on python, learned the basics, released a first game, and have moved on to other libraries to no real avail. I have done C/C++ in the past(but no where near the detail i have done in python) and prefer both the syntax, the speed, the vast array of libraries and the fact you don't need perfect indentation.

However, i am worried that i will have a massive struggle with it eventually give up and go into a limbo where i am not sure again. It almost seems as if there isn't a language i can find that is either useful to me or easy to type while maintaining speed(I have tried a heck of a lot of languages over the last 2 1/2 years, and C/C++ and Python are the only ones i have spent more than about 3 days on, which i know is stupid).

I know that there are literally thousands of languages but there seems to be only about a dozen worth learning(Java,Python,C,C++, Javascript, Pascal etc.) but i cannot find the right one.

I have considered Lua because of it's use as a scripting language but i want to write games without the weird pointers and malloc/free syntax of c++ and the weird indentation and lack of ; in python. Which seems to lead to Java or C#, but i don't want to do either because one is tied to microsoft and the other isn't known for speed.

What on Earth should i do?

Thanks

I am really starting to get annoyed with how people seem to think c/c++ is the way to go because of "Speed". Honestly, for the general use case of nearly every language, you are not going to be hitting those speed barriers on modern hardware. Yes, c/c++ does have the potential to be faster, but unless you have a good number of years of experience, it's more than likely that your implementation or design in language X is the cause for poor speed, rather than the language itself.

personally, if you don't want the overhead of memory management, then I'd recommend C#, it's a solid language imo. It's not exactly tied to microsoft(c# is the language for playstation mobile app development), however since you point out that you don't want to be tied to a single platform, you should ask yourself if you're at the point where you even care about ensuring portability across platforms. At the end of the day, no one can tell you what to do, you must decide what to do.

Edited by slicer4ever

Share this post


Link to post
Share on other sites

however since you point out that you don't want to be tied to a single platform, you should ask yourself if you're at the point where you even care about ensuring portability across platforms. At the end of the day, no one can tell you what to do, you must decide what to do.

 

Excellent point! If you don't even have a game, there is no need to worry about ensuring portability across multiple platforms. :)

 

Try to focus on what kind of game you want to create and what support libraries you will use. Drill down on what art assets you have available and how will you load them from disk to memory and then display them on the screen. Will your language choice support you in that endeavor or work against you? Are there libraries that are simple to use but only available for one language choice? At the end of the day, unless you are writing an extremely simple text game (and I mean pure text, not ASCII graphics) then you will not want to write every bit of code by yourself. So you will be using libraries and pre-made tools, find the ones that fit your game vision and let that help you decide which language to pick.

Share this post


Link to post
Share on other sites

When I've dabbled with game development in the past this is the same stumbling block I kept coming across. What I'm doing differently this time is just sticking with a language that I'm comfortable with (Ruby) and working on my knowledge of game logic and how everything pieces together. I'd suggest you do the same.

 

I found this article (from gamedev.net) to be very helpful. I'm currently working my way through creating all of the games detailed in the article (starting with Pong and moving forward).

Share this post


Link to post
Share on other sites

I have considered Lua because of it's use as a scripting language but i want to write games without the weird pointers and malloc/free syntax of c++ and the weird indentation and lack of ; in python. Which seems to lead to Java or C#, but i don't want to do either because one is tied to microsoft and the other isn't known for speed.

 

C++ doesn't require you to use malloc/free at all. That's all just inherited from C. In C++ you can use new/delete.

 

Example:

 

int* p = new int [37];

delete [] p;

 

here's a tutorial on how to use them.

 

http://www.cplusplus.com/doc/tutorial/dynamic/

 

I suggest you stick with C++. It gives the programmer the most freedom and there is a vast amount of support and libraries for it.

Share this post


Link to post
Share on other sites

Hi,

 

Any one of the major languages (all of them mentioned here) and more are powerful and relevant to consider.  The [I]goals[/I] which you have should determine both the engine and the language that you use. I highly recommend not choosing a language based only on if you like it or if you made progress in the past!  All of them are good!

 

Strategic priorities must frame your decisions:

1) Game concept and design first!

2) Determine your abilities

3) Choose a game engine accordingly

4) Use the language which that platform requires

 

Exceptions:  If you are a beginner you should choose a game engine which uses one of the easier to learn languages - a huge time and frustration saver, increasing your workflow and reducing time to completion.  If you have experience in your first language and are starting to make games, then stay with that language and find an engine which uses it!  For programmers with experience in multiple languages, then you still need to find that game engine fit!

 

Once the strategic decisions are established then you go tactical.

 

Stay with it and enjoy!

Share this post


Link to post
Share on other sites

Which seems to lead to Java or C#, but i don't want to do either because one is tied to microsoft and the other isn't known for speed.

Although originally developed by Microsoft, C# has been approved as both ECMA and ISO standards.  There are a number of cross-platform alternatives to .NET, and whilst I can't speak for the others Mono is now very capable.  There are even efforts to produce alternatives to XNA.  C# isn't really "tied to Microsoft" at all, so if that's your only concern you needn't be worried,

 

Java did have serious performance problems years ago, but for the most part that's no longer true unless your software is badly written.  Although there is a certain performance overhead, it's extremely unlikely to be a concern for you, and as evidenced by some of the games listed in my post "myth: Java not suitable for games" it's certainly more than fast enough for some absolutely fantastic games.

 

If either C# or Java is attractive to you then by all means give them a try, as the "problems" you listed aren't really valid concerns. smile.png

Share this post


Link to post
Share on other sites

All languages are worth learning. You will run into some roadblocks developing your first game in any language. I suggest you learn a whole variety of languages for the fun of it and not worry about which one is better because there is no such thing as a better language.

 

I heard some games use a mix of two programming languages

 

Share this post


Link to post
Share on other sites

Actually, the more complex the game and the larger the team of programmers, then the more languages which tend to be used in it.  Certain languages do lend advantages for specific needs, but the beginner should not be concerned with that but stay with one language until at least intermediate level is achieved before adding another language, in my opinion.

Edited by 3Ddreamer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this