{"id":20659579,"url":"https://github.com/senior-sigan/why_cpp","last_synced_at":"2025-08-04T21:36:38.692Z","repository":{"id":69026076,"uuid":"164692619","full_name":"senior-sigan/WHY_CPP","owner":"senior-sigan","description":"Simple Game Engine in C++ to create Retro games.","archived":false,"fork":false,"pushed_at":"2019-10-04T15:24:48.000Z","size":1508,"stargazers_count":7,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T08:32:56.425Z","etag":null,"topics":["cpp","emscripten","fantasy-console","game-engine","gamedev","gamedev-framework","sdl2","whycpp"],"latest_commit_sha":null,"homepage":"https://senior-sigan.github.io/WHY_CPP/","language":"C","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/senior-sigan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"senior_sigan"}},"created_at":"2019-01-08T16:45:34.000Z","updated_at":"2023-05-15T11:25:09.000Z","dependencies_parsed_at":"2023-03-13T20:25:42.760Z","dependency_job_id":null,"html_url":"https://github.com/senior-sigan/WHY_CPP","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senior-sigan%2FWHY_CPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senior-sigan%2FWHY_CPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senior-sigan%2FWHY_CPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senior-sigan%2FWHY_CPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senior-sigan","download_url":"https://codeload.github.com/senior-sigan/WHY_CPP/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249709606,"owners_count":21313949,"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","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":["cpp","emscripten","fantasy-console","game-engine","gamedev","gamedev-framework","sdl2","whycpp"],"created_at":"2024-11-16T18:34:48.898Z","updated_at":"2025-04-19T14:14:25.142Z","avatar_url":"https://github.com/senior-sigan.png","language":"C","readme":"[![Build Status](https://travis-ci.org/senior-sigan/WHY_CPP.svg?branch=master)](https://travis-ci.org/senior-sigan/WHY_CPP)\n\n# About\n\n**WHYCPP** is a simple, fantacy-console inspired, library to create pixel-art games.\nThe main idea behind WHYCPP is to have fun by coding entire game, \nwithout all these fancy features a typical framework offers.\n\n# Featues\n\nYou can:\n\n- create games in C++, C, JavaScript;\n- draw EACH pixel on the screen manually;\n- draw primitive shapes; \n- load and draw png textures;\n- play wav sounds;\n- handle keyboard and mouse;\n- compile game into Web Page using emscripten.\n\n# Requirements\n\n## Windows\n\nOn Windows you can only develop using MSYS2 and MinGW.\n\nWhen you have MSYS2 installed, run these commands to install necessary tools:\n\n```shell script\npacman -S mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_mixer\n```\n\n## Linux\n\nFor Debian-based Linux run these commands:\n\n```shell script\nsudo apt install cmake make g++ libsdl2-dev libsdl2-mixer-dev\n```\n\n## Mac OS\n\nI suppose you have Homebrew installed.\n\nRun these commands:\n\n```shell script\nbrew install sdl2 sdl2_mixer\n```\n\nYou may need to activate developer tools: `xcode-select --install`\n\n# How to create game?\n\n## For C++\n\n1. Fork template project [WHY_CPP_template](https://github.com/senior-sigan/WHY_CPP_template)\n2. Write your code in `src` dir. \n3. Just run `make` in the terminal to compile and run. Template is preconfigured to automatically download the latest release of WHYCPP.\n\nOr\n\n1. Fork this repository. \n2. Create a new dir, for example `game`, with content like we have for `example`\n3. Add line to the `CMakeLists.txt`: `add_subdirectory(game)`.\n4. If you need, you can add to the `Makefile` new tasks like `example-compile` and `example-run`","funding_links":["https://ko-fi.com/senior_sigan"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenior-sigan%2Fwhy_cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsenior-sigan%2Fwhy_cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsenior-sigan%2Fwhy_cpp/lists"}