The Prancing Bard – Day 7 & Success

title

Day 5 & Day 6 I was off for work.

On Day 7 I included a very basic Highscore Mode, where you just fight monsters until they can overwhelm you and your highscore gets saved with your name. Very simple mode, pretty difficult, as monsters swarm you eventually and for moving in a pattern is less and less space. The implementation is quite rough code-wise, the highscore .txt file can be edited with notepad, but it does the job.

I realized on the last day, that all my mechanics with finding a notes in the melody of the world is relying on identifying colors. As colorblindness in not particularly rare, I added a switch to change the colored notes to colored alphabetic characters. I hope this makes things easier and it reveals by the way how the game mechanism is setup in the code: every note is a string a,b,c,… and the melody of the world is a string and the bard song is also a string.

if bard_song in melody: … pretty simple

Several dictionaries translate ‘a’ to ‘purple note’ then.

Last but not least I switched from py2exe to pyinstaller for generating an executable and pyinstaller is very nice once it runs.

I am happy to have succeeded! Version 1.0 was having a misdirected control scheme, as the Numpad input had a conflict with the 123qweasd input I envisioned. Therefor, I changed to the unusual wersdfxcv control scheme for laptop people and lefties (plus regular vi-kes). The very reason I did not go for extending wasd to qweasdyxc was, that I have a German keyboard and this pattern and vi-keys suffer from y/z-switch. v 1.1 should also have one crash less on level 4.

I am very happy to announce v 1.1 as my official 7DRL-entry, everything else will be added as post-7drl updates to a seperate version. (sound is a popular request)

Download The Prancing Bard v1.1 7DRL here.

Find it on RogueBasin here.

Discuss on the reddit 7drl megathread.

Or give feedback in the roguetemple forums.

The Prancing Bard used REXPaint a lot.

Find my 7drl week in tweets @Nicol_Bolas #7drl.

Play notes while you move and chime into the melody of the world to unleash the harp of the storms.

Fight your way through 5 stages to defeat the cyclops or strive for the highscore in an endless stream of foes.

Features:
* Movement patterns have to be matched with the streaming notes to unleash magic
* ASCII graphics and effects
* 5 stages with monsters
* Defeat the Boss to move to the next stage
* Endless mode for highscores
* Colorblind option

The Prancing Bard – Day 3 & Day 4

Day 3 – I was coding until late yesterday, so I am a little late with this entry. I faced some major challenges. I was happy to include .xp files from REXpaint into my game via the xp_loader. This saves a lot of drawing for the UI and for in-game effects. In the python script it works well, however, as soon as I created an executable (with py2exe), the program crashes on loading .xp files… Puh, this was unexpected and could have stressed me on the last day.

I don’t know, whether someone solved this already, but as it’s 7drl, I coded a workaround: I used the loader in a seperate script which writes all the .xp data to dictionaries and then into a shelve of the shelve module. This file can then be easily opened and loaded also by the exe after py2exe.

See it in action:

blast

I included monsters and tested my concept. Moving 5 turns in a pattern to cast an attack works quite well on the test stage. I have the feeling that in narrow dungeon corridors this works not so well. 5 turns is a long setup, when you spot a monster near you. At the moment I go for levels in the shape of big rooms. This way the player can see most of the map and better plan ahead. Monster constantly spawn from nests and approach the player in the test stage, but I think this works well as a game. With no items and inventory, this is probably closer to a tower-defense game than to an RPG… I like how this is slowly changing scope.

Day 4 – Added maps, the game will have 5 levels with a boss to defeat each level. Moving further away from adventure and exploration, closer to a puzzle. The main attack works and next is testing and balancing, a little cleanup here and there and tie pieces together. Been doing things like the title screen, menues, a minimum of story… Need to put it in shape as I will find no to little time for coding in the next two days.

 

The Prancing Bard – Day 2

Today I got some code down, the main things work in the dummy test stage. Enought to put all parts on the screen for a good impression where this may go.

Here is a first screenshot:

Screenshot

Moving and playing notes works, matching songs with the melody and arrows to indicate the sequence works, random shrubbery works.

Parts of the UI were drawn in REXpaint and loaded into libtcod directly. Thanks to Kyzrati and RCIX, this makes layouting things easy!

Monsters are in the making, I coded the scheduling timer described at RogueBasin already in to take care of different movement speed of monsters.

The Prancing Bard – Day 1

Yay, 7drl and I chose to work on an idea I was having for quite some time.

The planned core mechanic in a nutshell:

directions

While you move, you play notes, depending on the direction. With this you play songs to throw magic at monsters. I have still no idea, wheter this will work out in a dungeon crawler. Is it applicable for a roguelike anyway? Let’s find out!

Code-wise I use libtcod in python and took my published roguelike rng clrc as a start. I ripped out all code apart from the basics, in fact this lead close to the libtcod+python tutorial.

Here are some things, that inspired me:

Darren Grey’s 7DRL Mosaic has pattern and music coupled in an interesting way.

The Hunting Horn from the Monster Hunter-Series is a lovely weapon.