Skip to content

Stable version 1.3.8, update_biamin.sh and new map released!

Stable version 1.3.8, update_biamin.sh and new map released! published on 2 Comments on Stable version 1.3.8, update_biamin.sh and new map released!

Shortly after version 1.3.7.9, we had gathered enough bugfixes to call it 1.3.8. I also created an update script for biamin players to keep their game current, and also a new CUSTOM.map pasted below, so you’ll have something to do in the weekend:)

DOWNLOAD version 1.3.8
Download the latest release from the download page.
GPL-Only releases are available here.

CHANGES in 1.3.8
Several small bugfixes in ASCII and LoadGame function were handed in by Kastian, thank you!
We’re eeking closer to version 1.4 which will be LEGACY.

Notably, there is now a biamin update script available! It simply pulls the raw text of the current biamin.sh in our gitorious repository, checks the version numbers of the local and the remote file and if they are any different, asks the player if s/he’d like to update the local biamin.sh to the latest version. This makes things so much easier, especially on the blogging side! Please note that the update script is version 0.5. It has been tested, but since it assumes default config there may still be bugs worth ironing out. The update script does not destroy character sheets, highscore list or the current configurations.

WORK IN PROGRESS on version 2.0
We’ve already started developing the new features for version 2.0. This version goes beyond the original scope of Biamin, so when 2.0 is released, the current game (reaching 1.4) will be renamed to Biamin-LEGACY. I’ve also started working on some of the many new ASCII screens the new features require.

This collaboration has forced me to learn how git is a developer’s tool and not just a fancy FTP put command. When I was coding alone there were few reasons to branch and merge code, since I was the only one who would face the consequences. But more than that, it has taught me how F/OSS projects grow and take on a life of their own. This is exactly why the concept of a LEGACY and a 2.0 version is important to me. The 2.0 would never have seen the light of day without Kastian! Cheers!

CUSTOM maps
I’m going to revisit this function to make sure it sanitizes the map file before loading it into the game, for version 1.3.9. In testing it out, I created this little kingdom so ya’ll have something to do in the weekend;)

       A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R 
   #=========================================================================#
 1 )   @   @   x   x   x   x   x   x   T   .   .   .   .   T   .   .   @   @ (
 2 )   .   .   H   x   @   @   x   .   .   x   x   x   x   @   @   .   T   @ (
 3 )   .   @   @   @   @   @   x   .   x   x   x   x   x   @   @   .   @   @ (
 4 )   .   @   @   @   @   x   x   .   .   x   x   x   x   @   @   .   @   @ (
 5 )   .   T   @   @   x   x   x   x   .   @   x   x   @   @   @   .   @   @ (
 6 )   .   @   @   @   @   x   x   x   .   @   @   @   @   @   @   .   @   x (
 7 )   .   .   @   T   @   x   x   x   .   @   @   @   @   @   @   .   @   x (
 8 )   @   .   .   .   @   @   x   x   .   @   @   @   @   @   .   .   .   . (
 9 )   @   @   @   .   .   @   @   .   .   @   @   @   @   .   .   @   x   . (
10 )   @   @   @   @   .   .   .   .   @   @   @   @   @   .   @   x   x   . (
11 )   @   @   @   @   .   @   @   @   @   @   @   @   @   .   @   x   T   . (
12 )   @   @   @   @   .   @   @   x   x   @   @   @   @   .   @   x   x   . (
13 )   @   T   .   .   .   @   x   x   x   x   x   @   @   .   @   x   C   . (
14 )   @   @   @   @   @   x   x   x   x   T   .   .   .   .   x   x   x   x (
15 )   @   @   @   @   x   x   x   x   x   x   x   x   x   x   x   x   x   x (
   #=========================================================================#
          LEGEND: x = Mountain, . = Road, T = Town, @ = Forest         N
                  H = Home (Heal Your Wounds) C = Oldburg Castle     W + E
                                                                       S

Back in a Minute Total Re-Write, version 1.3.7.9 released

Back in a Minute Total Re-Write, version 1.3.7.9 released published on No Comments on Back in a Minute Total Re-Write, version 1.3.7.9 released

This release saw the total re-write of the entire Back in a minute codebase, for optimal performance, less I/O operations and greater compatibility with other *NIX systems (including MacOSX). This release is an intermediary release mostly done for the books, but includes Kastian’s optimizations and several bugfixes; not to mention GOOD NEWS for the continued development of the project!

DOWNLOAD version 1.3.7.9
Download the latest release from the download page.
Default game directory is ~/.biamin. Put biamin.sh in that folder, chmod+x it and run ./biamin -i to install an alias to your .bashrc file.
GPL-ONLY versions (without CC licensed graphics) is now available at the GPL-only repository!

CHANGES in version 1.3.7.9
As the ridiculous version number suggests, there have been quite a few additions since the last blog update. Let me first admit that this release has been a long time coming! I’ve had a vacation, stuff to do with the building I live in, been writing on my MA thesis and been ill with fever and allergies as summer struck Norway with a vengeance. Thankfully, Biamin’s now official collaborator Kastian has stepped up and has fixed some of the most annoying legacy code I had produced in working out this game.

I am not a programmer, more of a hobbyist hacker. So even though my code eventually worked, its logical architecture wasn’t where I wanted it to be. The first thing Kastian rewrote from scratch was the MapNav() function, which displays the interactive map in the game. Like I had wanted to do, he wrote it fully in awk, instead of using awk, echo and sed. While I went away on holiday in Barcelona, he took it upon himself to go through the entire code to improve it. And he completed it in version 1.3.7! While the game stayed the same, his optimization cut the code base down with 300 lines of code, which is quite a feat! His sparce changelog sounds as follows:

# kstn major rewrite CHANGES for 1.3.7
# remains of GPS_Fix() included in NewSector()
# CHANGES for 1.3.6.1. Also, I (sigg3) have made 1.3.7 first GPL-only release too..!
# NoWriteOnGamedir() replaced to Die() because was used only once
# CosmeticName() removed because was used only in Intro()
# LookForItem() removed because was used only in NewSector()
# ActionsBar() removed because was used only in NewSector()
# TranslatePosition() removed because used only in MapNav()
# TopMenu() removed because used only in MainMenu()
# HowTo() removed becouse used only in Credits()
# remains of GX_MapSight() included in GX_Map()
# all TodaysDate() moved to Intro() because need only once
# Fixed some little bugs (I'cant remember how many :) )

The last two weeks, we’ve corresponded semi-daily with bug reports and feature ideas. While I didn’t have too much planned for Back in a minute upon release, except bug fixes and architectural changes, Kastian’s game-related input has convinced me that there are many possibilities worth checking out. I added him as a collaborator on our gitorious page recently, to ensure that the project can move on even when I’m either writing on my MA or am otherwise occupied.

Current ROADMAP: 1.4 to be LEGACY
Without going into too much detail, since they’re still being worked out as I type, I have decided that the game will have to be split up at some point into: Biamin-LEGACY and Biamin 2.0. The legacy game will remain the quick-and-dirty game you know today, which originally gave the project its name, while the 2.0 release will see some really cool changes that makes the world of Back in a minute come alive!

The Biamin-LEGACY code will probably be stabilized and polished up until version 1.4, which will only receive occasional bugfixes from that point on. New features of the game, which changes game-related content and player experience, will all be directed to the Biamin-2.0 branch of the project. Don’t worry, you will still be able to play the version you want to, be it LEGACY, GPL-only or 2.0, from our repository and the download page. But the LEGACY code will soon have reached the original goals I had set out for it when I released it publicly. If anything, it protects my sense of nostalgia for all those hours hacking on it alone pre-publishing.

Quick note on the GPL-ONLY version
This version is included as a courtesy to the occasional License Feinschmecker who cannot abide mixed licensed code. The reason I did not opt for the GNU GPL v3 for the entire codebase is simply because the GNU GPL was never intended for the artistic content in games, and I don’t want to see my work used in commercial products, however small the chances are for that ever happening. The GPL-only repo will contain both LEGACY and 2.0 versions. We still recommend the standard version of the game, with dual GNU GPL v.3 and CC BY-NC-SA 4.0 International licensing, for the best gaming experience:)

