Client rewrite β-testing

Announcements about major changes in Haven & Hearth.
User avatar
loftar
Posts: 9093
Joined: Fri Apr 03, 2009 7:05 am
Location: Your character database

Client rewrite β-testing

Post by loftar »

Heya, it's just about time, isn't it?

The rewritten client is functional enough that I think it warrants some public testing, for the brave who dare it. Here are some things to keep in mind:

There are bugs, so stability may be a bit up to luck at the time of writing this. You might not want to clear that bat cave using the new client, at least not right now (though hopefully that will improve soon enough). The remaining bugs are part of the reason I'd like some public testing, however, because they are of the kind that, although they're not exactly rare, I'm having trouble reproducing them "on demand", which makes it a wee bit harder to debug them. If anyone can find somewhat reliable ways to reproduce them, that would be great! Of course, if you have bugs that I haven't found, please report those too.

I've already mentioned it several times previously, but it probably bears repeating: The rewrite itself doesn't do anything for the people who suffer from GPU-side performance problems. For those who are beset by poor GPU-side performance, I'd still like to fix that, but doing so is not part of the rewrite itself, however it will make it more reasonable for me to actually work on that in the future, and doing so should not require any large rewrites in itself, but rather tuning and the introduction of detail settings. CPU-side performance should, however, be quite a bit better. Exactly how much better may depend on your particular circumstances, but to be sure, there should be no case in which performance (CPU- or GPU-side) is worse than on the current client, so if you find it to be, then please report that as a bug.

If you feel like it, please test with :par on as well as :par off, which controls parallel (multi-core, if you will) processing of certain things, the default being "off". Ideally, the default should be switched to "on", which can improve performance by quite a lot in certain circumstances (particularly in scenes with lots of animations going on), but I've found it to sometimes have suboptimal effects on the garbage collector, for some reason. There may also be hidden bugs in there, since I've tested it less. Please report your findings.

Currently known bugs:
  • Removing equipment can leave outlines from the previous equipment on the equipment screen.
  • There seems to be some kind of semi-rare issue that can degrade the performance of the client until it is restarted. It seems to be related to issuing lots of needless glBufferData commands, but I'm still trying to figure out what it even is.
  • There is a graphical bug in that the yule-light "lens-flare" effect doesn't show up.
The following functionality is known to be missing:
  • There are no graphical options whatsoever yet, not even to turn off shadows. Will be coming as soon as I get some of the bugs quashed.
  • More graphical options should be added.
  • There may be other things that I've simply forgotten, so if you find a feature missing, please report it!
All that being said, the test client is available here.

The source code, for client modders, is available in the usual repos in the "render" branch. Most of the interfaces should be pretty stable, I believe (or hope, at least). The one exception I can think of is the tick handling in SkelSprites, but I'd be surprised if that is something you're relying on anyway.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
vatas
Posts: 5250
Joined: Fri Apr 05, 2013 8:34 am
Location: Suomi Finland Perkele

Re: Client rewrite β-testing

Post by vatas »

