Skip to content

Add a launcher in your .bashrc

Add a launcher in your .bashrc published on No Comments on Add a launcher in your .bashrc

You can add a biamin launcher at the bottom of your (hidden) .bashrc file that resides in your home directory, to allow you to just run “biamin” in the terminal without having to remember the full path.
$ nano ~/.bashrc
# Biamin launcher
biamin() {
/path/to/your/biamin.sh "$@"
}
CTRL+X and hit ENTER

Close the terminal and open a new one to enable the launcher. Done!

Back In a Minute First Public Release, Version 1.2!

Back In a Minute First Public Release, Version 1.2! published on 1 Comment on Back In a Minute First Public Release, Version 1.2!

After about a year of accidental coding and 2196 LOC, I’m proud to announce the first public release of Back in a minute or biamin; version 1.2! This game is dedicated to the Free and Open Source Software community. Please share it.

To get the software, you can either download it directly from my server or clone the git repository up at gitorious.org; follow the instructions on the download page.

The game has a dual license, GNU GPL 3 for code and CC BY-NC-SA Int. 4.0 for artwork, click here for licensing details. A GPL-only version without art is planned, but not ready at the moment.

The game requires BASH, and is UTF-8 compatible and POSIX compliant to the best of my admittedly humble knowledge. It looks best in a white on black colored terminal emulator with 80×24 "resolution". The game has been tested in xfce4-terminal and gnome-terminal on Slackware 14 and Fedora 17. It works in console too, but since the game presupposes 80×24 it doesn’t very nice. For some as of yet unknown reason, the terminal emulator may act funny if the game crashes. Please don’t play biamin in a window you cannot close.

Back in a minute needs a directory to store files, the default being:
/home/$(whoami)/Games/biamin/
but this is easily changed on LINE 10 in the CONFIGURATION header of the script. The game stores character sheets (.sheet files), a highscore file, a color configuration file and some temporary files in that directory. If you want to have several players access the same game (e.g. competing for the best highscore) you need to change LINE 10 accordingly and make sure every user has read/write access to that folder.

Usage: biamin or ./biamin.sh
(NO ARGUMENTS) display this usage text and exit
--play PLAY the game "Back in a minute"
--announce DISPLAY an adventure summary for social media and exit
--map CREATE custom map template with instructions and exit
--help display help text and exit
--usage display this usage text and exit
--version display version and licensing info and exit

The game features a number of "screens" that have several options. Use the keyboard keys indicated, e.g. (M)ap or (C)haracter, to navigate the screens. There are 8 secret items randomly hidden in the world. When you find the first one, you will be able to see one of the remaining 7 on the map. If you get that far..

The four races you can play as are Human, Elf, Dwarf and Hobbit. The Human provides the normal difficulty, whereas the other three gives you different advantages and drawbacks. I recommend playing as Human first to get the hang of it. The races’ characteristics are subject to change depending on feedback from you guys.

There are many monsters and villains in the Old World, so expect to perish. However, you can (R)est anywhere in the map to regain health points, and you may find magical items that give you special powers!

If you get sick and tired of the default map, you may create your own for re-playability ./biamin.sh --map will create a map template in your game directory, and follow the instructions provided on the screen.

If you’re into social media and want to brag about your highscore, running: ./biamin.sh --announce will create a short adventure summary for the masses! Since this feature only applies to heroes that have already reached the top 10 of the highscore, you cannot "announce" a living character.

I hope you have as much fun playing it as I did creating it. I’ve also played it a lot. Feel free to submit bug reports on https://gitorious.org/back-in-a-minute or on my bugs page. I will look at them ASAP. Feel free to e-mail me feedback through the form provided on the Feedback and donations page. Thank you and have fun!

2 features added and game polish

2 features added and game polish published on No Comments on 2 features added and game polish

I added two quick "features" tonight:
First I added the number of items the hero has found to the highscores, since these are a measure of progress to some extent.

I also created a date function that translates today’s date (date +%F) into an adjusted Warhammer Imperial calendar. This way, not only can you follow your character in time, you can also look back at when he or she died.

To incorporate these changes I had to re-write the highscores function (more like a dirty hack) to use column, in order to get a nice scoreboard table. I also had to make some changes to the announce function to make it more attractive.

What remains: Really very little. I have to play it on my UTF-8 setup in order to see how the graphical changes goes. Apart from the repeated keys conundrum, I have only some cosmetic changes to the code itself, in order to comply with good code practice. I can do these last two points after the code has "shipped", however, so what remains is to test it on my other rig. Stay tuned!

Final bugfixes coming to an end

Final bugfixes coming to an end published on 1 Comment on Final bugfixes coming to an end

It’s getting late, but I just wanted to record for myself that today I finished the following tasks/fixed the following bugs:

  1. Finished the –announce function as a copy & paste feature
  2. I think I have hunted down and changed all non UTF-8 characters in the code, but I still need to test it to be sure
  3. I implemented a couple of safe guards against the repeated keys bug. I am not sure how to solve it, as it seems more a limitation of BASH than anything else.
  4. Fixed the item found bug, now everything is totally random!
  5. Fixed a colour bug I had "featured in" with the previous –announce
  6. Fixed a bug where enemies wouldn’t flee at all, and adjusted the settings for this. Enemies now flee if they’ve lost half their original health and have less health than the hero.
  7. Commented all debug cheats used in testing
  8. Fixed Load character screens. They make more sense now, but aren’t perfect.
  9. Finished the licensing screens. This turned out alright.
  10. Changed the Credits page to be more informative.

