Learn to code via interactive games!
Note: Setup has only been validated against arm64 OSX.
- Ensure system has
asdf
.brew install coreutils curl git asdf
- Ensure system has poetry (via asdf).
asdf ensure-versions
- Ensure poetry installs deps in a .venv directory.
poetry config virtualenvs.in-project true --local
- Install dependencies via
poetry
poetry install
- Ensure the system has
glfw
. TODO(move this to poetry).pip install glfw
- Validate your setup by running
02_cc_hello.py
in PyCharm or on the CLI via:-
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.
- 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
- 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
- Adapt things from intro to python pdf
- Scenario or walkthrough like Writing a Program that Edits my Videos