├── Jam1_April_2022 ├── DisarmSelfDestruct.md ├── LightsRound.v.0.1.0.md ├── TermBreaker.md ├── TheWorld.md ├── consu.md ├── danteo.md ├── drag_me_around.md ├── grandrounds.md ├── minesweeper_marathon.md ├── readme.md ├── smoothlife.md └── sumo.md ├── LICENSE └── README.md /Jam1_April_2022/DisarmSelfDestruct.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: DisarmSelfDestruct 2 | 3 | Small puzzle game inspired by one of the Mass Effect mini-games. 4 | 5 | Link to project: https://github.com/babysitterd/DisarmSelfDestruct/releases/tag/v1.0 6 | 7 | ![Screenshot from Mass Effect](https://raw.githubusercontent.com/babysitterd/DisarmSelfDestruct/main/inspiredby.png "Signal Tracking Quest") 8 | 9 | # Team 10 | 11 | * babysitterd (levon.dev@gmail.com) 12 | 13 | # Interpretation of Theme 14 | 15 | The puzzle looks like a bunch of concentric *circles*, you have to crack the code layer by layer to get to the **round core and disarm the self destruct of the Rogue AI. 16 | 17 | # Other Things You Want To Share 18 | 19 | As you might guess I didn't have much time so the code quality is far from perfect :) But I'm really happy to chip in and take part. readability-function-cognitive-complexity was turned off just to make unit-tests work, other functions should be within the limit of 25. Wasn't properly tested on Windows but should work fine if the window is sized adequately. 20 | 21 | ## Rules 22 | 23 | Player have to guess the code to disarm the self destruct of the Rogue AI. Code is a sequence of directions that player must enter in the correct order (on every mistake you'll have to start over). Additionally player has to outrun a self-destruct timer to avoid the big bang! 24 | 25 | Controlled with arrow keys. 26 | -------------------------------------------------------------------------------- /Jam1_April_2022/LightsRound.v.0.1.0.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: Round 2 | 3 | You have the board 9x9 of LEDs. Your task is to light or dim all of them. You can invert their state clicking on them. But remember You change the state of five of them at once, the choosen one and four others around. One on the left and right and top and bottom. Every game is random and always there is a solution. Additionally there is SEED option in game menu where you can share game board with your friends. 4 | 5 | link to project: https://github.com/SewerynKaminski/cpp-best-practices_game_jam_1/releases/tag/LightsRound.v.0.1.0 6 | 7 | ![Screenshot](https://github.com/SewerynKaminski/cpp-best-practices_game_jam_1/blob/main/LightsRound.png) 8 | 9 | # Team 10 | 11 | * Seweryn Kamiński 12 | 13 | # Interpretation of Theme 14 | 15 | My game have 81 fit factors in the theme, there is 81 round LEDs. 16 | 17 | Plus: You have to LEDs on and off round and round. 18 | 19 | Bonus: You can play it round and round. 20 | 21 | # Other Things I Want To Share 22 | 23 | Good luck everyone! 24 | -------------------------------------------------------------------------------- /Jam1_April_2022/TermBreaker.md: -------------------------------------------------------------------------------- 1 | # TermBreaker 2 | 3 | [TermBreaker]: https://github.com/ArthurSonzogni/termBreaker 4 | 5 | [TermBreaker] is an inverted break-out game. You have to throw a set of balls from the top. Goal is to erase all the bricks before getting submerged. 6 | 7 | 8 | 9 | Project repo: https://github.com/ArthurSonzogni/termBreaker 10 | 11 | Submission release: https://github.com/ArthurSonzogni/termBreaker/releases/tag/v0.0.4 12 | 13 | **Screenshot** 14 | 15 | ![image](https://user-images.githubusercontent.com/4759106/162655635-39631d49-924f-46fe-bebd-24e834f9dd36.png) 16 | 17 | 18 | **Video** 19 | 20 | https://user-images.githubusercontent.com/4759106/162654777-de337c90-8d31-4a03-a5d9-a13fc606fb5e.mp4 21 | 22 | 23 | # Team 24 | 25 | * Arthur Sonzogni (@ArthurSonzogni) 26 | 27 | # Interpretation of Theme 28 | 29 | When the theme is "round", you have to make balls. Many! Ideally the goal of the game is to buy more and more of them. 30 | 31 | # Code Quality 32 | 33 | - There are several simple tests. Please note that the component can be tested in isolations. 34 | - I didn't have time for adding fuzzers. 35 | - I tried using IWYU, like I did in many project, but I have errors and abandonned. 36 | - The CI on MSVC on Window with DEVELOPER_MODE was failing. I don't own a Windows desktop, and there was no clear error. I had to remove them from the CQ. 37 | - Audio works, but the underlying library do not pass with ASAN. Audio can be enabled/disabled behind a the "ENABLE_AUDIO" flag. There is also a menu at runtime in the intro that you can use. 38 | 39 | # Online Play 40 | 41 | This compile toward WebAssembly. It even works with Audio. 42 | https://arthursonzogni.com/TermBreaker/ 43 | 44 | # Gameplay 45 | 46 | #### Goal 47 | Achieve the last level. 48 | Use your mouse to throw a set of balls toward bricks. You have to do it before one of them touch the top of the screen. 49 | Completing levels gives you coins. Use coins to get more balls. 50 | 51 | 52 | #### Controls: 53 | 54 | Mouse mainly. You can also use the keyboard in menu. 55 | -------------------------------------------------------------------------------- /Jam1_April_2022/TheWorld.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: TheWorld 2 | 3 | First you have to answer three personal questions. Based on that you will get ... ;). To merge the worlds of square and round, you will have to accomplish 8 halls which are guarded by monsters triggered by tension between worlds... 4 | Will you be able to survive? 5 | 6 | link to project: https://github.com/JungerBoyo/TheWorld/releases/tag/game_jam_submission 7 | 8 | [![gamejam-scr0.png](https://i.postimg.cc/5NNwqZRg/gamejam-scr0.png)](https://postimg.cc/fkptMgZS) 9 | [![gamejam-scr1.png](https://i.postimg.cc/SQG69yDj/gamejam-scr1.png)](https://postimg.cc/w37R8dKd) 10 | 11 | # Team 12 | 13 | * JungerBoyo 14 | 15 | # Interpretation of Theme 16 | 17 | * The world represents pair of two opposities one of them is the round and the other the square! 18 | 19 | # Other Things I Want To Share 20 | 21 | * explore! 22 | -------------------------------------------------------------------------------- /Jam1_April_2022/consu.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: Consu 2 | 3 | Consu is a music clicker game. The target is to click circles - in the correct timing of course - while listening to your favourite music! 4 | It includes built in level maker - listen to your music while clicking on canvas to create a map you can play later on! 5 | 6 | link to project: https://github.com/kmdrGroch/consu/releases/tag/1.0.0 7 | 8 | # Team 9 | 10 | * Bartosz Leoniak (leoniak.bartosz99@gmail.com) 11 | 12 | # Interpretation of Theme 13 | 14 | Circles are round... click round objects to win... 15 | 16 | # Other Things You Want To Share 17 | 18 | This project was fun enough I am most likely going to develop it in the future. 19 | Already planned: 20 | - adding new modes (rainbow mode / speedrun mode / free clicking mode / keyboard gamemode / typing mode) 21 | - fix mouse events (sometimes it registers one click as several ones...) 22 | - improve UI and UX 23 | - make it work for MacOS (for now sound library doesn't work there) 24 | -------------------------------------------------------------------------------- /Jam1_April_2022/danteo.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: DanteO 2 | 3 | DanteO is proud to present its newest product: DantIO! 4 | 5 | DantIO is here to help developers connect around buggy code through increasing our collective WTF/minute KPIs. 6 | Don't wait, come join us in the brand new 10th Circle of Hell! 7 | 8 | _DantIO, together, for a buggier tomorrow._ 9 | 10 | ![image](https://user-images.githubusercontent.com/90116665/162724641-d7b62010-a1ba-4e32-aefa-6df4fabe7368.png) 11 | ![image](https://user-images.githubusercontent.com/90116665/162724415-fbda8453-74c7-4daa-8964-59e1f9a7c832.png) 12 | 13 | link to project: https://github.com/rduckengineer/danteo/releases/tag/v1.0.0 14 | 15 | # Team 16 | 17 | * RubberDuckEngineer 18 | * TrungDinhT 19 | * CardellaT 20 | 21 | # Code quality 22 | 23 | Not everything is as tested as I wish it would be, but the core components (mostly) are, and the ones that aren't have been made so that testing them would be not too difficult. But time constraints + deciding to do a narrative game that requires manually-crafted content... 🙃 24 | 25 | Some architectural clean ups are still needed (`user_interface` is pretty bare, given its current content it probably should be in `engine`, and `gameplay` has a little bit too much content. I'll try to make it make more sense later) 26 | 27 | But still, in theory, you should be able to create any page-based game with the stuff in `engine` + `user_interface`. 28 | 29 | In theory, the whole game walkthrough can be tested without any UI to check there was no regression, but then again, time constraints. 30 | 31 | There are a few builders here and there to make content easier to pump out. 32 | I'd like to make a lot more of it `constexpr` in the future, but for the sake of finishing I'm still using `std::vector` or `std::map` for a few things right now. 33 | 34 | # Interpretation of Theme 35 | 36 | Welcome to the 10th Circle of Hell, the new tech hub of the underworld! 37 | You'll find that sometimes, good things don't have to end as we go round and round and round... 38 | 39 | # Other Things You Want To Share 40 | 41 | Writing and displaying bad code in the console is a lot more time-consuming than it seems. 42 | Maybe V2.0 will give us some truly bone-chilling nested for-loops and subtle exception-safety issues 😉 43 | -------------------------------------------------------------------------------- /Jam1_April_2022/drag_me_around.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: Drag Me aROUND. 2 | 3 | Not really a game, as it has no gameplay component to it. I'd call this submission an interactive toy. 4 | 5 | The player's objective is to drag a "thing" around, watch it wiggle, and gain some score. 6 | 7 | Link to project: https://github.com/oskidan/round 8 | 9 | # Team 10 | 11 | * [Just me](https://github.com/oskidan). 12 | 13 | # Interpretation of Theme 14 | 15 | I had in my mind an actual side-scroll platformer that would interpret the theme quite nicely. 16 | Unfortunately, I did not have enought time to invest into this game jam. Maybe next time. 17 | 18 | I managed to write a simple physics engine that was meant to be used as the basis for the 19 | game mechanics. This engine is not finished yet. For example, it does not support collisions yet. 20 | 21 | The integration test I created, allowed me to drag a thingy around. So... I decided that this 22 | could be a clever hack on my part, "Drag the thing a**round**". The thing being dragged is somewhat 23 | round as well :^) 24 | 25 | # Other Things You Want To Share 26 | 27 | I want to wish you all peace! Looking forward to see the awesome submissions others have made. 28 | Good luck to everyone! 29 | -------------------------------------------------------------------------------- /Jam1_April_2022/grandrounds.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: Grand Rounds 2 | 3 | A nonogram tour of the [Grand Rounds Scenic Byway](https://en.wikipedia.org/wiki/Grand_Rounds_National_Scenic_Byway) in Minneapolis, MN 4 | 5 | link to project: https://github.com/dholmes215/grandrounds/releases/tag/v0.1 6 | 7 | # Team 8 | 9 | * David Holmes (dholmes@dholmes.us) 10 | 11 | # Interpretation of Theme 12 | 13 | The linked Wikipedia page "Round" for inspiration included mention of the Grand Rounds, which I was very familiar with, having lived in Minneapolis my whole life and having biked the Grand Rounds trails hundreds of times. I sought a way to take pictures of landmarks around the Grand Rounds and incorporate them into a game that could be made quickly with the FTXUI library and with my current skills, and nonogram puzzles seemed like a viable vehicle for that, though I ended up biting off more than I could chew. 14 | 15 | # Other Things You Want To Share 16 | 17 | I have only tested on Windows, building with MSVC, running in Windows Terminal. Furthermore the Debug builds are extremely slow, so I recommend Release builds if you actually want to play the game. I hope it works in other environments but sadly I'm out of time to test them. It is not playable at all in terminals that do not support a mouse. 18 | 19 | Unfortunately, due largely to poor planning on my part and somewhat unrealistic goals, I didn't actually finish the game to nearly the extent I would have liked. I hoped to have a dozen or so puzzles, all with photographs of locations around the city. It turns out that 1) designing _good_ nonograms is actually kind of hard, and 2) many great photographs do not make good nonograms at all. Since this was supposed to be a _C++ Best Practices_ game jam, I decided not to spend all my limited time designing puzzles and was more than busy just trying to make the game anyways. So I only ended up with two nonograms, only one of which is actually good. 20 | 21 | There are no unit tests, and I disabled the sample tests because I was getting weird build errors I had no time to look into. The CodeQL action on GitHub hasn't passed since the first couple days. It started failing due to CMake/Conan issues that were also causing the regular CI builds to fail, and once I fixed those it was failing due to timeouts after six hours. I haven't looked into why. 22 | 23 | The code itself is also sort of a mess. I basically just got it working and now it's time for it to be done so I'm calling it done. I'll hopefully clean it up a bit over the next couple days. 24 | 25 | In retrospect I should have spent more time figuring out my environment and the FTXUI library _before_ the game jam started, instead of spending the first weekend on that stuff. 26 | 27 | In spite of all that, it was very educational. I can see myself using FTXUI for other projects in the future, and I think I'll be better equipped for future game jams, with better planning and time management. 28 | -------------------------------------------------------------------------------- /Jam1_April_2022/minesweeper_marathon.md: -------------------------------------------------------------------------------- 1 | # Minesweeper Marathon 2 | 3 | Minesweeper Marathon is an adaptation of [Minesweeper](https://en.wikipedia.org/wiki/Microsoft_Minesweeper) 4 | with a timer and rounds of increasing difficulty. 5 | 6 | Project repo: https://github.com/ebarlas/minesweeper_ftxui 7 | 8 | Submission release: https://github.com/ebarlas/minesweeper_ftxui/releases/tag/v1.0 9 | 10 | ![Screenshot](https://github.com/ebarlas/minesweeper_ftxui/raw/main/screenshot.png) 11 | 12 | # Team 13 | 14 | * Elliot Barlas (elliotbarlas@gmail.com | @ElliotBarlas) 15 | 16 | # Interpretation of Theme 17 | 18 | Microsoft Entertainment Pack, included with Windows in the 90s, was full of addictive quick-play games 19 | that I adored in my youth. 20 | Chip's Challenge, FreeCell, SkiFree, JezzBall, and others were great, but Minesweeper was my favorite. 21 | 22 | The text-grid layout of FTXUI immediately made me think of Minesweeper. 23 | 24 | When the theme "round" was revealed, I decided to make an adaptation of Minesweeper that occurs over 25 | many rounds. 26 | 27 | # Code Quality 28 | 29 | The Minesweeper Marathon source code is organized into 4 modules, each with a separation translation unit. 30 | 31 | `minesweeper` depends on `game`, which depends on `board`, which depends on `bitmap`. 32 | 33 | All source code compiles with no warnings or errors on all pre-configured actions. 34 | 35 | The core components - `game`, `board`, and `bitmap` - have 100% line coverage from Catch2 unit tests. 36 | 37 | # Online Play 38 | 39 | When I was reading through the FTXUI docs, I was immediately struck by the [online examples](https://arthursonzogni.com/FTXUI/examples/?file=component/canvas_animated). 40 | 41 | Right away, I decided that I wanted Minesweeper Marathon to similarly be available for online play. 42 | 43 | Minesweeper Marathon is available in the browser at https://barlasgarden.com/minesweeper/index.html 44 | 45 | The CMake, HTML, and JavaScript employed to make that happen are available in the project repo. 46 | 47 | The simple high score server written in Python is also in the project repo. 48 | 49 | # Gameplay 50 | 51 | #### Goal 52 | Achieve the highest round in the time allotted. 53 | 54 | #### Rules 55 | The original [Minesweeper](https://en.wikipedia.org/wiki/Microsoft_Minesweeper) gameplay 56 | within a grid of tiles remains unchanged. Reveal all non-mine tiles as quickly 57 | as possible. 58 | 59 | However, when a single board is completed, the game continues with a 20-second time bonus and 60 | another board that has an additional mine. This process continues until time expires. 61 | 62 | Additionally, an individual board can be reset to restart the current round. Progress is 63 | not lost if a mine is revealed! 64 | 65 | #### Controls: 66 | 67 | * Left click covered tile to reveal 68 | * Click (left or right) revealed number with correct number of flagged neighbors to clear remaining neighbors 69 | * Right click or key press while hovering covered tile to flag -------------------------------------------------------------------------------- /Jam1_April_2022/readme.md: -------------------------------------------------------------------------------- 1 | # News 2 | 3 | * 2022-04-11 12:00 UTC - Submissions closed! 4 | 5 | # Jam 1 : April 2022 - "Round" 6 | 7 | The first game jam will begin on April 1, 2022 (no this is not a joke)! 8 | 9 | ## Theme 10 | 11 | The theme for the April 2022 C++ Best Practices Game Jam is: "Round". 12 | 13 | You can interpret this theme in any way that makes sense to you, but you submission must include the use of this theme. 14 | 15 | For inspiration, you can look at the [English Wikipedia page for "Round"](https://en.wikipedia.org/wiki/Round). 16 | 17 | ## Timeline 18 | 19 | * April 1, 2022 12:00 UTC: Topic announcement 20 | * April 1-10: Work on your Games! 21 | * April 11, 2022 12:00 UTC: Submissions must be finalized 22 | * April 11 - April 14: Community voting 23 | * April 15: Winners announced 24 | 25 | Currently no prizes are planned. If you want to be a sponsor, contact me. 26 | 27 | ## Rules 28 | 29 | All rules are stated in the [main readme](../README.md). 30 | 31 | ## Submissions 32 | 33 | You can submit whenever you like, but the tag that is listed in your PR at the time of submission closure will be the version that is judged. 34 | 35 | Create a PR into this folder. Example 36 | 37 | `super_cool_game.md` 38 | 39 | ```markdown 40 | # 2022 Game Jam submission: Super Cool Game 41 | 42 | Some really cool description of your super cool game. 43 | 44 | link to project: https://github.com/team_or_user_name/project_name/releases/tag/some_version 45 | 46 | # Team 47 | 48 | * list 49 | * of 50 | * team 51 | * members 52 | 53 | # Interpretation of Theme 54 | 55 | Awesome explanation of how your game fits into the theme 56 | 57 | # Other Things You Want To Share 58 | 59 | And some more stuff here, if you have other things to say 60 | ``` 61 | 62 | 63 | # Participate Submissions 64 | 65 | ## With CI 66 | 67 | * [DisarmSelfDestruct](DisarmSelfDestruct.md) - @babysitterd - ![image](https://user-images.githubusercontent.com/234279/162766002-af4a44fc-f1e8-4ba1-b108-a5ed08955f6b.png) 68 | * [LightsRound](LightsRound.v.0.1.0.md) - @SewerynKaminski - ![image](https://user-images.githubusercontent.com/234279/162765724-bc3cebb9-0e69-4fe6-a6d2-d8fc422a55f1.png) 69 | * [TermBreaker](TermBreaker.md) - @ArthurSonzogni - ![image](https://user-images.githubusercontent.com/234279/162766301-6df3a90a-76e5-4f84-898f-fc03628ae942.png) 70 | * [TheWorld](TheWorld.md) - @JungerBoyo - ![image](https://user-images.githubusercontent.com/234279/162766518-f86a9b1a-a32c-4e7e-89f7-67792d72faab.png) 71 | * [Consu](consu.md) - @kmdrGroch - ![image](https://user-images.githubusercontent.com/234279/162766802-3a42febe-21fa-4f93-b6ea-cf7a55630060.png) 72 | * [DanteO](danteo.md) - RubberDuckEngineer, TrungDinhT, CardellaT - ![image](https://user-images.githubusercontent.com/234279/162767324-2363e668-f973-4777-a4ed-05ecb1b1a074.png) 73 | * [Drag Me aROUND](drag_me_around.md) - @oskidan - ![image](https://user-images.githubusercontent.com/234279/162767662-c41c0541-116f-4101-a68f-77ca0dc36b11.png) 74 | * [Grand Rounds](grandrounds.md) - @dholmes215 - ![image](https://user-images.githubusercontent.com/234279/162768054-e47351e0-9ec5-49a5-a454-911cf65e51cd.png) 75 | * [Minesweeper Marathon](minesweeper_marathon.md) - @ebarlas - ![image](https://user-images.githubusercontent.com/234279/162768445-a83ac7d7-53cc-447d-914b-34e7266be6e7.png) 76 | * [smoothlife](smoothlife.md) - @baerlux - ![image](https://user-images.githubusercontent.com/234279/162768685-505da492-554c-4483-ba7a-ed75d96f8a4b.png) 77 | * [Sumo](sumo.md) - rusticobakko (@ilbakko), grisenti, NeeYume - ![image](https://user-images.githubusercontent.com/234279/162769151-87a525f4-6dc5-4778-b29d-63577c0bf200.png) 78 | 79 | 80 | ## Additionally... 81 | 82 | * https://github.com/rseyyedi/rsey_game_jam/releases/tag/game_jam_submission was DM'd to me, but no official submission page was made 83 | 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /Jam1_April_2022/smoothlife.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: smoothlife 2 | 3 | Have you ever dreamed of becoming a master polisher? 4 | Ever wanted to create **round** and shiny surfaces? 5 | 6 | Well, now you can at least play a weird dream of someone who wants to become a polisher and has some sort of obsession with calculating. Maybe he should have become an elementary school math teacher instead? 7 | 8 | Find out for yourself! 9 | 10 | link to project: https://github.com/baerlux/smoothlife/releases/tag/v1.0.0 11 | 12 | 13 | # Team 14 | 15 | * baerlux - baerlux@pm.me 16 | 17 | # Interpretation of Theme 18 | 19 | * Goal is to create **round** numbers. [see wikipedia](https://en.wikipedia.org/wiki/Round_number) 20 | * analogy to making smooth, **round** surfaces 21 | 22 | # Other Things You Want To Share 23 | 24 | It was very fun to create this. Thank you [Jason](https://www.youtube.com/channel/UCxHAlbZQNFU2LgEtiqd2Maw) for the opportunity :) 25 | 26 | My top score was something above **10000** try to beat me! 27 | -------------------------------------------------------------------------------- /Jam1_April_2022/sumo.md: -------------------------------------------------------------------------------- 1 | # 2022 Game Jam submission: Sumo 2 | 3 | It's exactly as it sounds. A pixel-art sumo fighting game! 4 | :D 5 | 6 | link to project: https://github.com/valerioformato/sumo_game/releases/tag/v1.0.0 7 | 8 | # Team 9 | 10 | * rusticobakko (@ilbakko) 11 | * grisenti 12 | * NeeYume 13 | 14 | # Interpretation of Theme 15 | 16 | We were brainstorming ideas and at some point we were joking about cats pushing objects out of a round flat earth. 17 | 18 | From there we thought about "pushing outside a circle" and landed on a sumo fighting game :) 19 | 20 | We thought this was fitting the theme since: 21 | * The sumo ring is **round** 22 | * The sumo fighters are kinda **round** 23 | * Game mode is a best-of-three, so you have to win two **rounds** 24 | 25 | # Other Things You Want To Share 26 | 27 | Excluded warnings are described in the project README. 28 | This game requires the terminal window to be fullscreen (or to reduce terminal font size enough to make it fit). 29 | In testing we had a terrible experience with windows binaries, since they are run in the native windows terminal which seems to have a very low refresh rate. Launching the game from powershell from the newer Windows Terminal results in a much better experience. 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | * [Jam 1, April 2022, is announced](Jam1_April_2022) 2 | 3 | # News 4 | 5 | * 2022-03-22 - April 2022 Jam officially announced 6 | * 2022-03-24 - April 2022 [Getting Started](https://youtu.be/4V4ZrB3o6g4) Video Released 7 | * 2022-03-27 - [Discord link](https://discord.gg/KuKzESDdbt) updated (old one expired) 8 | * 2022-04-01 - April 2022 Jam's Theme Officially Announced and Jam starts - ["Round"](Jam1_April_2022) 9 | * 2022-04-11 - April 2022 Jam's submission deadline ended! 10 | * 2022-04-12 - April 2022 Jam's voting process [has begun](https://github.com/cpp-best-practices/game_jam/issues/14) 11 | 12 | 13 | # Jason's C++ Best Practices Game Jam Official Rules 14 | 15 | The C++ Best Practices Game Jam is a periodic friendly competition designed to promote the learning of C++ through game creation in an environment that makes it easy to apply Best Practices. 16 | 17 | Be sure to read through this entire document. We want you to have fun, and have given you startup projects that help you succeed and apply all of the rules! 18 | 19 | Also, it's fine to start playing with the game project template today and familiarize yourself with it. 20 | 21 | ## Social Media 22 | 23 | Please use #CppBestPracticesGameJam on social media, and feel free to add your Twitch / dev links here in a Pull Request: 24 | 25 | 26 | ## Who is Jason and Why Does He Have a Game Jam? 27 | 28 | Jason Turner (aka lefticus): 29 | 30 | * Host of [C++ Weekly YouTube Channel](https://www.youtube.com/channel/UCxHAlbZQNFU2LgEtiqd2Maw) 31 | * Co-host of [CppCast](https://cppcast.com) 32 | * Author of the book "C++ Best Practices" and several C++ related puzzle books available on [Leanpub](https://leanpub.com/u/jason_turner) and [Amazon](https://www.amazon.com/Jason-Turner/e/B0034N9C8G%3Fref=dbs_a_mng_rwt_scns_share) 33 | 34 | At the start of 2022 Jason made it a goal of his channel and Twitter interactions to make C++ "Fun and Accessible." The hope is that this game jam provides a FUN environment for people to learn C++. 35 | 36 | ## Code of Conduct 37 | 38 | All interactions around the game jam are to be governed by the [Berlin Code of Conduct](https://berlincodeofconduct.org/). If you, your team, or your project are found to be in violation of the code of conduct, then your submission wil be disqualified. 39 | 40 | ## Funding, Sponsorships and Prizes 41 | 42 | There is currently no actual prizes planned, but in case there are prizes awarded, I must note: 43 | 44 | * YouTube [Community Guidelines](https://www.youtube.com/howyoutubeworks/policies/community-guidelines/) apply 45 | * YouTube is not a sponsor 46 | 47 | ## Announcements! 48 | 49 | * [Jam 1, April 2022, is announced](Jam1_April_2022) 50 | 51 | 52 | ## Basic Timeline 53 | 54 | Game Jams will last across two weekends, and the week inbetween. Voting and evaluation of the submissions will take place over one week. 55 | 56 | * Friday @ 12:00 UTC - Game Jam theme is announced, design and development can begin 57 | * Saturday - Sunday (8 days) - Game development 58 | * Monday @ 12:00 UTC - Submissions must be completed 59 | * Tuesday - Thursday @ 12:00 UTC - Community voting allowed 60 | * Friday - Winners Announced 61 | 62 | ## Rules 63 | 64 | Games must: 65 | * use [FTXUI](https://github.com/ArthurSonzogni/FTXUI) 66 | * be created from the [C++ Best Practices/ftxui_template project](https://github.com/cpp-best-practices/ftxui_template) via "use this template." 67 | * compile with no warnings or errors on all pre-configured [actions](https://github.com/cpp-best-practices/ftxui_template/actions) 68 | * have selected a license 69 | * run with no errors from Address Sanitizer or Undefined Behavior Sanitizer (as configured by default in "developer mode" of the provided template) 70 | * interpret the theme in some way 71 | * document any warnings that have been disabled, and why 72 | 73 | Submission requirements: 74 | * submissions will take place via a pull request to this project 75 | * submissions must link to a specific github release on your project 76 | * PR (and release) must be dated before the submission deadline 77 | 78 | By participating in this Game Jam you agree to release YouTube and Jason Turner from any liability related to your participation. 79 | 80 | ## Who Can Participate? 81 | 82 | Anyone willing to follow the Code of Conduct. Families and teams are encouraged. 83 | 84 | ## What Libraries Can I Use? 85 | 86 | Anything you want to, as long as it does not violate any other rules. Conan package manager is provided with the template, and it uses some packages already. However, all output must still happen through FTXUI. 87 | 88 | ## Teams 89 | 90 | Teams of any size are allowed. Just be aware that coordinating large teams can be difficult. To meet other people to join into a team, join the [Discord](https://discord.gg/KuKzESDdbt) 91 | 92 | 93 | 94 | ## How Submissions Are Judged 95 | 96 | * Interpretation of Theme 97 | * Gameplay 98 | * Creativity 99 | * Code Quality / Code Readability 100 | * Fun 101 | * Testing of Game Code 102 | 103 | # Getting Started 104 | 105 | 1. Create a new project by clicking "use this template" from ![image](https://user-images.githubusercontent.com/234279/159132116-5d6564f5-cbc8-4cce-bf26-e97d1e167280.png). 106 | 2. Make sure the project's "actions" are enabled ![image](https://user-images.githubusercontent.com/234279/159133640-cd2466f8-1cba-4490-8dfb-976ec800ac9b.png) 107 | 3. Wait for the "template janitor" action to finish ![image](https://user-images.githubusercontent.com/234279/159133663-e4c4880c-88b7-48f4-9057-a49177a21981.png) 108 | 4. Install local tools 109 | * compiler of choice 110 | * clang-tidy and cppcheck (linux, MacOS) 111 | * conan 112 | 5. Clone your project locally, and open it with your editor of choice 113 | 114 | (Videos on this will be forthcoming) 115 | 116 | # Some Hints 117 | 118 | * The template provided gives you the foundation for a turn-based game 119 | * FTXUI has a canvas: https://github.com/ArthurSonzogni/FTXUI/blob/master/examples/dom/canvas.cpp 120 | * The "homescreen" example shows how to do live animations / event loop https://arthursonzogni.com/FTXUI/examples/?file=component/homescreen 121 | * It should be possible to create a normal game loop 122 | * There are Unicode fonts which might prove to be useful: https://unicode-table.com/en/blocks/block-elements/ https://unicode-table.com/en/blocks/symbols-for-legacy-computing/ 123 | 124 | # Configuration Notes 125 | 126 | * clion on Windows is currently an untested configuration, and you might have difficulty getting ASAN, cppcheck, and clang-tidy to be found. They can be installed, but it will take manual work to get them located. 127 | * The easiest option for changing settings is to use your cmake-gui of choice. However, if you want to change options during CMake configuration time (commandline or from your IDE's options, you should be able to follow this example from the [CMakePresets.json](https://github.com/cpp-best-practices/cpp_boilerplate_project/blob/main/CMakePresets.json#L35-L38) 128 | --------------------------------------------------------------------------------