Go language

Started by
5 comments, last by swiftcoder 11 years, 3 months ago

Is Go a suitable language for game programming?

Advertisement

There's no reason you couldn't write games in Go, but there isn't much in the way of support -- you won't find many other people doing it who could help you, you'll have trouble finding libraries to work with (or will have to write your own binding for C or C++-based libraries), and you won't find Go-specific tutorials. If you're happy to work under those conditions and be one of the trail blazers then Go might be a viable choice, otherwise you're probably better off waiting a few years till others have made some of the initial progress for you. If you're a beginner you're likely better off sticking with a more commonly used language.

Is there any particular reason you're asking about Go?

smile.png

- Jason Astle-Adams

I am experimenting with it right now for a game server.

Golang is the easiest binary compiled language for writing servers. It has support from google cloud and many google tool-kits.

Consider turning back now If you are planning to do front end stuff with Go and have zero experience with C/C++. Go has a couple wrappers for libs like SFML, SDL, OpenGL and DX. Only problem is the support for these wrappers is hit or miss, and most require extensive knowledge of C/C++, SWIG and cgo to update or fix.

I am using Go as my language for all of the server-side code both for the UDP game engine as well as web server.

I have found it to be incredibly easy and productive to use, also with performance rivaling well-engineered C code yet without the headaches of memory management and that kind of thing. So far I haven't hit any issues with it really, just the normal learning curve of getting familiar with a new language (their take on Object Oriented took some getting used to but is effective).

For an experienced programmer, I highly recommend it for server side game logic.

For a new programmer, well, you shouldn't be starting with client/server programming anyways. Cut your teeth on single-player games first, don't even think about multi-player unless you have successfully created a few single player games.

There's no reason you couldn't write games in Go, but there isn't much in the way of support -- you won't find many other people doing it who could help you, you'll have trouble finding libraries to work with (or will have to write your own binding for C or C++-based libraries), and you won't find Go-specific tutorials. If you're happy to work under those conditions and be one of the trail blazers then Go might be a viable choice, otherwise you're probably better off waiting a few years till others have made some of the initial progress for you. If you're a beginner you're likely better off sticking with a more commonly used language.

Is there any particular reason you're asking about Go?

smile.png

Ahhhh, so i would be mostly finding things out by myself then?

And i got interested because i do want to do android programming then. I have some experience doing so in java, but it looks like Go could be an easier crossover. Go also looks like a cleaner language, but my eyes might not be so keen on discerning if that's true or not.

I also want to start doing more game programming, and be an indie programmer. But i want to do a different language than c++. c++ is a great language but i think it might be better going with something that's cleaner and more forgiving. Just not sure, i could go java, python, or c#. Just not sure which out of those.

I am experimenting with it right now for a game server.

Golang is the easiest binary compiled language for writing servers. It has support from google cloud and many google tool-kits.

Consider turning back now If you are planning to do front end stuff with Go and have zero experience with C/C++. Go has a couple wrappers for libs like SFML, SDL, OpenGL and DX. Only problem is the support for these wrappers is hit or miss, and most require extensive knowledge of C/C++, SWIG and cgo to update or fix.

It seems like Go makes things a lot easier but as the other person said, it doesn't have much support so far.

And i might want to turn back then. I have experience some experience with c++, but i don't have extensive knowledge.

I am using Go as my language for all of the server-side code both for the UDP game engine as well as web server.

I have found it to be incredibly easy and productive to use, also with performance rivaling well-engineered C code yet without the headaches of memory management and that kind of thing. So far I haven't hit any issues with it really, just the normal learning curve of getting familiar with a new language (their take on Object Oriented took some getting used to but is effective).

For an experienced programmer, I highly recommend it for server side game logic.

For a new programmer, well, you shouldn't be starting with client/server programming anyways. Cut your teeth on single-player games first, don't even think about multi-player unless you have successfully created a few single player games.

Only thing i have done so far single player wise is a few demos for high school.

Only thing i have done so far single player wise is a few demos for high school.

Well if you have a few single player games you successfully completed and are pleased with, even if somewhat rough games, that is a great start and if you are interested in multi-player this could be a good time to jump on in.

To be clear though, I agree with the above posters who are saying it could be difficult using Go for anything client side. I haven't tried that and would not recommend it for that purpose for exactly the same reasons they give, not enough compatibility.

For server-side aspects on the other hand, it is excellent. I am using Go for all server side code and Lua/Coronalabs for the client-side aspects (as it is a mobile game) and the combination is working really well.

And i got interested because i do want to do android programming then.

There is currently exactly zero support for using Go for Android development, and it has been explicitly stated that there are no such plans in the near-term.

It seems like Go makes things a lot easier but as the other person said, it doesn't have much support so far.

Go makes a certain class of problems easier - primarily, developing high-performance parallel server software (Erlang and Scala also are big players in this niche).

For desktop/apps/games development, I'd say that Go isn't really the right tool for the job, at least in it's current state. While GUI frameworks/bindings may at some point be developed for Go, there is a distinct lack thereof at the moment, and it's not really an area where I would expect to see a lot of growth (because everyone is focussed on servers and other parallel problem spaces).

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

This topic is closed to new replies.

Advertisement