Wednesday, January 4, 2012

http://obaghchal.com

Baghchal / बाघ चाल ?

Baghchal is one of the most popular two player strategic board game originating in Nepal.
The game is asymmetric in that one player controls four tigers and the other player controls up to twenty goats/goti/bakhra. The tigers ‘hunt’ the goats while the goats attempt to block the tigers’ movements. Bagh in Nepali means tiger, and chal means move, you could translate it as the game where Tigers are moved in the game board.

obaghchalsnsOne of the primary reason for its popularity in Nepal is its ease of game construction. Grab a stone, draw lines in square like in the figure. Collect 4 big stones, name them Bagh, collect 20 small stones, call them goats, find a partner to play and enjoy. Also, game rules are easy and game logic is easier compared to other popular game like Chess.

There is nothing like playing Baghchal with friends enjoying the warm winter or passing free time in strategic way. The game is equally popular among teens and aged ones.

Why Online Baghchal ?

You won’t be always in reach of a Baghchal board, stones for Bagh and Goti, sometimes no other person would be there to play with. Respecting the fact that Baghchal is more enjoyed while played at Chautaris of Baglung district or at the Garden of Dreams at Kesharmahal we Semicolon Developers have tried to make it easy to play Baghchal with having just an Internet access irrespective of the location. With Online Baghchal, one can invite her friends from anywhere to play Baghchal or meet other Baghchal lovers near her location.  We want to provide you a website to visit for enjoying Baghchal online with your friends.

It’s easier now to play Baghchal online. Just signup in the Online Baghchal website with your email address. Each Baghchal match is called a game in the application. You can create game selecting your preferences for playing Bagh or Goti. You then wait for other player to join in or you could share the game URL with your friends via email and social networking websites like Google+, Twitter, Facebook. Also, it is easy to join in the games created by other players.

We enjoy playing Baghchal at Semicolon Developers. We felt it is our responsibility to digitize the local cultural assets like this. It took us one complete year to go from the “online baghchal” idea to first working copy of Baghchal application. The technology stack we used for Baghchal have been rarely implemented this way in Nepali web development scenario. Making the game play a fun online real-time experience was a lot of work. We have done a fairly hard work from our side on presenting Baghchal game online. Hope you’d enjoy it. Your feedback will always motivate us.

How Online Baghchal works : Block Diagram

blockdiagram

Players move tiger/goat in their respective browsers. We have represented Baghchal board as a 5×5 matrix, where (x,y) represents each point on the Baghchal board. When any player moves a piece according to their turn, the click data is transmitted to Online Baghchal server. Each states of the whole game play session, the game state is saved in server database. User clicks are validated against Baghchal standard rules then checking the Game State at server, server logic directs respective visual actions to be taken on both of the players browsers. Application code loaded in player’s browser will then translate server action responses to visible moves.

Is Online Baghchal Open Source ?

No. we have no plans any soon to release Online Baghchal as Open Source. However, our starting code for Online Baghchal has already been shared on Semicolon Labs and Google Code. Have a look :http://labs.semicolondev.com/ Also, our development team has put a lot of effort on learning Node.js platform from scratch just for the sake of developing Baghchal. We have many draft articles which describes the complete development stack and how we used them for Baghchal development in detail. We will soon publish those articles in our developer’s blog – Echo. Stay tuned.

Technology Stack

Development

Node.js, v0.4.9 http://nodejs.org

Node.js is a platform built on Chrome’s V8 JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Socket.Io, http://socket.io/

Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It’s care-free realtime 100% in JavaScript.

Express, v2.4.3, http://expressjs.com

http://github.com/visionmedia/express
Expressjs is a Sinatra inspired web development framework for node.js — insanely fast, flexible, and simple.

npm, v1.1.0-alpha-6, http://npmjs.org

npm is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff.

Mailer, v0.6.7, http://github.com/Marak/node_mailer

Send emails from node.js to a smtp server with node_mailer, simple as cake.

Password-Hash, v1.1.2, http://github.com/davidwood/node-password-hash

Password-hash is a node.js library to simplify use of hashed passwords.

Storing passwords in plain-text is bad. This library makes the storing of passwords (and subsequent validation of) hashed passwords a bit easier.

Password-hash provides functions for generating a hashed passwords and verifying a plain-text password against a hashed password. For a bit of added strength, a random salt is generated when the password is hashed. The hashed password contains both the cryptographic algorithm that was used as well the salt, so all that is needed to verify a plain-text password is the hashed password itself.

Design

Twitter Bootstrap, v1.4.0, http://twitter.github.com/bootstrap

Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites.
It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.

Jade, v0.13.0, http://jade-lang.com

Jade is a high performance template engine heavily influenced by Haml and implemented with JavaScript for node.

Stylus, v0.19.8, http://learnboost.github.com/stylus

Stylus is an expressive css language for nodejs.

Database

MongoDB, v0.9.6-7, http://mongodb.org

MongoDB is a scalable, high-performance, open source NoSQL database written in C++.

Work Done So far : in Snaps


Homepage
Baghchalhomepage

Game Play

BaghchalPlaytesting

Work In Progress (WIP)

Internet Explorer 8+ Issues
(Internet Explorer Sucks! If development time is precious IE 6, 7 and even 8 and 9 must die. Stop using IE if you care about Technology Innovation.)

- Layout issues (HTML/CSS)
- Javascript Issues
- HTML5 / Canvas Issues
- Real-time / Ajax push/pull testing/bug fixing.

Fixing Internet Explorer Issues will be run as trial exercise. Or, we wouldn’t support IE altogether as Facebook did for their Timeline.

Online Baghchal Team

Semicolon Developers
Documentation, Q/A, Tests, Feedback.

Bhupal Sapkota
Chief Technology Officer
Product Development, from idea to execution.

Bhuwan Pokharel
Public Relation Manager, Online Baghchal

Hem Shrestha
Jr. Software Engineer
Lead Developer, Online Baghchal

Bimal Sharma
Jr. Software Engineer
Developed Open Source version of Baghchal while at Semicolon.
The open source two player version is available to download at Semicolon Labs.

If it were not about fixing Holly Internet Explorer 8+ issues (Internet Explorer Sucks) Online Baghchal app is already working fine and is ready to go live today. Considering IE issues and all other testing aspects, we are working day/eve to deploy Online Baghchal within Mid Jan 2012. Countdown begins today !

To know more about Online Baghchal, contact us at baghchal [@] semicolondev.com

0 comments