Building a stock market game in 2008

This is a post I meant to write almost 13 years back, on how I built a stock market game using Ruby on Rails for our B-school flagship event Quadriga (I did release the game source code on Rubyforge, but the site is no longer operational). Like they say, better late than never :). Below is a short screen capture of the game in action from the beta run I had organized, showcasing the different features to give you an idea of what it entailed:

The game itself was a very simplified version of a stock market designed to be played as individuals or as a team with the following features:

  • Simple buy and sell transactions without any short selling, futures or options .
  • The trading would be spread across a period of 12 sessions with the prices changing before the start of each. Each user would get a fixed set of shares for each of the stocks at the beginning of the game so that selling activity can be initiated from period 1.
  • There was an element of randomization in the stock price movement from period to period partially influenced by a set of pre-defined events.
  • A user login feature with public leaderboard to give everyone a view of how they are performing against the competitors.
  • A transaction & stock price history section to view the changes over time.

I have fond memories of this game as it game me an opportunity to try out Ruby on Rails in a real world scenario (this video from 2005 was the inspiration). I had a lot of fun coding the game and consulting classmates & seniors on how the stock market should be simulated. Even more fun was the beta testing round we did over the hostel LAN (the video above is from the test run as you can in the message on the login screen), with most of my classmates participating. We have come a long way on the technological front, and one of the things I do find missing in the game is an element of visualization in the form of graphs. Mobile support was of course not relevant back in 2008, but today it would be a no brainer.

As for the actual event, we brought in an element of security/standardization where we had the competing teams using laptops borrowed from my classmates. To ensure that their personal files were not affected, we setup Linux virtual machines on top of the Windows environment, and the teams were using browsers to access the game running my laptop through a Wi-Fi network we had setup on a router borrowed from another of my classmates (it was 2008 after all).

This nostalgic post would not have been possible had I not backed up the files to an external hard disk and to OneDrive eventually. So, here’s a bit more of throwback with the event posters & other collaterals:

Fun with Microsoft Virtual PC

First of all, in case you are not familiar with what Virtual PC is, it is basically a software which emulates a PC and its associated hardware. For more details check out the wikipedia entry. It obviously has its business uses, but that does not mean that one cannot have fun with it.

It can be useful for running different operating systems on the same machine without making any changes to the host machine configurations. I have been reading up on different linux distributions over the last few days, and was looking for a way to try out some, especially now that many of the distros have live CDs. So, I gave it (Microsoft Virtual PC) a try yesterday. It’s quite simple to use and you can customize the configuration of the virtual PC to a fair extent, including the RAM, hard disks and other drives. Once I had set up a couple of virtual PCs, I needed some OSes to run on them. This is where the linux live distros (Puppy Linux and Damn Small Linux being the smaller ones) and FreeDOS came in handy.

Once you start up your virtual PC, you need to have a bootable device (virtual hard disk/floppy/CD) in place so that you can actually use it. In case of the linux live distros, they can be run directly off the CD, and you do not really need to install them on the virtual hard disk. In case of FreeDOS, you can mount the CD image and install it on the virtual hard disk. So, setting up a virtual PC is pretty much like setting up an actual PC, only much faster. As for network/internet access from the virtual PC, it is possible to configure a network adapter for it, but I haven’t tried it out.
So, what do you do with it once you’ve set up a virtual PC? Well, anything you like. Use it like a real PC, try out different stuff (including playing games). This way you can try out a new OS (granted it is available as a CD image), without actually reconfiguring or messing up your existing system.

Want to rule over your own nation?

Think that you could do a eally good job of ruling over a nation, want to tackle different issues everyday for a nation and make decisions which will change the life of those you rule? Then try out NationStates, an online nation simulation game.

It’s an interesting game, in which you get to create a nation of your own with a flag, currnecy, national animal, type of government and what not. Once you have your nation, you’ll have to tackle or just ignore the issues that come up (the frequency can be set). The stats and description of your nation, like population, economy etc are influenced by your decisions.

Your nation also belongs to a particular region (you can switch regions too), and your nation also features in different rankings. In fact, the simulation even has a United Nations like body in which regional members get elected. So, there’s quite a lot of political simulation happening too (not all simulation actually since nations are controlled by real people). It can be fun to try and develop your nation along a line, but find that the decisions you make end up driving your nation along a different path altogether.

In case you try out the game, pay my nation, Somewhere in the world, a visit. It will also give you a basic idea of what the interface is like (basically text based), and what the game looks like.