Skip to content

Gitorious.org is dead, new host is Github.com

Gitorious.org is dead, new host is Github.com published on No Comments on Gitorious.org is dead, new host is Github.com

A long time ago, the infamous klaatu of GNU World Order fame, recommended Gitorious.org to me for a free and GNU friendly git host. I’ve been using them since, but the business model of (free) code hosting is a difficult problem to solve (just look at the recent Sourceforge scandals), and I was sad to receive an e-mail from them early this year about their closing down.

Gitorious was bought by Gitlab, a relatively well-known competitor of github.com. I’ve been discussing the move with Kastian for a while, and after trying out some alternatives, we ended up going for github.com. Here’s the current repo layout on github:

The main repo is the development version with current master (releases) and dev (development) branches. It will probably also contain some drafts of text-only documents for the background history, bestiary etc. in the future. The GPL only repository is provided as a courtesy for those who only want to look at/use/clone the Biamin «game engine» without any Creative Commons licensed artwork. The GPL version follows the official release cycle, with a short delay. The Legacy repo is provided for my own nostalgia, and contains the final version of the original game. It will only receive bugfixes.

The guys at gitorious.org are kind enough to continue hosting the static pages that are there now, and we’ve added a notice on each repo header to inform about the move to github.

Naturally, the move to github broke our update script, but that stopped working when we changed the branch models of the main repository. In order to future-safe the update script, I’ll be looking at using sigg3.net for hosting the release versions, regardless of code/git host. That’s all for now, more news to come shortly!

New development scheme for Biamin

New development scheme for Biamin published on No Comments on New development scheme for Biamin

We’ve changed a lot of stuff on the Biamin git repository, and I figured it’d be helpful to shed some light on how it’s supposed to work. (You can find this info in the git repo README as well.)

There are 3 main branches on the repository:

  • master: This is where we keep the last stable release of biamin.sh, the README and an archive/ folder with older, stable releases.
  • dev: This is where we keep the development files (numerous individual .sh files), a Makefile to build biamin.sh and a TODO. It also has a /licenses folder with our copy of the GNU GPL version 3 license as well as our Creative Commons license.
  • text: Currently N/A. This is a backup for textual resource for the world of Biamin.

The main idea being that a visitor can grab the lastest biamin.sh from the master (default) branch, that is both stable and recent. From now on, Biamin follows a versioning scheme of e.g. biamin 1.2.3, where 1 is official releases that are made for the master repo, 2 are feature added or major code overhauls and 3 are bugfixes, minor edits, commenting, formatting, etc.

Prospective developers or adventurous players can head to the /dev branch. If you git clone the repo, you can checkout to the dev branch and run ‘make’ to create a biamin.sh of the latest, unstable code. For any experimental feature, a sub-branch of /dev is created, for later merging to the dev branch (automatically or manually, depending on circumstances).

In order to create sensible logs, we ask committers to follow the conventions in the README. They aren’t mandatory, but makes sifting through heaps of commits much easier:)

This change in development scheme is the result of our decision to break up our code into their semantic parts, for easier coding. CoreMenu.sh and GameTown.sh signifies that we’re dealing with the menu of the core game or town configurations of the individual game respectively. In other words, Core* happens outside the loop or universally, while Game* is restricted to the loop, mostly.

Hitting the magic number, version 1.4 LEGACY and GPL-only released!

Hitting the magic number, version 1.4 LEGACY and GPL-only released! published on No Comments on Hitting the magic number, version 1.4 LEGACY and GPL-only released!

This is a major milestone in the Biamin project! When I released 1.2 February 22nd 2014 after about a year of hacking away on it, I was pretty done with it, expecting a few feedback releases with bugfixes and suggestions from the Internet. I’m quoted as saying: «The ~2200 lines of code reflects a need for optimization, but I am not planning to do any major overhauls on the current game.» Enter our advanced Bash code side-kicker Kastian, who first pushes ahead some ideas I wasn’t able to implement myself, optimizes the entire codebase(!!!) in ~ 1.3, and then starts sending more suggestions for expanding the universe beyond my own mission statement.

While we were developing a more RPG-oriented branch of the project "2.0", I felt the original game needed to be moved somewhere safe. Then came the idea of "forking" it into the current subdivisions: code, legacy and gpl-only. Check them out on our gitorious project page. The first contains the full game, the second contains the current version 1.4 + bugfixes and the last one will follow the 2.0 series (full game) once we have reached stable. Read more about the different editions of Biamin on the About page.

