Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Sil

Reply
 
Thread Tools Display Modes
Old May 4, 2022, 00:09   #1
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Unofficial Sil rewrite

As I've mentioned over on the Beleriand thread, I'm doing a rewrite of Sil 1.3 based on modern Angband code. I knew going in that this was quite a task, and assumed it would take me some number of months; I'm currently aiming at six months (so end of June) to have something that compiles and runs, at least.

Largely for my own future benefit, I'm going to give an outline of what's done and what's to be done at roughly the 4-month mark.

Done:
  • Data files essentially done (some small tidying up required), along with most of the parsing of them;
  • Projection effects (balls, bolts, breaths etc);
  • Monster movement and AI;
  • Smithing (mostly - this was very difficult code, took over a month by itself, and will need a bunch of checking once I actually have a running game);
  • Songs;
  • Monster spells and other magic (staff effects, etc);
  • Combat, both player and monster.
Not done:
  • Abilities (some work done on this for smithing);
  • Player calculations (the at-least-once-per-turn checking of all the player's gear, abilities etc to determine things like resistance, stats and skills);
  • Line-of-sight (another section of difficult code);
  • Chests;
  • Object and monster creation and management;
  • Dungeon generation.
On the whole I'm pretty happy with how it's going. I hope it ends up being worth it
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old May 4, 2022, 23:42   #2
Bill Peterson
Adept
 
Join Date: Jul 2007
Location: Flyover country
Posts: 165
Bill Peterson is on a distinguished road
Send a message via AIM to Bill Peterson
Quote:
Originally Posted by Nick View Post
On the whole I'm pretty happy with how it's going. I hope it ends up being worth it
I'm sure it will be, I'll certainly play it and will look for bugs as best I can. I would hope that you've left as much of the debug code in as you can.

Have you left the vanilla tile graphics code in? Even though Quirk says it's impossible I'd like to take a stab at making at least the Gervais tiles work.

After this project is finished are you thinking of being the maintainer for Sil 1.3, making updates and changes?
Bill Peterson is offline   Reply With Quote
Old May 5, 2022, 08:06   #3
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Quote:
Originally Posted by Bill Peterson View Post
I'm sure it will be, I'll certainly play it and will look for bugs as best I can. I would hope that you've left as much of the debug code in as you can.

Have you left the vanilla tile graphics code in? Even though Quirk says it's impossible I'd like to take a stab at making at least the Gervais tiles work.
I will certainly be leaving debug code in. I'm planning to leave tile code in too, although I probably won't have tiles actually operational at first.

Quote:
Originally Posted by Bill Peterson View Post
After this project is finished are you thinking of being the maintainer for Sil 1.3, making updates and changes?
Hahahahahahaha

The original reason behind doing this was to import a lot of it (combat and smithing at least) into Beleriand. It's safe to say that my plans for both projects are fluid.

My initial aim with Sil is to get it running and to be close (but possibly not identical) in gameplay to actual Sil 1.3. I don't actually know the game well enough yet to start changing it in a serious way, but anything is possible.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old May 5, 2022, 18:56   #4
Quirk
Swordsman
 
Join Date: Mar 2016
Posts: 462
Quirk is on a distinguished road
Quote:
Originally Posted by Nick View Post
  • Chests;
  • Object and monster creation and management;
  • Dungeon generation.
I would recommend adopting a different approach than Sil does here, but there will be some consequences which are tricky to predict or debug.

Sil's object/dungeon generation approach is to throw stuff at the wall and see if it sticks. Probabilistically, eventually it will. See for instance the while(TRUE) loop in generate_cave() in generate.c.

This is bad; it's an algorithm not guaranteed to terminate. It would be preferable to throw the entire thing away and use a deterministic algorithm.

For dungeon generation it's unlikely people will notice a difference. With object generation (one infinite loop here being in place_object in object2.c) the critical question has to do with mapping the way rarity works across, so the rarest items don't become significantly more or less rare. Understanding the failure cases from get_obj_num and how they actually impact the rarity calculations will be necessary if approximation of Sil 1.3 behaviour is desired.

Both of these are pieces of work I have long put off. It's possible they're not as gnarly as they look. From a Beleriand perspective it is probably more important to have comprehensible object generation and rarities that map to real percentages, so it may not be not worth devoting too much effort to replicating 1.3 behaviour unless you anticipate people playing this instead of original 1.3; this is a constraint I have that you possibly don't.
Quirk is offline   Reply With Quote
Old May 5, 2022, 23:19   #5
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Quote:
Originally Posted by Quirk View Post
ISil's object/dungeon generation approach is to throw stuff at the wall and see if it sticks. Probabilistically, eventually it will. See for instance the while(TRUE) loop in generate_cave() in generate.c.
Thanks, that's very useful advice. Angband has done a lot of removing of these non-terminating cases, so I'm likely to be able to just adopt existing code; your point about maintaining the probability distributions is a good one, though.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old June 26, 2022, 01:31   #6
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Quote:
Originally Posted by Nick View Post
I'm currently aiming at six months (so end of June)
Hahahahahahahahahahahahahahahahahahahaha not even close
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old August 7, 2022, 01:10   #7
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Update on the original post; I have now done:
  • Abilities;
  • Player calculations;
  • Object generation and (mostly) management;
  • Chests.
So this leaves:
  • Monster creation and management;
  • LoS (*shudder*)
  • Dungeon generation;
  • Character creation and game start (which I forgot about before);
  • Anything else I've forgotten.
Note that these are the bits I'm aiming to get done before even trying to compile, run and play the game; some things (like the tutorial) I will add later.
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old August 7, 2022, 05:23   #8
backwardsEric
Swordsman
 
Join Date: Aug 2019
Posts: 329
backwardsEric is on a distinguished road
Quote:
Originally Posted by Nick View Post
Note that these are the bits I'm aiming to get done before even trying to compile, run and play the game; some things (like the tutorial) I will add later.
I have changes for Angband 4.2 to allow for a tutorial mode and have the tutorial layout driven by a data file (rather than a special save file as in Sil). It still needs some tidying and more work on the draft tutorial in the data file. Because it introduces a new object type for the tutorial notes, it also breaks moving save files back and forth from other 4.2 versions. I'm not planning on putting it forward as a pull request until we've started making save file breaking changes for 4.3.
backwardsEric is offline   Reply With Quote
Old August 7, 2022, 13:17   #9
Nick
Vanilla maintainer
 
Nick's Avatar
 
Join Date: Apr 2007
Location: Canberra, Australia
Age: 57
Posts: 9,406
Donated: $60
Nick will become famous soon enoughNick will become famous soon enough
Quote:
Originally Posted by backwardsEric View Post
I have changes for Angband 4.2 to allow for a tutorial mode and have the tutorial layout driven by a data file (rather than a special save file as in Sil). It still needs some tidying and more work on the draft tutorial in the data file. Because it introduces a new object type for the tutorial notes, it also breaks moving save files back and forth from other 4.2 versions. I'm not planning on putting it forward as a pull request until we've started making save file breaking changes for 4.3.
That sounds brilliant
__________________
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
Nick is offline   Reply With Quote
Old August 8, 2022, 01:31   #10
davidk64
Rookie
 
Join Date: Jul 2009
Location: Canberra
Age: 58
Posts: 15
davidk64 is on a distinguished road
Thanks for the updates Nick (and backwardsEric). I check the forums each day hoping for news of Beleriand. I'm looking forward to seeing it!
davidk64 is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Unangband unofficial bug thread Philip Variants 29 February 3, 2012 14:35
Unofficial DAJAngband 1.31 bugs n' stuff buzzkill Variants 28 August 15, 2011 23:16
Unofficial Oangband release Nick Variants 101 September 4, 2009 16:47
Sangband - questions about latest offical/unofficial version NotMorgoth Variants 11 September 27, 2008 11:23
Screensaver needs to rewrite some code APWhite Vanilla 0 October 16, 2007 22:19


All times are GMT +1. The time now is 10:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.