lyle-tafoya / omega Goto Github PK
View Code? Open in Web Editor NEWMy C++ fork of the 1987 roguelike "Omega"
License: GNU General Public License v3.0
My C++ fork of the 1987 roguelike "Omega"
License: GNU General Public License v3.0
Some ideas to make thrown weapons less powerful include:
I fixed an infinite loop during level generation with 8a31294. However, this was only a partial fix. While it can no longer get stuck in an infinite loop, it is now possible for it to generate a dungeon in which there is no corridor connecting one or more rooms to the rest of the dungeon. On some occasions, this may leave the player with no obvious way to progress through the dungeon without tunneling at random to find the room. Better than encountering an infinite loop when going down a staircase, but this should still receive a proper fix eventually. The room_level
function should probably be reworked at some point to deal with this. As far as I know, other level types are not effected by this issue.
Right now, the intelligence stat isn't used for very much. I can think of some ways it could be made more useful:
I was wondering if it would be feasible to add a graphical tileset mode to this to maybe get it some more attention?
it seems like a really cool game.
in building I met three problems, and i think it would be better if you take a little time to fix.
the newest g++-11 can't use new features <format>
in c++20, and it's difficult to build by gcc.
There is a symbolic function that uses macro definitions to support both long and int types, and it is obvious that neither the compiler nor I would like to see such a writing method.
noreplace
in ios
is not supported.
i use <fmt>
instead and rewrite the sign function. As i didn't know how to dual with noreplace
, i finally deleted it :P
It may not seem to cause much trouble
Currently the player is prompted to confirm pickup for each item, one at a time. This should be replaced by a menu where the player can see a list of the items and corresponding letters, similar to NetHack, DCSS, and other popular roguelikes.
Right now, the symbol and color used to represent an item are determined only by it's type. All items of the same type are represented with the same symbol and color. I think it would be better if items of the same type could be different colors. Also, "artifact" shouldn't be an item type which is immediately recognizable by it's symbol. There should be artifacts that fit into the other item categories. For example, the "Potion of Life" and "Potion of Death" are potions and should be represented by the potion symbol '!'. Ideally, we would not have a special symbol for representing artifacts at all.
The ability to set the seed is a nice-to-have feature and should be trivial to add.
Right now all we have is a config file that saves in a non-user-editable format which only loads when you "play as yourself", and the only way to edit it is to answer the in-game questionnaire. Ideally, we would support the user to set defaults for all the options in TOML format or maybe even something simpler.
[ 1%] Building CXX object CMakeFiles/omega.dir/src/abyss.cpp.o
/home/max/other/Omega/src/abyss.cpp:25:10: fatal error: format: No such file or directory
25 | #include <format>
| ^~~~~~~~
compilation terminated.
Just so you know.
It really doesn't make any sense that a thrown dagger (for example) would have it's hitroll or damroll be based on the stats of the weapon in your main hand rather than their own stats.
I should probably investigate whether there are other places that this same issue occurs.
Right now, if a mob has an item in it's inventory, you can attempt to pickpocket it an infinite number of times without any risk of consequence. The only time there is any consequence for pickpocketing is when the mob has no item for you to steal. This doesn't really make any sense. It should probably be changed so that the pickpocket command has a chance to make an enemy aggro regardless of whether they have an item in their inventory, and possibly even regardless of whether you succeed at stealing an item from them.
Currently, to drop an item, it must be in the player's main inventory. This means that if the player wants to drop an item from their pack, they must first equip it to one of their main inventory slots. This starts to feel tedious after awhile. There is no reason why it shouldn't be possible to drop items directly from the pack.
The combat maneuver system really doesn't make combat more fun or interesting. It should probably be removed and replaced with other interesting combat mechanics.
Should probably use seconds instead of hours to measure the lifespan of a torch.
Should allow more flexibility with user build environments.
I don't want to go overboard with color like BRogue, but ideally we would have color in some more places such as shop menus and the message buffer.
Powered scout armor and powered combat armor are too dangerous to wear, to the point of reducing them to nothing more than death traps for players who don't know better. The problem is that if you are wearing one of them and it gets cursed, there is virtually no way to remove the curse before dying. As soon as it gets cursed, it forces the player into the "drowning" menu, where the only possible way to save yourself is to destroy the armor by bashing it. If the player fails to successfully destroy the armor within 3 turns, they die. The chances of succeeding at destroying either of those pieces of armor within 3 turns is quite low, and even if it was easy to do, it's not reasonable that a high level piece of armor should be so disposable. In order to avoid getting cursed in the first place would require the player to have such a high level of protection that it almost doesn't even matter what armor they are wearing anymore.
I still have to brainstorm how these pieces of armor can be made viable, but right now it doesn't make sense to wear them at all and they are only as valuable as the gold you can get by selling them.
Vaulting is too powerful. It allows players to move very quickly and renders boots of jumping nearly useless. Some ideas for nerfing 'v'ault include:
When using a command that accepts a target such as when a weapon is thrown or a spell is casted, the cursor should automatically be moved on top of the closest valid target. Maybe we can even have commands to cycle between valid targets.
Right now the game reveals everything within 1 tile of the player without a torch, and everything within 2 tiles of the player with a torch. Some dungeon rooms will illuminate all at once when they are entered. Once a tile is revealed, it always shows what items are on that tile, even if they change when the player cannot see that tile anymore (ie. if a mob picks up an item). Mobs are currently drawn at any distance from the player as long as they are in line of sight (ie. no wall between them).
This rudimentary system may have been good enough back in 1987, but it's about time we implemented a proper FOV wth recursive shadowcasting or something to that effect. Tiles which are not visible should be grayed out like in DCSS, and should only display whatever was visible last time the tile was within the player's FOV.
Right now it is possible to obtain multiple of any given artifact. Once an artifact has been generated in the game, it should not be possible for it to be generated again. Additionally, artifacts which are guaranteed to be found in certain parts of the game (ie. Kolwinya) should probably not ever be randomly generated.
I've compiled the encryption and decryption codes, but I've used only the decryption program so far. For me, it works on some of the data files but not others. Villages, court, abyss work fine. The mazes don't. The city and country dats begin to format properly but seem to time out before finishing. I've attached one of each.
maze1_dec.txt
country_dec.txt
village6_dec.txt
Right now, any character with enough stats can become an adept quite easily. Since stats can purchased at the gym and library, that makes it possible to grind for gold to obtain the necessary stats to become an adept. One thing that could be done to help this situation is to lower the cap on stat training in the gym and library from 30 to 18. This would make it very difficult to become an adept without utilizing some of the rewards that are found later in the game. However, it is also possible to get a lot of stats from guild advancement, so it might be a good idea to require the player to collect some item from the astral plane.
Right now, when a player runs, they simply move straight in one direction until they encounter a wall/obstacle. Other roguelikes such as nethack will have the player run around corners and stop running as they encounter an intersection, which is much more desirable behavior.
If the player cannot see a square they are vaulting to, they should suffer any consequences without warning, whether that be drowning, taking damage from jumping into a wall, or anything else. It should not be possible to gain information about an unseen square by 'v'ault testing it.
When a player becomes terrorized (ie. by a ghost), they should see an on-screen indication of this.
I had just requested a ritual of neutralization. Probably unrelated. Hopefully we can catch this in gdb to debug properly later.
A cloak of invisibility is basically easy-mode. Some ideas to make it less powerful include:
In particular, enemies in the temple of destiny shouldn't be so easy to bypass with invisibility.
Right now a knowledgeable player can consistently rob the castle at level 0 with no risk. Given that access to the castle vault is a reward for retrieving the orb of mastery, I think it shouldn't be so simple to rob it. Right now it is actually part of the new character tedium. It's just an item on the currently oversized checklist of things to do every time you create a new character. It helps massively, but it's honestly too large of a boost for a level 0 character anyways, imo.
I'm toying with the idea of making the traps in the vault harder to disarm and having trifids guard the path to get to the vault.
Some items can only be used once per hour, such as the helm of teleportation and the holy symbol. When they check whether it has already been used in the current hour of the day, they fail to check whether it is a different day. If it is a different day, then you should be able to use the item again, regardless of whether the hour of the day is the same.
If there is too much unread text to display at once, the scrolling message buffer should wait for user input (ie. "more" prompt) before scrolling. This mainly comes up during combat with high level mobs. Ideally, there wouldn't be so much combat spam, but the scrolling message buffer shouldn't be losing messages like this, regardless.
It used to be that the moon phase was always displayed on-screen. Moon-phase, does not affect a lot, but it does have a significant impact in the areas that it does affect. I don't think it necessarily needs to be displayed on-screen at all times, but there should be some visibility into this. Maybe it can be handled like in NetHack, where it displays a message to the player when they start/load their game. We could also display a message when it changes.
I only encountered this once, but the level generation likely has a bug with a slim chance of occurring. Hopefully I can reproduce this while running the game in gdb so I can find the cause.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.