Git Product home page Git Product logo

frag's Introduction

FRAGFRAG

Framework for Rather Awesome Games Build Status Join the chat at https://gitter.im/fragworks/frag

Home page and installation instructions

FRAG is a game creation framework being developed using the Nim programming language, and is currently in pre-alpha status. The immediate development focus for FRAG is supporting the creation of 2D mobile and desktop games. Console support is planned for post-alpha releases of FRAG.

Support for 3D is planned for post-alpha releases of FRAG.

Tested for Desktop on:

  • OSX Sierra v10.12.1 (OpenGL 3.3)
  • Arch Linux
  • Windows 10 (DirectX 11)

Tested for Android on:

  • Samsung Galaxy S6 (arm64-v8a, OpenGL ES 2.0)

Dependencies for Desktop:

Some technical details about FRAG:

  • Planned support for a multitude of rendering backends via BGFX
  • SDL2
  • Immediate Mode GUI via Nuklear

Examples


Desktop


Hello World https://github.com/fragworks/frag/tree/master/examples/00-hello-world

Spritebatch https://github.com/fragworks/frag/tree/master/examples/01-sprite-batch

Audio

Input

Sprite Animation

https://github.com/fragworks/frag/tree/master/examples/04-sprite-animation

GUI

https://github.com/fragworks/frag/tree/master/examples/05-gui

Physics

https://github.com/fragworks/frag/tree/master/examples/06-physics

Spine

https://github.com/fragworks/frag/tree/master/examples/desktop/07-spine

Android


Hello World

https://github.com/fragworks/frag-android/blob/master/examples/00-hello-world/main.nim

frag's People

Contributors

gitter-badger avatar rosshadden avatar zacharycarter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frag's Issues

Add event/callbacks for forced pausing

In systems such as iOS, Android, Wii U, etc. applications can be "paused" by the user (by exciting the app, pressing the home button, etc).Support to intercept these events is quite important, as often the GPU must be reset and primed when switching back.

Thus, I propose the addition of pause/unpause events/callbacks.

Logo

Frag needs a Logo.

Website

We need some kind of web presence for FRAG.

I don't really care how we do this - I'm thinking a github pages site would suffice.

We're at the stage where we could really start using some help in producing documentation and write ups about how to build the project on different platforms, how to compile shaders, etc... Information I can already start dispensing that is unlikely to change much, but without it, users will be quite puzzled as to how to use the project.

Not only that, but it'd be nice to start generating a little more buzz about the project. This is something we could work on in our down time, but we should start moving on ASAP IMO.

My buddy is working on the logo as far as I know, so as soon as that's ready it'd be sweet if we had something to drop it into and go live with.

Enhance tiled map API

Tiled map API is very basic.

Add additional procs for -
know / get the size (AABB)
translate it on render?

Also -
provide way to render w/o calling begin and end on spritebatch

Spine runtime for FRAG

2 options being explored -

  1. Wrap existing C Spine runtime
  • Will force us to include Spine runtime license with project, but project can be optionally included with FRAG so FRAG can stay spine runtime license free
  • Faster and easier
  1. Write our own runtime
  • Not fast, not easy
  • WIP atm, working on parsing skeleton and texture atlas data
  • Will need extensive testing to verify results against spine samples

Out of the two options, I'm much closer to achieving # 1. I think if I took another shot at creating bindings I could probably have something working in a day or two.

`# 2 is more appealing though, so I'm working on that. If I encounter roadblocks I may switch back to # 1.

Linking needs to be fixed on Ubuntu

Trying to link bgfx on ubuntu produces the following error :

Hint:  [Link]
Hint: operation successful (71798 lines compiled; 2.779 sec total; 208.863MiB peakmem; Debug Build) [SuccessX]
Hint: /home/zc/projects/frag/examples/desktop/00-hello-world/main  [Exec]
../vendor/bgfx/.build/linux64_gcc/bin/libbgfx-shared-libDebug.so: undefined symbol: glXGetFBConfigAttrib
libbgfx-shared-libRelease.so: cannot open shared object file: No such file or directory
could not load: libbgfx-shared-lib(Debug|Release).so
Error: execution of an external program failed: '/home/zc/projects/frag/examples/desktop/00-hello-world/main '

Probably due to linking order / transitive OpenGL dependency.

Feature Request: Drawing Primitives

FRAG should support drawing primitives. Use cases are:

  • for simple game prototypes (or just games with a very simple visual style)
  • for debug and "editor" gui systems - eg. drawing bounding boxes, "handles" to resize, move objects etc.

As a list of possible primitive to start with, I would suggest something like that supported by sdl2, ie:

  • lines
  • points
  • rects
    with filled and non-filled variants.

See the discussion on the forum here: http://community.fragworks.io/t/possible-feature-request-drawing-primitives/19 ( @zacharycarter has some implementation suggestions here. )

GUI submodule

Need a GUI submodule which should utilize Nuklear IMGUI

Can't compile example

edit: I got the example to compile but when I run I now get: could not load: libbgfx-shared-lib(Debug|Release).so
I downloaded frag git and installed with nimble. Docs say that will install deps. I have these packages installed: libgl1-mesa-dev x11proto-core-dev libx11-dev

Forums

We need some kind of discussion board / forum for the website.

We can discuss categories and shit later, but for now I'm thinking we just have an announcements section, a general section, and a help section.

I honestly hate having anything to do with message boards besides post on them, and I don't know how you feel about them @rosshadden but I feel like the administration / moderation of them is something we could hand over to someone else who'd be willing to help out contribute. I doubt that will happen till we have more steam behind us, so that might fall to us for now.

I'd like to try to get set up with something soon though, the simpler and faster the better.

Git submodule --init failure

May I suggest you to modify references like git@... from .gitmodules, using
https://.. instead ?

People having github in their keychain & known hosts may get a failure trying to follow instructions...

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:bkaradzic/bx.git' into submodule path '/Users/me/nim_prove2/frag/vendor/bx' failed
Failed to clone 'vendor/bx'. Retry scheduled
Cloning into '/Users/me/nim_prove2/frag/vendor/bgfx'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of '[email protected]:fragworks/bgfx.git' into submodule path '/Users/me/nim_prove2/frag/vendor/bgfx' failed
Failed to clone 'vendor/bgfx' a second time, aborting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.