Giter Club home page Giter Club logo

broguece's Issues

Throwing weapons repeatedly is tedious

The t-c-Enter, t-c-Enter, ... key combination for throwing the starting darts can get tedious to input, especially as the player often encounters monkeys and bloats in the lower levels.

The solution I would prefer right now is a "rethrow" key, maybe on Shift+T, which throws the last used weapon at the current location of the last-selected monster target. If an item is thrown at a cell not containing a monster, the rethrow memory should be cleared.

Input during recording playback sometimes pauses

Observed on Linux. It seems like sometimes when pressing a key, the game pauses until it receives another event - even moving the mouse is enough. My guess is that a blocking event read is being run without first ensuring there is an event available with pauseForMilliseconds or pauseBrogue.

The playback input handling was last changed in b670046, so it could be an unintended consequence of that.

Monsters can attack before falling down a chasm

clarus:

Just got killed again when I threw a potion of descent at an enemy. The ground vanishes, the enemy hangs in the air and should fall, but they will sometimes get another chance to hit me before falling. Happened a couple of times so far, and it is always pretty annoying to lose that way.

Morgue / character dump file

Many roguelikes, when the game has ended, write out a text file containing lots of information about the run. This would be great to have, to give a summary of the build the player chose, especially given the temperamental nature of Brogue replays.

Right click doesn't open inventory

In order to match with the behavior of vanilla Brogue, a right click anywhere in the game window should open the inventory, which is not the case on BrogueCE 1.8.1, as it is currently used for movement (no distinction between left and right click).

More in-game documentation

It might be appropriate to have more information available in-game. This potentially includes

  • item summaries/tooltips on the discovered items screen
  • tooltip on mousing over the player, describing the stats or core mechanics
  • updating item descriptions if they omit important information
  • adding "enchant curve" info to tooltips, showing stats given by multiple enchants
  • feats screen?
  • bestiary screen?

Almost all text in Brogue is thematic / in-character, so we would have to considered how much game mechanics would ruin the tone.

This may be useful in general, but one other motivation is that if Brogue CE diverges significantly from vanilla behaviour, certain resources like the wiki might become increasingly irrelevant and confusing for new players.

Add "go to previous level" key to replay viewer

There is a "go to next level," so I feel there should be a go to previous, which goes back to the start of the previous depth. This would have to be implemented like any rewinding operation currently, i.e. with a confirm prompt and by going to the start and fast-forwarding.

Sanctuary glyphs do not spawn on certain tiles

From leadduck:

About 200 moves before my sanctuary tiles failed to show up a Flamedancer had followed be down the stairs. Seems like the burning symbols nullify future changes to those tiles?

From clarus:

Scroll of Sanctuary will have no effect on obsidian tiles (cooled lava, around brimstone fields or created by dragon fire, seems to be classified as liquid or sth like that)

Approve Flatpak/Flathub

Hi all,

I spent a little time packaging BrogueCE as a flatpak, with the help of brogue-multiuser.sh this was fairly painless.

I've create the Desktop/Appdata file and tagged the latest release.

All that is left is that someone from the project gives the OK for BrogueCE to end on https://flathub.org/home for everyone to enjoy! :)

I've added myself at the person responsible for updating the app, but if you would rather this be done through the project, then i don't mind that also, it's literally just updating the release tag for the git repo and pushing!

If everyone is happy, the MR is open here: flathub/flathub#1558, could someone please +1 or thumbs up? :)

Unarmed goblins can attack from 2 cells away

Goblin conjurers and mystics can attack at up to 2 cells range like regular goblins. The attack message is also consistent with unarmed strikes rather than a spear too, e.g. thumps instead of stabs/cuts. Either

  1. the attack message should be changed to imply they have a weapon, or
  2. their attack range should be reduced to 1.

My preference is for 2.

Darkness FOV is irregular

When affected by a darkness potion, the field of view is irregular -- depending on the radius, it sometimes extends one cell further to the top and left.

Rendering is low-res/pixelated on macOS

