Skip to content
This repository has been archived by the owner on Feb 1, 2023. It is now read-only.

Latest commit

 

History

History
57 lines (34 loc) · 3.98 KB

jlg2266.md

File metadata and controls

57 lines (34 loc) · 3.98 KB

COMS4995 Project Proposal: PyScenes

Project proposal file for COMS 4995 Open Source Development w/ Tim Paine

Student

Trey Gilliland
jlg2266

Project Updates

Update 09/28/2020:

I have decided to focus on the 3rd project proposal at the moment. PyScenes is PyGame 2 library to provide users with a simple base project and high-level functionality used in games and multi-media programs.

Link to project repo

Project Motivation Pygame is a great beginner resource for python game programming as it has great documentation, written in Python (which is often taught as a first programming language), and binds to the trusted SDL library. However, when I was learning to make games for the first time, I struggled with making my code modular and separated enough to remove dependencies amongst files and such which led to many code blocks very early on.

A library and set of videos I came across called pygame_functions helped ease a lot of the pain of the learning curve, but it becomes messy very quickly as all the code is provided in a single .py file and the implementation is quite limiting. I would like to provide a similar library with expanded functionality provided at the highest level possible for beginners while still being able to make games easily.

Some example tasks/directions to focus on:

  1. Provide a template skeleton to provide the users with scenes for easy context switching
  2. Modularize code involving 2D drawing to match the standard for other 2D drawing libraries such as Processing.js
  3. Modularize code involving system code for easy file system saving
  4. Setup code to allow data to be pulled from an API using the requests module and easily be used in a pygame
  5. Setup code to allow for simple TCP networking games such as Chess, Uno, etc.
  6. Modularize code involving audio to allow easy use and resources for adding sound to programs
  7. Modularize code involving sprites and keyboard/mouse input for ease of use for game
Original Proposals

Here are 3 potential projects that I want to work on throughout the semester and bounce between depending on what I am interested in and which is the best for completing the deliverable for the class. All 3 projects are exciting to me so I am fine with any of them.

Project Proposal ideas:

  1. Contributing to larger project: Dash.js

This is a repo I worked with for a research project and the reviewers suggested we submit a pull request to the project. I would like to clean up and package our project code and submit a pull request to the project at some point in the semester.

  1. Partner project with Raghav Mercheri: torch.js

This is a NodeJS binding for PyTorch. Would be a really useful repo and would serve well as a partner project due to its large scope.

  1. PyGame wrapper

When I first started learning how to code, I was really interested in making games (because who isn't when they're first starting out). Some of the first programming projects I built were made using PyGame because I was taught Python in school and PyGame was rather simple. PyGame is an open source python project for writing games and was a great introduction to making games, but has somewhat of a steep learning curve due to all the factors that go into a game.

To improve upon the experience, I would like to develop a simple OOP-based game template so users don't have to worry about the best practices when making a game. I want to make it as simple as possible to start making a 2D game that can handle sprites, background, tile-based movement, and other common 2D game components. This is something I started working on nearly a year ago but hasn't really been touched since so I would love to revive it and flesh it out as an open source library.