Code Monkey home page Code Monkey logo

Comments (36)

Uukrull avatar Uukrull commented on May 18, 2024 3

NPCs sometimes appear as the player sprite; here's few examples:
Amb

This also happens with the original Amiga version so I don't think it's a bug:

016

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024 2

@Pa9an

All your reported bugs should be fixed in the most recent TestRelease.

About the NPCs looking like the player: As @Uukrull already mentioned, this is no bug. To be more precisely there are no sit or sleep sprites for NPCs at all.

NPCs only have sprites for standing/moving. The sprites for sitting and sleeping are always taken from the player sprites. I guess this was done to reduce space as you would need many additional sprites otherwise.

Fun fact: The only exception is the grandfather. As he is no real NPC that can move around he was implemented as a static map object. So he basically is part of the map. His sprite (upper part of the bed with the head) is therefore a map tile sprite. This sprite is different from the player's sleeping sprite, hence the different face. This is also the reason why cuddling with grandpa looks a bit weird as the head sprites overlap.

from ambermoon.net.

a1exh avatar a1exh commented on May 18, 2024 1

Too bad I sold a lot of broken stuff (I didn't remember they couldn't be sold) and I feel like I cheated, so I'll have to start over :(

Throw away the same amount of gold that you would have spent repairing them?

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024 1

The crash after battle should now be gone.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024 1

No worries :)
Is there anywhere to download the previous 1.0 Test build, I think it was from last Thursday?
Don't find it here on Github...or am too dumb to find it :)

At the moment I replace the same release so there are no previous versions. I would create too many versions otherwise. But maybe I should release another 0.9.x pre-release with a relatively stable state.

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

I finally tried 0.9b and soon after 0.9.1.