On macOS 10.15.4, rendering is quite pixelated and low-resolution, compared with original Brogue. See screenshots below.

LEFT: Brogue 1.7.5 =====> RIGHT: BrogueCE 1.8.3
brogue175 mac 2brogueCE 183 mac 2

brogue175 macbrogueCE183 mac

Edit: Note that if not on a high-DPI display, you may need to zoom in on this page (cmd+ or ctrl+) to make the difference obvious.

Add WebBrogue architecture

If this codebase is ever to extend past WebBrogue behaviour, it should incorporate the necessary changes (configurable at build-time) so it can be deployed with minimal modification.

Printscreen functionality broken

1.7.5 hitting print screen in windows dumps a png of the current game screen to the game folder. This doesn't appear to be working with 1.8.1 CE

Replace tcod platform with SDL2

The version of libtcod used by Brogue is ancient and depends on the equally ancient SDL 1.2. Further, only the fake terminal component of it is used.

bilgincoskun's Android port implements a new platform which draws the game using SDL2 and its TTF library. (https://github.com/bilgincoskun/brogue-android-port/blob/master/app/jni/src/main.c) This could be adapted and added to Brogue.

Pros

  • Easier to build
  • Game window can be any size, instead of only those allowed by included bitmap fonts
  • Opens the possibility of incorporating the Android port into this repo

Cons

  • Font will probably have to be different, as the Brogue font images are, afaik, made from a copyrighted typeface

A potential issue may be finding a suitable font which supports the more obscure Unicode characters used by Brogue. DejaVu Mono seems like a strong contender.

Various responsiveness issues with input

On Windows 10:

The issue is about the cooldown time when moving around. it takes a good second for the movement to take effect. If I pressed repeatedly the arrow key down, I can move quickly, but not by pressing it only once. After the 1-second cooldown, movement resumes normally (meaning at the same speed as in 1.7.5).

Time delay for a movement key to autorepeat is noticeably longer compared to previous versions.

Unknown platform (maybe unrelated issue):

If i spam 's' a few times to search/rest the action lags behind + doesn't get interrupted while an enemy is near, often getting my @ killed (i'm kinda used to spamming 's') in 1.7.5 the action gets interrupted, or at least limited to 1 search cycle when enemy is near. this feels more logical and less annoying

Game crash on totem lightning

Brogue CE crash.zip
The attached save file was left behind from a crash. I resumed from there and it crashed again, so apparently reproducible. There is also a screenshot of the moment of the crash. The platform is Windows 7 64-bit.

I played quite a bit more trying to get past this point and observed some odd behavior. For example my troll ally would stand next to the totems and not attack. And later after destroying all the ones I could see, there was still another in the sidebar. Eventually I was able to play past this point by throwing descent potion at the totems.

Seed searching

As a supplement to, or instead of, the seed catalog, it would be good to be able to search through seeds.

I picture a command ./brogue --search blah, which will start at the current default seed and go backwards, looking for items or allies (or other lines generated in the seed catalog) which have "blah" as a sub-string and printing them and their found depth to standard output. It would only search as deep as the shallowest depth a match was found so far, so each match will be a seed with a match earlier in the dungeon, until one is found on D1 where the search may terminate.

Generated items differ between ARM and x86

Version 1.8.1. The report comes from livrem on weekend contest 417, running seed 679251168:

I double-checked my version and seed, but the items I see when I start are
different from what is in that screenshot. Terrain looks identical, but the
items are slightly different and in different locations. (I see an alexandrite
ring and a scroll entitled snargsnargurt, and they are not where the ring and
scroll are in the screenshot).

Clean did not help. It is in Raspbian on a Raspberry Pi 3.

I tried to build it instead in Windows, in the Linux sub-system, running some
Ubuntu variant, on some intel 64-bit laptop, and got the correct items like seen
in this thread's screenshot.

EDIT: I went back and tried contest 416 and that looked correct, so at least the
items generated immediately on spawn are identical to what is in the screenshot
for that seed.

Trigger pads can spawn as "solid" tiles