HYPE
Haven and Hearth Wiki (Maintained by volunteers - test/verify when practical. Forum thread

Basic Claim Safety (And what you’re doing wrong
TL:;DR: Build a Palisade with only Visitor gates.)

Combat Guide (Overview, PVE, PVP) (Includes how to escape/minimize risk of getting killed.)
User avatar
stya
Posts: 1037
Joined: Wed May 21, 2014 3:13 pm

Re: Client rewrite β-testing

Post by stya »

Big big hype :3
Image
TheUltimateC
Posts: 57
Joined: Sat Jul 28, 2018 10:30 pm

Re: Client rewrite β-testing

Post by TheUltimateC »

The first time, the portrait frames on login where actually black. Than trying to load my char it gave a similar error for the resource of the wardrobe. Now this happens every time i click login (and yes one char wears indeed a toga in his portrait.)

Code: Select all

java.lang.RuntimeException: Delayed error in resource gfx/borka/toga-cloth (v14), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool$Queued.get(Resource.java:386)
	at haven.Resource$Pool$Queued.get(Resource.java:355)
	at haven.Session$CachedRes$Ref.get(Session.java:119)
	at haven.Session$CachedRes$Ref.get(Session.java:112)
	at haven.Composited.nmod(Composited.java:397)
	at haven.Composited.chmod(Composited.java:531)
	at haven.Avaview.updcomp(Avaview.java:184)
	at haven.Avaview.draw(Avaview.java:220)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.Charlist.draw(Charlist.java:117)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.Resource$LoadException: Load error in resource gfx/borka/toga-cloth(v14), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool.handle(Resource.java:447)
	at haven.Resource$Pool.access$1100(Resource.java:332)
	at haven.Resource$Pool$Loader.run(Resource.java:583)
	... 1 more
	Suppressed: haven.Resource$LoadException: Load error in resource gfx/borka/toga-cloth(v14), from cache source backed by FileCache(http://game.havenandhearth.com/render/)
		... 4 more
		Suppressed: haven.Resource$LoadException: Load error in resource gfx/borka/toga-cloth(v14), from local res source
			... 4 more
		Caused by: java.io.FileNotFoundException: Could not find resource locally: gfx/borka/toga-cloth
			at haven.Resource$JarSource.get(Resource.java:239)
			at haven.Resource$Pool.handle(Resource.java:431)
			... 3 more
	Caused by: java.lang.NullPointerException
		at haven.FastMesh$MeshRes.init(FastMesh.java:262)
		at haven.Resource.load(Resource.java:1402)
		at haven.Resource.access$600(Resource.java:40)
		at haven.Resource$Pool.handle(Resource.java:435)
		... 3 more
Caused by: java.lang.NullPointerException
	at haven.FastMesh$MeshRes.init(FastMesh.java:262)
	at haven.Resource.load(Resource.java:1402)
	at haven.Resource.access$600(Resource.java:40)
	at haven.Resource$Pool.handle(Resource.java:435)
	... 3 more
Last edited by loftar on Sat Jan 11, 2020 12:49 pm, edited 1 time in total.
Reason: Added code tags
User avatar
loftar
Posts: 9093
Joined: Fri Apr 03, 2009 7:05 am
Location: Your character database

Re: Client rewrite β-testing

Post by loftar »

TheUltimateC wrote:

Code: Select all

	Caused by: java.lang.NullPointerException
		at haven.FastMesh$MeshRes.init(FastMesh.java:262)
Right, it turns out some resources need to be recompiled because they're really old and contain long deprecated features. I thought I had found them all, but apparently not.
Now the flaw with this test setup is that I can't update the resources without also updating the corresponding resource on the real client, which means that even though I've now fixed the toga, it'll remain cached for you until I do a main game update, unless you can purge the cache.

For those who feel capable of doing so, the method is to locate hafen.jar in the launcher cache (or anywhere else), and run the following command, substituting a working path to hafen.jar:

Code: Select all

java -cp hafen.jar haven.HashDirCache purge http://game.havenandhearth.com/render/
Either way, thanks for finding that!
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
Gelom90
Posts: 34
Joined: Mon Jan 16, 2012 7:41 pm

Re: Client rewrite β-testing

Post by Gelom90 »

Code: Select all

java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextNode(Unknown Source)
	at java.util.HashMap$KeyIterator.next(Unknown Source)
	at haven.PView$ScreenList.draw(PView.java:268)
	at haven.PView.draw(PView.java:211)
	at haven.MapView.draw(MapView.java:1399)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.GameUI.draw(GameUI.java:829)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
first fight :roll:

Code: Select all

java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextNode(Unknown Source)
	at java.util.HashMap$KeyIterator.next(Unknown Source)
	at haven.PView$ScreenList.draw(PView.java:268)
	at haven.PView.draw(PView.java:211)
	at haven.MapView.draw(MapView.java:1399)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.GameUI.draw(GameUI.java:829)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
User avatar
stya
Posts: 1037
Joined: Wed May 21, 2014 3:13 pm

Re: Client rewrite β-testing

Post by stya »

Got the VAO on first login and also this:

Image
Image
User avatar
SovietUnion
Posts: 266
Joined: Mon Mar 12, 2012 4:42 am
Location: Brno, Czech Republic

Re: Client rewrite β-testing

Post by SovietUnion »

I tried the map loading stuck bug after exiting a building. After a few tries I managed to reproduce the bug. But now I cannot log into the account. I can log into my other accounts but not to the main one (via the new client). Whenever I log in, the below error is shown and game crashes. Doesn't even let me select a different character from the same account. Weird, will test further.

Code: Select all

java.lang.RuntimeException: Delayed error in resource gfx/borka/hanky (v3), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool$Queued.get(Resource.java:386)
	at haven.Resource$Pool$Queued.get(Resource.java:355)
	at haven.Session$CachedRes$Ref.get(Session.java:119)
	at haven.Session$CachedRes$Ref.get(Session.java:112)
	at haven.Composited.nmod(Composited.java:397)
	at haven.Composited.chmod(Composited.java:531)
	at haven.Avaview.updcomp(Avaview.java:184)
	at haven.Avaview.draw(Avaview.java:220)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.Charlist.draw(Charlist.java:117)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.Resource$LoadException: Load error in resource gfx/borka/hanky(v3), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool.handle(Resource.java:447)
	at haven.Resource$Pool.access$1100(Resource.java:332)
	at haven.Resource$Pool$Loader.run(Resource.java:583)
	... 1 more
	Suppressed: haven.Resource$LoadException: Load error in resource gfx/borka/hanky(v3), from cache source backed by FileCache(http://game.havenandhearth.com/render/)
		... 4 more
		Suppressed: haven.Resource$LoadException: Load error in resource gfx/borka/hanky(v3), from local res source
			... 4 more
		Caused by: java.io.FileNotFoundException: Could not find resource locally: gfx/borka/hanky
			at haven.Resource$JarSource.get(Resource.java:239)
			at haven.Resource$Pool.handle(Resource.java:431)
			... 3 more
	Caused by: java.lang.NullPointerException
		at haven.FastMesh$MeshRes.init(FastMesh.java:262)
		at haven.Resource.load(Resource.java:1402)
		at haven.Resource.access$600(Resource.java:40)
		at haven.Resource$Pool.handle(Resource.java:435)
		... 3 more
Caused by: java.lang.NullPointerException
	at haven.FastMesh$MeshRes.init(FastMesh.java:262)
	at haven.Resource.load(Resource.java:1402)
	at haven.Resource.access$600(Resource.java:40)
	at haven.Resource$Pool.handle(Resource.java:435)
	... 3 more
Notable characters: Cpt. Danko, Kng. Danko

LS of MorningWood (as of W7)
North Star market owner (W11)
King of North Star Kingdom & Market (W12)
LS of MorningWood (W13), quit early cause reasons
Open village of North Star (W14)

"Not really. But meh.. who needs proper communication anyways"
User avatar
jorb
Posts: 18715
Joined: Fri Apr 03, 2009 7:07 am
Location: Here, there and everywhere.

Re: Client rewrite β-testing

Post by jorb »

Moved to Announcements.
"The psychological trials of dwellers in the last times will be equal to the physical trials of the martyrs. In order to face these trials we must be living in a different world."

-- Hieromonk Seraphim Rose
User avatar
stya
Posts: 1037
Joined: Wed May 21, 2014 3:13 pm

Re: Client rewrite β-testing

Post by stya »

Going in a cave and getting out very often gets me stuck on waiting for map data, if I hearth back it stays like that (clicking makes the UI flicker), also got a few new error messages while trying around:
In/out cave (in my cluttered village), when going out of the cave (many times):

Code: Select all

haven.render.RenderTree$SlotRemoved
	at haven.render.RenderTree$TreeSlot.chstate(RenderTree.java:620)
	at haven.render.RenderTree$TreeSlot.ostate(RenderTree.java:652)
	at haven.RUtils$StateNode.update(RUtils.java:104)
	at haven.RUtils$StateTickNode.autotick(RUtils.java:140)
	at haven.render.TickList.lambda$tick$0(TickList.java:135)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.render.TickList.tick(TickList.java:140)
	at haven.PView.tick(PView.java:141)
	at haven.MapView.tick(MapView.java:1421)
	at haven.Widget.tick(Widget.java:702)
	at haven.GameUI.tick(GameUI.java:856)
	at haven.Widget.tick(Widget.java:702)
	at haven.UI.tick(UI.java:145)
	at haven.JOGLPanel.run(JOGLPanel.java:362)
	at java.lang.Thread.run(Unknown Source)
Clicking early on stuff when the client rendering is not finished yet x2:

Code: Select all

java.lang.AssertionError
	at haven.render.gl.GLDrawList.add(GLDrawList.java:940)
	at haven.render.RenderList.syncadd(RenderList.java:65)
	at haven.render.RenderList.asyncadd(RenderList.java:83)
	at haven.MapView$Clicklist.draw(MapView.java:1152)
	at haven.MapView.checkgobclick(MapView.java:1244)
	at haven.MapView.access$1700(MapView.java:42)
	at haven.MapView$Hittest.run(MapView.java:1654)
	at haven.MapView.mousedown(MapView.java:1725)
	at haven.Widget.mousedown(Widget.java:742)
	at haven.GameUI.mousedown(GameUI.java:1087)
	at haven.Widget.mousedown(Widget.java:742)
	at haven.UI.mousedown(UI.java:334)
	at haven.UIPanel$Dispatcher.dispatch(UIPanel.java:70)
	at haven.JOGLPanel.run(JOGLPanel.java:354)
	at java.lang.Thread.run(Unknown Source)
Typing when rendering is not finished x2:

Code: Select all

java.lang.NullPointerException
	at haven.MenuGrid.globtype(MenuGrid.java:522)
	at haven.Widget.globtype(Widget.java:818)
	at haven.Widget.globtype(Widget.java:818)
	at haven.GameUI.globtype(GameUI.java:1083)
	at haven.Widget.globtype(Widget.java:818)
	at haven.RootWidget.globtype(RootWidget.java:44)
	at haven.UI.keydown(UI.java:295)
	at haven.UIPanel$Dispatcher.dispatch(UIPanel.java:92)
	at haven.JOGLPanel.run(JOGLPanel.java:354)
	at java.lang.Thread.run(Unknown Source)
Cooldown not showing at all in combat? (not sure if it's just normal in vanilla)

Hearthing back while map was loading (stuck?) ended up with this (there should be no cliff there, also could not move):
Image
Client randomly stuck, I keep running without moving, after such freezes when I log back in nothing loads and I'm stuck, I log out/in again and it's back to normal (happens fairly often) :D
Image
Image
Receiving items from hearthfire (always reproducible for me):

Code: Select all

java.lang.RuntimeException: java.lang.InterruptedException
	at haven.render.gl.GLDrawList.draw(GLDrawList.java:919)
	at haven.ShadowMap$ShadowList.draw(ShadowMap.java:199)
	at haven.ShadowMap.update(ShadowMap.java:231)
	at haven.MapView.drawsmap(MapView.java:833)
	at haven.MapView.draw(MapView.java:1398)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.GameUI.draw(GameUI.java:829)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.InterruptedException
	at java.lang.Object.wait(Native Method)
	at java.lang.Object.wait(Unknown Source)
	at haven.render.gl.GLDoubleBuffer.get(GLDoubleBuffer.java:70)
	at haven.render.gl.GLDrawList.draw(GLDrawList.java:915)
	... 14 more
Another time stuck on loading map:

Code: Select all

java.lang.IncompatibleClassChangeError: Found interface haven.Tex, but class was expected
	at Mailbox.<clinit>(mailbox.cjava:11)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at haven.Widget$FactMaker$1.create(Widget.java:155)
	at haven.UI.newwidget(UI.java:161)
	at haven.RemoteUI.run(RemoteUI.java:66)
	at haven.MainFrame.run(MainFrame.java:257)
	at java.lang.Thread.run(Unknown Source)
Used wardrobe, client crashed with this, I get that error everytime I log back in or go in the room with that wardrobe:

Code: Select all

java.lang.RuntimeException: Delayed error in resource gfx/terobjs/wardrobeclothes (v8), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool$Queued.get(Resource.java:386)
	at haven.Resource$Pool$Queued.get(Resource.java:355)
	at haven.Session$CachedRes$Ref.get(Session.java:119)
	at haven.Session$CachedRes$Ref.get(Session.java:112)
	at Equed.<init>(eq.cjava:22)
	at sun.reflect.GeneratedConstructorAccessor40.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at haven.Utils.construct(Utils.java:1332)
	at haven.Sprite$2.create(Sprite.java:99)
	at haven.Sprite.create(Sprite.java:140)
	at haven.Gob$Overlay.init(Gob.java:74)
	at haven.Gob$Overlay.access$200(Gob.java:46)
	at haven.Gob.addol(Gob.java:241)
	at haven.OCache.overlay(OCache.java:523)
	at haven.OCache.lambda$overlay$19(OCache.java:564)
	at haven.OCache$GobInfo.apply(OCache.java:709)
	at haven.Loader.lambda$defer$0(Loader.java:180)
	at haven.Loader$Future.run(Loader.java:65)
	at haven.Loader$Future.access$200(Loader.java:40)
	at haven.Loader.loop(Loader.java:142)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.Resource$LoadException: Could not find specified material: 8
	at haven.FastMesh$MeshRes.init(FastMesh.java:271)
	at haven.Resource.load(Resource.java:1402)
	at haven.Resource.access$600(Resource.java:40)
	at haven.Resource$Pool.handle(Resource.java:435)
	at haven.Resource$Pool.access$1100(Resource.java:332)
	at haven.Resource$Pool$Loader.run(Resource.java:583)
	... 1 more
	Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/wardrobeclothes(v8), from cache source backed by FileCache(http://game.havenandhearth.com/render/)
		at haven.Resource$Pool.handle(Resource.java:447)
		... 3 more
		Suppressed: haven.Resource$LoadException: Load error in resource gfx/terobjs/wardrobeclothes(v8), from local res source
			... 4 more
		Caused by: java.io.FileNotFoundException: Could not find resource locally: gfx/terobjs/wardrobeclothes
			at haven.Resource$JarSource.get(Resource.java:239)
			at haven.Resource$Pool.handle(Resource.java:431)
			... 3 more
	Caused by: java.io.FileNotFoundException: res/gfx/terobjs/wardrobeclothes
		at haven.HashDirCache.fetch(HashDirCache.java:277)
		at haven.Resource$CacheSource.get(Resource.java:206)
		at haven.Resource$Pool.handle(Resource.java:431)
		... 3 more
Clicking (movement) is very weird, if I click near my character I move in some direction for a few tiles, after the character stopped moving, I click again with the same screen offset between my character and my mouse, the result can be very different... for example barely moving instead of moving 2 tiles.

Someone nearby opening a flute or yourself:

Code: Select all

java.lang.RuntimeException: Delayed error in resource ui/music (v41), from forking source backed by HTTP res source (http://game.havenandhearth.com/render/res/)
	at haven.Resource$Pool$Queued.get(Resource.java:386)
	at haven.Resource$Pool$Queued.get(Resource.java:355)
	at haven.Resource$CodeEntry$1.run(Resource.java:1133)
	at haven.Resource$CodeEntry$1.run(Resource.java:1127)
	at java.security.AccessController.doPrivileged(Native Method)
	at haven.Resource$CodeEntry.loader(Resource.java:1127)
	at haven.Resource$CodeEntry.load(Resource.java:1159)
	at haven.Resource$CodeEntry.get(Resource.java:1195)
	at haven.Resource.getcode(Resource.java:1063)
	at haven.Sprite.create(Sprite.java:138)
	at haven.Gob$Overlay.init(Gob.java:74)
	at haven.Gob$Overlay.access$200(Gob.java:46)
	at haven.Gob.addol(Gob.java:241)
	at haven.OCache.overlay(OCache.java:523)
	at haven.OCache.lambda$overlay$19(OCache.java:564)
	at haven.OCache$GobInfo.apply(OCache.java:709)
	at haven.Loader.lambda$defer$0(Loader.java:180)
	at haven.Loader$Future.run(Loader.java:65)
	at haven.Loader$Future.access$200(Loader.java:40)
	at haven.Loader.loop(Loader.java:142)
	at java.lang.Thread.run(Unknown Source)
Caused by: haven.Resource$LoadException: Wrong res version (33 != 41)
	at haven.Resource.load(Resource.java:1388)
	at haven.Resource.access$600(Resource.java:40)
	at haven.Resource$Pool.handle(Resource.java:435)
	at haven.Resource$Pool.access$1100(Resource.java:332)
	at haven.Resource$Pool$Loader.run(Resource.java:583)
	... 1 more
	Suppressed: haven.Resource$LoadException: Load error in resource ui/music(v41), from cache source backed by FileCache(http://game.havenandhearth.com/render/)
		at haven.Resource$Pool.handle(Resource.java:447)
		... 3 more
		Suppressed: haven.Resource$LoadException: Wrong res version (33 != 41)
			at haven.Resource.load(Resource.java:1388)
			at haven.Resource.access$600(Resource.java:40)
			at haven.Resource$Pool.handle(Resource.java:435)
			... 3 more
	Caused by: java.io.FileNotFoundException: res/ui/music
		at haven.HashDirCache.fetch(HashDirCache.java:277)
		at haven.Resource$CacheSource.get(Resource.java:206)
		at haven.Resource$Pool.handle(Resource.java:431)
		... 3 more
Every time when I enter shallow water or swamp from land (not when I leave snekkja to swim or enter shallow from deep water ? :shock: ):

Code: Select all

java.lang.NullPointerException
	at haven.render.InstanceList$InstanceState.inststate0(InstanceList.java:178)
	at haven.render.InstanceList$InstanceState.<init>(InstanceList.java:187)
	at haven.render.InstanceList$InstancedSlot.<init>(InstanceList.java:297)
	at haven.render.InstanceList.add0(InstanceList.java:531)
	at haven.render.InstanceList.update(InstanceList.java:658)
	at haven.render.RenderTree$Client.updated(RenderTree.java:74)
	at haven.render.RenderTree$TreeSlot.lambda$updtotal$3(RenderTree.java:593)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:593)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.updtotal(RenderTree.java:591)
	at haven.render.RenderTree$TreeSlot.upddstate(RenderTree.java:581)
	at haven.render.RenderTree$TreeSlot.chstate(RenderTree.java:626)
	at haven.render.RenderTree$TreeSlot.ostate(RenderTree.java:652)
	at haven.Gob$Placed.update(Gob.java:750)
	at haven.Gob$Placed.autotick(Gob.java:744)
	at haven.render.TickList.lambda$tick$0(TickList.java:132)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.render.TickList.tick(TickList.java:140)
	at haven.PView.tick(PView.java:141)
	at haven.MapView.tick(MapView.java:1421)
	at haven.Widget.tick(Widget.java:702)
	at haven.GameUI.tick(GameUI.java:856)
	at haven.Widget.tick(Widget.java:702)
	at haven.UI.tick(UI.java:145)
	at haven.JOGLPanel.run(JOGLPanel.java:362)
	at java.lang.Thread.run(Unknown Source)
Boating with a fast snekkja makes you do small jumps from time to time, like boating isn't smooth. Snekkja looks weird, I see water through it:
Image
I think the jump thing is tied to FPS somehow, when I have low fps this happens on horse:
Image
Tried to attack a fox from a boat...
Image
Log in while in combat (everytime):

Code: Select all

java.lang.NullPointerException
	at haven.Gob$Placed.getc(Gob.java:771)
	at haven.Fightsess.updatepos(Fightsess.java:90)
	at haven.Fightsess.draw(Fightsess.java:141)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.GameUI.draw(GameUI.java:829)
	at haven.Widget.draw(Widget.java:728)
	at haven.Widget.draw(Widget.java:733)
	at haven.RootWidget.draw(RootWidget.java:68)
	at haven.UI.draw(UI.java:150)
	at haven.JOGLPanel.display(JOGLPanel.java:319)
	at haven.JOGLPanel.run(JOGLPanel.java:378)
	at java.lang.Thread.run(Unknown Source)
Realm claim makes some water look really weird (shallow/deep water limit):
Image
Happened once when hearthing back while loading:

Code: Select all

java.lang.NullPointerException
	at haven.Skeleton$BoneOffset.lambda$null$6(Skeleton.java:1017)
	at haven.Skeleton$BoneOffset.forpose(Skeleton.java:1066)
	at haven.Following.xf(Following.java:86)
	at haven.Gob$Placed$Placement.<init>(Gob.java:669)
	at haven.Gob$Placed.curplace(Gob.java:766)
	at haven.Gob$Placed.added(Gob.java:755)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
	at haven.render.RenderTree$Slot.add(RenderTree.java:343)
	at haven.MapView$Gobs.addgob(MapView.java:489)
	at haven.MapView$Gobs.lambda$added$1(MapView.java:525)
	at haven.Loader.lambda$defer$0(Loader.java:180)
	at haven.Loader$Future.run(Loader.java:65)
	at haven.Loader$Future.access$200(Loader.java:40)
	at haven.Loader.loop(Loader.java:142)
	at java.lang.Thread.run(Unknown Source)
Similar, entering a house on a horse also happened once:

Code: Select all

java.lang.NullPointerException
	at haven.Skeleton$BoneOffset.lambda$null$6(Skeleton.java:1017)
	at haven.Skeleton$BoneOffset.forpose(Skeleton.java:1066)
	at haven.Following.xf(Following.java:86)
	at haven.Gob$Placed$Placement.<init>(Gob.java:669)
	at haven.Gob$Placed.autotick(Gob.java:739)
	at haven.render.TickList.lambda$tick$0(TickList.java:132)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.render.TickList.tick(TickList.java:140)
	at haven.PView.tick(PView.java:141)
	at haven.MapView.tick(MapView.java:1421)
	at haven.Widget.tick(Widget.java:702)
	at haven.GameUI.tick(GameUI.java:856)
	at haven.Widget.tick(Widget.java:702)
	at haven.UI.tick(UI.java:145)
	at haven.JOGLPanel.run(JOGLPanel.java:362)
	at java.lang.Thread.run(Unknown Source)
Broken UI for a sign (not just new client?)
Image
Crash in Asgard

Code: Select all

java.lang.NullPointerException
	at haven.render.Phong$CelShade.modify(Phong.java:83)
	at haven.render.gl.GLProgram.build(GLProgram.java:122)
	at haven.render.gl.GLEnvironment.getprog(GLEnvironment.java:496)
	at haven.render.gl.GLDrawList$DrawSlot.progfor(GLDrawList.java:251)
	at haven.render.gl.GLDrawList$DrawSlot.<init>(GLDrawList.java:340)
	at haven.render.gl.GLDrawList.add(GLDrawList.java:937)
	at haven.render.InstanceList.lambda$cladd$0(InstanceList.java:475)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.render.InstanceList.cladd(InstanceList.java:475)
	at haven.render.InstanceList.add0(InstanceList.java:508)
	at haven.render.InstanceList.add(InstanceList.java:574)
	at haven.render.RenderTree$Client.added(RenderTree.java:62)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:432)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
	at haven.render.RenderTree$Slot.add(RenderTree.java:343)
	at haven.render.Pipe$Op$Wrapping.added(Pipe.java:127)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
	at haven.render.RenderTree$Slot.add(RenderTree.java:343)
	at haven.StaticSprite.added(StaticSprite.java:81)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
	at haven.render.RenderTree$Slot.add(RenderTree.java:343)
	at haven.Gob$Overlay.added(Gob.java:108)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:452)
	at haven.render.RenderTree$TreeSlot.add(RenderTree.java:356)
	at haven.render.RenderTree$Slot.add(RenderTree.java:343)
	at haven.RUtils.multiadd(RUtils.java:46)
	at haven.Gob$Overlay.init(Gob.java:79)
	at haven.Gob$Overlay.access$200(Gob.java:46)
	at haven.Gob.ctick(Gob.java:214)
	at haven.OCache.lambda$ctick$0(OCache.java:115)
	at java.util.ArrayList.forEach(Unknown Source)
	at haven.OCache.ctick(OCache.java:119)
	at haven.Glob.ctick(Glob.java:134)
	at haven.JOGLPanel.run(JOGLPanel.java:358)
	at java.lang.Thread.run(Unknown Source)
When I see this (highly suspect the flag, like 99%)... No not the flag..
Image
Narrowed it down to this chunk, but it's cluttered... Not sure what it can be.
Image
Same crash here, suspect ghost pipe (or eventually gnomes cap)... No not ghostpipe :
Image
Opening belt while loading:

Code: Select all

java.lang.NullPointerException
	at haven.Gob$Placed.getc(Gob.java:771)
	at haven.GameUI.optplacement(GameUI.java:560)
	at haven.GameUI.addchild(GameUI.java:751)
	at haven.UI.addwidget(UI.java:181)
	at haven.RemoteUI.run(RemoteUI.java:78)
	at haven.MainFrame.run(MainFrame.java:257)
	at java.lang.Thread.run(Unknown Source)
Last edited by stya on Sat Jan 11, 2020 11:02 pm, edited 29 times in total.
Image

Return to “Announcements”