Javelin 1.4 (bug-fix release)

This is a minor release fixing a couple of non-critical but very annoying bugs in the game. Thanks a lot to Greg who has been helping with excellent bug reports!

Download the fixed version here

In 24 hours since releasing 1.3 we’ve had approximately a 1000 visitors to the announcement post, over 150 downloads and 10 Facebook shares! It’s somewhat less interest than has been shown in the earlier releases but these numbers are sure to continue rising as the weekend progresses πŸ™‚

If any other worthwhile bugs are noticed I will create other bug-fix releases so people can enjoy the game as best as possible. Don’t forget to subscribe to our news feed or to keep an eye on our subreddit to stay tuned about further releases!

Javelin 1.4 (bug-fix release)

19 thoughts on “Javelin 1.4 (bug-fix release)

  1. Greg says:

    It’s no problem, I really want to see this game grow. Also to anyone else reading the comments; I’ve found that surviving long enough to upgrade the towns is the way to go. I haven’t been taking advantage of that when I should.

    Liked by 1 person

    1. I’m happy to read that! You’re more than welcome to keep sending ideas and reports, it really helps a lot to get the game right as you can see!

      Like

      1. Greg says:

        First crash I’ve run into so far in this new verision. This one happened while the only choices left in the Research menu were upgrade labor, remove choice, and the airship. I selected remove choice out of curiosity and it have me only an option of removing it self with 2 out of 2 displayed about it. I tried selecting it and bam. At least my save file is safe though.

        java.lang.RuntimeException: #noDiscard discard choice
        at javelin.model.world.place.town.research.Research.finish(Research.java
        :236)
        at javelin.view.screen.town.ResearchScreen.select(ResearchScreen.java:43
        )
        at javelin.view.screen.town.SelectScreen.select(SelectScreen.java:127)
        at javelin.view.screen.town.SelectScreen.processinput(SelectScreen.java:
        109)
        at javelin.view.screen.town.SelectScreen.show(SelectScreen.java:68)
        at javelin.view.screen.town.TownScreen.select(TownScreen.java:58)
        at javelin.view.screen.town.SelectScreen.select(SelectScreen.java:127)
        at javelin.view.screen.town.SelectScreen.processinput(SelectScreen.java:
        109)
        at javelin.view.screen.town.SelectScreen.show(SelectScreen.java:68)
        at javelin.view.screen.town.TownScreen.(TownScreen.java:47)
        at javelin.model.world.place.town.Town.interact(Town.java:352)
        at javelin.view.screen.WorldScreen.react(WorldScreen.java:379)
        at javelin.controller.action.world.WorldMove.perform(WorldMove.java:49)
        at javelin.view.screen.WorldScreen.convertEventToAction(WorldScreen.java
        :110)
        at javelin.view.screen.WorldScreen.humanTurn(WorldScreen.java:92)
        at javelin.view.screen.BattleScreen.step(BattleScreen.java:206)
        at javelin.view.screen.WorldScreen.step(WorldScreen.java:178)
        at javelin.JavelinApp.run(JavelinApp.java:94)
        at java.lang.Thread.run(Unknown Source)

        Like

  2. Greg says:

    It seems the Wings of Flying might not be properly applying the extra movement granted in battle despite it updating the character sheet to reflect it. Though it does recognize the flying part.

    Like

  3. Greg says:

    So do the enemies guarding other towns scale up with the size of the towns the player possesses? I’ve started seeing some crazy stuff guarding places.

    Like

    1. Yes, each faction (color) acts as a computer player and they are constantly building new armies and taking more territory and even battling among themselves. Thanks for all the other bug reports (really, I mean it), I think I know what’s going on in most of them and they are easy fixes. I’ll get to them ASAP and make a new release since stuff like the screenshot you sent can be pretty bad.

      LMAO @ “Talk about a rebellion occuring.” BTW XD

      Like

    2. To be more specific: they don’t scale with the number of towns possessed. They scale with time, using labor in a similar manner to players: building new drafting options and growing their town sizes. They also recruit armies with labor, which is something players must spend XP on instead.

      Like

  4. Greg says:

    Uh, I don’t think the game like Formian Warriors. In this massive battle this guy just started taking forever to take his turn and then the game began to be unresponsive. Got to the point where I had to kill the game. Nothing really out there showed up in the log either. I wonder if he got into an endless loop. I think something similar nearly happened earlier with one but I’m not sure.

    Like

    1. Greg says:

      I also think there’s something weird going on with the towns I liberate. The recent ones I’ve been getting are like this in their research menus: http://imgur.com/3AQAH0o

      I selected half elf, but it just ate my labor and remained in the menu. Though they are recruitable.

      Wait I think I know what’s going on. I just noticed the monsters there and in the draft menu are the same exact ones I bribed away to avoid fighting to claim the town. So there’s some weirdness going on there.

      Like

      1. Greg says:

        So I actually selected Half-Elf 3 times. When I left town those 3 Half-elves were now keeping me out from the town. Talk about a rebellion occuring.

        Like

  5. Greg says:

    This one happened during another fight similar to the above. Exact crash was when a very young copper dragon was thinking.

    Exception in thread “Thread-11” java.lang.ArrayIndexOutOfBoundsException: 30
    at javelin.controller.ai.cache.CacheClearThread.run(CacheClearThread.jav
    a:38)
    Exception in thread “Thread-13” java.lang.ArrayIndexOutOfBoundsException: 30
    at javelin.controller.ai.cache.CacheClearThread.run(CacheClearThread.jav
    a:38)
    java.lang.ArrayIndexOutOfBoundsException: 30
    at javelin.controller.ai.cache.Cache.get(Cache.java:31)
    at javelin.controller.ai.cache.AiCache.getutility(AiCache.java:88)
    at javelin.controller.ai.valueselector.ValueSelector.getValue(ValueSelec
    tor.java:125)
    at javelin.controller.ai.valueselector.MaxValueSelector.processCurrent(M
    axValueSelector.java:40)
    at javelin.controller.ai.valueselector.ValueSelector.getValue(ValueSelec
    tor.java:139)
    at javelin.controller.ai.AbstractAlphaBetaSearch.alphaBetaSearch(Abstrac
    tAlphaBetaSearch.java:75)
    at javelin.controller.ai.AiThread.run(AiThread.java:45)
    java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 30
    at javelin.controller.ai.ThreadManager.think(ThreadManager.java:84)
    at javelin.view.screen.BattleScreen.computerTurn(BattleScreen.java:484)
    at javelin.view.screen.BattleScreen.humanTurn(BattleScreen.java:251)
    at javelin.view.screen.BattleScreen.step(BattleScreen.java:206)
    at javelin.view.screen.BattleScreen.mainLoop(BattleScreen.java:190)
    at javelin.JavelinApp.battle(JavelinApp.java:162)
    at javelin.JavelinApp.run(JavelinApp.java:97)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 30
    at javelin.controller.ai.cache.Cache.get(Cache.java:31)
    at javelin.controller.ai.cache.AiCache.getutility(AiCache.java:88)
    at javelin.controller.ai.valueselector.ValueSelector.getValue(ValueSelec
    tor.java:125)
    at javelin.controller.ai.valueselector.MaxValueSelector.processCurrent(M
    axValueSelector.java:40)
    at javelin.controller.ai.valueselector.ValueSelector.getValue(ValueSelec
    tor.java:139)
    at javelin.controller.ai.AbstractAlphaBetaSearch.alphaBetaSearch(Abstrac
    tAlphaBetaSearch.java:75)
    at javelin.controller.ai.AiThread.run(AiThread.java:45)

    Like

    1. Hi Greg, have you enabled “ai.cache” in your preferences.properties file? It should come by default as false (ai.cache=false). If you didn’t change the file can you check what’s in there for me, just this specific line? If you are on Windows please open the file with Wordpad or anything else that isn’t Notepad. This file should be on your Javelin folder by the way, alongside javelin.jar and monsters.xml

      I think this and the Forming Warrior bug you mentioned above are the same and I need the extra info to pinpoint what’s happening.

      I believe I have fixed everything else you reported here so far. As soon as we can get to the bottom of this one I’ll release 1.5 as well (unless any other bug reports come through in the meantime)! Thanks a lot, you’ve been very helpful! I hope you’re having fun while testing out the game πŸ˜€

      Like

    2. Hi Greg, thanks for the help again! When you launch the game a message like this should appear after the copyright (in the console output):

      “The AI will use 4 of 4 cores”

      Can you check it out for me and see if it shows “The AI will use 4 of 4 cores (cache enabled)” instead? As you say it should be disabled but if it is in fact disabled then the error you posted here should never happen so I’m pretty confused about what’s up.

      Also if you want to check out a few cheats for the game (or join in on the discussion) check out this info I just posted here πŸ˜‰ https://github.com/tukkek/javelin/issues/9#issuecomment-217268405

      Like

      1. Greg says:

        Oh, my mistake. I think I did toy with it once before. But I’m not sure if it was around the Formians or not as it’s currently false. It does show β€œThe AI will use 3 of 3 cores” message though

        Like

      2. No problem Greg, thanks for you help! I’m guessing both outstanding bugs you reported here should have been caused by the “ai.cache” being turned on. Actually I’m sure about one of them, the other one I’m just highly suspicious of – because the Formian Warrior doesn’t have any special abilities that could have caused the game to fall into an infinite loop (which seems to be the case) by and of itself.

        This does merit opening a new issue though so thanks for the feedback, I’m just afraid it won’t be a top priority right now as I explain there https://github.com/tukkek/javelin/issues/10

        By the way I’ve just now released 1.5 as well with the newest patches! Thanks for all the help! https://javelinrl.wordpress.com/2016/05/06/javelin-1-5/

        Like

  6. Matthew says:

    Hey there. Amazing little game of you have here… I’ve never seen anything quite so awesome, and i’m a d20 fan πŸ™‚ If you’re looking for some quality assurance help, i’m a beginner software dev and I would love to submit bug reports or even help you code at some point. (free of charge, of course!)

    My first bug/gameplay quality report:

    Little bug for you that seems to really limit the game: In terms of upgrading, the ability list runs out and then disapears once you research so many upgrades. This typically limits class selection to 1 class and only a handful of unevenly picked abilities. The ‘redraw all choices’ option in research does not generate a new list, so if theres say only 3 items left on the list of choices, and upgrades have already been removed, there is no way to get new upgrades. So the solution would be to make it so when you ‘redraw all choices’, the list refreshes entirely even if upgrades have been removed/used up. If you do fix this, remember that you’re going to have to deal with the fact that players will have their upgrade screen eventually flood with zillions of upgrades. (Might want to make it so they can voluntarily remove upgrades from there list to combat being overwhelmed)

    Like

Leave a reply to Greg Cancel reply