On seed 329103668, depth 2, in the very centre room, there is a paralysis trigger which blocks vision and the paths of thrown weapons.

Note the greyed out ground tiles behind the trigger.

You can step on the trigger, which activates it as normal. After doing so the problem is gone. You can also shoot a firebolt over it, which burns the tile and also fixes the problem. This makes me think a dense foliage tile has been generated on the same cell as the trigger.

Access violation crash

From tinyrodent:

Just had the game crash, first time in a while. CE 1.8.2, Windows 7 64-bit. Just before this happened, I detonated a large cloud of explosive gas - unsure if that was related.

Problem signature:
 Problem Event Name:   APPCRASH
 Application Name: brogue.exe
 Application Version:  0.0.0.0
 Application Timestamp:    5e88a453
 Fault Module Name:    msvcrt.dll
 Fault Module Version: 7.0.7601.17744
 Fault Module Timestamp:   4eeb033f
 Exception Code:   c0000005
 Exception Offset: 000000000000716e
 OS Version:   6.1.7601.2.1.0.768.3
 Locale ID:    1033
 Additional Information 1: e402
 Additional Information 2: e40203178aaf3f352719c02485be6bce
 Additional Information 3: 233d
 Additional Information 4: 233dae01d946a591b7f3271c3753b5eb

Exception code 0xc0000005 is apparently access violation/invalid memory access. The error occurs at PC 0x000000000000716e into msvcrt.dll. I don't really know how to find out what function this is in.

macOS: required to force-quit the app

When I die in-game (a rare occurrence, I assure you), I get the "you have died. press i to view inventory" text. Hitting escape from that in previous Brogue would cycle through to the main menu again, but it seems in CE it will lock the app to the point of unresponsiveness, and I have to force-quit it.

macOS Catalina 10.15.3 (19D76), Brogue CE 1.8.2

Duplicate entries in high score table in 1.8.2CE

If you get onto the high score table in 1.8.2CE, that score is duplicated in the table.

The .txt file for high scores contains two entries for the score: one at the bottom of the file (my understanding is this is for the most recent playthrough) and one in position in the table.

The duplicate entry seems to persist even if you start and complete a new game (the .txt file is as above).

I installed 1.8.2CE over the top of an existing 1.8.1CE install, so that may be the issue?

HP gain / loss percentage seems wrong sometimes.

Version played: current master: 1c1840f

Seed: 222099578

On D:1, I found health charm +1. After using it, the (+60%) info showed next to my HP bar. I believe it's wrong as the charm is supposed to heal 20% of HP, and my HP bar is far from being half-full, even.

image

Best regards,
Ved

No more -t option?

With regular Brogue i could run the game with -t in the terminal and get a text version of the game. Did this got removed in the CE version?

Management of item picked

I have always thought that pick and drop item in Brogue was too simple.

Just have a option in "discovered items" (or new window) for each item to set (or not) if our character pick automaticaly a item. By default "pick all automatically"
And if I drop a item, set "not pick automaticaly" option on this item.

Ex : When I walk on corridor and I have no choice to walk on unwanted item, or when I use Explore command.

What do you think about this ?

Full-screen mode is messed up

Full-screen mode doesn't seem to behave like previous versions, based on player reports; it doesn't stretch the game window over the display. A more detailed comparison is needed. Also:

As soon as I used alt+tab to switch to another app, it completely broke. Now when I return to the game it just shows a black screen. (Windows)

nextStep can return -1 in Monster.c:2020

Hi,

I built BrogueCE with -fsanitize=undefined and noticed the following errors:

