IdeaBulb Cash (Game)
Pretty simple. You begin with forty dollars in cash and try to top the millionaire investors of IBC in total net worth. To do so you will almost certainly need to accept loans (unless perchance you receive a very rare free transfer without interest). You lose if you fail to pay back your loans after twice the length of the duration before loans are subjected to compound interest.
I created this game individually, attempting to incorporate basic blockchain into the game to simulate a cryptocurrency. Currently, the blockchain stores only transaction data. Each user has a separate blockchain that stores data for transactions in which they were involved. Additionally, there is a basic proof-of-work algorithm that comes with each transaction and thus makes it more difficult to add coins into circulation. In fact, it took me almost a whole day to discover why the transactions would not print on the screen - turns out I set the proof-of-work difficulty far too high and it would have taken a while to process a transaction. Thanks to Codecademy for their walkthrough course Introduction to Blockchain and some of the foundational code that was used in
blockchain.py. (I coded it as I went through the course but of course the code comes from them... you get what I mean.)
Note: Originally began this project using PyGame but discovered TKinter better served my interests as a GUI. The initial PyGame project is in my profile and I transferred the code over to this current TKinter project.
The concept of the game comes from me trying to make a game that involved an actual simulated cryptocurrency. I went about making a basic blockchain and initializing the default values for IdeaBulb Cash. However, I did not actually have an idea for what the game itself would entail. That changed as I was musing over users transferring coins. It occurred to me that I could make a game out of the interest charged on loans. And so IdeaBulb Cash became a game.
Now you may indeed ask what the significance of IdeaBulb is. Why is this coin called IdeaBulb Cash? Well, that story has its roots far deeper...
IdeaBulb emerged over three years ago. It was initially a project created on the obscure programming section of Khan Academy to ensure I had actually learned jQuery. The idea was to have users share ideas that would be voted based on support or opposition. However, if you followed the link you would see that the site was relatively poor in terms of its design and once you attempt to log in the screen in fact ends up blank. The latter is actually a result of the Khan Academy developers changing their sandbox environment - the IdeaBulb webpage used to function as intended. Another major setback to the original site was the account credentials storage system - the fact that it was nonexistent. The Khan Academy sandbox environment has had (and still has) severe limitations with which users programming there have to reconcile. The trigger that initiated the push for a renovated IdeaBulb website came as I just finished a course on AngularJS. IdeaBulb 2.0 was to be a project that leveraged my newfound knowledge of Angular. To help popularize the project as well as diversify the scope of IdeaBulb's projects (in the hope of transforming this enterprise into a full fledged organization), I released a portrait of IdeaBulb System shortly before the release of the renovated website. The long awaited renovated IdeaBulb website was finally released a few days later. It featured heavily optimized functionality compared to the original site as well as credential storage. The styling was not splendid but certainly much better than that of the original site. Perhaps most notable was that I was able to bypass the Khan Academy sandbox limitations by accessing Khan Academy's API. The site is fairly robust (containing 1387 lines of code) so one will have to see for themselves all the details of the site. Well, what followed all this? The renovated website was released over one and a half years ago. What happened between then and now? I hinted earlier at the hope of transforming the IdeaBulb project into an organization. Did that succeed? Well to first answer that question, one has to understand the underlying incentive. And that was encapsulated through my musing that I posted as an idea on the renovated IdeaBulb site:
The Future of IdeaBulb (Founder's Musing)
This is an idea concerning the scope of achievements and future ambitions hoped for by this organization. Once IdeaBulb has settled with a sufficient amount of members, it will be able to create workspaces abroad. Among the main sites that this organization will use, there is GitHub, Google (with its applications), and Gitter. We will use those sites to collaborate in order to create a webpage for IdeaBulb. The webpage will have it's own domain as well as search engine optimization and will thus be able to glean members from abroad by the traffic that ensues. For our more graphical/physical oriented programmers, we will also work on an alongside project simulating a 3D (or perhaps even 4D) IdeaBulb System. This project will be far more sophisticated than the primitive project that was worked on here. Once those projects are complete, we will be able to station bases in multiple coding communities such as Plunker, CodePen, as well as others to gain more members and diversify the organization of IdeaBulb. I propose a small project on each of the aforementioned sites that will inform users of IdeaBulb's mission and link the user(s) to the main site on which they will be able to join if interested. Then, IdeaBulb will take on more ambitious projects like those of the ideas proposed by its members as well as some planned ideas in the realm of software development like building a shell, kernel, or perhaps even an operating system. Writing native code will also be considered as a project-starter. These are some ideas for the future of this organization with the sole goal in this whole enterprise being to learn by creating.
As one can see, the organization held the fundamental premise of "learning by creating" as a tenet. However, the direction in which one was to take the organization was not clear cut to anyone - including myself. Github accounts and Gitter communities were created with a few users from the Khan Academy programming community taking part. A series of projects were undertaken as well. However, one can probably tell that this organization had all the ingredients for stagnation. And stagnate it did. Without having a clear cut objective, the other members of the organization failed to indeed realize the purpose of the whole enterprise. I was left working individually on projects that did not even reach near completion. A user can look on now and see the strewn wasteland of projects dotting the realms of many sites. And so IdeaBulb was to perish in vain... until now. Time will tell whether this current project of IdeaBulb Cash was just a glimmer in darkness or the spark to rekindle a fire long lost.
With that being said, I do not have a formal Easter egg but since it is around that time of the year I will include an Easter egg of sorts. Upon reading the backstory, see if you can determine the reason why I set the ICO price of IBC as $92.50 and why the maximum supply is 21600000.
Yeah, yeah. I spent a lot of time with the backbone stuff and hurriedly cobbled together a GUI. It will definitely have bugs. Here are some known ones so far:
- No form validation (or SHIFT functionality) for initial screen input box.
- CPUs are basically nonexistent. They buy 7 IBC at start and then do nothing. More time could have allowed me to produce more robust AIs.
- Graph sometimes crashes - yeah that's bad.
- "Mining" formula that I concocted totally sucks. I should find a better formula to simulate mining.
- Loans accumulate interest upon being held for longer than the duration but there is no dynamism with interest or loan duration. Ideally, each CPU has a random duration for the loans they offer (between 30 and 90 days) and interest is different for each CPU as well (perhaps ranging from 1% to 6%).
- Leaderboard screen actually does not show the rankings of users in net worth - turns out I forgot to add that in time. Saving grace is that you can see the net worth for each user so you should be able to see who is ahead.
- Toplevel widget sometimes is not exitable. I don't know what that is about. Doesn't seem like anything is wrong about the way I set up the popup widgets - maybe TKinter is trolling me on this one. :P
There are certainly major things to work on in this project. But beyond this, what possibilities are there for further development? Here are some of my ideas so far:
- Make IdeaBulb Cash a multiplayer game. Or a Discord bot. Both are relatively the same thing in that users can trade a simulated currency and try to accumulate simulated wealth.
- Perhaps we try rekindling the flame and bring the organization of IdeaBulb back.
- The above idea is very unlikely. However, I myself would certainly be willing to undertake a project to develop IdeaBulb Cash as an actual distributed ledger system. A community driven project of developing blockchain technology would be very worthwhile for the sake of "learning by creating".
- If IdeaBulb ever become some sort of organization or cryptocurrency it ought to have a logo. I'm thinking of something along the lines of the shape of a typical fluorescent light bulb (rather than the traditional incandescent one). Seeing a fluorescing bulb on a minted coin logo would be nice.