TONPPAMF

The Official NPPAngband And NPPMoria Forum

You are not logged in.

Announcement

November 28, 2016 - NPPAngband forum has been migrated to a new host. SSL has been enabled so please use https:// if possible.

#1 2013-04-13 08:57:42

RunningAway
Member
Registered: 2012-02-27
Posts: 246

NPPMoria

If you guys didn't know, Jeff is porting Moria to the NPP code base.

Thread here: http://angband.oook.cz/forum/showthread.php?t=5936

It's going to be one big, happy program, NPP and Moria in one binary.

So I managed to untangle the mess of merging these changes into my cleanup project and got it to run.

Haven't tried the Moria side because it's still supposed to be broken.

Still, I have a few comments already:

First, I don't like having to select which mode every time it runs.  Let the player pick when creating a new character but then select the mode from the savefile.  I realize that this may be technically difficult, but it would be much more user-friendly.

Second, did you break the savefile format because my savefiles don't work any more.

Offline

#2 2013-04-13 09:32:05

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: NPPMoria

The reason the game has to prompt you immediately is so sets all of the arrays to the proper size (monster races, objects, ego-items, artifacts, races, classes, etc).  Angband and Moria are different sizes, and the game will crash if these aren't set right.  That is the very first thing the game does, before it even loads the splashscreen or reads any of the edit files.  By the time the game loads a savefile, it is too late.  As of right now, I can't prevent this, but I think I can eventually find a way around it.  Also Quickband will eventually be merged into this game as well.

In the meantime, if you want to bypass the game menu, go to line 1470 in init2.c and replace this line:

/* Which game are we playing? */
-get_game_mode();
+game_mode = GAME_NPPANGBAND;

I think savefile compatability is broken because I changed the total number of mage spells (in player.h, line 58... "PY_MAX_SPELLS").  There were 5-6 mage spells in Moria that aren't in Angband.  If you change it back, and play NPP, you shouldn't have any issues.

On that latest commit, I think Moria would crash if you tried to start with an elf or a half-troll, and after that it is just a regular game of Angband.  My progress since then is getting the moria town completed, as well as Moria-style dungeons.  Keep in mind Moria is still completely unplayable for many reasons.  For example, in Moria player speeds and monster speeds are set from 8-14 (10  is normal speed).  In Angband they go from around 80-155 or so (with 100 being normal speed).  So if you do get Moria open everybody moves VERY, VERY slowly.  I still have to convert the monster and player speeds so they get the right amount of energy each turn.  Having graphics mode on is kind of funny, because the moria monsters are mapped to Angband monster tiles, so townpeople are walking molds, etc......  It has a ways to go before anybody should even waste any time opening the game.

Offline

#3 2013-04-13 10:08:12

RunningAway
Member
Registered: 2012-02-27
Posts: 246

Re: NPPMoria

I could make the "memory is cheap these days" argument and say just set the arrays to the bigger of the two.  It's not like it uses a huge amount of memory anyway.  As I recall, Moria could run in DOS and other 16-bit systems.  It's the reason for many of the limits on things that still exist in the game.

I posted the actual error for the savefiles in the bugs section.

For monster speeds, you're converting them to the Angband system, right?

I got some nice flashbacks looking at all the objects that were added back in.

Offline

#4 2013-04-13 13:27:44

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: NPPMoria

RunningAway wrote:

I could make the "memory is cheap these days" argument and say just set the arrays to the bigger of the two.  It's not like it uses a huge amount of memory anyway.  As I recall, Moria could run in DOS and other 16-bit systems.  It's the reason for many of the limits on things that still exist in the game.

True about the size of the arrays, but it still has to load the right edit files, and it has to do so before the savefile load is started.  The moria code is all very alpha.  I hope I come up with a better solution before 1st beta release.

The Moria source did some pretty clever things to save memory.  It had to run off of a 1.44 floppy.  For example, objects and terrain both existed in the same array.  When an object was dropped, the empty floor space was literally replaced with the object.  When it was picked up or destroyed, it was replaced with an empty floor space.  The flags for monsters breathing fire are the same for a piece of equipment that resists fire, making the source code *extremely fun* to try to read and decipher (he says sarcastically).

You would also be amazed at how much code has survived unchanged in Angband for almost 25 years.  That game was extremely well thought out.