src/brogue/Monsters.c:2021:34: runtime error: index -1 out of bounds for type 'const short [8][2]'
    #0 0x55acec595c28 in pathTowardCreature /home/mfunk/src/BrogueCE/src/brogue/Monsters.c:2021:34
    #1 0x55acec5afd1a in monstersTurn /home/mfunk/src/BrogueCE/src/brogue/Monsters.c:3351:17
    #2 0x55acec64955e in playerTurnEnded /home/mfunk/src/BrogueCE/src/brogue/Time.c:2410:25
    #3 0x55acec5c1926 in playerMoves /home/mfunk/src/BrogueCE/src/brogue/Movement.c
    #4 0x55acec4e37b6 in executeKeystroke /home/mfunk/src/BrogueCE/src/brogue/IO.c:2592:13
    #5 0x55acec561241 in mainBrogueJunction /home/mfunk/src/BrogueCE/src/brogue/MainMenu.c:852:25
    #6 0x55acec651d46 in _gameLoop /home/mfunk/src/BrogueCE/src/platform/sdl2-platform.c:367:5
    #7 0x55acec64e81e in main /home/mfunk/src/BrogueCE/src/platform/main.c:223:5
    #8 0x7f9ed44cc022 in __libc_start_main (/usr/lib/libc.so.6+0x27022)
    #9 0x55acec40752d in _start (/home/mfunk/src/BrogueCE/bin/brogue+0x1ef52d)

src/brogue/Monsters.c:2022:34: runtime error: index -1 out of bounds for type 'const short [8][2]'
    #0 0x55acec595cac in pathTowardCreature /home/mfunk/src/BrogueCE/src/brogue/Monsters.c:2022:34
    #1 0x55acec5afd1a in monstersTurn /home/mfunk/src/BrogueCE/src/brogue/Monsters.c:3351:17
    #2 0x55acec64955e in playerTurnEnded /home/mfunk/src/BrogueCE/src/brogue/Time.c:2410:25
    #3 0x55acec5c1926 in playerMoves /home/mfunk/src/BrogueCE/src/brogue/Movement.c
    #4 0x55acec4e37b6 in executeKeystroke /home/mfunk/src/BrogueCE/src/brogue/IO.c:2592:13
    #5 0x55acec561241 in mainBrogueJunction /home/mfunk/src/BrogueCE/src/brogue/MainMenu.c:852:25
    #6 0x55acec651d46 in _gameLoop /home/mfunk/src/BrogueCE/src/platform/sdl2-platform.c:367:5
    #7 0x55acec64e81e in main /home/mfunk/src/BrogueCE/src/platform/main.c:223:5
    #8 0x7f9ed44cc022 in __libc_start_main (/usr/lib/libc.so.6+0x27022)
    #9 0x55acec40752d in _start (/home/mfunk/src/BrogueCE/bin/brogue+0x1ef52d)

this suggests that dir is -1 in the following snippet:

    dir = nextStep(target->mapToMe, monst->xLoc, monst->yLoc, monst, true);
    targetLoc[0] = monst->xLoc + nbDirs[dir][0];
    targetLoc[1] = monst->yLoc + nbDirs[dir][1];

The errors reliably occur for me in this zipped recording at turn 686 with BrogueCE a53673d compiled with clang 9.
I am not really familiar with the codebase and cannot tell if this results in an actual observable bug or how to fix this in a good way. Feel free to close this issue if this is something that can be ignored.

Make lit and dark spots clearer

With colour effects on, it is often hard to discern the different between dark, normal and lit tiles.

One solution is to change the light values of various sources, like torches and the player ("miner's light"), however this would affect gameplay, since light levels are used for visibility calculations. Perhaps we could add a post-processing stage to only tweak the cells' appearances.

macOS: Blurry font

Not sure if known issue, but I just downloaded 1.8.2CE and the font is noticeably blurrier than ye olde Brogue 1.7.x?

MBP, Catalina 10.15.3 (19D76)

Issues when force-closing the game after character dies

I´ve experienced a couple of situations in which pressing the space bar or clicking the mouse stop working, after attempting to force close the game window when the main character dies.

To reproduce:

  1. PC dies. You get the "You die..." message
  2. Instead of pressing space bar or mouse button, try to force close the game window by pressing the top right X on the Brogue window bar. The game will not close.
  3. Space bar / mouse click become unresponsive. The only thing that seems to work is Esc.

