[DIY] making html5 wesnoth-themed roguelike
Moderator: Forum Moderators
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
It is in alpha stage right now, game features are just being implemented. Beta status (eventually) will mean feature freeze, bug hunt, balance tuning, etc..
Yep, unused or incorrectly used spells are wasted. It is supposed to be a fast-paced game, forcing player to explore the area..
Oops, new page. Just to keep latest link on top - v0.83a is released at:
http://www.wessense.org/
features magic spells and monter-to-monster combat
Yep, unused or incorrectly used spells are wasted. It is supposed to be a fast-paced game, forcing player to explore the area..
Oops, new page. Just to keep latest link on top - v0.83a is released at:
http://www.wessense.org/
features magic spells and monter-to-monster combat
-
- Posts: 76
- Joined: July 12th, 2014, 4:09 am
Re: [DIY] making html5 wesnoth-themed roguelike
Maybe you are right, but when I tested it didn't contribute to fun, but rather an annoyance. You can't tell exactly whether enemy is in range of the spell or not, so it's not a wrong decision which you made, from which you can learn better play, but rather a game flaw which just causes you to waste some time lurking again for another scroll.It is supposed to be a fast-paced game, forcing player to explore the area..
Btw, about the passage of real time in game. Movements are instant, and it's not always obvious what happened, but attack animations take very loooong time, which feels inconsistent for me. I'd prefer faster attacks and animated movements (just sliding is ok, not necessary walking for now) just to keep track of what's happening easier.
Also if you attack strong unit and run from it to the terrain it can't walk, all you need to do is just clicking on it, which could be automated. Like walking several squares, so is attacking until kill, for example Shift+Click, or something?
upd. I had once a frozen game in the 'enemy move state'
Re: [DIY] making html5 wesnoth-themed roguelike
I took a look at this, I have to say the look and feel is remarkably polished -- good job. Just a comment, I guess that your interface is currently set up to use backspace as the "skip this turn" button? But as I learned the hard way, on chrome that appears to cause the browser to navigate back one page Maybe a more natural way to do this is have just clicking on your character cause it to skip a turn?
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Click on the green box right under minimap - in the current version it should trigger "skip turn" action (notification text should appear). "Click on a player skips turn" - yep, this may also work, will implement it too. Thanks for the feedback!iceiceice wrote:I took a look at this, I have to say the look and feel is remarkably polished -- good job. Just a comment, I guess that your interface is currently set up to use backspace as the "skip this turn" button? But as I learned the hard way, on chrome that appears to cause the browser to navigate back one page Maybe a more natural way to do this is have just clicking on your character cause it to skip a turn?
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Ha, I just got one too, but I cannot find the problem in my code. It is definitely an artefact of monster vs monster fight, but I just cannot reproduce it. I will be grateful to anyone who can provide a reproducible test, or even describe the conditions which may trigger it (like "I charmed wose, and it got killed by a goblin pack in the desert").optimother wrote:upd. I had once a frozen game in the 'enemy move state'
-
- Posts: 76
- Joined: July 12th, 2014, 4:09 am
Re: [DIY] making html5 wesnoth-themed roguelike
I've just stuck upon a hang up again.
It's hard to reproduce the bug which happens on random map after hundreds of moves
I'd suggest to move the next_monster_move() call from the insane if's tree in 'friendly' case to just before line 689, I think it's the source of problem.
What I did — spawned horde of mirrors and set out on Hydra in swamp (somewhere around x=253,y=219). This happened at night, I hoped it would be sleeping, so I can't see what's happening there. The log in the top of the window just reported that image killed on every turn, then it hang up.
Btw, if we a starting to stuck upon rare bugs, maybe it'd be good to record all user actions and map generation options, so that we could report it. Like hero = mage, seed = 0.636440517148003 (from my frozen game), monsters = hordes, difficulty = hard, other options at their default values. And then 1140 moves )
Queueing with mMQ is clever, but it also is a hack, and seems fragile. When I experimented with game I used just stream of events instead of queue, so some actions could be done in parallel, because the game state is completely independent from animation.
It's hard to reproduce the bug which happens on random map after hundreds of moves
I'd suggest to move the next_monster_move() call from the insane if's tree in 'friendly' case to just before line 689, I think it's the source of problem.
What I did — spawned horde of mirrors and set out on Hydra in swamp (somewhere around x=253,y=219). This happened at night, I hoped it would be sleeping, so I can't see what's happening there. The log in the top of the window just reported that image killed on every turn, then it hang up.
Btw, if we a starting to stuck upon rare bugs, maybe it'd be good to record all user actions and map generation options, so that we could report it. Like hero = mage, seed = 0.636440517148003 (from my frozen game), monsters = hordes, difficulty = hard, other options at their default values. And then 1140 moves )
Queueing with mMQ is clever, but it also is a hack, and seems fragile. When I experimented with game I used just stream of events instead of queue, so some actions could be done in parallel, because the game state is completely independent from animation.
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Okay, this sounds like an off-screen animation issue to me..optimother wrote: What I did — spawned horde of mirrors and set out on Hydra in swamp (somewhere around x=253,y=219). This happened at night, I hoped it would be sleeping, so I can't see what's happening there. The log in the top of the window just reported that image killed on every turn, then it hang up.
Great idea!optimother wrote: Btw, if we a starting to stuck upon rare bugs, maybe it'd be good to record all user actions and map generation options, so that we could report it. Like hero = mage, seed = 0.636440517148003 (from my frozen game), monsters = hordes, difficulty = hard, other options at their default values. And then 1140 moves )
Well, either it is a turn-based strategy, or real-time strategy. Turn-based one cannot have parallel combats - this destroys the idea of local "ordered" strategies, really. Click-click-click ( 202 clicks per second to make zerg rush ) = RTS, which I don't want to implement. This is supposed to be a fast game for a lunch time, with no pressing "clock is ticking, your opponent already produced zealots" feeling. Also, Javascript is a single-threaded browser-based language, no *real* parallel execution occurs no matter what kind of messaging/queuing is used. Asyncronous execution in JS is just asyncronous, it is not truly parallel at all,optimother wrote:Queueing with mMQ is clever, but it also is a hack, and seems fragile. When I experimented with game I used just stream of events instead of queue, so some actions could be done in parallel, because the game state is completely independent from animation.
I will add a configuration option to allow normal/fast/instant moves. But, if you can tweak codes in a way so both models (turn-based/parallel) could be used interchangeably - I will definitely add it to the game.
-
- Posts: 76
- Joined: July 12th, 2014, 4:09 am
Re: [DIY] making html5 wesnoth-themed roguelike
Well, it might be, I didn't dig so deep to say for sure, but most possible candidate after my quick investigation is that next_monster_move is not called in some of branches. Because rendering loop worked ok. But mMQ was not empty and not dequeing.Shadow_Walker wrote:Okay, this sounds like an off-screen animation issue to me..
No-no-no, I'm not talking about RTS. The game is absolutely TBS, but rendering is independent.Well, either it is a turn-based strategy, or real-time strategy. ... This is supposed to be a fast game for a lunch time, with no pressing "clock is ticking, your opponent already produced zealots" feeling.
In your current implementation if I fired fireball I can't do anything until it hits target. The 'clock is ticking', but in opposite direction - you can't do it fast, you have to wait.
In my case you do something and the game state is changed instantly. Your turn is over (in a sense). But effects of your action are still producing some animation. Hope I'll have some time soon to finish it at least a little bit to show without making much insult
You render dozens of frames per seconds, so in this sense several animation can run in parallel, there's no need in language parallelism. I'm not talking about huge differences, but it feels really different.Also, Javascript is a single-threaded browser-based language, no *real* parallel execution occurs no matter what kind of messaging/queuing is used.
For me the biggest concern is not the time of move itself, but rather consistency (or lack of) of attack vs move.I will add a configuration option to allow normal/fast/instant moves.
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Heh, what if that fireball should have killed its target upon impact? In your scenario, I assume that enemy will start its action immediately, without waiting for the impact and associated damage calculation - is it correct? Kaboom, we have enemy mage who managed to send its own fireball in your direction while your fireball is still in flight. If this picture is not correct, than player has to wait anyway. Could you elaborate a little more on the mechanics of the improvement? Example with the exact action ordering and timing is a key here.optimother wrote:In my case you do something and the game state is changed instantly. Your turn is over (in a sense). But effects of your action are still producing some animation. Hope I'll have some time soon to finish it at least a little bit to show without making much insult
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
There will be no updates for the next couple of weeks as I will be traveling, so here is the 0.84a release:
http://www.wessense.org/
Features:
- added "exp to next level" indicator and text at the bottom
- animation speed control ( extra world parameter, set at the beginning of a game )
- Mirror Image clones now earn exp for player
- day/night now affects Undead and Orc attacks
- click on player triggers "skip turn"
- be careful with Holy Book now, defenders may surprise low-level characters
Fixes:
- a few minor fixes
- off-screen animations are now skipped. It should fix reported game freeze, and will speedup clone army combat.
Since there are ~8000 lines of code, there must be 80 bugs or more. Only one bug is potentially fixed (because it was reported) - be warned..
Linux bundle:
http://www.wessense.org/binaries/wessen ... x64.tar.gz
Mac bundle:
http://www.wessense.org/binaries/wessense-0.84a-mac.zip
Win bundle:
http://www.wessense.org/binaries/wessense-0.84a-win.zip
http://www.wessense.org/
Features:
- added "exp to next level" indicator and text at the bottom
- animation speed control ( extra world parameter, set at the beginning of a game )
- Mirror Image clones now earn exp for player
- day/night now affects Undead and Orc attacks
- click on player triggers "skip turn"
- be careful with Holy Book now, defenders may surprise low-level characters
Fixes:
- a few minor fixes
- off-screen animations are now skipped. It should fix reported game freeze, and will speedup clone army combat.
Since there are ~8000 lines of code, there must be 80 bugs or more. Only one bug is potentially fixed (because it was reported) - be warned..
Linux bundle:
http://www.wessense.org/binaries/wessen ... x64.tar.gz
Mac bundle:
http://www.wessense.org/binaries/wessense-0.84a-mac.zip
Win bundle:
http://www.wessense.org/binaries/wessense-0.84a-win.zip
-
- Posts: 76
- Joined: July 12th, 2014, 4:09 am
Re: [DIY] making html5 wesnoth-themed roguelike
Thanks a lot! Fast animation feels much better for me.
Next little thing to fix is to store the map options in localStorage and use them as defaults on restart, what do you think?
Next little thing to fix is to store the map options in localStorage and use them as defaults on restart, what do you think?
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Nope, try againoptimother wrote:Next little thing to fix is to store the map options in localStorage and use them as defaults on restart, what do you think?
Next things are:
- to add local bosses (tough versions of monsters), marked with crowns. More hp, more attacks, more damage, more exp.
- to make gold coins useful by introducing weapon and magic shops. No need to run around hacking and slashing If you are rich.. You can just buy that shiny armor and powerful spells (two new types of "house" on map - step on them to see shop dialog).
So.. Here we go, v0.85a
http://www.wessense.org/
- there were quite a few changes in the code, so bugs are highly possible => please let me know if you experience one!
- local boss monsters added => if you see crowned monster, run like hell..
- weapon/magic shops added => use gold coins to buy spells and training sessions
- more changes to speedup animations (including FireFox fix)
Bundles
Linux: http://www.wessense.org/binaries/wessen ... x64.tar.gz
Mac: http://www.wessense.org/binaries/wessense.0.85a-mac.zip
Win: http://www.wessense.org/binaries/wessense.0.85a-win.zip
PS: Yeah.. I promised not to code while on vacation. But I just can't stop doing it
-
- Posts: 76
- Joined: July 12th, 2014, 4:09 am
Re: [DIY] making html5 wesnoth-themed roguelike
Those are the Big thingsShadow_Walker wrote:Nope, try again
Next things are:
Why Ancient Lich doesn't wear are crown?- local boss monsters added => if you see crowned monster, run like hell..
If I was rich and weak, I'd buy range first of all, the damage is not so urgent when a lvl2 skeleton kills you (lvl 5-6 human Thief) with a single hit, and you don't even see him in night. Also it would be nice to print ranged attack range and damages with hate bonuses because it's attack is something like 3x12 and I had ~50hp (I saw him in day).to make gold coins useful by introducing weapon and magic shops. No need to run around hacking and slashing If you are rich.. You can just buy that shiny armor and powerful spells (two new types of "house" on map - step on them to see shop dialog).
There definitely are Just can't reproduce. It was something like this: I started as 1 human thief, respawned near the Fugitive, brought it to the place where forest surrounded me entirely and started clicking on Fugitive. When it died the boar's turn come and when I clicked on boar, the arrows flew to the position of dead fugitive, and messages Fugitive killed were in the log, so I ended up lvl 5 after this Then died as described above.there were quite a few changes in the code, so bugs are highly possible => please let me know if you experience one!
I'd like to have the ability to sell some useless spell also, like forest for knight, or entangle - I still haven't figured out what it does, seems like nothing at all?weapon/magic shops added => use gold coins to buy spells and training sessions
Thats the secret recipe of creating something goodPS: Yeah.. I promised not to code while on vacation. But I just can't stop doing it
In the shop +1 ranged costs 12 for everyone, but +1x4 for thief is very much different than +1 for thunderer.
How did Elvish ranger learn so much spells? Aside of forest walking ability and occasional instagib, isn't it too much?
By reading some code I suppose you have you have a strong C background )) While some parts are really clever, the amount of boilerplate is impressive In Javascript this
Code: Select all
switch( spell ) {
case 'sleep':
GAME.SpellSleep( c, pc );
break;
... 6 more same statements for other spells ...
GAME.SpellSleep = function(c, pc) ...
Code: Select all
GAME.spells[spell](c, pc);
GAME.spells = {
sleep: function(c, pc) { ... }
-
- Posts: 80
- Joined: July 27th, 2014, 4:34 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Right, some spell effects were messed up. Proper effects are:
- Entangled = target has reduced damage (1/2), and penalty to armor (subtract 50%)
- Sleep = target armor set to -50%, because unit is helpless
- Shadows = own armor is set to 80%
( help dialog extended with damage and armor modifiers )
Spells were fixed, web version patched in situ, with no version increment. Bundles are still buggy - will update with the next "major" release.
Note that magic shops will now buy back unused scrolls at a slightly reduced price.. see and click that "mode" button to alternate between buying and selling.
Lvl2 skeleton archer is really deadly at night, allright. With up to x2 night damage modifier (Undead night bonus), Armor Piercing trait (halves opponent's armor, unit bonus) and regeneration (Undead night bonus) it becomes really deadly for low level adventurers. Isn't it fun?
I'd recommend to plan your nights carefully.. Use Shadows spell to increase your armor to 80% (terrain independent), don't get caught in open - use terrain obstackles to hide from archers.
For now, I do not worry much about balance. Game is still in alpha stage: new features being added. As soon as major features are in and obvious nuts and bolts are tightened up, we will revisit game balance.
DISCLAIMER extention: Warning! Reading game code at this stage may have a devastating affect on your ability to program things, or even perform simple logical actions in real world. Printed excerpts from this code were 100% successful in scaring away erratic crows, hungry mosquitoes, reckless chipmunks and other dangerous species - proven by repetitive backyard tests.
- Entangled = target has reduced damage (1/2), and penalty to armor (subtract 50%)
- Sleep = target armor set to -50%, because unit is helpless
- Shadows = own armor is set to 80%
( help dialog extended with damage and armor modifiers )
Spells were fixed, web version patched in situ, with no version increment. Bundles are still buggy - will update with the next "major" release.
Note that magic shops will now buy back unused scrolls at a slightly reduced price.. see and click that "mode" button to alternate between buying and selling.
Lvl2 skeleton archer is really deadly at night, allright. With up to x2 night damage modifier (Undead night bonus), Armor Piercing trait (halves opponent's armor, unit bonus) and regeneration (Undead night bonus) it becomes really deadly for low level adventurers. Isn't it fun?
I'd recommend to plan your nights carefully.. Use Shadows spell to increase your armor to 80% (terrain independent), don't get caught in open - use terrain obstackles to hide from archers.
For now, I do not worry much about balance. Game is still in alpha stage: new features being added. As soon as major features are in and obvious nuts and bolts are tightened up, we will revisit game balance.
DISCLAIMER extention: Warning! Reading game code at this stage may have a devastating affect on your ability to program things, or even perform simple logical actions in real world. Printed excerpts from this code were 100% successful in scaring away erratic crows, hungry mosquitoes, reckless chipmunks and other dangerous species - proven by repetitive backyard tests.
-
- Posts: 32
- Joined: May 5th, 2013, 6:26 pm
Re: [DIY] making html5 wesnoth-themed roguelike
Just thought i'd pop by to tell you that I'm enjoying your game. I have not encountered any bugs with this version, (I check to see how it's coming along every now and again) which is much more polished. The one biggest thing I'd like to see added is descriptive tooltips for the spells.
I also think the game would be more fun if the player could save up to buy truly epic shop items instead of stocking up on stuff he already has.
This is coming along nicely. I hope you're having fun building it, cuz I'm having fun playing it!
I also think the game would be more fun if the player could save up to buy truly epic shop items instead of stocking up on stuff he already has.
This is coming along nicely. I hope you're having fun building it, cuz I'm having fun playing it!