![]() |
The future of Oangband?
So, I am back, and I am up for some tinkering with the Oangband code.
I am naturally asking if someone is interested receiving patches for it? Or, should I just keep my changes local? I am not interested in maintaining it, but if people are up for a team-based approach then I am interested. |
My recollection was that Nick (FAAngband author) was backporting his changes to Oangband.
|
Quote:
|
I am watching a video about Git, and it looks that it might be the solution to the problem.
|
Here is the github repository that I was going to use to move O110u to AngbandBase. Feel free to fork it, or set up your own repository with either 110 or 110u, and do whatever you feel is appropriate.
As far as I'm concerned, I would be delighted if O had a proper maintainer - I have really just been keeping the seat warm. Now you just have to fight it out with Bahman ;) |
Quote:
|
Quote:
https://github.com/CJNyfalt/Oangband in case someone is interested. No changes yet. :) |
Quote:
|
I have now added those local changes that I felt was most useful and acceptable to the general public. So if someone is interested, take a look.
Here is the list: Code:
Oangband 1.1.0 tweaked version I will probably take a look at AngbandBase stuff to merge in next. |
Quote:
As for 110u, well, it is missing one of the killer feature in 110, so I stuck to 110. |
Quote:
I am totally comfortable with having an "official" Oangband modernization repo, where interested players can port in UI improvements and code upgrades. I don't have much time to develop, but I can gate-keep and declare / version releases. Do people think this would be useful? If someone wants to become a real maintainer, I am happy to talk and see if our visions are compatible enough to hand over Oangband in name, or to do a fork. By the way, what is the missing feature in 110u? For what it's worth, in the unlikely event that I start working actively, Oangband is FAR from done. There are a huge number of fundamental gameplay improvements still waiting to happen. Some would require heavy refactoring, some would not. My gameplay priorities: - Further improvement to AI. This would really want a cleaner internal API for the AI module. Add cooldowns to monsters spells; and make the monsters even smarter. - Further reductions in tedium. Even fewer, even better drops. Remove the incentive to grind for consumables. Further rework stat gain. - Extend the idea of archery spells with more combat magic. - Give more nifty tricks to Warriors, but without losing the pure fighter feel. Possibly by implementing combat techniques as activations or side effects for weapons and/or armor. Also with more warrior-friendly sources of shapeshifting. - Make the early game a little more forgiving. Ramp up late game difficulty. - Solve the big-three balance breaking abilities: Banishment, Teleport-Away, Destruction. - Reduce the role of speed. Add in more "specialized speed" for casting, combat, and archery. Somehow make this smoother and less confusing than it currently is (i.e. specialized speed to affect cooldowns rather than - Add cooldowns to many player abilities and rebalance around them. - Add good things from Angband: gain/lose potions, new identify semantics, no_sell as default :) - Generally rebalance artifact weapons. Some are way too general (*cough* Ulmo *cough*) and I would like to make sure each class always have different favorites. - Reduce damage spikiness in the late game, and restrict high-end healing. Fixes to things I was never really happy with: - Set items. Maybe ditch them. - Variable weapon dice. These are great, but they need to interact better with squelching and pseudo-id. - The Ent player race. I don't know... they are super cool, and yet they feel weird. - Druids are too good at too many things. Maybe move martial arts to the specialty list for them, rather than default? - Remove some of the more boring specialities and develop/balance/add the ones that really affect gameplay. |
Quote:
My issue is that I don't trust myself to keep O true to its vision, so having someone else audit and add stamps of approval would be a relief. Quote:
EDIT: What is your feeling about removing trap-doors, tele-level monster attacks and forget attacks? |
BTW, how well does the Oangband Windows port work? Is there any need for the dos ports anymore?
|
Update:
I created an oangband organization and moved the main repository there, this allows me to push to my own fork and allows me to add people to the project. So, the new link is: https://github.com/oangband/Oangband EDIT: I added Nick and takkaria to the project with pull rights since they have showed interest by watching. I would also add Bahman as owner once he gets registered on github. |
Quote:
Here is some of the stuff I said when releasing 110u: Quote:
|
Quote:
The best way would probably be that you fork and patch your version up to 1.1.0u, and then once Bahman is on board, we can start to pull the best bits in. EDIT: You might also want to watch my own fork, since I push my changes there. |
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
For the second, I noticed some changes that looked interesting but I am not up to date on what exactly has changed. For the third, I agree with it, but I feel that it might be a bit too heavy-handed, and would prefer something a bit more elegant. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
Thank you - that's a very interesting list, almost all of which applies to V. We have already tinkered with both tele-away and destruction in the dev versions, so we'll see how people like the changes in 3.3. We also have a ticket to look at Banishment (but probably not until 3.4).
On new ID semantics, Eddie has been working for a long time on what he calls "rune-based ID", where @ can identify the property of (e.g.) Resist Fire on any item after seeing it on one item. I am quite excited to see how this works - he's been talking about it for a long time and I think it has the potential to take ID much closer to where it ought to be (interesting and low overhead). So if it does work, I think it is very likely takkaria will want it in V. |
Quote:
Quote:
Quote:
I also did not say "remove"; if they can be reinvented in a better way, great. For teleport away, I wonder if we can (1) remove beaming completely, (2) offer a partial saving throw to reduce the range. Banishment is the biggest candidate for removal. Quote:
Buffs: High cooldowns enable more varied and powerful buffs. For example, you could have a low level Haste spell that lasts for say 10 base speed turns and due to uptime tops out at 10% up time. I won't even speculate if you could bring back GoI in some form... Debuffs: Really reliable debuffs have to either be weaker or less spam-able. This can also be implemented by giving the monster resistance to repeated debuffing. Healing (spells and potions): Limiting the frequency of the biggest heals, while also limiting the most "spikey" damage is a way to make the difficulty of the game feel less random and more fair. This is harder than it sounds, though, since it also means reworking escape mechanics (particularly teleport, teleport away, and teleport level). At the very least, a long cooldown gives us the ability to give a big heal to non-priests without breaking the game completely. Quote:
Quote:
- Second best attack spells, both for hard targets and for large groups - Second best heals - Great utility spells (hard to argue about "best" here) - Versatile shape shifts - Unarmed melee is good enough to be a primary attack from beginning to end. Maybe they just need general tone-down of both MA damage and spell damage. Quote:
|
Quote:
Quote:
Quote:
Mages & Druids tends to have elemental attack spells, which encourages them to find out about resistances and pick the right one. Priest & Necromancer have few attack spells, so they tend to use the same ones over and over. Now, what will happen if you add cooldowns? I suspect that we will see people either use spells that gets resisted, start to melee or use any wands they have. Only the last seems fine, and only if they have wands. Quote:
Quote:
As for unarmed melee, you miss out any resists from the weapon if you go unarmed. |
For what it's worth, Vanilla development versions have non-beaming Teleport Other, and it hasn't horribly broken the balance.
|
I have been busy cleaning up the code and removing ports that are no longer supported in vanilla.
However, there is something I can not do myself, and that is testing on OS X and Windows. So, could someone test those ports, please? I suspect that OS X will not work, but AFAIK I have done nothing that would break Windows. |
Sure, I can test windows if you like. O 1.1.0u doesn't work on OSX but 1.1.0 might. Nick knows more about what changed though. What am I supposed to test and where do I find it?
|
Quote:
https://github.com/oangband/Oangband This thread has instructions on how to get the code, for Vanilla, just replace angband with Oangband and oangband at the appropriate places: http://angband.oook.cz/forum/showthread.php?t=4302 As for what to test, I am mostly interested if you are able to compile and play, or if there are any gruesome errors that prevent it from working. |
I have been thinking about my current goals of development, and the following are in or under consideration:
- Upgrade and sync code with Vanilla, focusing on the main-xxx and z-xxxx files. - Study how pseudo-id works in Vanilla and if it is appropriate to adopt it. - Remove amnesia attacks. - No sell option. - Look over the build system and consider possible replacements for GNU autohell. |
Quote:
Quote:
|
Quote:
Quote:
I will have more to say on this at some point :) |
Quote:
Quote:
|
Quote:
Quote:
|
Quote:
|
Quote:
I fixed the stealth bug, leaving the vision radius issue. Considering that I improved infravision so that it is usable, I will probably just have unlight grant more infravision, instead of using your dark vision. EDIT: I decided to have unlight add +2 to infravision. Maybe that is too much considering that I did improve infravision? |
Ran into a strange bug: Turning on PRIVATE_USER_PATH removes colors from inventory. :confused:
Otherwise, I am progressing nicely with adding the new file handling functions. What is causing issues however, is the x-char stuff because it is such an ugly hack that I'm having problems to stomach adopting it. |
Quote:
|
A bit of update of on the ports:
- main-x11: Almost updated, only key handling and moving over to the new file-handling version. - main-gcu: Progressing. - main-win: Some progress, looks doable. - main-crb: The diff is so big, that I can't really change this file gradually. It looks like the best best is to copy over the vanilla version, and hope for the best. |
Quote:
|
Quote:
|
Quote:
|
Quote:
|
I decided to try out the next competition character to get a feel of things that needs fixing, and it clearly stands out that the early game is too annoying.
Not because of hard monster, no. It is because of lack of consumables and how hard it is to get enough money stocked up to start diving. The main problems seems to be identify and word of recall. Lack of identify stops me from clearing out stuff from inventory/home, while lack of WoR keeps me from going deeper than dlvl 3. I have to consider different solutions to these problems. For example: - Like I mentioned earlier: study the vanilla identification model. - Just make the scrolls really cheap and always in stock. - A Diablo II approach of using scroll books. Making these unsellable and give players a decent stock at start would speed up gameplay while preventing them from being abused for money. I am also open to other ideas. |
Quote:
Unless the comp character simply has horrible pseudo-ID skill, having stronger pseudo-ID, or simply fixing pseudo-ID, would help immensely. WoR isn't necessary at all (in the early game) if you're willing to abuse the elevator-staircase mechanic (playing with connected stairs). If you want to do some maintainer work, yank CLW form the mage spellbook, add low level potions of restore mana that just restore 10 SP or 10% or something so mages don't have to rest all the time. Resting sucks! |
Quote:
Quote:
|
Quote:
Identify: The most important thing is not to pick up everything you see. Sure that dagger on dlevel 1 might be a Defender, but it probably isn't. In fact it almost certainly isn't worth an identify scroll, or even a charge on a staff of perception. I rarely pick up weapons or armour before dlevel 10. Wands and staves are much better, as they are more likely to be valuable and can largely be identified by use, cautiously of course. Scrolls and potions are best identified by selling in the early game. WoR: I don't use WoR to go down in the early game. I often don't use it to go down in the mid or late game, as I often don't want to go down to my max depth. So I am using one scroll per trip. I just need to make sure that I collect some stuff worth one scroll per trip. Since I typical dive to at least dlevel 12 on my first trip I am almost certain to find something. In general I don't think you should be considering changes in game mechanics until you have played more. You risk solving problems which don't really exist. |
Quote:
|
Quote:
|
Quote:
|
I have to say that the most frustrating things are ports that I am not able to compile and error-check (windows, OS X) and syncing code with vanilla and getting a lot of formating issues in the diffs.
As for the X-chars and UTF8 issues, I think the best solution is to not include anything before Vanilla has adopted UTF8. The relevant code lines that calls on x-chars are few and stand out so I can avoid them. Continuing to the identify issue, I am starting to consider changing pseudo-id so that it is instant or very fast, but no longer detects curses. How does that sounds? |
Quote:
|
Quote:
|
Quote:
Another idea is to nerf "It feels deathly cold". First, make the sticky-curse more rare. Let characters wield bad (formerly cursed) items without knowing it, without receiving the "deathly cold" message. This leaves it up to the player to notice it through in-game observation, or pseudo {cursed} or {bad}status to appear. With the comp character, I was low on ID (as always), but I did have a store bought scroll of remove curse. I started wielding un-ID'd rings figuring I would just remove any bad (sticky-cursed) rings. I ended up wearing an un-ID'd non-cursed Ring of Aggravation for a loooooong time before I realized it. |
What version of Oangband is the newest (and has the original Unlight)? I'd like to look at it...
|
Quote:
http://www.oangband.com/ |
Quote:
|
Quote:
Test with and without using a light source. |
Quote:
|
So, I tried to implement the new key queue and it succeeded mostly. The main problem is that arrow keys do not work on the main map. Now I have an idea on how to fix this issue, if I could only find the place where the movement commands are read.
EDIT: I can use ; + direction key to walk, but not just direction key. |
It looks like the issue is with keymaps. I think I'll have to revert all changes to util.c and make a wrapper for Term_inkey instead.
Input handling is really the messiest part on *bands, and the place where my previous attempt to straighten out the code has failed. EDIT: Managed to get it right, I modified Term_inkey instead of using a wrapper. |
After spell of slow progress, I have finally managed to increase my pacing again.
I have managed to split files.c into four source-files, like Vanilla, so it is now easier to get an overview of them. I have also finally decided to tackle the z-rand, and got some decent progress there. |
I was able to remove the macro handling without breaking keymaps. So it was not that which broke the arrow keys last time I tried to upgrade to the new input system. This will help progress a lot.
|
I want to hear opinions about haggling in stores. I will most likely throw out this feature unless someone has a real good argument against doing that.
|
Quote:
... but also, the storekeeper stocks better stuff once s/he knows I'm a good haggler. I'm not sure if O has all the same stuff that S 1.0 had, though. |
Quote:
|
Quote:
But I don't see why retaining a haggling option would mean being stuck with an old store interface ... ? |
Quote:
|
Quote:
|
Quote:
|
All times are GMT +1. The time now is 01:09. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.