GSoC/GCI Archive
Google Summer of Code 2015

Copyleft Games

License: GNU General Public License version 3.0 (GPLv3)

Web Page:

Mailing List:

We're a foundation that focuses on libraries, engines, and tools which are used to create free software games, especially for game development in educational settings (introducing youth to software development).

Our primary languages are C, Python, OpenGL Shader Language (GLSL), and Genie. For Android and web, we have some Java and Javascript.

We primarily use IRC - interested students should join #CopyleftGames on as a first step.


  • Blender Tools for PySoy Currently, there is no tool for game designers to quickly and easily model objects for a PySoy based game other than having to explicitly code them. The goal is to use Blender, a famous opensource 3D modelling software which is easy to learn and use, to provide game designers the ease to model their objects and add functionalities. While, a plugin will render it using PySoy in real-time to generate code based on PySoy API for the created model which can be later edited or modified.
  • Cross Platform Bluetooth Integration All platforms have different Bluetooth stacks but with similar working principle, an umbrella API unifying all these stacks providing simple User Interface will make cross platform developer's work considerably easier. This API will be supporting Linux using Bluez, Android using both Bluez and Bluedroid, Windows and OS X using their integrated Bluetooth stack.
  • Game State Recording, Rendering, and Sharing Implementation of a game state recording and playback module that can be used by players to record and share gameplay video. This includes an engine module for recording the game state, playing back the game state, rendering saved sessions, a microphone audio recording API, and an external program that can be used to manage saved sessions.
  • Improving field dynamics for Pysoy Core In this project, I intend to work on the fields section of pysoy core and improve upon it. My project basically involves working with the two main classes of fields, which are Wind and Bouyancy. Moreover to implement these classes I will have to work on Bodies as well. The goals of my project will be, first to get the current field working, adding functionality to the soy.bodies, improving and implementing the new wind class and finally working on bouyancy class.
  • Inter-scene portals, room enhancements and dungeons IN PySoy The Dungeon will be composed of Room scenes. Before the Dungeon class can be implemented, portals will have to be added to allow for transition of bodies from one Room scene to another. The Room scene will also have to be improved, with addition of doors (Portals) being one essential addition (among others). Once this is done, functions and GUI will be designed to facilitate the creation of dungeons since creating dungeons one room at a time through API calls will be too lengthy.
  • Statistics and Control Panel for PySoy As a part of the project, I will be creating an API for PySoy developers to integrate statistics and server administration to their game server / client architecture with ease. I will also be designing a web based control panel to view the statistics and also control the game server. Since there is no existing support for statistics logging, it will provide an easy way to generate useful analytics of the game servers.
  • Terrain Engine for Generating Procedural Terrains This project aims to create a terrain generator and adding more features to soy.scenes.Landscape which is just a heightmap for now. Other features include on the fly terrain data generation, texture mapping and vegetation. The terrain engine will focus on developing games like starcraft and 3D farm games where the perspective is from above and not like FPS games. Thus, the final optimization techniques will be applied accordingly.
  • Voxel Scene for PySoy Implementing a new Scene subclass, the Voxel Scene. This would handle 3D terrain data processing, rendering and modifying, as well as integrating with the rest of the engine systems such as physics. Focusing in on a few parts of this extense area of work: customizable terrain generation, rendering optimization with LoD & heavy culling algorithms and physics integration. At the end of the program render destructible, randomly generated noise terrain that makes sense and has physics.