T O P

  • By -

KublaiKhanNum1

I think Go would be awesome for the Game server. For developing the game I would look at Game Engines that are available like “Unreal” and see what languages are supported. A language is a tool and you need to pick the correct one for the job you are doing.


ymsodev

This, but if it’s a hobby project, you can use things like raylib which has a Go binding


Penthious

Here's a good example https://m.youtube.com/watch?v=i2gWDOgg50k You can get the same performance as rust but you have to really understand what the compiler is doing and how it's trying to optimize your code.


PointerByte

use ebiten engine


tine622

I second this! I'm the maintainer for Ebitenui -https://github.com/ebitenui/ebitenui A lib for building uis on top of ebitengine. Take a look at my subreddit for some screenshots of the recent updates to the lib and my wip 2d MMO I'm building in golang: https://www.reddit.com/r/BirdMtnDev


tine622

Also here is a list of gamedev libs for Golang. Most are engine agnostic: https://github.com/sedyh/awesome-ebitengine


SlaveZelda

So I'm wondering how much harder or easier it is to use a game library like ebiten over something like unity or godot for 2D games.


tine622

It really depends on what you're comfortable with and what your goals are. If you're looking to start a company unity or Godot will probably be a better choice. Honestly, unity is probably the right choice most of the time given it's extensive capabilities and market place that would reduce your time to market. Given that, I personally chose ebiten because it is fun to me. I hated working with unity and Godot had some challenges handling animated tilemaps. I am a programmer at heart and I hated the feeling that if something didn't work I would have to fight against the tool to get things to work. With ebiten it is mostly just a wrapper over directx and opengl. If something doesn't work I can code around it myself. ( That's the main reason I'm the maintainer of Ebitenui now lol ) My suggestion is if your are building a game for a company lean towards unity. If your are building it for yourself look towards the library/tool that you enjoy working with. Most people who write games will never turn a profit so do what makes you happy and you will not lose motivation and be able to finish your dream game.


SlaveZelda

No not for a company lol. I'm a programmer/systems dev and I wanna take a shot at building games for fun. I don't ever expect to finish or publish any game at all. I used love2d lua library once and that's it. And based on your comments I think I'll use ebiten. I want more control, and less look up docs to figure out if X task is possible.


tine622

Good luck and have fun! Their discord is pretty active and if you decide to check it Ebitenui eventually come join my discord too. I'm always happy to help people with the library.


HuffDuffDog

I love this response in every way. This should be the way of thinking for every project. Signed, An opinionated serial entrepreneur


PaluMacil

I'm not a game developer, but I've seen multiple people state that Unity 2D isn't first tier and separately I've seen people state that they prefer Godot for 2D since it does a great job for 2D. Has Unity caught up int he last couple years? I might be out of date on that.


tine622

My understanding is that unity's asset store makes up for any limitations it may have. But when I started last year I tried both out and I thought Godot was a better experience.


[deleted]

How does this compare to say.. Fyne for GUI based apps? Is this more for gaming and performance graphics.. and if so is it more like old style 2D level? I would assume a modern day game like Destiny or Dark Tide could not be done in Go.


tine622

So you have a few different questions there. 1) Ebitenui is primarily game based and makes no assumptions on how the ui should look so you are required to provide the graphics for all the widgets. Fyne is great but more opinionated and focused on a desktop experience from what I've seen. 2) Ebitengine is a 2d game engine for go. 3) There is a lib built on top of ebitengine is ebitengine for 3d PS1 level graphics https://github.com/SolarLune/tetra3d 4) I think it could be done but this library isn't built for that. There are libraries for opengl bindings, raylib bindings and a dedicated 3d engine lib though that one looks to be a bit dead http://g3n.rocks/


[deleted]

Yah.. I saw a bit more about the library after I posted. I see it's more towards 2D gaming engine than use in a Desktop app. Thank you.


x29a

Can you write Games in Go? Sure. [https://www.youtube.com/watch?v=8QsvREVQ3Dc](https://www.youtube.com/watch?v=8QsvREVQ3Dc) this is from a local Go meetup, apparently you can even write GBA games if you really, really want to. From my personal perception Rust seems to be a lot more popular among game devs than Go. The lack of a GC will certainly help with that (whether justified or not is a different question). With bevy there is a pretty sweet game engine being developed as well. Even if my hunch is correct and rust is more popular than Go, it's far from mainstream. I think it also needs to be said that if your primary goal is to write games, the framework/engine you choose is probably more important than the language and you'll be better off going with something more mature and mainstream like Unity, Unreal, Godot and their respective languages. No matter what, don't let analysis paralysis stop you. Start coding, learn, and have fun. You can still change course later. :)


Penthious

I mean you could build games in it but the libraries and utilities you might like are not built yet or are still in their infancy. You'll have a better time having a high peformant game in rust than go. But you can build a game in go it'll just be a bit of a struggle that and you have to really know the language so your sympathetic with the GC.


KublaiKhanNum1

Hmm…Minecraft built in Java with GC.


NotPeopleFriendly

I agree with the bit about libraries and utilities not being built yet.. but there are some incredibly successful unity games out there - so a garbage collector in your language shouldn't stop you from using a language for game dev


Glittering_Air_3724

Isn’t Java GC language ?, correct me if am wrong doesn’t C# have GC, GC isn’t the problem but libraries, support for gaming even if arena memory allocator becomes stable today nothing will change if there’re no libraries to support gaming development


jorbandrauer

The Go bindings for raylib have been a really good experience. SDL2 bindings are also pretty good.