RunningAway wrote:

For monster speeds, you're converting them to the Angband system, right?

No.  I am going to start with the moria system, and try to think of something better.  I have always been annoyed by the Angband incremental speed system, in particular having to wear 6 pieces of equipment that each offer a small boost to speed. The angband system was designed to prevent abuses like pillar dancing.  With 4gai anyone who tries to pillar dance an Ancient CHromatic Dragon is going to get blasted with poison from around the corner, so hopefully something different can be implemented. 

RunningAway wrote:

I got some nice flashbacks looking at all the objects that were added back in.

That's what this is all about.  My own personal nostalgia. smile

Offline

#5 2013-04-13 16:57:33

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: NPPMoria

Update, I think it should be easy to check if a savefile is present, and then read the first byte of a savefile to read which game it is for.  That way, the player should only have to specify a game mode when they play a new game.  What do you think?

I think the biggest problem will be with monster memory on linux systems where only one savefile exists.  Maybe monster memory should be backed up in a separate file?  That way it can be shared between savefiles.

Offline

#6 2013-04-13 19:07:21

RunningAway
Member
Registered: 2012-02-27
Posts: 246

Re: NPPMoria

A magic number in the file makes sense.  This breaks savefile compatibility, but I was thinking preface each file with "Ang" then 3 letters for the variant, then the version stamp.  So "AngNPP" and "AngMor" or something like that.  And then the other variants might pick it up.

I thought monster memory was saved in the savefile.  If that's the case, then making sure the savefile is only used for for the mode it was created for, NPP or Moria, should solve the problem.  A dead character should only be resurrected in the same mode the file was first saved as.

Incidentally, this would stop the somewhat entertaining error message you get if you accidentally try to load the game in the file "Makefile".

Offline

#7 2013-04-15 03:57:08

ramela
Member
From: Helsinki
Registered: 2004-10-01
Posts: 420

Re: NPPMoria

I feel that separating Movement Speed, Attack Speed, Shooting Speed and Spellcasting Speed would make the game(s) better.

It also opens up *a lot* of design space for races, classes, items and monsters.

