|
| 1 | +--- |
| 2 | +title: "GSoC '26 Week 10 Report by Rejah Rabeeul Haque" |
| 3 | +excerpt: "Added a stop button for the host in number mode shared mode, added labels for figures, introduced new built in categories, and fixed bugs." |
| 4 | +category: "DEVELOPER NEWS" |
| 5 | +date: "2026-08-02" |
| 6 | +slug: "2026-08-02-gsoc-26-rejah-rabeeul-haque-week10" |
| 7 | +author: "@/constants/MarkdownFiles/authors/rejah-rabeeul-haque.md" |
| 8 | +description: "GSoC'26 Contributor at SugarLabs working on ConnectTheDots activity" |
| 9 | +tags: "gsoc26,sugarlabs,sugarizer,connectthedots,week10,rejah-rabeeul-haque" |
| 10 | +image: "assets/Images/sugarizer.webp" |
| 11 | +--- |
| 12 | + |
| 13 | +<!-- markdownlint-disable --> |
| 14 | + |
| 15 | +## This Week's Progress |
| 16 | + |
| 17 | +Hello again. This week I focused on improving the ConnectTheDots activity. The work covered giving the host more control during a shared game, adding labels to figures, expanding the built in figure library with new categories, and fixing a couple of bugs. |
| 18 | + |
| 19 | +Here is a detailed breakdown: |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Stop Button for the Host |
| 24 | + |
| 25 | +I added a "Stop Game" button that only the host (the person who shared the activity) can see and use. Players who joined cannot see this button. |
| 26 | + |
| 27 | +Here is how it works step by step: |
| 28 | + |
| 29 | +1. When the host starts a shared challenge, the Stop button appears in the toolbar for the host only. The code checks whether the current user is the host before making the button visible. |
| 30 | +2. When the host clicks it, their computer sends a special "stop game" message across the network to all other players in the session. |
| 31 | +3. Every other player's computer is always listening for incoming messages. When it receives this message, it immediately stops the local timer and shows the final score screen. |
| 32 | +4. The host's own machine also stops the game at the same moment, so everything ends together for everyone. |
| 33 | + |
| 34 | +This was also a help during testing. Instead of waiting for the full timer to run out every single test run, I could just click Stop and jump straight to the end screen to verify the results. |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## Labels for Figures |
| 39 | + |
| 40 | +Before this change, the figure gallery showed dot patterns as small thumbnail cards with no names. A player had to guess what the shape was just by looking at the dots. |
| 41 | + |
| 42 | +I added a text label below every figure card in the gallery. Each figure already had a name stored with it internally, and now that name is shown below the thumbnail so players always know exactly what they are picking. For the built in figures, these names also go through the localization system, so they can be translated to other languages. |
| 43 | + |
| 44 | +This label carries through to the figure editor too. When you click the button to add a new figure or edit an existing one, a form now appears asking you to type in the figure's name. The form does not let you confirm until you have actually typed something, so you cannot save a figure with no name. |
| 45 | + |
| 46 | +When you finish drawing the dots and click the Save/Back button, a form pops up asking you to enter a name for the figure. The user types the name and hits Confirm, and the figure gets saved with that label. So the naming step works the same way for both creating new figures and editing old ones. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## New Built in Categories |
| 51 | + |
| 52 | +Previously, the game only shipped with two built in categories: Basic Shapes and Objects. This week I added four more: |
| 53 | + |
| 54 | +- Numbers — figures shaped like the digits 1 through 9 |
| 55 | +- Symbols / Signs — figures like Plus, Arrow, Cross, Checkmark, Heart, Crown, and more |
| 56 | +- Tools — figures like Wrench, Hammer, Axe, Key, Drill, and more |
| 57 | +- Home — figures like Lamp, Door, Chair, Mug, Sofa, and more |
| 58 | + |
| 59 | +Each figure is stored as a list of dot positions (grid column and row), plus a closed flag that tells the game to connect the last dot back to the first one to close the shape. For example, a simple Square looks like this: |
| 60 | + |
| 61 | +```js |
| 62 | +{ name: 'Square', points: [[3,2],[11,2],[11,10],[3,10]], closed: true } |
| 63 | +``` |
| 64 | + |
| 65 | +These four dots are placed at the the grid, and closed means the game will draw the fourth line back to the start automatically. |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## Bug Fixes |
| 72 | + |
| 73 | +- Fixed No Timer Mode |
| 74 | + |
| 75 | +The "No Timer" option was broken because the display was trying to show a countdown that never existed. The fix makes the display show just the score instead, and the game now runs indefinitely until the host presses Stop. |
| 76 | + |
| 77 | +- Removed the Back Button During Play |
| 78 | + |
| 79 | +When a player selected a figure from the gallery and was drawing it, there was a "Back" button on the canvas. Pressing it would clear the current drawing and return to the figure picker. |
| 80 | + |
| 81 | +During a challenge, this was a problem. A player who got a difficult figure could press Back, skip it, and load the next figure. This let them dodge hard shapes and keep their score going without actually completing them, which is cheating. |
| 82 | + |
| 83 | +I removed the back button from the play view during shared mode challenges. The button is now hidden whenever a player is inside a shared session. It still exists and works fine in solo mode, but it no longer appears when it could be used to gain an unfair advantage. |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +## Challenges Faced |
| 88 | + |
| 89 | +Adding the new built in categories and figures required careful design to ensure each shape was easily recognizable within the dot grid. I also implemented the label feature across both the create and edit flows, making sure the name input behaved consistently and appeared correctly in both scenarios. |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## What's Next |
| 94 | + |
| 95 | +- Fix the remaining issues in the current implementation. |
| 96 | +- Start the implementation of Game Mode. |
| 97 | + |
| 98 | +--- |
| 99 | + |
| 100 | +## Acknowledgments |
| 101 | + |
| 102 | +A big thank you to my mentor Lionel Laské for his continuous guidance, and to everyone at Sugar Labs for the support. |
| 103 | + |
| 104 | +--- |
| 105 | + |
| 106 | +## Links |
| 107 | + |
| 108 | +- **Sugarizer Repository**: [https://github.com/llaske/sugarizer](https://github.com/llaske/sugarizer) |
| 109 | +- **Connect The Dots Pull Request**: [https://github.com/llaske/sugarizer/pull/2188](https://github.com/llaske/sugarizer/pull/2188) |
| 110 | +- **GitHub Profile**: [https://github.com/Rejah-Rabeeul](https://github.com/Rejah-Rabeeul) |
| 111 | + |
| 112 | +--- |
| 113 | + |
| 114 | +*Thanks for reading Stay tuned for next week's update. Feel free to reach out if you have any questions or feedback.* |
0 commit comments