@rosshadden and I have been hard at work on a cross-platform, hardware-accelerated game development framework for the Nim community.
Frag is what we've come up with - https://github.com/fragworks/frag - and it's not quite ready yet, but I'd still like to take some time to introduce it to the Nim community and tell everyone a bit about it.
Frag aims to be a solid option for Nim developers who want to build 2d, and eventually 3d, games on a variety of platforms including - Windows, Linux, OSX, PS4, Xbox One, Nintendo Switch, Android, iOS, etc...
Currently our focus is on 2d desktop games but we've prototyped android support and other platforms / architectures are planned once the core framework is more feature-rich.
We're working on sample games, a website and documentation at the moment, as well as adding missing features to frag that 2d games will need.
Currently frag supports optimized GPU rendering for animated sprites and includes a texture packing tool for creating spritesheets (One of our planned features is to support sprite sheets from the commercial texture packer product.) Frag utilizes different rendering APIs depending on the host hardware so for OSX / Linux OpenGL will be used, for Windows - DX and for Android / iOS OpenGL ES.
Frag includes integration with Chipmunk2D for physics (optional), OpenAL for sound, Nuklear for Immediate Mode GUI, NanoVG (planned / prototyped) for HUDs, SDL2 for window management, input management and SDL_image for texture loading.
More about frag can be read about on the github page's readme or by checking out the examples that are included in the FRAG repo.
Hopefully folks have questions / suggestions for us. We're trying to build a community around frag (which will be easier once the website is done and the framework is more usable for new-comers) but until then we'll start here.
Thanks!
By the way, we have both the #fragworks IRC channel on freenode and a gitter room that we are always hanging out in.
Eventually we'll probably bridge them like #nim does.
Aw man! Game Engine Wars!
Seriously though, I guess I'll try to port over my game from nimgame2 to FRAG, because I'm too lazy to implement a physics engine.
We're certainly not trying to start any wars with anyone, however FRAG does offer some features Nimgame2 does not, with the added cost of complexity.
If you have any questions - until we get our own website going - please feel free to ask here or in the project's gitter.
Thank you for checking the project out!
I mean I also have my project in that direction: https://github.com/krux02/opengl-sandbox
But I think we have different goals in mind. I try to provide a toolset that allows to write arbitrary custom rendering pipelines quickly for arbitrary data. In that respect it is very experimental.
But enough about my project. I do like this project a lot. Maybe more for it's side effects that it's original goal. I think that Nuklear can become very useful for me. And it is always nice to have a physics engine ready to import. I wonder how the main project will evolve, up until now it feels like it is mostly foundation work.
Hello guys! I'm new in nim, i'm just evaluating nim to make games and i was thinking to make my own (mini)engine 2d using webgl+browsers as first target (not asm.js) and sdl as native backend to my games, but i read this post and FRAG seems fit very well for me. Any chance to support webgl and webaudio as backend in the near future? I don't know if it's even possible with the architecture of Frag or current state of the javascript backend.
Regards!
Hi @Nazariglez,
Our renderer is : https://github.com/bkaradzic/bgfx : which does support WebGL.
Now, having said that - we currently rely on some dependencies that might not be WebGL / asm.js friendly. Does that mean we're screwed for web targets? Not necessarily. I have a feeling these dependencies could easily be substituted for others.
Web targets are something we do have on our radar, just not in the short term. I have heard some outcry from the community about this though, so it will probably hit our roadmap for public alpha v0.1 which I am hoping will release around the late spring / early summer timeframe.
Currently I am working on integration for : http://esotericsoftware.com/spine-in-depth as well as authoring a custom runtime in Nim for it. Once that is complete I'm going to refocus on my efforts on frag-core and most likely web targets.
Also as a teaser (obviously this isn't working totally correctly - mesh indices are messed up) here's a gif of early non-functional spine integration with FRAG, using bindings to the official Spine C runtime library:
@Nazariglez
If your interested in making 2d web-only games, dom96 has a framework for that: https://github.com/dom96/gamelight and an example game: https://github.com/dom96/snake
Support for spine is coming to frag.
Couple of notes here :
For more tails on spine licensing, see : spine licensing
Thanks guys, i'm searching something more "html5 focused" than a webgl with emscript/asm.js backend, because lightweight and performance in mobile webview are main goals for me. Maybe i'll make my own framework to fit my needs, @hcorion these links seems a good point to start.
Thanks all!
PD: Good work with FRAG, it's a really cool (and ambitious) project!
Quick update : I'm recruiting - http://community.fragworks.io/t/recruiting-help-wanted/15/2
I'll have more updates in the following week(s).