That’s it for tonight! I had hoped to push out some code this evening, but I have a couple of more tests to run before I can consider it ready. Current version is 1.0 if nothing terrible happens!

The last pieces of the puzzle

The last pieces of the puzzle published on No Comments on The last pieces of the puzzle

I have waited with releasing any code, because I want it to be as close to complete as possible when I do. That’s just the way I work, with anything. Today’s github hipsters want to release early and often, but I grew up in a time when games weren’t patched because they did what they were meant to from release. Because not everyone had The Internet, and those who did usually didn’t have the bandwidth or know-how.

Today’s very different. People actually pay to be alpha and beta testers (they call it early adopters) on Steam. That’s ideal for fast and agile development, but I’m more of a dictator when it comes to creating things. I have too much of an ego. So biamin will be released as version 1.

What remains to be done?

  • There are 3 bugs that needs to be addressed before "shipping":
    1. To avoid a systematic bug, I have decided that items will be randomly scattered not just at boot, but also when an item is found. This wasn’t my intent, but there you go. If in doubt, make it random. Random is good.
    2. The ASCII graphics didn’t pass the UTF-8 test, and was botched. This just means I’ll have to hunt down the few symbols that aren’t from the first 127 characters of ASCII.
    3. If you hammer the keyboard like an idiot, when [R]oll is expecting 1 symbol, bash keeps that variable for the foreseeable future. But it also crashes. This is an easy fix, I just unset the key pressed once the procedure is in motion. I can’t fix BASH, but I should avoid crashing it.
  • In order to get code out of the door, I have decided to skip the elaborate social media feature –announce, and instead just echo a message to the terminal which the user can share him or herself to the same effect.
  • I want to adhere to good coding practices, which involves verbose commenting and coding style. Since my HTML days I enjoy writing everything in small case, but apparently that’s not considered good form. I will adhere to the BASH coding conventions of: variables in CAPS, functions in CamelCase and loop variables named likeTHIS.

The open question is, when will I have time to do ’em? The systematic bug is a bit hard, because it renders obsolete a different codebase (the diminishing item array). Thankfully, that can be ignored in version 1, because the code will work.

Biamin is playtested!
My brother Koew did some play-testing, and broke some of the loops by repeatedly hitting the key like an idiot. I think this comes from his upbringing using Windooze. In GNU/Linux (and thus, the terminal) you never hit the key repeatedly unless you want a broken system. You read what’s on the screen, and hit the desired key. Otherwise, you may end up uninstalling the kernel you’re currently running! Anyway, this is an easy fix, see the above ordered list.***

He also complained that my map interface used [N]orth [S]outh [E]ast and [W]est instead of the WASD keys that are prevalent in gaming. He’s got a good point there, but I’m not sure if fixing it to be [W]North, [A] East, [S] South, [D] West would put the rest of the game in peril stylewise. At the moment, I use the first letter of the command, which breaks convention but it looks good aesthetically and also reflects early console adventure games. I will probably release version 1 as is and change it if there’s a request (from anyone else).

Related to this he had some systematic issues, because he didn’t liked the forced ASCII banners when travelling that shows e.g. a forest road. I think they add atmosphere to the game, and I won’t change this because biamin wasn’t meant to be tic-tac-toe, but an interactive world. The ASCII banners add some colour to the world of MUSH/MUD and also gives you time to consider your next move. Koew just walked around fighting, but there are other important mechanics available.

Once the above is fixed, I will test it on Fedora, Slackware and Ubuntu.

In other news: I have started on a minigame for an as of yet unannounced sequel to Back in a minute! The sequel was planned this summer, when I was doing the remaining ASCII for biamin, and I look forward to coding it. The sequel will be just like Back in a minute, only better coded, and set in a completely different world.

*** EDIT Feb 24th: Sarcasm alert!
I realize I was a bit unclear about it in the text above with regards to uninstalling the kernel: I am joking!

There is no way biamin.sh will uninstall the kernel or do anything of the sort! The _only thing_ it tacitly removes are the temporary files and game files in $GAMEDIR that it created in the first place. The game isn’t meant to be run at root, but that shouldn’t pose a problem either.

In the text above, I was jokingly referring to an earlier GNU/Linux-related incident, where I was ssh’d into an ARM based embedded Linux in a screen session, where I managed to apt-get uninstall the kernel I was currently running. Luckily, I could still exit that screen session and re-install the kernel.. Which is amazing! But it was completely related to my not reading what was on the screen, and it is in NO WAY related to Back in a minute.

Created gitorious project with 2 repos for biamin

Created gitorious project with 2 repos for biamin published on No Comments on Created gitorious project with 2 repos for biamin

I’ve created a project for Back in a minute on gitorious with 2 repos: Code and GPL-only. The latter is for those purists who wants to browse or use the GPL v. 3 licensed code without the tacked on Creative Commons licensed artwork. The former contains the full game, and I expect this is the repo that will see any use.

URL: https://gitorious.org/back-in-a-minute

There is still no code up there, but I’ll see whether I get the time to push some code up there before New Year’s Eve. Anyway, merry Christmas! Go have a good meal and some Christmas ale and check back in here in a few days. See ya!

Added feedback and donations button

Added feedback and donations button published on No Comments on Added feedback and donations button

I added a feedback page that has a donations button that supports any donation sent over PayPal or the Bitcoin network. Thank you for any donations!

I also have decided to leave the social media –announce function in the program, so as to spread the word. I am currently finding out the right way to implement this, but I am also doing a 20 page exam until December 16th, so biamin isn’t top priority atm.