We all are familiar with games like Wordament. Its addictive, fun, and challenging. But what if we can take such a game and include inter-player interactivity to it? Unlike games like Boggle, Wordament - what if we allowed a word to be grabbed only once by one of the many players playing? Well, what you get is Grab-A-Word!
What it does
It allows any number of players to participate in an always running word game. Grab a word from the tiles available before anyone else does. Score more points by picking tiles with more value on it. The game ends after a fixed amount of time, and you are ranked along with all the players that played that round. After some time, a new round of the games starts and the whole thing repeats. Do you have it in you to be first? Try it...
How we built it
The whole game is built around the meteor platform. We took advantage of meteor and reactjs to get some of the most complicated aspects of the game without much effort. We worked remotely and divided our tasks between front end, react component creation, dictionary creation and API, as well as leaderboard.
Here are all the packages we used:
- accounts-password 1.1.3 Password support for accounts
- accounts-ui 1.1.6 Simple templates to add login widgets to an app
- blaze-html-templates 1.0.1 Compile HTML templates into reactive UI with Meteor Blaze
- ecmascript 0.1.5 Compiler plugin that supports ES2015+ in all .js files
- es5-shim 4.1.13 Shims and polyfills to improve ECMAScript 5 support
- insecure 1.0.4 (For prototyping only) Allow all database writes from the client
- jquery 1.11.4 Manipulate the DOM using CSS selectors
- meteor-base 1.0.1 Packages that every Meteor app needs
- meteorhacks:aggregate 1.3.0 Proper MongoDB aggregations support for Meteor
- mobile-experience 1.0.1 Packages for a great mobile user experience
- mongo 1.1.2 Adaptor for using MongoDB and Minimongo over DDP
- react 0.1.13 Everything you need to use React with Meteor.
- sacha:spin 2.3.1 Simple spinner package for Meteor
- session 1.1.1 Session variable
- standard-minifiers 1.0.1 Standard minifiers used with Meteor apps by default.
- tracker 1.0.9 Dependency tracker to allow reactive callbacks
- twbs:bootstrap 3.3.5 The most popular front-end framework for developing responsive, mobile first projects on the web.
Challenges we ran into
This was our first foray into the world of reactjs. As it usually the case with anything new, sometimes simple tasks took us the longest time to complete. Inline styling for a react component is a classic example.
Accomplishments that we're proud of
To build a game with inter-player interactivity, always on gameplay, and simultaneous multi-player participation in 24 hours is something we are extremely proud of.
What we learned
The biggest takeaway for us is that React is something we will invest more time learning. So far we have been very impressed with how well it worked, particularly with Meteor.
What's next for GrabAWord
Don't be surprised to see this app in all the app stores. You might even see this one as one of the top downloaded app in iOS or Android :D