{"id":13729840,"url":"https://github.com/raysan5/mod","last_synced_at":"2026-02-06T07:34:55.113Z","repository":{"id":74306699,"uuid":"225943827","full_name":"raysan5/mod","owner":"raysan5","description":"MASTERS of DATA, a course about videogames data processing and optimization","archived":false,"fork":false,"pushed_at":"2020-01-08T18:14:12.000Z","size":48,"stargazers_count":48,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-17T10:54:05.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raysan5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-04T19:42:22.000Z","updated_at":"2025-02-14T20:26:54.000Z","dependencies_parsed_at":"2023-03-04T09:30:41.399Z","dependency_job_id":null,"html_url":"https://github.com/raysan5/mod","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/raysan5/mod","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raysan5%2Fmod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raysan5%2Fmod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raysan5%2Fmod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raysan5%2Fmod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raysan5","download_url":"https://codeload.github.com/raysan5/mod/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raysan5%2Fmod/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267392562,"owners_count":24079919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T02:01:05.943Z","updated_at":"2026-02-06T07:34:50.062Z","avatar_url":"https://github.com/raysan5.png","language":null,"readme":"![](mod.png)\n\n# MASTERS of DATA\n\nWelcome to MASTERS of DATA. A course oriented to **Technical Designers**, **Technical Artists** and any **game developer** that wants to understand and control game data to the last bit.\n\nIn this course you will learn to:\n\n - **Understand your data:** How game data is organized, what is contained in every data file of your game.\n - **Process your data:** Read multiple data files, extract the data you need and edit that data programatically.\n - **Optimize your data:** Reduce size, improve quality, get the best results for every situation and for platform.\n - **Visualize your data:** Create custom tools to display your data: images, audio, text, models... any kind of data.\n - **Protect your data:** Design a custom file format and export your data to it, compress and codify your data.\n - **Automatize processes:** Create custom tools to read/write big bulks of data in batch, define a command-line interface.\n \n## UNDERSTANDING GAME DATA\n\n - Introduction to file formats **[3h]**\n - Data packing: from Header to EOF **[3h]**\n - Basic data compression and protection **[3h]**\n - Image data: from colors to pixels **[3h]**\n - Image data: optimization techniques **[3h]**\n \n   - Ex. Reading BMP file (no external libs) **[3h]**\n   - Ex. Reading PNG file (no external libs) **[3h]**\n   \n - Audio data: from waves to samples **[3h]**\n - Audio data: optimization techniques **[3h]**\n \n   - Ex. Reading WAV file (no external libs) **[3h]**\n   \n - Text data: from codes to encoding **[3h]**\n - Text data: optimization techniques **[3h]**\n \n   - Ex. Reading and writting UTF-8 text **[3h]**\n   - Ex. Rendering glyphs from font **[3h]**\n   - Ex. Font atlas generation **[3h]**\n   \n - Models data: from vertex to bones **[3h]**\n - Models data: optimization techniques **[3h]**\n \n   - Ex. Reading OBJ file (no external libs) **[3h]**\n   - Ex. Reading IQM skeletal animation data **[3h]**\n   - Ex. Writing custom model format **[3h]**\n   \n - Packing models data for Data Oriented Design: SoA vs AoS **[3h]**\n\n## VIEWING \u0026 PROCESSING GAME DATA\n\n - Define a custom file format (Ref. RIFF, PNG and ZIP file formats) **[3h]**\n \n   - Ex. Writting a custom file format writer **[3h]**\n   - Ex. Reading a custom file format **[3h]**\n   \n - Visualizing data 101: IMGUI introduction **[3h]**\n - Visualizing data: tools development basis **[3h]**\n      \n   - Ex. Viewing custom data: Image **[3h]**\n   - Ex. Viewing custom data: Audio **[3h]**\n   - Ex. Viewing custom data: Text **[3h]**\n   - Ex. Viewing custom data: Model **[3h]**\n   - Ex. Viewing generic data: HexViewer **[3h]**\n   \n - Processing data and optimization **[3h]**\n   \n   - Ex. Process image data (pixel-formats, filters, combine channels...) **[3h]**\n   - Ex. Process audio data (sample rate, sample size, normalize...) **[3h]**\n   - Ex. Process model data (optimize vertex attributes) **[3h]**\n   - Ex. Process text data (convert text to image) **[3h]**\n   - Ex. Process image and text data (steganography) **[3h]**\n\n## AUTOMATIZING PROCESSES\n\n - File system theory and access **[3h]**\n - Command line file processing **[3h]**\n - GUI and CLI tools development **[3h]**\n - Scripting and Automatization **[3h]**\n\n   - Ex. Image directory batch processing **[3h]**\n   - Ex. Data packer: Compression and protection **[3h]**\n   - Ex. Data unpacker and viewer **[3h]**\n","funding_links":[],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraysan5%2Fmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraysan5%2Fmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraysan5%2Fmod/lists"}