A language with garbage collector is not going to replace to C++. In change, Rust has been disegned to replace C++ and the main motivation on its design was to build a browser engine based in Rust.
In the Rust community there are already several games developers, so you should question in its mailing list.
http://www.rust-lang.org/
Here you have a MP2 decoder which was designed as a demo of the soft real-time capabilities and safety features of Rust:
https://github.com/pcwalton/fempeg
is it possible to write 2D graphic engine in GO? things like Skia,Cario
GO want to replace C++, Skia is written in C++,
but Skia is compile to .so file.
I think for graphic libs, C is not very continent. C++ is too heavy,
On Monday, February 4, 2013 2:39:58 PM UTC-6, Archos wrote:A language with garbage collector is not going to replace to C++. In change, Rust has been disegned to replace C++ and the main motivation on its design was to build a browser engine based in Rust.
What exactly about a garbage collector is bad for 2d graphics?
Or if we take it from another direction, this http://minecraft.com EXTREMELY popular/successful game runs on top of a garbage collected language (java).
So how does garbage collection prevent this?In the Rust community there are already several games developers, so you should question in its mailing list.
http://www.rust-lang.org/
Here you have a MP2 decoder which was designed as a demo of the soft real-time capabilities and safety features of Rust:
https://github.com/pcwalton/fempeg
Whats with all the go haters hanging around here?
On Monday, February 4, 2013 3:08:12 PM UTC-6, Archos wrote:
El lunes, 4 de febrero de 2013 20:54:24 UTC, bryanturley escribió:Whats with all the go haters hanging around here?To be objective is fundamental to know choose the appropriate technology in each case.
The next one is one of my accounts with open source wich has only Go code and with more than 15 free Go projects. Am I a Go hater or somebody that knows to choose the technology according to the project?
https://github.com/kless
You just seem to point people towards rust a lot.
In this case for no reason, since nothing about go stops it from being useful in this use scenario.
Nothing against rust but it already has a mailing list somewhere else.
El lunes, 4 de febrero de 2013 21:17:45 UTC, bryanturley escribió:In this case for no reason, since nothing about go stops it from being useful in this use scenario.In this case there is reason when OP believes that Go can be used to replace to C++ and since the question is related to game developing, then I can advise about a language suited for such task
sorry I want to mean convenient, mainly for GUI/Windows/Widgets,
just want to have inside struct method, then we can use things like " XXXbuttion.leftclick()"
in C , this is done by function pointers, which is not that direct u have to find where is the really function in place.
but I didn't see inherit and polymorphic is really needed by GUI/Windows/Widgets design.
I am also interested in game development in Go.
We are already doing games in Lua and Python... so why not? Although the mark-and-sweep garbage collector might be a problem.
I know there are a couple of SDL and Allegro bindings... but is there anything specifically designed for Go ? Any idiomatic frameworks?
No reason. ...but if you're just writing a go wrapper around a tonne of C and C++ code, why bother? Just write the whole thing in C++ instead. I'm extremely dubious that keeping two code bases (including go as one) will be more productive that one non-go code base. Perhaps. Depends how much of your logic has to dip down into the C layer. I suspect a lot.
Without a graphics library as part of the core package, I just don't think it's worth it.
Sure.Virtually every game that is not written in a c based language exists because the "language" layer has a smart wrapper around the core that provides an easy to use API.Panda3D is python wrapped around c++Moai, Love, Corona are lua wrappers around c++Unity is a js/c#/boo wrapper around a c++ coreetc. etc.If a wrapper like this *already existed* for go, then sure, it'd be a great platform to use....but it doesn't. That means you have to *write one* if you want to write a game in go.I just don't think its a really compelling use case for go at the moment.~Doug.
sorry I want to mean convenient, mainly for GUI/Windows/Widgets,
Here is a high-level 2D library built on OpenVG for the Raspberry Pi:
I've had great luck with https://github.com/banthar/gl , but Go-SDL is broken on many architectures, including MacOSX. The problem is that SDL provides its own main() function in the library on many architectures, which is *ridiculous* interface design. In theory, Go-SDL might be able to work around this, although it shouldn't have to. Consequently, Go-SDL works only on Linux, AFAIK.
3D hardware can be used for 2D, it is just not as hyped as 3D.
People just normally do the 2D stuff on the main cpu to make it more portable, and in the past to not tie up video device resources.
If you play with the nvpr_svg example in the NVprDEMOs.zip, you’ll find that NV_path_rendering is typically many times (in a few cases even 100x faster) than other well-known path renderers. This includes even includes Direct2D.
These graphics devices used to have a lot of fixed functionality back in the 90s early 2000s, if you strayed from this fixed functionality you had to use the main cpu instead.Now they are mostly just a whole bunch of almost general purpose FPUs and memory controllers, with a few exceptions (2d/3d texturing hardware is the only thing that comes to mind).
They didn't have to change the hardware to implement it, they probably just wrote a few shaders and execute them through the api behind the scenes.
Something they couldn't have done say <= ~2004* on mainstream hardware.
* I can't remember when opengl shaders hit the almost general purpose level.
I maintain a plotting library for Go called Plotinum (code.google.com/p/plotinum); it includes a fairly small vector graphics package named vg. Vg is really just an interface that sits on top of svgo for SVGs, draw2d for PNG and other raster images, gopdf for PDFs, and a custom encapsulated Postscript generator. For a GUI toolkit, you probably want OpenGL support. Currently, vg does not support OpenGL, but an OpenGL back-end could probably be added fairly easily.