Skip to content

mithridatize/ccircle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn to code via interactive games!


Setup / Documentation

Note: Setup has only been validated against arm64 OSX.

  1. Ensure system has asdf.
    1. brew install coreutils curl git asdf
  2. Ensure system has poetry (via asdf).
    1. asdf ensure-versions
  3. Ensure poetry installs deps in a .venv directory.
    1. poetry config virtualenvs.in-project true --local
  4. Install dependencies via poetry
    1. poetry install
  5. Ensure the system has glfw. TODO(move this to poetry).
    1. pip install glfw
  6. Validate your setup by running 02_cc_hello.py in PyCharm or on the CLI via:
    1. PYTHONPATH=$PWD \
      poetry run python cc_student/hello_world/02_cc_hello.py
      

TODO(Brendan): Move this info to the setup section of the docs.

Screenshots

Scenario 1

Scenario 2

Highlights

  • No prior programming experience required.
  • Learn to use a professional development toolchain.
  • Almost everything is written in Python, so you can explore 'how does this work?' as much as you want.
  • Learn the fundamentals of a breadth of computer science topics:
    • Object Oriented Programming (OOP)
    • 2D Game Development (OpenGL 3.2+)
    • Multi-player Game Development: Client/Server (http & tcp)
    • TODO; Topics planned for future development:
      • Audio Synthesis
      • Data Structures
      • Databases
      • AI
      • Machine Learning
      • Security / Cryptography
      • Various 3D Graphics topics:
        • Quaternions and matrix math
        • Ray-tracing
        • Bounding Boxes and Object collision
        • Physically based Rendering (BRDF, etc.) - consider repurposing UC Berkeley CS 184 materials

TODO

  • Hackathon stuff
    • swap dependency mgmt to poetry
    • upgrade dependencies to work on arm64
      • upgrade deps minimally
      • confirm upgrade via 02_cc_hello.py
    • upgrade from python 3.7?)
    • MVP freight game UI -> scenario05
    • MVP freight game setup
    • game AI
    • compare game AI results to user's algo
    • toggle game AI
    • ...
  • Pipenv
    • stop pinning versions (migrate to *)
    • clean up dependencies
  • get Trial tests working
  • Unit Tests (against stored image).
  • pip distribute ccircle prep here
    • Ensure Windows Support once moved to ccircle as pip-distributed package.
  • Uncategorized
    • Template /generate endpoint for cc_student instead of cloning repo (after split to pip distribute).
    • Documentation via GitBooks.
    • Pretend to be new, make youtube video of setup: 'Intro to Software Development'.
    • Walk through it with someone, take notes for improvement.
    • Slack community.
  • All topics covered under Highlights.
    • Scenario 3: rush hour.
    • EDM DJ name generator (phonetics model -> kshmr is good)
    • Make snowball fight!
  • Minor

About

Learn to code with Python!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.8%
  • Shell 2.0%
  • Batchfile 0.2%