<story><title>Writing space invaders with Go</title><url>https://sausheong.github.io/posts/space-invaders-with-go/</url></story><parent_chain><item><author>nottorp</author><text>Ouch. Not so interesting after all then.&lt;p&gt;Does Go even have some &amp;quot;standard&amp;quot; SDL bindings? I was googling the other day (with the aim of learning Go through doing something fun) and I found like 6 results only on the first page. Didn&amp;#x27;t go and try any of them because to be honest that&amp;#x27;s depressing... i bet that if there are 6 different bindings none is feature complete.&lt;p&gt;Is Go useful just for server side stuff then?</text></item><item><author>takumo</author><text>Looks cool but really should mention early on that it doesn&amp;#x27;t use SDL or OpenGL to render the game but uses a specific feature of iTerm2 to render a series of images in the terminal, on other terminals it just shows a black screen.</text></item></parent_chain><comment><author>gameswithgo</author><text>Go has an excellent set of SDL2 bindings:
&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;veandco&amp;#x2F;go-sdl2&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;veandco&amp;#x2F;go-sdl2&lt;/a&gt;&lt;p&gt;They do a very good job of making the API relatively idiomatic to Go without adding overhead, and I haven&amp;#x27;t run into any bugs yet.&lt;p&gt;I have been using them as part of a twitch series that teaches programming via small game projects.  I go through how to get SDL2 up and running in episode 6:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.twitch.tv&amp;#x2F;jackmott42&amp;#x2F;videos&amp;#x2F;all&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.twitch.tv&amp;#x2F;jackmott42&amp;#x2F;videos&amp;#x2F;all&lt;/a&gt;&lt;p&gt;There are aspects of Go that should make it better for game related programming. The low latency GC is a very good thing, compiling to native binaries means quicker start up time, and better responsiveness than a JIT, and easier distribution.  Fast compile times are also very nice for many game programming workflows.</text></comment>
<story><title>Writing space invaders with Go</title><url>https://sausheong.github.io/posts/space-invaders-with-go/</url></story><parent_chain><item><author>nottorp</author><text>Ouch. Not so interesting after all then.&lt;p&gt;Does Go even have some &amp;quot;standard&amp;quot; SDL bindings? I was googling the other day (with the aim of learning Go through doing something fun) and I found like 6 results only on the first page. Didn&amp;#x27;t go and try any of them because to be honest that&amp;#x27;s depressing... i bet that if there are 6 different bindings none is feature complete.&lt;p&gt;Is Go useful just for server side stuff then?</text></item><item><author>takumo</author><text>Looks cool but really should mention early on that it doesn&amp;#x27;t use SDL or OpenGL to render the game but uses a specific feature of iTerm2 to render a series of images in the terminal, on other terminals it just shows a black screen.</text></item></parent_chain><comment><author>weberc2</author><text>There&amp;#x27;s nothing about Go that makes GUI programming hard, it just hasn&amp;#x27;t taken off. Probably because maintaining bindings isn&amp;#x27;t fun, and bindings are rarely pleasant to use (impedance between C and the host language). And writing a decent GUI toolkit from scratch is a huge amount of work. Besides, competition from web apps and things like electron is eating GUI apps&amp;#x27; lunch, regardless of programming language.&lt;p&gt;Go is a general purpose programming language, so it&amp;#x27;s suitable for basically anything in the Java&amp;#x2F;Python&amp;#x2F;.Net world modulo availability of libraries.</text></comment>