The same happens on the screen following the "You die" message:

  1. PC dies. You get the "You die..." message
  2. Press space bar or mouse button. You get the "Killed by..." message
  3. Instead of pressing space bar or mouse click, try to close the game window by pressing the top right X on the Brogue window bar. The game will not close.
  4. Space bar / mouse click become unresponsive. The only thing that seems to work is Esc.

(Edit: same thing happens on the High Score screen)

Add identified inventory view on win/ascend

from cameradv:

When you escape with the Amulet, you don't get to see your inventory identified the way you do when you die. I often have items I am curious about at the end, and it's a pain to go through a recording to find them out. I think we should be offered the opportunity to see our possessions identified even when we win.

Bog monster generated inside a statue

Seed 739002545, depth 11. The bog monster is fully visible and shows on the sidebar as hunting.

Bog monster inside statue

Any monster that spawns in a statue should be dormant and activated when the player is near. I'm fairly sure it's impossible for a creature to coincidentally be generated inside an inert statue, but this needs to be checked. Perhaps this is an edge case of a creature statue being generated in a bog.

Missing item names

In the latest build, names for certain items appear to be missing.
E.g. instead of "A dagger", it is simply written "A ", or "15 darts" appears as "15 ". This does not seem to affect all items.

Allow for saving files into a different directory.

This is more a feature request.
Currently, all files written by the game are stored within the bin directory, however this is not ideal in some scenarios. I've packaged this fork for Linux, but in order to allow each user to maintain their own saves and such, I've resorted to using symlinks.
It would be ideal if, for example, a parameter could be passed to the executable to indicate where these are written.

v1.8.2 Tiles version?

Sorry if this is not the place to ask for this kind of thing, I'm not trying to pressure anyone or anything like that either, I understand you all do this free of charge and voluntarily, etc. much <3! I even asked on the reddit but the post got deleted by a mod I guess (do they not like BrogeCE or something there?...), anyways, I see 1.8.2 was released, I was just wondering if there will be a titles version to follow for it?

Fixed-point game calculations are ugly and inflexible

The fixed-point code is ugly, error-prone and difficult to modify; it uses hard-coded look-up tables.

It may be possible to revert to using floating-point and improve its portability. There are some fp compiler options in GCC like -fexcess-precision=standard, and some targets accept -mieee or -mieee-fp to improve portability of fp calculations. The problem is that C doesn't guarantee its fp representations conform to IEEE 754.

Alternatively the fixed-point could be cleaned up, possibly with code generation.

Consider alternative search mechanics

As per this reddit post, it could be interesting to add the old search system back as the stealth penalty could be a big thing in the lower levels.

Some keybinding switchs could be made (both search actions on S and s, and the save game feature on another key), or we could change the terms in order to clearly distinct both actions. That would be more thematic but it's hard to find a key that's not already taken:

  • examine (e is now equip)
  • look (l is used for vi movements, uppercase included)
  • inspect (i is used for inventory)
    ...

Assorted notes on rebalancing

This is a summary of what I've heard about balance. These can be split off into separate issues once a bit more direction is established.

Rework internal game calculations

Version 1.7.5 replaced all floating-point game calculations with fixed-point equivalents to avoid the inconsistencies of floats between platforms. However, the current implementation has a few issues:

  1. Non-portable behaviour. Lots of code relies on the int type being greater than 16 bits wide, which isn't guaranteed. This is most notable in fixed-point multiplication and division where operands must be intermediately shifted by 16 bits. There is also some undefined behaviour, such as left-shifting negative signed integers.
  2. Fixed-point reals are always rounded down when converting to integers.
  3. Often, calculations lose precision by converting reals to integers too early in the calculation, when they could be kept as reals and converted/rounded at the end.

Only the first is an actual "issue" so to speak, as it could cause replay incompatibility, but the others would be good improvements to the calculations. The solutions

  • Implement a dedicated type for fixed point reals at least 64 bits wide, and ensure values in arithmetic expressions are promoted properly.
  • Add an fp_round function
  • Refactor the game arithmetic to round properly and keep precision

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.