One basic thing you can do is make it so that attacking always costs 100 time units (energy or something?), and speed only affects the amount of blows you get on your attack (with refunds when you don't use all your blows) and everything recovers time (energy?) at the same rate. This mostly *eliminates Pillar Dancing in melee* completely, since when you attack, all the monsters will get to attack you / move before you get to run away.

This change also creates some opportunities for "gaming the system" where a fast moving monster can move to catch up to a player that has just attacked and make an attack before the player has recovered his time units (or energy or something?). Whether that is a good thing or not is up for debate. To me it seems cool (imagine a Vampire speeding next to a victim and attacking in basically every Vampire movie ever), but some situations like a unseen monster turning a corner and breathing/spellcasting/firing something could cause some Negative Play Experiences...

Keeping the amounts of moves you get per 100 time units in integers would propably be a good idea in terms of cognitive load on players keeping track of the tactical situation.

Food for thought, enough for a variant, propably...


style7,NPPAngband.png

Offline

#8 2013-04-15 19:40:34

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: NPPMoria

ramela wrote:

I feel that separating Movement Speed, Attack Speed, Shooting Speed and Spellcasting Speed would make the game(s) better.

It also opens up *a lot* of design space for races, classes, items and monsters.

One basic thing you can do is make it so that attacking always costs 100 time units (energy or something?), and speed only affects the amount of blows you get on your attack (with refunds when you don't use all your blows) and everything recovers time (energy?) at the same rate. This mostly *eliminates Pillar Dancing in melee* completely, since when you attack, all the monsters will get to attack you / move before you get to run away.

Hi Ramela,

Good to see a post from you. I know you have taken up other hobbies, but hopefully occasionally you will give NPP a shot.  I think there have been enough changes since you last played that you might find some surprises.

I think this would be a good thing.  The hard part of making it apparent to the player what is happening.  There is already plenty of variance in energy-to-move due to terrain, and the player already recovers energy with unused attacks.  But it is difficult to explain "onscreen" what is going on, so I don't know if the player knows how to take advantage of this.

Offline

#9 2013-04-17 02:41:01

ramela
Member
From: Helsinki
Registered: 2004-10-01
Posts: 420

Re: NPPMoria

Hey Jeff.

I pop my head in every now and then. Yeah, it turns out that my kids growing up means that a lot of my free time is spent on playing games with them instead of single player games. (I recommend Small World and Ticket to Ride for 9+ year olds and Magic: the Gathering for 12+ year olds.)

I've tried NPP recently, I like the new quest system but haven't made it past statgain yet, so I can't give very comprehensive opinions. I also don't play enough to comment on difficulty level issues.

Playing all these board games has certainly sifted my game design sensibilities towards more minimalism over a . The value of a more minimalistic game system design can be seen by comparing the system in Master of Orion 2 to the one in Master of Orion 3. smile

For example, the more I play the more I dislike the 18/XX stat presentations and want integers for stats.

In terms of the current discussion, making things more apparent for the player and the tactical situation easier to grasp, is why I would advocate using integers for the amount of blows/shots/whatever. Under a new system where monsters and players commit to using a whole turn to attacking (because you cannot know for sure how many hits and misses you get) but not for movement, non-integer discounts for movement in native terrain can be used in my opinion.

The problem becomes, as you say about presenting this information on screen. I think the best technology we have, so far, for these things is showing them on lore/recall screens, similar to the way we list how many points of STR/DEX you need for the next blow. When you look at a monster, you could print some comment about how many squares you can move on current terrain before the monster gets his next move or something.

Another idea would be to sort the monster list by the monsters energy, so that the monsters who are next up for moves are at the top of the list...

I think once we have more information available players will learn to take advantage of it.


style7,NPPAngband.png

Offline

#10 2013-04-17 09:56:55

RunningAway
Member
Registered: 2012-02-27
Posts: 246

Re: NPPMoria

I don't like the 18/xx form either.  It's a relic of old D&D games anyway.  The newer ones use straight numbers.

The range is 3 to 18/220.  Why 3?

Assuming no change in base, using straight numbers, it is 3 to 40.  That loses the "fractional" bit 18/123 -> 30, which would affect gameplay (right now it's possible that a small stat loss won't have any real effect: 18/128 -> 18/121).  Using 30 to 400 preserves that.

Offline

#11 2013-04-17 10:18:04

murphy
Member
Registered: 2007-03-17
Posts: 275

Re: NPPMoria

3 minimum also comes from D&D days!  You threw three 6-sided dice and got a number between 3 and 18.  Then later came increases to 18/01 etc

Offline

#12 2013-04-17 12:58:57

camb
Member
Registered: 2006-01-29
Posts: 707

Re: NPPMoria

I dislike the 18/XX stat presentations and want integers for stats.

Does it really make a difference? It's just a scale.

Though amps *should* go to 11... smile

Cameron

Offline

#13 2013-05-18 17:40:10

CyclopsSlayer
Member
Registered: 2007-10-22
Posts: 104

Re: NPPMoria

The easiest, though dirty, conversion would be to consider each of the old 10% as a full integer.

18/07 remains 18
18/22 becomes 20 (18 + (22/10))
18/220 becomes 40 (18 + (220/10))

the other way would collapse the stat brackets based on one of the bonus categories;

18 remains 18
18/01-39 becomes 19
18/40-59 becomes 20
...
18/220 becomes 30

It has been ages since I looked at any Angband/Moria code, but didn't the old stat roller use something like, 1d3 + 1d4 + 1d5 + 1d6  rather than 3d6?

Offline

#14 2013-05-19 07:41:29

NPPAngband
NPPAngband Maintainer
Registered: 2004-07-01
Posts: 1,647
Website

Re: NPPMoria

The game actually does make that conversion.  And that converted stat is what is used in practically every stat calculation in the game.  The 18/100 stat is really just used for screen display purposes only.

I had been so long since I looked at it I had to sourcedive as well....the formula for initial stat generation is: 5 + 1d3 + 1d4 + 1d5.

Offline

#15 2013-05-20 06:05:47

ramela
Member
From: Helsinki
Registered: 2004-10-01
Posts: 420

Re: NPPMoria

The only reason for the existence of the 18/XXX stats is allowing for sub 1 stat gains near 18/100.

Going into integer stats with a static 1 point stat gain would be best IMO. It's is not like anyone enjoys grinding the last few percentiles of stat gain anyway.


style7,NPPAngband.png

Offline

Board footer

Powered by FluxBB