![]() |
#21 | |
Swordsman
Join Date: Mar 2016
Posts: 453
![]() |
Quote:
Of the rest, it's sprawling and disorganised and repeats itself in far too many places. There is a lot of magic global nonsense going on. The interfaces for the tiles are limited in the extreme and I had to institute some very dirty hacks to make various overlays work. Anything related to the UI is a royal pain. Attempting to keep too tightly to the existing codebase risks inheriting its many and severe limitations. Probably the only thing worth studying in depth before reimplementing would be the monster AI - it's not horrendously complicated, and doesn't sprawl too badly by Sil standards, but it's non-trivial. Much of the rest would be faster and better implemented from scratch to modern coding standards. |
|
![]() |
![]() |
![]() |
#22 | |
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,367
Donated: $60
![]() ![]() |
Quote:
You're quite right about dead code. Whether you would ever want to redo Sil-Q on top of the finished product when it emerges is a whole nother question. The advantages would be better tile, UI and front end support; the disadvantages are obvious ![]()
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
|
![]() |
![]() |
![]() |
#23 | ||
Swordsman
Join Date: Mar 2016
Posts: 453
![]() |
Quote:
The fiddly stuff to rewrite around geometric calculations you probably already have from Angband, so this makes things much easier and you are probably the best placed to do this. The sound dispersal (for stealth/song) and morale system are probably the only interestingly algorithmic bits needing ported across. However, reading and understanding the existing code will be a substantial time cost and there are many elements that will still need design work after a reimplementation e.g. the level generation, which is currently following a terrible algorithm not guaranteed to terminate in a viable level, will still need to handle forge placement after an improved version is written. If you have the time and are interested in doing this, why not? Quote:
I am likely to pause Sil-Q development for quite a long time. If you wanted to use it as a basis for the refactoring I would have no issues with this - a lot of Sil bugs were fixed over the period I worked on Sil-Q - but I haven't made any significant attempts to clean the code up so it would be no easier as a starting point. |
||
![]() |
![]() |
![]() |
#24 |
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,367
Donated: $60
![]() ![]() |
Thanks, that helps my thinking along. We'll just see how it goes, I guess.
One of the benefits of doing this is that it has the potential to highlight places where the Angband code could be better written or organised - in fact, this has started to happen already.
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
![]() |
![]() |
![]() |
#25 |
Prophet
Join Date: Apr 2007
Location: Seattle, WA
Posts: 6,681
Donated: $40
![]() |
Quirk--
I don't think you are aware of how much the Angband codebase has improved, post 3.0.5--it doesnt look anything like NPP anymore, by and large. A lot of duplicated code is just gone, with loops and/or function pointers replacing case statements. |
![]() |
![]() |
![]() |
#26 | |
Swordsman
Join Date: Mar 2016
Posts: 453
![]() |
Quote:
My brief impressions last I looked at the Angband code were that it had been very much improved. Unfortunately though, moving Sil across to a newer cleaner framework involves parsing the existing tangle first. Last edited by Quirk; January 12, 2022 at 23:44. |
|
![]() |
![]() |
![]() |
#27 | |
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,367
Donated: $60
![]() ![]() |
Quote:
![]()
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
|
![]() |
![]() |
![]() |
#28 |
Swordsman
Join Date: Mar 2016
Posts: 453
![]() |
It's a bit of a shame that there is not (to the best of my knowledge) any source controlled repo available that tracks the development from NPP to Sil. This would have been useful to provide more context for many of the changes.
I imagine much of the item flags stuff around slays and resistances will port across straightforwardly. Sil's light level implementation shouldn't be too hard to replicate even if it doesn't perfectly align with what Angband does already. The abilities have quirks in places - many or most are quite simple, but a few require more book-keeping or add complexity to overly large functions such as those dealing with the player hitting or shooting a monster. One challenge is to identify the dead code which is not obviously dead - gated by variables that never take certain values in Sil. I think there's a bunch of randart stuff that falls under this umbrella. |
![]() |
![]() |
![]() |
#29 | ||
Vanilla maintainer
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,367
Donated: $60
![]() ![]() |
Quote:
Quote:
![]()
__________________
One for the Dark Lord on his dark throne In the Land of Mordor where the Shadows lie. |
||
![]() |
![]() |
![]() |
#30 | |
Swordsman
Join Date: Mar 2016
Posts: 453
![]() |
Quote:
Yup. Also the automaton, and Amiga support. I think there are a few flags in the Windows support also but it's been some months since I last had to wrestle with them. |
|
![]() |
![]() |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Status ailments | Derakon | Vanilla | 38 | March 20, 2017 13:54 |
Beleriand Status | Whelk | Variants | 44 | July 9, 2014 00:16 |
Beleriand | Nick | Variants | 32 | June 21, 2012 15:51 |
RogeBasin status. | PaulBlay | Idle chatter | 2 | July 2, 2009 14:33 |
The status of Sangband | sygoomei | Variants | 5 | February 16, 2009 17:17 |