Google Summer of Code: 2015: Difference between revisions
(Format template and header) |
(Full template added) |
||
Line 16: | Line 16: | ||
These are large, modular tasks which would require elevated interest in a topic. They are potentially the most fun and the most useful. | These are large, modular tasks which would require elevated interest in a topic. They are potentially the most fun and the most useful. | ||
=== Add support for Scalable Vector Graphics === | === Add support for Scalable Vector Graphics === | ||
'''Description:''' ENIGMA currently supports only pre-rasterized graphics resources. This task would involve adding a method to rasterize vector graphics. After that, at the student's option, this task could be extended to render vector graphics live in-game | '''Description:''' ENIGMA currently supports only pre-rasterized graphics resources. This task would involve adding a method to rasterize vector graphics at compile-time. After that, at the student's option, this task could be extended to render vector graphics live in-game. | ||
''' | '''Prerequisites:''' Intermediate C++ level programmer. Prior experience with OpenVG is a plus. Prior experience with OpenGL is strongly encouraged, but not required. | ||
'''Mentors:''' | '''Mentors:''' JoshDreamland | ||
=== Further Box2D support === | === Further Box2D support === | ||
Line 26: | Line 26: | ||
== IDE Tasks == | == IDE Tasks == | ||
These are largish tasks which concern the IDE. Students will have the option of working with Java for [[LateralGM]] or with C++ using Qt for [[NaturalGM]]. | These are largish tasks which concern the IDE, which serves as an umbrella project. Students will have the option of working with Java for [[LateralGM]] or with C++ using Qt for [[NaturalGM]]. [[NaturalGM]] is a work-in-progress IDE intended to eventually replace [[LateralGM]]. | ||
=== Recode LateralGM frontend using JavaFX === | |||
'''Description:''' This is a large, UI-intensive task. Mentors would be able to assist, but the magnitude of work and learning curve seems too high for a GSoC task for an inexperienced student. Mentors would potentially not suffice. | |||
'''Prerequisites:''' Beginner to intermediate Java programmer. JavaFX experience is a plus. | |||
'''Mentors:''' JoshDreamland | |||
=== Polygon editor === | |||
'''Description:''' Used primarily for designing polygon collision masks. Work points include a marching-squares algorithm (or the like) for bitmap tracing, and a point editor. | |||
'''Prerequisites:''' Beginner to intermediate Java programmer. JavaFX experience is a plus. | |||
'''Mentors:''' JoshDreamland | |||
=== Texture Groups === | |||
'''Description:''' Add support for generating texture atlases to the IDE, then support writing them in the backend (compiler). | |||
'''Prerequisites:''' Beginner to intermediate Java programmer. JavaFX experience is a plus. | |||
'''Mentors:''' JoshDreamland | |||
== Extremely Specialized == | == Extremely Specialized == | ||
These tasks would be useful to the project, but require special skills or equipment. They are listed in case a student has a deep interest in a subject, coupled with existing skills. Mentors will be less able to assist with these tasks. | These tasks would be useful to the project, but require special skills or equipment. They are listed in case a student has a deep interest in a subject, coupled with existing skills. Mentors will be less able to assist with these tasks. | ||
=== Support for virtual reality displays === | |||
'''Description:''' Add support for VR displays such as Oculus Rift. Design and implement a simple-to-use API for virtual reality development in existing games. This would require a VR device for testing, and the team does not presently have any experience with these APIs. | |||
'''Prerequisites:''' Intermiate or highr C++ programmer. | |||
'''Mentors:''' JoshDreamland |
Revision as of 18:33, 8 February 2015
ENIGMA, the Extensible Non-Interpreted Game Maker Augmentation, is an open source cross-platform game development environment derived from that of the popular software Game Maker. Its intention is to provide you with a quality game creation tool and a bridge between high- and low-level programming languages. It can be used either through an IDE, namely, its sister project, LateralGM, or through a Command line interface.
Like Game Maker, ENIGMA comprises both an easy to use Drag & Drop system as well as its own programming language. This programming language, known as EDL, is essentially a mix between C++ and Game Maker's GML. Part of ENIGMA's goal is to remain backwards compatible with Game Maker, serving for some intents and purposes as a Game Maker compiler, however, EDL offers many very powerful features which simply aren't present in the alternative. Such features include the ability to compile DLLs and other C/C++ scripts right into the program and access C++ types, templates, and functions.
This article gives a general outline of several tasks that could be completed by Google Summer of Code 2014 volunteers. Most ideas were created by top ENIGMA contributors, but a few ideas were created by ENIGMA users.
Students may join the ENIGMA IRC channel, #enigma on Freenode, or post on the forums if they have any questions or concerns.
Small functionality tweaks/additions
These are small tasks to get a student or potential contributor familiar with the inner-workings of ENIGMA. They are minor tasks which would take less time for a mentor to implement than explain, but they have actually not been done yet, and so are good candidates for introductory tasks.
- Rename resources whose names are not valid identifiers. Right now, ENIGMA will let you name a sprite "while" or "if" or "Mario's Cap" or "string." These resources can cause name conflicts and should be assigned a different name, or no name at all.
- Sound system improvements. The current implementations of
sound_volume
is not working, andsound_position
is missing. - Particle system features. The current particle system is missing attractors, and in general offers plenty of room for improvement.
API Extension Tasks
These are large, modular tasks which would require elevated interest in a topic. They are potentially the most fun and the most useful.
Add support for Scalable Vector Graphics
Description: ENIGMA currently supports only pre-rasterized graphics resources. This task would involve adding a method to rasterize vector graphics at compile-time. After that, at the student's option, this task could be extended to render vector graphics live in-game.
Prerequisites: Intermediate C++ level programmer. Prior experience with OpenVG is a plus. Prior experience with OpenGL is strongly encouraged, but not required.
Mentors: JoshDreamland
Further Box2D support
FEATURE REQUEST: ELABORATION REQUIRED
IDE Tasks
These are largish tasks which concern the IDE, which serves as an umbrella project. Students will have the option of working with Java for LateralGM or with C++ using Qt for NaturalGM. NaturalGM is a work-in-progress IDE intended to eventually replace LateralGM.
Recode LateralGM frontend using JavaFX
Description: This is a large, UI-intensive task. Mentors would be able to assist, but the magnitude of work and learning curve seems too high for a GSoC task for an inexperienced student. Mentors would potentially not suffice.
Prerequisites: Beginner to intermediate Java programmer. JavaFX experience is a plus.
Mentors: JoshDreamland
Polygon editor
Description: Used primarily for designing polygon collision masks. Work points include a marching-squares algorithm (or the like) for bitmap tracing, and a point editor.
Prerequisites: Beginner to intermediate Java programmer. JavaFX experience is a plus.
Mentors: JoshDreamland
Texture Groups
Description: Add support for generating texture atlases to the IDE, then support writing them in the backend (compiler).
Prerequisites: Beginner to intermediate Java programmer. JavaFX experience is a plus.
Mentors: JoshDreamland
Extremely Specialized
These tasks would be useful to the project, but require special skills or equipment. They are listed in case a student has a deep interest in a subject, coupled with existing skills. Mentors will be less able to assist with these tasks.
Support for virtual reality displays
Description: Add support for VR displays such as Oculus Rift. Design and implement a simple-to-use API for virtual reality development in existing games. This would require a VR device for testing, and the team does not presently have any experience with these APIs.
Prerequisites: Intermiate or highr C++ programmer.
Mentors: JoshDreamland