So today we release version 1.4, meaning that we have successfully fulfilled the original game I created in 2013 plus optimizations. The LEGACY branch will only receive bugfixes from this point on. All active development and world expansion will continue in 2.0 and 3.0 etc. branches in the /code/ repository. I think it is safe to say that the LEGACY or original series of Biamin is a rogue-like adventure game made to encompass on-and-off playing, as a drop-in BASH replacement of games like e.g. solitaire. It features 4 playable races, 6 enemies, 8 items and 6 different scenarios in the 270 sections of the world map, as well as a map template generator and integrated update function for bugfixes. If you want to go beyond that, stay tuned for 2.0!

CHANGES in version 1.4

  • Changed the roll dice prompts in battles (work in progress)
  • Added re-seeder for more random dice rolls
  • REMOVED the separate update_biamin.sh files and ADDED integrated –update function
  • BUGFIX Player was still attacked the round s/he found an item. Fixed!
  • CHANGED the flee dynamics: You roll for flee, but successful flee requires that you’re not caught doing so by your enemy.
  • Compatibility fixes for MacOS (e.g. in map template creation)
  • And let’s not forget Kastian’s code optimizations:)

I have updated the Download and About pages to reflect the changes in the project layout.

I have also updated the GPL-only repository up to version 1.4!
Note: GPL-only will at some point diverge from LEGACY as it follows the full game "2.0" series. Stay tuned for more information about the new RPG-oriented Biamin series coming soon!

Biamin mentioned in Linux Voice #2 (May 2014)

Biamin mentioned in Linux Voice #2 (May 2014) published on No Comments on Biamin mentioned in Linux Voice #2 (May 2014)

I was reading Linux Voice issue 2 last night, when my eyes stumbled upon a familiar ASCII image of Oldburg Castle on page 14! With the initial public release of Back in a Minute (1.2) I did e-mail the awesome guys at Linux Voice, notifying them of the release. I was not expecting to get anything in print, but seeing this was totally awesome! Click the thumbnail for a larger scan:)

Biamin in Linux Voice #2

Disabling weak contact form temporarily

Disabling weak contact form temporarily published on 2 Comments on Disabling weak contact form temporarily

I opened my inbox today, finding 500 messages from the Acunetix security scan tool (read more here) targeting the contact form on the Feedback and Donations page. It is currently disabled until further notice. Please get in touch through the blog’s comments or the bug reports page if you want to get ahold of me. You can also leave comments on our gitorious repos!

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 3rd Feedback Release, version 1.3.6

Back in a Minute 3rd Feedback Release, version 1.3.6 published on No Comments on Back in a Minute 3rd Feedback Release, version 1.3.6

This release saw the continued input from Biamin player and hacker Kastian! I am happy to receive great BASH code feedback as well as Tolkien-founded critique of the game itself. This release sees new bug fixes but also developments toward re-newing my legacy code that I have never bothered to change, as well as 2 major game changes. I am currently approaching the first deadline in my MA thesis, so unless there are major bugs in this release I haven’t discovered yet, I won’t be able to push out new code until mid-April. Feel free to use the bug reporting "system" or shoot me an e-mail over at the feedback page. Thanks for playing!

DOWNLOAD version 1.3.6
Download the latest release from the download page.
I also added the older versions for archiving purposes at the git repository, where you can also inspect the code.
See updated Biamin installation procedure.

GAME CHANGES in version 1.3.6:

  1. $GAMEDIR variable changed from $HOME/Games/Biamin to $HOME/.biamin. Please move your existing files there, or if you want to keep your current settings, change LINE 10 in the CONFIGURATION part of the script. You can always check which directory you’re configured to use by running biamin –help or biamin.sh –help. Kastian among others have noted how my $GAMEDIR was not up to UNIX standards, which is true. This was just the setup I used in my Fedora setup:)
  2. Players can now (F)lee during battle! Several players have pointed out how while enemies can flee, players cannot, is unfair.
  3. RACE Adjustments: Thanks to Kastian’s input, the HOBBIT now plays more like a rogue, with the following characteristics: Healing 4, Strength 1, Accuracy 4 and Flee 3. The racial characteristics are rolled against D6. See RACE sheet below for reference.

CHANGELOG for version 1.3.6:

  1. ADDED a config file for game configuration! Users won’t need to look at the beautiful code:)
  2. FIXED the color config loop present in versions 1.3 and made it more simple
  3. ADDED automatic setup of $GAMEDIR instead of bugging users to create it
  4. FIXED a bug in the funeral date string when character dies
  5. FIXED a bug in race selection where hitting any character besides 1-4 would set that unknown character as race designator. THANKS to Kastian for finding this bug!
  6. Kastian sent two code optimizations reducing my grep+sed invocations to just using sed. Much appreciated!
  7. ADDED –install argument which adds a biamin() function to your ~/.bashrc
  8. Removed erroneous select statements and swapped ’em out with case statements

