Samvargani is a powerful framework for designing beautiful and easy-to-play word games for vernacular languages, specifically Indian ones. Samvargani's unique utility files are made to be customizable for many Indian languages, providing support for 'matras', 'half-letters' etc.
Designing games in your language is easy with Samvargani whether you incorporate entire widgets or use its many robust helper functions.
Use popular existing keyboards for your script or easily design an entirely new one in whichever orientation suits the game.
utls/string.dart contains many useful algorithms for designing the core gameplay of word games. These algorithms are mostly valid for all Indic languages. It takes into account the unique characteristics of Indic languages and can be basis of word games in these languages.
for (final criticalPoint in criticalPoints.keys) {
for (int i = 0; i < variations.length; i += 3) {
for (final letter in criticalPoints[criticalPoint]!) {
List<String> wordToAdd = variations[i].toList();
// replace the character at the critical point with the new letter
// with and without the 'nukta'
wordToAdd[criticalPoint] = wordToAdd[criticalPoint].replaceAll(
wordToAdd[criticalPoint].contains('़')
? '${wordToAdd[criticalPoint].vyanjan}़'
: wordToAdd[criticalPoint].vyanjan,
letter);
variations.insert(i + 1, wordToAdd);
}
}
}
Although not limited to, Samvargani is best suited for daily word challenge games (like 'wordle' from which we are heavily inspired).
Samvargani makes planning and designing daily challenges easy-peasy. The maintainers of the game simply work on Firebase's Realtime Database.
Use a convenient notification system, signalling when a new challenge has arrived and so forth. Make use of the Sharing system to attract users.
shareScreenShot(ScreenshotController screenshotController, String message,
BuildContext context) {
final box = context.findRenderObject() as RenderBox?;
screenshotController
.capture(delay: const Duration(milliseconds: 200))
.then((image) async {
if (image != null) {
final directory = await getApplicationDocumentsDirectory();
final imagePath = await File('${directory.path}/image.png').create();
await imagePath.writeAsBytes(image);
await Share.shareXFiles([XFile(imagePath.path)],
sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size,
text: Platform.isAndroid ? message : null);
}
});
}
Included features (victory screens, hint icons, clues, previous word history etc.) your game will be more complete and lively. We have worked hard to design a good code structure with our third-party-library use and main classes (such as 'Game', 'Game_Widget', 'Answer' etc).
Simple and customizable date and time system, calibrated with database.
We have developed and published a popular Hindi word game (https://aruhant.github.io/s/) using this framework. It is a word-guessing game (inspired by 'wordle') with daily challenges and practice to refine one's Hindi vocabulary, both learning new words and refamiliarizing oneself with less-commonly used words.
- Part of our series on language and culture preservation
- Foster love for the many regional languages of India (and the world) and promote linguistic diversity
-
- Safeguards the many languages in threat of extinction, an unfortunate consequence of globalization
-
- Act as digital repositories, if possible
- Improve users' knowledge in regional languages
-
- Greater acquaintance with its script
-
- Improve vocabulary
-
- Communicate the language often
- Captivate users through beautiful UI