I should probably go through and update the About page now… 😛

Back in a Minute 1st Feedback Release, version 1.2.3

Back in a Minute 1st Feedback Release, version 1.2.3 published on No Comments on Back in a Minute 1st Feedback Release, version 1.2.3

Since I released the game to various sites, I have had some really nice feedback and some really constructing thoughts regarding *sh cross-compatibility and POSIX compliance. These changes + some game suggestions have made it into this (late) First Feedback Release, version 1.2.3.

DOWNLOAD version 1.2.3
You can download the latest version by heading to the download page!
If you enjoy a little BASH, you may browse code directly. Git is so cool, ’cause you can even view all the changes🙂

CODE CHANGES in version 1.2.3:

  1. Fixed the $GAMEDIR variable to use $HOME global variable
  2. POSIX: I’ve changed all arithmetic expressions to use (( format ))
  3. POSIX: NO MORE BACKTICKS! Changed to proper $(encapsulation)
  4. All expr calls have been substituted with echo
  5. Fixed bug where enemy could flee even if he has negative health
  6. Fixed bug where fight would continue after resurrection even if enemy health was 0
  7. Fixed a bug with the date
  8. Fixed a horrible map bug I had introduced in code cleaning
  9. I have changed all SETs to READs use $1 $2 .. variables where applicable

GAME CHANGES in version 1.2.3:

  1. Increased risk of being attacked while Resting
  2. Added penalty for CTRL+Chickening out during battles (-20HP & -20EXP)
  3. Removed Rolls for events on first move after loading a new or saved character
  4. Changed the enemy flee thresholds

Some TODOs or things to consider:

  • Change functionality of HERO start location so people don’t have to enter the code to change it. This can be done by adding a command line argument, or simply by allowing more data to be saved in the character sheet..
  • Consider changing Fight mode actions from just (R)oll to (R)oll or (F)lee.
  • Possibly add dungeons (would require more maps:)
  • Possibly add a quest mode
  • TEST on OSX..(I don’t have one so any feedback is appreciated.)
  • Run it through spellchecker.net’s BASH checker..
  • Swap out wget with curl

I want to send a big thank you to all who have been playing and providing great feedback! I have learned a lot more about making things more shell agnostic, and aim to a higher level of POSIX compliance than I had ever dreamed of. It is also very good to receive positive feedback from GNU/Linux users who enjoy playing Back in a minute🙂

I hope this game brings some joy back to the F/OSS community! Thank you!

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!