Preliminary TODO list:

  1. Add sensible configuration of gamedir (requires permanent file, atm)
  2. REPLACE all gawk instances with awk for compatibility.. easier said than done!
  3. TEST on OSX.. I don’t have any Apple products so any feedback is appreciated.
  4. Possibly add dungeons (would require more mapping:P)
  5. Possibly add a quest mode

New RACE characteristics (or game difficulty/styles)
1. MAN 2. ELF 3. DWARF 4. HOBBIT

Healing: 3/6 Healing: 4/6 Healing: 2/6 Healing: 4/6
Strength: 3/6 Strength: 3/6 Strength: 5/6 Strength: 1/6
Accuracy: 3/6 Accuracy: 4/6 Accuracy: 3/6 Accuracy: 4/6
Flee: 3/6 Flee: 1/6 Flee: 2/6 Flee: 3/6

NORMAL EASY EASY HARD

Dice rolls on each turn. Accuracy also initiative. Healing during resting.

The idea is that each RACE is also a difficulty level OR a gaming style. Playing as human is "normal" in both respects. Playing as Dwarf gives you more power, but healing is slower. Playing the Elf characters will give you better accuracy and faster healing. While Hobbit, thanks to Kastian, reflects Tolkien’s works better now, and provides the game play of avoiding battles and healing. Remember that finding ITEMS adjusts your abilities accordingly, so this makes for an interesting variety of options, challenges and developments.

This version of Back in a minute saw many suggestions from the community come to code. I hope you guys enjoy it, and thanks for playing!

Back in a Minute 2nd Feedback Release, version 1.3

Back in a Minute 2nd Feedback Release, version 1.3 published on No Comments on Back in a Minute 2nd Feedback Release, version 1.3

There are some minor and some major changes in the new release! Again, I am humbly thankful for all constructive feedback, and all positive gaming experiences that I’ve been told about. This release fixes some bugs but also changes some important gameplay related aspects (see posts below) that people have suggested or complained about. I am very satisfied with this version 1.3.

DOWNLOAD version 1.3
Download the latest release from the download page.
I also added the older versions for archiving purposes at the git repository, where you can also inspect the code.

CHANGELOG for version 1.3:

  1. FIXED a bug so now the Guardian Angel resurrection works as intended
  2. Removed all wget instances with curl for greater compatibility
  3. CODE: Consolidated Dice functions to one, thanks to kastian for code suggestion!
  4. CODE: Ran it through Shellchecker and did a lot of code cleanup. Apparently I have been over-quoting my code, e.g. “This is “$AVARIABLE” day” should be “This is $AVARIABLE day”. 472 warnings of that sort fixed, and the remaining 4 warnings pertain to the parsing of the map file. To fix these will require major overhaul replacing sed with awk. I’m putting this on the back burner at the moment.
  5. FIXED bug where player’s successful flee would constitute CTRL+C penalty
  6. ADDED a Howto instructional page on the Credits page

IMPORTANT GAME CHANGES for version 1.3:

  1. OPTIONAL custom Home variable: If there is a CUSTOM.map present in $GAMEDIR the player will be asked if he wants to start at the default location C2 or somewhere else. The input is sanity checked, but nothing is foolproof. Note that HOME variable doesn’t have to be a HOME (H) scenario in the map file itself..! It is the H scenario that inherits the properties, not the $HOME variable. (E.g. a map can have several Home sectors, but only 1 starting position $HOME.)
  2. CHANGED the Move North, West, South and East buttons to W,A,S,D for gamer compatibility:)
  3. CHANGE sector mechanics so that you can now press W,A,S,D in the SECTOR menu directly, without having to go to map first. However, if you now press a non-declared button this will be taken as a travel/move! E.g. If you hit ‘l’ or ‘x’ at any sector, you will loiter, or walk in a circle.

Here’s the added HOWTO play page for the main menu:

HOW TO PLAY Back in a Minute

Go to Main Menu and hit (P)lay and enter the NAME of the character you want
to create or whose character sheet you want to load (case-sensitive).
You enter the World of Back in a Minute. The first sector is Home.

Each sector gives you these action alternatives:
(C)haracter sheet: Toggle Character Sheet
(R)est: Sleep to gain health points
(M)ap and travel: Toggle Map to find yourself, items and to travel
(Q)uit: Save current status and quit the world of Back in a Minute
Use W, A, S, D keys to travel North, West, South or East directly.

Travelling and resting involves the risk of being attacked by the creatures
inhabiting the different scenarios. Some places are safer than others.

I appreciate all the brilliant feedback you guys are sending in, to suggest game changes or features and to provide a critical look at the code. This makes it easier to justify all the hours I’ve spend making it up until now and into the future. And thanks for playing!

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!