|Mentor||Tom Black (blacktm)|
|Suitable for Beginners?||yes|
|Tags||ruby graphics gaming opengl C ios tvos webassembly|
|Applications (1st Choice)||0 (0 submitted | 0 in-progress)|
|Applications (2nd Choice)||0 (0 submitted | 0 in-progress)|
|Code of Conduct||https://github.com/ruby2d/ruby2d/blob/master/CODE_OF_CONDUCT.md|
|License||MIT license (MIT)|
Ruby 2D is the easiest way to get started with graphics programming! Create games, art, visualizations, UIs, and more. Check out the showcase to see what people are building. Working on this project will expose you to graphic engine design, creating domain-specific languages in Ruby, interfacing with native languages and libraries (like SDL2) via extentions, benchmarking and optimization, graphics APIs like OpenGL and Metal, app distribtion, emerging web technologies like WebAssembly, and more.
Experience with Ruby; an interest in graphics programming and/or game development; if contributing to documentation, experience with Jekyll, HTML, CSS; if contributing to lower-level graphics and hardware components, experience or exposure to C or other native programming languages
Tasks And Features
- Suggest and implement new features. 🌟 Ruby 2D can do a lot, but there are plenty of new things to tackle, and we'd love to hear what you think. If you need some inspiration, we're already putting some ideas together. For example, this year we're looking to add and enhance our graphics and game development APIs, add a WebAssembly target, improve the iOS & tvOS experience (maybe Android too), and speed up the engine internals.
- Fix issues. 🐛 Help us identify and fix bugs, and improve performance along the way.
- Write and review documentation. 📚 Vitally important to the success of every open-source project is documentation. We're off to a decent start, but there's always more to write and edit, and it's a great way to learn!
- Create and improve examples. 👾 We'd love to get your ideas on small, single-file apps to guide users through specific features or techniques. We've already got a few of them here.
You must be logged in to comment on this project.
Tom Black, Monday, April 29, 18:04 UTC
Hi Mamta. Thanks for your interest in the project! If OpenGL and rendering is of most interest to you, there are a number of things we could work on.
- "Screen shake" effect (like this), which I think could be implemented using the GL viewport.
- More shapes! Right now we just have some basic primitives, like circles, lines, triangles, and rectangles. We could create even more.
- Effects! We could introduce the ability to set shaders on objects, or the whole window. We've discussed this a little bit, but no progress yet. Particle effects might also be fun to explore.
- Getting the rendering backend to work with WebAssembly, so we can build games/apps for the web and have others play them in the browser. Here's some background on OpenGL support in Emscripten, the tool used for targeting WebAssembly.
There are certainly many possibilities depending on your interests and comfort level. Happy to talk through these or explore other ideas as well, either on our public chat in Gitter, over email (firstname.lastname@example.org), or in a GitHub issue. Let me know!
Mamta, Saturday, April 27, 18:26 UTC
Hello Tom, I am Mamta. I would like to contribute to this project. How can I start ? Kindly guide me.
I have experience in low-level graphics and have contributed in Linux GPU Subsystem, and have been exploring OpenGL.
Laura RGSoC, Wednesday, April 24, 14:01 UTC
Thank you for your submission! This looks like a great project for Rubyists so I'm happy to approve it for our project list. We'll share the final list next week with all the projects for our community — I'll be in touch soon, but don't hesitate to reach out (email@example.com) if you have any questions or need anything 💎