Post subject: Fusillade beta test!
Joined: 7/2/2007
Posts: 3960
Y'all love beta tests, right? Fusillade's a fun little game I've been working on that's heavily inspired by "bullet hell" scrolling shmups. Fly ships! Dodge bullets! Inflect! Don't shoot anything because your ship has no weaponry! The game pits you against an endless series of progressively harder bullet patterns, with the goal being simply to survive as long as possible. Here's a sample screenshot: The game's currently in open beta, so you can download a copy (Windows and Mac only -- sorry, Linux users, I'll be working on the Linux version when I get the time) here. And if you want to help support my game development habit, preorders are open, so you can get a registration code, which lets you play extra courses and make your own, for $2.50. Alternatively, if you're the first to report a bug on the forum, you get a code for free! Really, though, I just wanted to share my project with you all. I hope you enjoy it!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Lots of criticism incoming, I figure it's better than leaving it unaddressed. Hope you won't hate me for this. First of all, my main issue with the game. With the recent (~1.5 decade old, actually) tendency of drastically increasing bullet count in most shooters and the beginning of bullet hell era started by developers like Cave, Raizing and Takumi, many people started getting wrong ideas about this subgenre. The nature of bullet hell games (and this is taken from the words of many Japanese developers) is to give the player a false sense of great difficulty — most bullet hell games are actually easier than your average Gradius III era snipefest — hence the large amount of gratification when they endure and overcome. And these games are carefully crafted around the idea of this balance of difficulty and gratification, with none of them being unable to go through with practice. There are thought-out scoring systems which are meant to make the game fun and keep the challenge for advanced players who don't play for pure survival anymore. Western people tend to think it's mainly about bullet count and small hitboxes, and that such games are not really expected to be won (at least without using continues). This game is full of such wrong ideas, unfortunately. I'll elaborate now. The scoring system is bad. Why? Because it revolves around one basic idea: do not get hit once. Once you get hit for the first time, you may as well restart, because you won't be able to make up for the loss when your multiplier goes over 70x. About 65% to 90% of your score comes from this initial no-miss period. Then the kicker: eventually bullets become unavoidable. Scoring system just dies there because it isn't needed anymore. Now on getting hit. I know it's cool to have some story in a shmup (wait, story in a shmup?) providing the rationale for its design choices, like with that glass cockpit and stuff, but the hitbox position is skewed from the geometric center of the sprite, making it counterintuitive. Pre-emptive counterargument: when you're playing a shmup, you're not looking at your hitbox. That is, unless you are a beginner, in which case your stare is concentrated on the hitbox. I don't like to have to look at the hitbox just because it's so hard to pinpoint it without looking directly. The hitbox problem doesn't end there, though, because the bullets are even worse. Basically every bullet hell game — from DonPachi to rRootage to Gradius V (not much of a bullet hell, I know) has bullet hitboxes smaller than their sprites, akin to the player's craft's hitbox. There is a sane ratio of bullet hitbox to player's hitbox, and keeping them close is a very good idea. Here you're having a two-pixel wide hitbox that even seems to connect with bullets that haven't hit it, and humongous bullets in comparison. At loops 6+, they tend to form impenetrable walls, adding further insult to the injury. Next, the amount of lives. You're basically giving the player 9 (!!!) lives initially with the ability to get more. Considering the scoring system that urges you to restart upon the first miss, and the eventual undodgeability of the patterns, it seems not only needless, but also silly. But what's more silly is the invulnerability period… or lack thereof. Which is why it's possible to lose several lives in the span of one second. I wonder where you got that idea, because all developing institutions (period) consider it a bad game design. The inflector. A neat idea in concept, unbalanced in realization. The hitbox for grazing the bullets is small, while the bullets are sucked in from half a screen away at a huge speed. Considering their size, every use of the inflector is a potential invitation to ruin your score, rather than raise it. Who needs a 2x multiplier increasing speed when it's safer to just keep the multiplier? Screen orientation. It is a vertically oriented game where the enemy spends most of the time at the top, and the player at the bottom. However, the distance between the top and the bottom is smaller than between the sides, making it harder to dodge shit at the bottom, compared to the sides. Not really clever. The first 2-3 loops are dead tedious. I get tired of doing nothing before something challenging appears and start hitting random bullets I could have easily avoided otherwise due to misconcentration. The patterns. They are too geometrical for their own good. I realize this is easier to code, but it's basically either random hailstorm, perfectly symmetrical streams, or aimed sprays. See games like DoDonPachi DaiOuJou, Mushihimesama Futari, Shoot the Bullet, rRootage, and Ketsui for examples of clever and challenging patterns. Or dodgesims like YGS2000 or sdmkun, which incorporate many of those. The last but not the least. There's currently no incentive to purchase the game. The beginning is relatively small and fairly lackluster. People can literally get much more from a free dodgesim, let alone the multitude of good free Japanese doujins. There is no official online scoreboard or anything like that. There is no ability to save replays and put them online for others to see. The game is pretty forgettable in its current state. It's far from a commercial product. Also, two questions: what are your scores on the first courses available in the beta, and what are your favorite shmups (and why)?
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 7/2/2007
Posts: 3960
Thanks for the honest and detailed feedback. I really appreciate it. Now, you've put a lot of thoughts out here, so I apologize if I don't get to them all. * Play for pure survival vs. playing for score: this is what the inflector is for. You mentioned being bored on the initial loops; that's when you should be using the inflector to pull bullets in and increase your score multiplier. Ideally the game is always as challenging as you're willing to make it, up until the point that the patterns become so hard you can't use the inflector at all. Whether or not this works in practice is a different matter of course. * The scoring system: I welcome any suggestions you have for improving this, as I admit it hasn't gotten very much attention. Most traditional shooters I've seen either reward you for large hit chains (which incorporate not getting hit, since if you get hit, your chain is broken), or grazing bullets, which is basically done in a more relaxed manner by the inflector. Do note that your score increases purely based on how strongly you affect bullets' paths; whether or not your ship actually contacts the bullets is meaningless. Incidentally, you get a natural score multiplier based on which loop you're on; if I increased the "strength" of that multiplier you'd have more of an incentive to keep playing after getting hit once. * Bullet hitboxes: I can make these smaller. That's definitely a reasonable suggestion. Do note that they're circles, not boxes, but I suspect that's true for most shooters. :) * Lives: is this so different from your average shooter? Three lives, two or three bombs per life is pretty standard. The relatively high availability of new "bombs" is unusual in Fusillade, as is the auto-use of bombs (Personally I've always found non-auto bombs annoying), but the actual count isn't really all that far out there. * Invincibility periods: bear some consideration. The main thing I wanted to do here was keep you in the action even after you get hit. That's why the shield effect just destroys nearby bullets instead of wiping the entire screen. Normally you shouldn't get hit in rapid succession unless you're parked right next to the emitter (though the ChargeLaser pattern breaks this). * This game vs. various free games: ultimately if you don't think the game's worth the money, then don't buy it. My goal is to create something fun and accessible (even to people who aren't familiar with the bullet hell subgenre), that doesn't require a significant time investment to understand, but does have enough depth to be worth playing more than once. Yes, I'm competing with a large body of free work; the question is if I'm bringing enough new content and ideas to be worth buying. You evidently don't think so; others may think differently. My scores: unfortunately, I tend to blow away my scorefile regularly while testing. I just replayed the Beginner course, and while I didn't get a particularly great run, I ended at loop 6 (time: 7:14.56) with 233460 points, having died against the Crossfire pattern. On Intermediate, I ended at loop 6 (time: 7:09.96) with 320222 points, dying on Bigspiral. These aren't my best, but they're pretty representative. I tend to overuse the inflector, causing me to get hit a bit more often than I otherwise would -- but giving me more shields to get hit with. Some of my favorite shmups: * Einhander (PSX) takes first seat, no question. The componetized bosses are a great concept that's executed magnificiently, the difficulty is good barring a few hiccups, and the soundtrack is rocking. * Super Aleste (SNES) is reasonably high up there. Here I enjoy the strategic approach to levels, which is similar to R-Type (know which enemies will be showing up when) but much less punishing -- memorization is not a requirement for most of the game. * Dragon Spirit (NES) is one I've always enjoyed, though it's not particularly noteworthy gameplay-wise. I guess I just have a thing for dragons. Or else it's nostalgia talking. Some of the soundtracks in Dragon Spirit are really excellent, though. I'm sure there's others that deserve to be on this list, but it's not like I keep a checklist handy. These are just the most memorable, for whatever reason. To be honest, I haven't played most bullet hells enough to get a good feel for how they stack up against more traditional shmups in my little pantheon. I'm not very good at bullet hell -- playing DoDonPachi costs me a lot of quarters. :) The reason I made Fusillade is because there's a few moments each time I play a bullet hell game where I'm thinking "Yes! This is awesome!" And then I die, and the moment's ruined. I'm trying to capture that moment.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 2/26/2007
Posts: 1360
Location: Minnesota
I brought the lube, but apparently I am too late. Thanks moozooh :(
adelikat wrote:
I very much agree with this post.
Bobmario511 wrote:
Forget party hats, Christmas tree hats all the way man.
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Derakon wrote:
Play for pure survival vs. playing for score: this is what the inflector is for. You mentioned being bored on the initial loops; that's when you should be using the inflector to pull bullets in and increase your score multiplier. Ideally the game is always as challenging as you're willing to make it, up until the point that the patterns become so hard you can't use the inflector at all. Whether or not this works in practice is a different matter of course.
Yeah, I understand it's what it's for. But in practice it just doesn't serve the purpose. The reason you're getting 200k on Beginner and I got over 1.1 million on my second complete playthrough (that's not playing for score, paradoxically) is a clear indicator. I'm reasonably sure I could do over 2 million if I survived just a while longer.
Derakon wrote:
* The scoring system: I welcome any suggestions you have for improving this, as I admit it hasn't gotten very much attention. Most traditional shooters I've seen either reward you for large hit chains (which incorporate not getting hit, since if you get hit, your chain is broken), or grazing bullets, which is basically done in a more relaxed manner by the inflector. Do note that your score increases purely based on how strongly you affect bullets' paths; whether or not your ship actually contacts the bullets is meaningless. Incidentally, you get a natural score multiplier based on which loop you're on; if I increased the "strength" of that multiplier you'd have more of an incentive to keep playing after getting hit once.
First of all, reduce the inflector's bullet sucking strength. It will make it actually useful in a way that doesn't kill you most of the time. Next, make the multiplier penalty for a hit a percentage of the current multiplier. Say, 25% for a shield hit and 50% for a life hit. This will make the shields useful. You can also assign static amounts of points for passive grazing. Hey, there are lots of ideas to toy around with. :)
Derakon wrote:
Lives: is this so different from your average shooter? Three lives, two or three bombs per life is pretty standard. The relatively high availability of new "bombs" is unusual in Fusillade, as is the auto-use of bombs (Personally I've always found non-auto bombs annoying), but the actual count isn't really all that far out there.
An average shooter gives the player three lives (one active and two in reserve) with one or two life items and two or more score extends. It's very rare when a game gives more than six lives in total in one playthough without being too easy.
Derakon wrote:
Invincibility periods: bear some consideration. The main thing I wanted to do here was keep you in the action even after you get hit. That's why the shield effect just destroys nearby bullets instead of wiping the entire screen. Normally you shouldn't get hit in rapid succession unless you're parked right next to the emitter (though the ChargeLaser pattern breaks this).
Bear in mind that getting hit inadvertantly breaks your concentration for a short while — unless you totally saw that coming and knew what to expect. Cut the player some slack, you don't have to abuse them.
Derakon wrote:
To be honest, I haven't played most bullet hells enough to get a good feel for how they stack up against more traditional shmups in my little pantheon. I'm not very good at bullet hell -- playing DoDonPachi costs me a lot of quarters. :) The reason I made Fusillade is because there's a few moments each time I play a bullet hell game where I'm thinking "Yes! This is awesome!" And then I die, and the moment's ruined. I'm trying to capture that moment.
I am absolutely advising you to play more games like that. I can give you a list of them to check out if you want.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 7/2/2007
Posts: 3960
Sure, a list of games be helpful -- though short of pirating them via MAME, my ability to find these games is limited. Re: the lives business, how many bombs does your average shmup start you with, on each life? And bombs are generally available during the level to replenish your supply. In any event, shields and lives are very, very easily tweaked -- they're both parameters for the course. Anyway, here's my plan of attack: * Reduce the scoring penalty for getting hit, and improve the bonus for using the inflector. I've tried play with a reduced-strength inflector and I feel like it ends up being too uninteresting -- you can't affect the bullets' paths enough. But I've reduced its maximum range so it shouldn't pull bullets in from all over the place now. The big problem with the inflector is making it only rewarding if it's used skillfully. * Add multiple bullet sizes and shapes (shape being just for flavor; all bullets will still use circle-based collision detection). Reduce the bullet hit radius (on the default size, it was a 10px radius circle; now it's 8px). Maybe add a laser. * Replace the less-interesting patterns with better ones. Move some of the Mania and Extra patterns into the main set; I think my skill at making patterns has steadily improved over time and it's a shame that the patterns I've made more recently aren't available to unregistered users.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Active player (308)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
moozooh wrote:
The nature of bullet hell games (and this is taken from the words of many Japanese developers) is to give the player a false sense of great difficulty — most bullet hell games are actually easier than your average Gradius III era snipefest
hmm... only if you play on easy mode. Bullet hells are WAY harder than simple shooters. Gradius is hard because everytime you die you lose your powerups and your ship becomes a slow piece of crap. Once you memorize the level, it becomes lame.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
pirate_sephiroth wrote:
hmm... only if you play on easy mode. Bullet hells are WAY harder than simple shooters. Gradius is hard because everytime you die you lose your powerups and your ship becomes a slow piece of crap. Once you memorize the level, it becomes lame.
What non-bullet hell shooters have you beaten?
Derakon wrote:
Sure, a list of games be helpful -- though short of pirating them via MAME, my ability to find these games is limited.
MAME: Armed Police Batrider, Battle Bakraid, Battle Garegga, DonPachi, DoDonPachi, Dragon Blaze, ESPRa.De, GigaWing, Guwange, Mars Matrix, Progear, Raiden Fighters Jet. PS2: DoDonPachi DaiOuJou, Espgaluda, Ibara, Homura, Mushihime-sama, Psyvariar Complete Collection, Psyvariar Revision. DS: Ketsui Death Label. PC freeware: Blue Wish Resurrection, rRootage, Noiz2sa, Titanion, YGS2000 (dodgesim), nomltest, sdmkun (dodgesim), Hollow World of God (Touhou rip-off), XOP Black. PC commercialware: Touhou games (especially Shoot the Bullet), Shikigami no Shiro 2 & 3, eXceed 3rd -JADE PENETRATE-. There are some others as well, but I don't remember everything.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 7/2/2007
Posts: 3960
Thanks for the list! I'll see about giving some of these a shot. I spent some time working on the game yesterday, and added a bunch of stuff. Then I accidentally made this (2MB animated GIF link), which I'm going to try to incorporate into one of the new patterns. I had a long rambling paragraph here comparing the different genres of shmups, but it really didn't accomplish anything. Oh, well. Gradius is a weird example because the fully powered-up ship is vastly more capable than the starting ship, to the extent that when I play Gradius, I tend to go many stages before dying -- and then, having died once, be utterly unable to continue. Part of the reason I like Einhänder is that there isn't such a vast difference in power levels. Right after dying, you're almost as capable against most threats as you are if you'd come all the way from stage 1 (the big difference being the amount of ammo you have, the secondary difference being which gunpods are available, but that rarely makes or breaks a fight). I've always hated that "Oh, you died? Well, now the game's twice as hard!" philosophy that some shmups have.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 3/7/2006
Posts: 720
Location: UK
R-Type Final does not-very-much to you if you die, which I appreciate, because I die a lot. Thunderforce III (a shmup I have actually beaten) is rock-hard, and it's not bullet hell. It's only memorization if you make it. I prefer to react to things and play it differently every time.
Voted NO for NO reason
Active player (308)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
Yeah, bullet hells require concentration instead of a good memory.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Joined: 7/2/2007
Posts: 3960
I guess an alternative way of putting that is that bullet hells require you to look into the future about a second or two, but to see that future very clearly ("That knot of bullets over there is going to clear up and make an opening, so I need to move there"); traditional shmups require you to look ten-twenty seconds into the future, but see it relatively vaguely ("There'll be a wing of fighters coming in over on this side soon; I should switch to a fast-firing weapon"). These are very different skills.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Active player (308)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
Also, Derakon... I guess in a real game the spaceship should be able to fight back... this looks more like a demo than a finished game.
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Joined: 7/2/2007
Posts: 3960
It's been a busy few days. Beta 6 is out, with a whole bunch of changes. You can download it here. Please let me know what you think! Edit: couple screenshot links: One and two. Pirate Sephiroth: I suppose you didn't read the game description, since it explicitly states that the purpose of the game is to survive for as long as possible. You're welcome to think that it's not a "real game" if you like, but that's one feature I won't be adding. My next game will have plenty of killing. Not this one.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 10/20/2006
Posts: 1248
Hm, I gave it a try and I felt challenged, but not motivated to take the challenge. The difficulty felt unbalanced and I wasn't curious about future patterns because there were already lots of repetitions in the beginning, always in harder versions - which kind of bores me. I like Touhou, Ikaruga, Parodius and Raptor: Call of the Shadows. I think the inflecting is a nice idea though and it seems to work pretty well. I would feel more motivated if I could actually shoot back and it would probably be a nice idea to add a feature where you can, for example, repell bullets or something if you use the inflector a lot, I don't know. Maybe just something that gives me a feeling of being powerful. I just dislike the defensive concept of this game where I'm unable to fight back. All of my enemies survive and I die, this leaves me unsatisfied. Probably just not my kind of game. Edit: I also prefer holding down a button to change my speed over the switching system
Joined: 7/2/2007
Posts: 3960
Hey guys, I've just finished working on beta 7! There's a lot of changes this time around, and I hope I've made a game that even people who are obsessively good at bullet hells can enjoy now. :) I'd love to hear any feedback you care to give. You can download it here. Important changes in this release:
  • Completely redid how scoring works. Inflecting bullets causes them to drop sparks; pick those sparks up to increase your score and add to your multiplier. Completing a loop gives you a bonus based on how many sparks you collected and how many times you got hit.
  • Added a global highscores table so you can compete with your friends. You'll need an Aegis forum account to participate.
  • Replaced the old inflector-gives-shields mechanic with a new deflector, which is available after using the inflector for 12 seconds.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 10/3/2005
Posts: 1332
I dig the improvement. The sparks were definitely a good idea, and firing the deflector is great fun. Still needs more sound effects, though. I seem to have posted a high score, but the interface for doing that is unintuitive... I should have paid more attention, but basically, it gave me an error message prompting me to go to a submenu item to log in, instead of just giving me the log in interface. That could stand to be cleaned up, IMO. Edit: Also, it kinda bugs me that I have to use a mouse to operate the menu, but I can't play the game with it. Arrow keys/tabbing would be just ducky.
KennyMan666
He/Him
Joined: 8/24/2005
Posts: 375
Location: Göteboj
Gave this a shot. - That's... a terrible scoring system. Having to suck bullets toward you to allow you to graze them to create point-giving items which you then have to collect? Simply giving the player points by grazing, inflecting or not, would be a much better idea. Alternatively, in this kind of game based on simply dodging, giving points by simply staying alive. - Getting hit definitely needs to give more of a break. I wouldn't mind the lack of invincibility time if the screen got cleared. And the full-screen explosion effect when you actually lose a life is annoying. And if there's no way for the player himself to use one, it's less of a bomb and more of a shield... which still counts as a miss. - On the plus side, it feels like a very solid engine. As a game, I don't like this much, but if I see it as an engine demonstration, it's excellent. I can see grand things being done with it.
Det man inte har i begåvning får man ta ut i energi. "I think I need to get to Snoop Dogg's level of high to be able to research this post." -Samsara Read my fanfic, One Piece: Pure Corruption
Joined: 7/2/2007
Posts: 3960
Thanks for the feedback! Dromeceius: agreed, the score toggle on the main menu could stand to be improved. I'll give it some thought. As for sound effects, I'm working on that...it's a tricky business, though. Keyboard-controlled buttons would be doable; they're just a bit of a pain. KennyMan: I actually had a scoring system basically exactly like you're suggesting: score increased steadily over time, and by inflecting bullets you increased your multiplier directly. The problem with that system is that there's no immediately feedback that you're doing well. Your multiplier increases, sure, but that's not very visceral. I can tweak invincibility time after getting hit, but I don't want the player to get pulled out of the action for too long. It's easy to make getting hit mean that you basically don't have to worry about the rest of the pattern. As for bombs vs. shields, I don't believe I refer to them as bombs anywhere in-game now. They should be always called shields, albeit explosive ones. :)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 10/20/2006
Posts: 1248
Can't start beta7, could start beta6. I get this in the logfile: Traceback (most recent call last): File "bulletml.py", line 187, in <module> File "bulletml.py", line 18, in run File "bulletml.py", line 76, in init File "managers.pyc", line 948, in __init__ ValueError: invalid literal for float(): homebullet
Joined: 7/2/2007
Posts: 3960
As noted in the release notes, you'll need to delete your old scorefile; the file format changed in beta 7 to accomodate per-loop scoring.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Traceback (most recent call last):
  File "bulletml.py", line 187, in <module>
  File "bulletml.py", line 18, in run
  File "bulletml.py", line 72, in init
  File "managers.pyc", line 483, in loadImages
  File "managers.pyc", line 534, in loadAnimation
  File "managers.pyc", line 540, in loadSurface
pygame.error: Couldn't open data/images/smallbomb/.png
WinXP SP2, tried to open beta 7.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Joined: 7/2/2007
Posts: 3960
I changed the sprite loading code in beta...6? Maybe in 7. Anyway, there's some crud in the older versions of the data directories that used to get ignored (because I was looking for hardcoded image filenames) that would now try to get loaded if the game sees it. So if you merged the new data directory with the old one, that'd explain this problem. Sorry for the inconvenience.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.