Big Typernatural Project’s documentation¶
Big TyperNatural Project, BTP is game written in Python, powered by PyGame and based on keyboard typing. This game doesn’t even have mouse support. And this is not trouble at all - it’s a feature. And another feature of this game is that alongside with gaining experience, new levels, clothes and having a good time, you actually will be gaining real life experience in fast keyboard typing, because... wait for it... battle system is typo-like (touchtyping guys will be able to handle some bosses at start). Just imagine it: you are typing commands to go somewhere, you’re typing as fast as you can to kill those stupid monsters and you are so fast typer so you can kill anyone who dared to throw you a glove. Fascinating, isn’t it? All you need to do is to buy good expensive keyboard, download game and start typing challenge! But for starters - wait until I’ll create any stable version of the game :)
This wiki is created by Sphinx and intended to help both users to start playing and any developers (including me, hehe) to understand actual code and maintain it easily with comprehension of each and single line. Thus, this wiki has both “user” side and “developer” side, which are actually pretty entwined close together (but you can be whether advanced user or crappy programmer). So sometimes users could see something like “this function calling class header procedure holy shit returning value”, and developer guys could see something like “press this big red button with your Enter key (which is a big key right to the right)”.
Contents:¶
Big TyperNatural Project (BTP) overview¶
This page describes everything about the idea itself and abstract things. If you wish some technical project info, you may be interested in [[structure]].
History¶
Now I’ll briefly tell you what and how inspired me to do such a thing - text based rpg game in nowadays world, and what stages I had been through while developing it. I’m developing it since 2008. It was my pro-skill to create a game as a way of learning new programming language. It’s funny, it’s interesting. And it’s significantly useful! Cause, you know, the best way to learn language is to practice it. I set my goal - I do that and I learn new language. So, I had developed games firstly in Basic, Pascal, Delphi, then in lots of other languages such as C, C++, Java, then I had created web-browser games using php, mysql and javascript (html and css are stylesheet and markup languages, which I do not count as programming languages). So there was lots of languages and I do not remember all of them.
I’ve been developing this games and learnt different things. From how to read files up to how to create inventory and skills and items... This was really great practice. Why was? Because now I am actually building The Game. The real one. Because I’m in love with python and I don’t think that I’ll find anything more suitable for my current goal.
In the past it was Big Supernatural Project - big supernatural roleplaying text-based game based on CWTV Supernatural show. One version of the game was even included simultaneous play with two characters at once - Dean and Sam (two brother, main characters of Supernatural TV Show).
But when I had thought to make it real (last time it was with C++ and QT) - I understood that there’re lots of licences in real world, copyrights and other crap. So, even if my game will be opensource and free (which I am direct to), if it will become awesome and famous (which is not likely to happen) some companies might be offended, litigate with me and other crap. So that was when I decided to make a game based on Supernatural world, but without any characters from TV Show (actually I was intended to make some cross-reference with them). And I thought that it would be great to have the action going in other times - in 80th, for example.
At last, when I fell in love with python and decided to make a real game like real real game, I comprehended that this was not a good idea to make a supernatural-based game. I need to write my own story - that’s the way of art. I’m currently watching, reading and enjoying (in all prospects) the great saga of George R.R. Martin “A Song of Ice and Fire” (widely known for “Game of Thrones” - first book’s name and TV show’s name). He have inspired me that great storyline must consist thousands of characters entwined each with other and dying in packs, even most valuable heroes. And I am intended to write such a story, but in the game.
The last thing I had needed to do is to find epic music themes for my game, free sounds for game effects and fantasy images for my storyline. At first I had managed to find some images and music, but it was too hard to find and alongside I had realised that they are all non-free like Supernatural TV Show, for all in our world has its patents :) But I have solved my problem in some way, read below to know how.
Way of Arts¶
I am very much all-rounded preson, I like everything to do. I like bodybuilding, I like programming, I like cooking, building electronics, recording my own music and lots of other stuff. So when the question came for music and paints, I’ve decided to make them all by myself. Yes, it’s hard, and long, and I don’t paint much (at all), but I don’t have many options, and when I tried to draw something - <s>it came out pretty ugly</s> I pretty much liked it. So these are my ways of arts in making game:
- Coding - this is an art in some kind, really. I love making perfect and beautiful code.
- Music production - I’m pretty much know how to do a song
- Painting - that’s my lame side, I get it. But it’s never late to learn something new! :)
In the past, I’ve had some experience in Image-Line FL Studio, I downloaded really cool VSTs and made metal songs. But in real life they are all costs around 500 bucks, and now I am opensource man. So I decided to use Linux MultiMedia Studio (LMMS) alongside with it’s basic set which is capable of producing not bad symphonic and orchestral music which I need.
As for painting, I’ve find very awesome program called Krita (it’s opensource and crossplatform) which some do call “Photoshop killer”. It has really awesome capabilities of drawing graphics, and I liked it. Now I’m buying graphics tablet and going to draw all graphics needed for my game.
Note
Anyone capable of drawing and interested in, please contact me for I need help :) Of course this will benefit you only by my company and your name in titles, for I don’t have much money. Any musicians and programmers are welcomed as well.
Game plot¶
You can read more of a plot storyline on a Game Story page.
Daemons, elfs, werevolves, all kinds of beasts was actually existing, but in other world. But big disaster happend: all the worlds blended together so the war begun. POV (main character, hero, you) had been born in cruel times, when all kinds of beasts was fighting with each other, although some kind of peace was made before your birth. He had no relatives, his mother died giving birth. But he managed to stay alive. One old man found him and raised in his village which surved as fighting-againg-the-verewolves camp. The POV taught to fight and became a strong man. There the game begins.
Game main executable module¶
This is main game executable file - program input point.
Imports¶
Constants¶
Title of features¶
game module¶
Game Story¶
Before Great Fault¶
There was The Elder Ones who were creatures of dark. And nothing else. Then came light.
Long before the Age of Heroes, when there was nothing but the essence of the pure Light, 6 worlds have been created by the hand of the Goddess Liana. She was as powerful as an Elder One, and as beautiful as morning sun, and as pure as The Light itself. Six pure worlds there was.
The first one and the most beautiful was for Elvines, pure Light essence creatures, who lived to serve Liana. The Sine, they called it. They were pure and blessy and holy, with wings shining like sun through big clouds.
The other was the Mist, for smart Agons, whose knowledge sometimes can come closely to Elder Ones, so they quickly invented ways of technology, immortality and life secrets, yet they were never to reach other worlds. Agons was smart, but not kind. They were reasonably cruel creatures, and that was not problem, that was feature.
The other one was for humans, who often reach for quarrel and provoke wars. There was The Earch, the third world. Humans was weak race, with easily brokable bones and flesh with blood which spills out when pierced. But yet, there was love in their hearts.
Another one was for elves, who live they infinite life forever, be it a curse or a blessing. A planet of an endless forest, The Eden they called it. When there was Creation and races was made from the Light, the Elves was first and more powerful race.
Fifth world was for beasts, for Werevolves, Dragons and Orgons, and other things. The Purgatory this world was called. And even though it was cruel and ugly, for those who lived here it was pretty and it was the Home.
Sixth world was for Dark Things, for Daemons and Devils, for those Beasts who desire to absorb all other worlds. And kind goddess Liana gave them home as well, for each and every one deserve love. Hellium the Hell it was called.
The seventh, and the last world was for The Elder Ones. It was ever and will be, for The Elder Ones was forever and will be.
She divided them one from another, so one cannot reach another, not from mortal world. She told her elvines to guard the Sine, for pure light Essence was tender matter and could not exist near cruelty.
And The Elder Ones all this time was watching. They watched as Goddess Liana created the Sine, they watched as Agons made discoveries and science, they watched worlds rise and fade long ago before Pure Light came here. Long time all the worlds were in peace, but once upon a time there was a big quarrel between The Elder Ones, and they have separated. There was one thing, that had bring a quarrel to them and separated them from their main cause: to bring peace and rule the destiny. It was the suggestion of the younger Elder One, though he was thousand times older than the worlds we know were. He suggested to blend all the worlds together and see what happens. Some agreed, cause all the time all worlds existed was just another day for Elder Ones, some of more wise had not. And the war begun between The Elder One. And then great Grief begun, and some time after that the Age of Heroes.
With their breakup, big grief had come in each of worlds, lots of wars and pain and death. There was pain everywhere except the Sine, the Elvines world, because it was the world of pure Light and Love, and war there was no possible.
And when there was nothing but a war and pain and dread in each of the worlds, one of the Elvines decided to help them against the will of the Goddess Liana. He grap his sword of Light an descent to the waisted worlds. He gave them hope, he trained them to rule their destiny. He raised heroes in each of the worlds, who was to lead an army and make peace. It was the Age of Heroes.
The Goddess saw him in the fire of battle, saw what he did. And she punished him for he did betrayed her and the Elder Ones, for a man could not control his destiny. She cut his wings and left him in exile. So he stuck in the last world he did not yet managed to help - Hellium the Hell. His name was Luciferus.
Long time has left after his rebelion, and all kinds of creatures eventually become more wise and did not rise for a wars anymore. Even The Hell become more peaceful place than it was before, though Lucifer could not help them much without his wings. But Lucifer did not count one last piece: The Elder Ones.
The Elder Ones were much much older than even Goddess Liana and all those seven world. They existed and will exist endlessly in a circle of time. They created everything and they are everything. So, they were wise, wiser than anything and anyone. Yet it did not helped them to charge a conflict.
When Lucifer had been exalted from the Sine, the younger Elder One who wanted to blend the worlds almost win the Elder War. It was only time matter when they were going to finally blend it, and the time is nothing for the Elder Ones.
Sure enough, when Lucifer was fighting on the Hell, trying to make some peace, it happens. None could predict the consequences. Even the Elder Ones...
After Great Fault¶
After all worlds has merged, all the Elvines has died, for they did not belong to a new world created by curious Elder One, they did not managed to bear their cause, to save world each from another apart. All, but for Lucifer who was exalted and was not anymore one of the Elvines. Even the Goddess was perished forewer, for pure Light essence could not live in new world.
Other races survived, but begun big survival butchery between races and all kinds of creatures. And so it was for two thousand long years, blood spilled on earth until the Earth could not absorb it anymore, and then blood became rivers. They formed 3 big forks, and they was named upon 3 greatest warrior on that war: Lieones, Batrexar and Adela.
Then, after 20 years, a lot of creature kinds was dead end, but lots was alive. A peace was made between three main fractions, and that was it. One land for brave Great Lieones, who killed last dragon by himself; one for Smart Batrexar, who was the most concerned in a peace, and one for charming Adela, who was as deathly dangerous as charming.
And after 10 years after that, amidst these grievous days, a boy had born. A mother died giving birth. A father was long dead. There was no relatives to him, so he strangled to live. One old man with no name find the boy. He took him and taught to fight. He called him... [And here goes your name].
After 20 years, a boy became a man. He rosed in village, which was intended to keep killing evil creatures like werewolves and atronauhs. So, the boy taught how to fight and kill them. And now it’s time to leave the village, it’s time for YOU to go on journey.
How to get it?¶
First of all, to run it you will need python and pygame. Go on their main site and download executables for your OS, or just install it by your package manager:
apt-get install python pygame
aptitude install python pygame
pacman -S python pygame
Now, you can browse my github repo and download game as archive. Soon I’ll finally make release v0.1, which will contain browse-walking system ready-made (yet without quests, battles, etc). Right after than I’ll add development dev branch and all newest changes will go there, when master branch will contain all most stable versions like 0.1.1 or 0.1.2, and releases will contain most stable and biggest versions like 0.2, 0.3 and 1.0 (someday).
To download lastest (stable) version from git, either click zip link, or run:
curl -O https://github.com/ewancoder/btp/archive/master.zip
#or wget
wget https://github.com/ewancoder/btp/archive/master.zip
To download development version, simply change ‘master’ to ‘dev’ in the link.
Then you can just execute game.py file by cd in the downloaded directory and executing game like this:
./game.py
Also you may need to change permissions of the file so it can be executed:
chmod +x game.py
./game.py
And maybe you don’t want to make this file executable, then you can just run it via python like this:
python game.py
Note
Don’t forget to install both python and pygame.