
Show HN: Strife, a 2D game library for Go - felixangell
https://github.com/felixangell/strife
======
tmountain
It's great to see things happening in the Golang/2D gaming space, but having
looked at your Github page and website, I have no idea what the value
proposition of your framework is. There's an example featuring a text editor
on the front page (how does this relate to gaming?), and nothing telling me
what I'd get out of adopting Strife. Have a look at the
[https://phaser.io/](https://phaser.io/) for an example of solid marketing
around a game framework. Just below the fold, one immediately learns that the
about the features the framework offers and why they should care. Also, the
last commit is 3 months ago. Is the project still active?

~~~
felixangell
To be honest, the project is kind of mimicking Slick2D which is a simple Java
framework that introduced me into graphics programming in the first place.

My kind of dream project here is to maybe make a little tutorial series on how
to use the library making a small game with it. Maybe inspire a few young
people to get into graphics/game programming to show how simple it is - in the
go domain specifically. The library is kind of a no thrills graphics library,
maybe I should market it that way.

The project doesn't really market itself too much right now, and I don't think
I will focus on that till I've written a reasonably polished game in it
either. But thank you for that link I will bookmark it.

Kind of just throwing the project up on here for people to look at & critique.

And that is a point... the feature project is a text editor. Though I think it
looks a bit more impressive than the alternative which is a little game I'm
working on in my spare time.

The library itself is worked on from time to time. The last commit was a few
days ago (a small patch however).

~~~
ezekg
Honestly, I’d love to see a project like GoRails but for game programming,
maybe with quarterly topics on eg making a FPS, RTS, etc. I would definitely
pay a subscription for that.

~~~
gameswithgo
you might enjoy my video series. you will probably want to skip ahead to where
we set up SDL2

[https://gameswithgo.org/](https://gameswithgo.org/)

~~~
sephware
> Go is also flexible in that it does not enforce a particular style of
> programming

That’s actually kind of a main theme of Go, that it’s very opinionated about
what the right way to program is, and doesn’t do you any favors if you try to
use it to do things in a way it doesn’t think aligns with that.

------
crowhack
Rendering text at 60fps is a far cry from rendering a dynamic scene at 60fps.

Any examples of this being used for something non-trivial? I'm generally
curious because I figured Golang would be a no-go due to the GC...

~~~
coldtea
> _? I 'm generally curious because I figured Golang would be a no-go due to
> the GC..._

Huh? Tons of GC languages are used for games. Heck, web games use JS. Not to
mention the whole C#/Unity thing that even powers AAA games...

~~~
robmaister
Once you get past a certain point of developing a complex game in Unity, one
of the optimization techniques is to keep runtime allocations at 0 bytes in
order to prevent a GC pause from ever happening. This was a huge pain back
when Unity was on Mono 2.10.8 (released Dec 2011) but it's a bit better now.

It's a fight against the GC typically

~~~
kjeetgill
Unfamiliar with any game codebases or much C++, but I know in C we'd do zero-
allocation or controlled arena allocation for "embedded" uses. I'd imagine
Allocation tuning is always present. Was it much harder in C#?

~~~
pjmlp
.NET has support for stack allocation and manual management of native memory.

Many forget that MSIL is rich enough to support C++, initially via Managed
C++, later replaced by C++/CLI.

The major features in C# 7.3 are related to slices, improved stack allocation
and reducing copies of value types.

------
willio58
Weird that the example they chose to show is a text editor