There are still a few bugs (if not specified otherwise, the same happens in both versions). This seems to be the best place to put them (creating an issue for each seems overkill)

  • when using an item that displays a long text (Book of Arachnids) there is no mouse scrolling at the end (which works in dialogs)

  • when opening a chest with right click in center in 3D: Cursor does not change immediatly

  • eye icon disabled in chests

  • no shortcuts for Yes/No

  • music played is almost always the opening theme.

  • after a while, the game crashes (might be only on map change) with "All audio buffers are already full and queued."

    • 0.9.1 also dumps this:
   at Ambermoon.Audio.OpenAL.AudioBuffer.Fill(UInt32 source, Byte[] data)
   at Ambermoon.Audio.OpenAL.AudioOutput.StreamData(Byte[] data)
   at Ambermoon.Data.Legacy.Audio.SongPlayer.Start(IAudioOutput audioOutput, Byte[] data)
   at Ambermoon.Data.Legacy.Audio.Song.<>c__DisplayClass8_0.<Play>g__Start|0()
   at Ambermoon.Data.Legacy.Audio.Song.Play(IAudioOutput audioOutput)
   at Ambermoon.Game.ContinueMusic()
   at Ambermoon.Game.PlayMusic(Song song)
   at Ambermoon.Game.PlayMusic(Song song)
   at Ambermoon.Game.PlayerMoved(Boolean mapChange, Position lastPlayerPosition, Boolean updateSavegame, Map lastMap)
   at Ambermoon.Game.Start2D(Map map, UInt32 playerX, UInt32 playerY, CharacterDirection direction, Boolean initial)
   at Ambermoon.Render.Player3D.MoveTo(Map map, UInt32 x, UInt32 y, UInt32 ticks, Boolean frameReset, Nullable`1 newDirection)
   at Ambermoon.Game.Teleport(UInt32 mapIndex, UInt32 x, UInt32 y, CharacterDirection direction, Boolean& blocked, Boolean force)
   at Ambermoon.Game.<>c__DisplayClass407_0.<Teleport>g__RunTransition|0()
   at Ambermoon.Game.Update(Double deltaTime)
   at Ambermoon.GameWindow.Window_Update(Double delta)
   at Silk.NET.Windowing.Internals.ViewImplementationBase.DoUpdate()
   at Silk.NET.Windowing.WindowExtensions.<>c__DisplayClass2_0.<Run>b__0()
   at Silk.NET.Windowing.Internals.ViewImplementationBase.Run(Action onFrame)
   at Silk.NET.Windowing.WindowExtensions.Run(IView view)
   at Ambermoon.GameWindow.Run(Configuration configuration)
   at Ambermoon.Program.Main()
AL lib: (EE) alc_cleanup: 1 device not closed

Battles in the cellar were fine, but it got a little weird when encountering the first bandit:

  • in the first round the bandit killed egil with a crit - that should not happen. This actually happened twice, but only on the bandits first attack.
  • in 0.9.0 stuff seems to still break too much: on the second try I won the battle (the bandit fled), but everyones weapon broke during the fight (long sword, short sword, dagger). Did not seem to be quite as bad in 0.9.1 - maybe just weird luck.
  • a character can still do melee attacks with no weapon when holding a buckler (probably because the attack value is 1)

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Thanks for reporting. I will have a look.

But for the last point: It is also possible to attack in original with only a buckler equipped. The game only checks for "Attack > 0" as long as you can reach anyone.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

I added the eye icon to chests and the the shortcuts for Yes and No buttons. The first one with the missing scroll is not reproducable on my end. It scrolls just fine. At the end you have to click twice to close like in the original.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

I also can't reproduce the music stuff. On my end the right song plays and no crash occurs as the buffers are cleaned up everytime. Are you running on Windows?

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

@kermitfrog The critting bandit has the following reason. You detected that on battle start the monster values are set to a random value (0.95 to 1.04) of the max values. The bandit has a current crit value of 0 but a max value of 5 so he will have his crit set to something around 5.

Either this is not used for abilities but only for HP/SP and attributes or the data is wrong. I guess it's the former so I will remove the ability randomness.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

I looked at the research thread and noticed a small detail I overlooked:

For all Attributes, Abilities, LP and SP: set max value = current value
Then:

For all Attributes and Abilities:

But if this is the case I wonder why there are max values in the data. As I mentioned earlier the max values often have values that are multiples of 99. Maybe you can have a look at the code and find out how the max values are used before they are overwritten by the current value?

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

But for the last point: It is also possible to attack in original with only a buckler equipped. The game only checks for "Attack > 0" as long as you can reach anyone.

Hm.. you are right. I thought the code checked for weapon type but was wrong.

I also can't reproduce the music stuff. On my end the right song plays and no crash occurs as the buffers are cleaned up everytime. Are you running on Windows?

Nope, I'm using Linux.
I listened to it for a longer time and noticed that the tracks change. After cliciking "continue" in the main menu, the song just keeps playing. After a while, the song switches to the correct song and later restarts with the opening. If I change level, it restarts with the opening song, but the correct song will come eventually, so it seems the correct song is added to the buffer on each level change.

@kermitfrog The critting bandit has the following reason. You detected that on battle start the monster values are set to a random value (0.95 to 1.04) of the max values. The bandit has a current crit value of 0 but a max value of 5 so he will have his crit set to something around 5.
&
[..]
But if this is the case I wonder why there are max values in the data. As I mentioned earlier the max values often have values that are multiples of 99. Maybe you can have a look at the code and find out how the max values are used before they are overwritten by the current value?

The value should only be modified if the random value is < 1.0. So if a monster has 50/80 in its data, the values are set to the following depending on the random value:

0.95 --> 48 / 50
1.0   --> 50 / 50
1.04 --> 50 / 50

I think the value is rounded down for LP/SP and up for anything else, but I don't remember that exactly.

I looked at the code again but could not find any use of the max values. At the start of the monster preperation function, memory is reserved, the base monster is loaded and copied to the new memory. Next all the "max" values are set to the "current" values. If the former max values are used, it must happen in a different function - but I did not find anything.

I suspect the max values may have been originally set as an orientation template for the desinging process. All the mosters resembling sentient races have max values matching a race & class (limits to match playable characters), while the others have 99 everywhere.
Maybe they had some plans here that just weren't implemented.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

@kermitfrog Can you please retest the issues with the test release of 0.9.3: https://github.com/Pyrdacor/Ambermoon.net/releases/tag/v0.9.3beta (or just the current commit as you want).

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

Tested it and most bugs are fixed :)
I checked the appropriate boxes (the one for crits, too - at least it did not happen).

The long text scrolling problem is still there. To be more precise: when the text is at it's end, I click. Now the mouse cursor is still showing the "click" icon and moving the mouse should scroll the text.
What happens is that moving the mouse at that point only moves the cursor and not the text.

In 3 battles against a total of 5 bandits, 2 daggers and 1 robe broke. Not sure if this is within norm - have to look at the break chance and test more.

Yes/No shortcut works. Visual feedback would be nice.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Ah now I get the problem about the text scroll. Will fix this. I'll also check the button feedback. I'll add these two to the initial list.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

About the item breaking. I guess those start items are very fragile. I remember that they broke quiet often but I am not sure if it is too much. The chance should be value / 1000 now.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

I had a look. A dagger has a break chance of 2.5% and a robe 1.5%.

The question is now how many hits were dealt in those 3 battles.

A dagger should break on average within 40 hits, a robe within 67 hits. Considering 3 battles this would be around 13 hits per battle for the dagger and 22 hits per battle for the robe.

If the formula was wrong I would expect the dagger to break within 4 hits and the robe within 6-7 hits.

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

I'm not 100% sure, but I think a robe just broke after a miss. Break checks should only be performed if the attack check succeeds. This would explain why it feels like items break too much.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

0.9.3 should add the long text scrolling for items. And missed attacks will no longer check for breaking items.

A lot of other stuff was fixed as well. Hopefully not too many new bugs were added.

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

Tested 0.9.3 and the bugs seem fixed :).
But I think scrolling the text with the mouse is too fast - maybe slow by x2 or x3?.

A while ago we got a MS Surface, which is still running windows (but only until the pen works properly on linux -.-). So I tried the windows version to see if there are any issues with touchscreen / pen support.
I didn't get to that part though because even the standalone version exits, telling me about missing openAL32.dll (after version/language selection).

On the first start of 0.9.3 on windows, I also had a weird bug where the window was smaller than usual - but the mouse cursor seemed to expect a bigger window size. This made clicking OK difficult, as placing the real mouse cursor in the lower right corner was barely enough to get the game mouse cursor on the left edge of the OK button.
This seems to happen when there is no config file in the directory.

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Yeah for now you have to install OpenAL manually on Windows.

I also stumbled onto the first time window size issue. Will have a look at it.

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

Follow these steps to crash 0.9.3b:

  • open inventory
  • from an item stack, select a quantity between 1 and (max - 1)
  • press RMB
  • left click on empty inventory slot

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Is hopefully fixed in 0.9.4.

from ambermoon.net.

kermitfrog avatar kermitfrog commented on May 18, 2024

Yay! 1.0(test) :)
The crash from 0.9.3b is fixed now, but I noticed a few new input issues with the numpad.
I'll post them in #62

from ambermoon.net.

Pa9an avatar Pa9an commented on May 18, 2024

Hello,
first of all, great work getting this marvelous game ported to Linux (and others) - loved that on Amiga and was the only RPG I actually finished back then :) (Now followed by Albion on Linux ;))

Now, after finishing Albion I gave the game a new start on UAE half a year ago - only to find out later that games saved there appear to work with your port!

So I tried one of them today with your latest v1.0 Test build and it worked - well, at least to a point where Nelvin, equipped with a stone slingshot shooting from 2nd row ran out of ammo.
The game then crashed saying something like "exception: character used long ranged weapon without needed ammo". The window disappeared too quick to exactly take note.

Not sure if this has to do with the loaded save game or is a "true" bug.
(Maybe you can answer if loading UAE saves is actually supported or not?)
...and sorry for the long introduction...

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Hi . Thanks for the nice words.

Yes the savegames are 100% compatible. The crash you describe sounds like a bug inside the battle logic of the remake. I will have a look at it tomorrow.

Thanks for reporting.

from ambermoon.net.

Pa9an avatar Pa9an commented on May 18, 2024

You're welcome.
Here's few more...sorry:

NPCs sometimes appear as the player sprite; here's few examples:
Amb
Amb2

Broken items (weapons etc) seem to be sellable as if they were not broken.
(I kept a "collection" of broken items in a chest in order to have them fixed later in the game and sell them then for a higher price than the repair would cost). The merchant should refuse to take them when they are broken.
Out of curiosity I still gave it a try - and he took them regardless.

Actually, when selling items to a merchant, the shop's items count of what you sold to him doesn't increase. If e.g. he owned one axe in his shop and you sell him 3 more, the count remains at 1. (I didn't try, though, if he may actually have the 4 axes then, but only the number shown at the item won't change)

Music is "droning" (hoffe das ist das richtige Wort für "leiern") sometimes. Especially in the Orc cave or in Freiherr Georgs house the music just doen't play/sound right.

In the crypt, when banning the undead with the (holy?) horn, they still leave behind their belongings.
Should not only the ones that you actually fight/defeat leave that behind? Banned = gone? Or is it only the gold that you miss when they got banned?

from ambermoon.net.

Uukrull avatar Uukrull commented on May 18, 2024

Thanks for all the fixes @Pyrdacor
I tested all of them and seem fixed. Too bad I sold a lot of broken stuff (I didn't remember they couldn't be sold) and I feel like I cheated, so I'll have to start over :(

from ambermoon.net.

Uukrull avatar Uukrull commented on May 18, 2024

Throw away the same amount of gold that you would have spent repairing them?

Where can I repair them?
Anyway, I'm not too far from the start and the only time consuming moment was killing tons of zombies at the cemetery just to get money and experience.

from ambermoon.net.

Pa9an avatar Pa9an commented on May 18, 2024

Thanks for the fixes. Still need to test them out, was hindered by a crash now, though.
After fighting Ghuls in the crypt the game crashed with "object reference not set to an instance of an object".
Actually, one of the ghuls flails got broke, maybe there is the issue (as you just fixed broken items handling)?
I tried twice, both times the flail broke, both times the games crashed.
Quick fix?

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

Sorry won't have time today anymore. Fixed bugs like a berserk already. Tomorrow I'll have a look.

from ambermoon.net.

Pa9an avatar Pa9an commented on May 18, 2024

No worries :)
Is there anywhere to download the previous 1.0 Test build, I think it was from last Thursday?
Don't find it here on Github...or am too dumb to find it :)

from ambermoon.net.

Uukrull avatar Uukrull commented on May 18, 2024

I started over and encountered the bug in the first combat, after killing the lizard in the well:

Object reference not set to an instance of an object.
at Ambermoon.Game.Update(Double deltaTime)
at Ambermoon.GameWindow.Window_Update(Double delta)
at Silk.NET.Windowing.Internals.ViewImplementationBase.DoUpdate()
at Silk.NET.Windowing.WindowExtensions.<>c__DisplayClass2_0.b__0()
at Silk.NET.Windowing.Internals.ViewImplementationBase.Run(Action onFrame)
at Silk.NET.Windowing.WindowExtensions.Run(IView view)
at Ambermoon.GameWindow.Run(Configuration configuration)
at Ambermoon.Program.Main()

Saves.zip

from ambermoon.net.

Uukrull avatar Uukrull commented on May 18, 2024

After reverting this commit b4629ad no more crashes here.

from ambermoon.net.

Wickez avatar Wickez commented on May 18, 2024

By the way, is the wind devil, wind howler, earthquake, and dissolve errors code or graphic related? If the second, maybe I could adjust/edit/manipulate the sprite sheet for these spells (I could even draw a new one or something)? Also, I can't remember does this happen in the original too (launched in WinUAE)?

from ambermoon.net.

Pyrdacor avatar Pyrdacor commented on May 18, 2024

No they are code related. The sprites are fine. I improved most of them already but thanks. Some just look a bit wrong or different from the original as I did not reverse engineer the spell animation code but implemented it on my own and made it as close as possible to the original.

from ambermoon.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.