Author Topic: js-like beta (first version!) released  (Read 13624 times)

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
js-like beta (first version!) released
« on: June 27, 2011, 06:15:17 AM »
Hi,

I am happy to announce that js-like, my Javascript roguelike, has finally reached a playable state. js-like is played in a browser, using a keyboard and/or the mouse. It is heavily ADOM-inspired but pretty short and small. On the other hand, js-like features three different visualization backends :) The whole project is opensourced and hosted on Google Code.

Demo version: http://ondras.zarovi.cz/js-like/
Project page: http://code.google.com/p/js-like/

kipar

  • Rogueliker
  • ***
  • Posts: 105
  • Karma: +0/-0
    • View Profile
    • Email
Re: js-like beta (first version!) released
« Reply #1 on: June 27, 2011, 07:12:06 AM »
Congrats with release!
With just one level it's not very playable, but the engine seems working and i've failed to found much bugs.
Graphics mode looks very ugly as unknown territory is filled with some sort of "image not found".
Also when I first started the game the only keys that worked was arrows, but I can't reproduce this, so it can be my mistake.
Combinations like ctrl-K are reserved both in opera and IE, so they don't work. But

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #2 on: June 27, 2011, 09:08:44 AM »
Congrats with release!
With just one level it's not very playable, but the engine seems working and i've failed to found much bugs.
Graphics mode looks very ugly as unknown territory is filled with some sort of "image not found".
Also when I first started the game the only keys that worked was arrows, but I can't reproduce this, so it can be my mistake.
Combinations like ctrl-K are reserved both in opera and IE, so they don't work. But

Hi,

thanks for a feedback. The game has actually many levels, but some of them are available only after certain quests are acquired.

I am interested in those browser-specific bugs. My primary development platforms are FF + Chrome, so I have not yet seen neither the "image not found" nor the "keys not working" issues; can you please describe those in more detail and/or post screenshots? Also, what version of IE do you use?


Thanks...

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #3 on: June 27, 2011, 09:20:07 AM »
Update: the problem with IE "image not found" reproduced and fixed.

kipar

  • Rogueliker
  • ***
  • Posts: 105
  • Karma: +0/-0
    • View Profile
    • Email
Re: js-like beta (first version!) released
« Reply #4 on: June 27, 2011, 12:54:54 PM »
Well, I've met "keys not working" bug again in Opera 11, but after several reloads it disappears. Maybe you can try open game in newly installed Opera 11 and try pressing keyboard keys such as "C", "c" etc. But maybe problem is only in my browser.

Quote
The game has actually many levels, but some of them are available only after certain quests are acquired.
I've got a quest from an elder and from blacksmith, but there is no downstair on dungeon level 1. What do I'm doing wrong?
« Last Edit: June 27, 2011, 01:50:50 PM by kipar »

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #5 on: June 27, 2011, 06:25:39 PM »
Well, I've met "keys not working" bug again in Opera 11, but after several reloads it disappears. Maybe you can try open game in newly installed Opera 11 and try pressing keyboard keys such as "C", "c" etc. But maybe problem is only in my browser.

Okay, will try, thanks for the info.

Quote
The game has actually many levels, but some of them are available only after certain quests are acquired.
I've got a quest from an elder and from blacksmith, but there is no downstair on dungeon level 1. What do I'm doing wrong?

One possible explanation is that the (randomly generated) dungeon contains hidden doors and/or corridors, which means that certain areas are not acessible until these hidden features are found (ADOM behaves the same way). I suggest 's'earching close to potentially fake walls.

Rabiat

  • Rogueliker
  • ***
  • Posts: 88
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #6 on: June 27, 2011, 06:51:13 PM »
Hi Ondras,

Just tried your js roguelike and enjoyed it. It's very reminiscent of ADOM. Nice job.

I don't know if this is a bug, but I was unable to finish the village healer's quest and the blacksmith's quest, despite having met the objectives. After receiving both quests I entered the dungeon in the northwest, cleared it, got the village healer's objective, went back to the surface, then went back to the healer, but I was unable to give the item to him. Dropping it, or chatting with the healer didn't work. Also, on the way down, I did what the blacksmith told me, but he just told me to keep trying when I went back to chat to him. Perhaps it doesn't count if you meet the objective somewhere else than the dungeon he tells you about? Or am I doing something wrong? (Using FF 4.0.1. btw)

Also, I would've liked to know beforehand what the upward staircase in the village does. I know, it should be obvious. ;) Being able to confirm that action would be nice though.

Oh, and the ogres in your game are complete wusses compared to their relatives in other RLs. ;)
« Last Edit: June 27, 2011, 06:57:57 PM by Rabiat »

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #7 on: June 28, 2011, 06:45:52 AM »
Hi,

thanks a lot for your feedback :) I am sorry that the quests did not work properly; I will try to investigate and fix the issue. When you killed the being in smith's quest, was the "Quest completed" dialog displayed?

As for the exit staircase, a confirmation seems to be a proper trick.

Finally, ogres - yeah, will boost them a little. Or, if you wish, feel free to clone the project and/or send a patch :)

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #8 on: June 28, 2011, 07:13:02 AM »
Update: the village staircase and the necklace quest have been fixed. No progress on smith quest, as I am currently unable to reproduce the issue.

Rabiat

  • Rogueliker
  • ***
  • Posts: 88
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #9 on: June 28, 2011, 07:20:11 PM »
The first time the blacksmith quest failed to complete was when I killed the objective (a bat) somewhere in the Maze. There was no 'quest completed' dialog. The blacksmith quest worked properly on Maze#2 for a goblin. Then, it did not work on Maze#3 for a rat (again, with no dialog). I played a human warrior every time.

The healer's quest did work this time. I got the 'quest completed' dialog as soon as I found the objective. I half expected to finish the quest after I returned the item to the healer. The healer did have a reward when I returned though, so the quest seems to be fixed.

I have to say though, the perfect maze levels are very aggravating. There's far too many dead ends or long twisting tunnels with only two exits, and the location of the down stairs is predictable. Worse, there's often no way around an opponent you can't beat (bears are much beefier than ogres, for instance).

Thanks for adding the confirmation dialog to the up stairs in the village. The message doesn't say what actually happens though. Leaving the village could be understood as 'entering a huge wilderness map', especially since the game looks so much like ADOM.

The village elder quest seems to work fine. I got a 'quest completed dialog' and the elder gave me a proper response when I went back to him.

Is the Generic dungeon supposed to be only one level deep? I can't seem to find the down stairs even if I leave and return.

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #10 on: June 29, 2011, 06:50:39 AM »
The first time the blacksmith quest failed to complete was when I killed the objective (a bat) somewhere in the Maze. There was no 'quest completed' dialog. The blacksmith quest worked properly on Maze#2 for a goblin. Then, it did not work on Maze#3 for a rat (again, with no dialog). I played a human warrior every time.

Strange. Are you sure it was the exact moster type? For instance, you killed a bat, but the blacksmith might have requested killing a "giant bat" (those are two distinct monsters). The same for rats, "rat" and "giant rat" being different.

The healer's quest did work this time. I got the 'quest completed' dialog as soon as I found the objective. I half expected to finish the quest after I returned the item to the healer. The healer did have a reward when I returned though, so the quest seems to be fixed.

Cool. Also note that the 'q'uest log should use different text style to indicate a quest that is completed (but not yet rewarded).

I have to say though, the perfect maze levels are very aggravating. There's far too many dead ends or long twisting tunnels with only two exits, and the location of the down stairs is predictable. Worse, there's often no way around an opponent you can't beat (bears are much beefier than ogres, for instance).

That is true. The whole "maze" dungeon is supposed to be rather complicated, but with less enemies than other dungeons. Moreover,  the "perfect maze" level is encountered only once (it is the last level of the dungeon).

My intention was to make the downstairs predictable, to somehow eliminate the need to explore whole maze, which might be boring...

Thanks for adding the confirmation dialog to the up stairs in the village. The message doesn't say what actually happens though. Leaving the village could be understood as 'entering a huge wilderness map', especially since the game looks so much like ADOM.

Actually, one day, this might happen to be true :) Until then, I will add some "this will end the game!" alert, okay? :)

Is the Generic dungeon supposed to be only one level deep? I can't seem to find the down stairs even if I leave and return.

Yes, it is. The disadvantage of having a one-level-only dungeon is balanced by the fact it is regenerated every time you enter it. My goal was not to emulate the Infinite Dungeon: there are some memory and storage issues in Javascript, which is why I do not exactly want the player to store huge amounts of (visited) levels in memory and/or savegames. Yet.

Rabiat

  • Rogueliker
  • ***
  • Posts: 88
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #11 on: June 29, 2011, 08:36:34 PM »
Strange. Are you sure it was the exact moster type? For instance, you killed a bat, but the blacksmith might have requested killing a "giant bat" (those are two distinct monsters). The same for rats, "rat" and "giant rat" being different.

You're right, I may have mixed those up.

Quote
Cool. Also note that the 'q'uest log should use different text style to indicate a quest that is completed (but not yet rewarded).

Thanks, I now noticed how it works.

Another strange thing happened with the blacksmith quest though. I took the quest, killed the objective (a hobgoblin) in the Generic Dungeon, and went back to the blacksmith to get the reward. Then the quest disappeared from the quest list as expected. After that, I returned to the Generic Dungeon to scum a bit more, and when I killed a rat (not a giant one), I got an unexpected 'quest completed' dialog, returned to the blacksmith, and got another reward in the same game. So somehow the quest is silently re-assigned with a random objective.

Quote
Actually, one day, this might happen to be true :) Until then, I will add some "this will end the game!" alert, okay? :)

That depends on how you'd like your new players to think of you. One of the aspects of ADOM that somehow grew on me is how harshly it can treat you if you do something noobish.

A wilderness map with more dungeons would be cool though. ;)

Quote
Yes, it is. The disadvantage of having a one-level-only dungeon is balanced by the fact it is regenerated every time you enter it. My goal was not to emulate the Infinite Dungeon: there are some memory and storage issues in Javascript, which is why I do not exactly want the player to store huge amounts of (visited) levels in memory and/or savegames. Yet.

That seems contradictory. An infinitely deep dungeon with regenerated levels requires as much storage as a one-level dungeon which is persistent. I think the ID in ADOM needs to have regenerating levels because TB wanted to put that (+255, 32d128) Game Breaking Hammer of Maxint somewhere really safe. ;)


I'm curious where you will be taking this game. Both content-wise and as a technical challenge against browser/js limitations.
« Last Edit: June 29, 2011, 08:38:37 PM by Rabiat »

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #12 on: June 30, 2011, 05:45:46 AM »
Another strange thing happened with the blacksmith quest though. I took the quest, killed the objective (a hobgoblin) in the Generic Dungeon, and went back to the blacksmith to get the reward. Then the quest disappeared from the quest list as expected. After that, I returned to the Generic Dungeon to scum a bit more, and when I killed a rat (not a giant one), I got an unexpected 'quest completed' dialog, returned to the blacksmith, and got another reward in the same game. So somehow the quest is silently re-assigned with a random objective.

Exactly. I also noticed this bug and fixed it yesterday evening.

Quote
Yes, it is. The disadvantage of having a one-level-only dungeon is balanced by the fact it is regenerated every time you enter it. My goal was not to emulate the Infinite Dungeon: there are some memory and storage issues in Javascript, which is why I do not exactly want the player to store huge amounts of (visited) levels in memory and/or savegames. Yet.

That seems contradictory. An infinitely deep dungeon with regenerated levels requires as much storage as a one-level dungeon which is persistent. I think the ID in ADOM needs to have regenerating levels because TB wanted to put that (+255, 32d128) Game Breaking Hammer of Maxint somewhere really safe. ;)

You are correct. To summarize my options here:

  • Current solution (one-level deep, regenerates)
  • ID-like (infinite levels, no regeneration) - storage issues
  • ID (infinite amount of levels, regenerates) - okay with storage, but very un-original

Not quite sure which solution to pick. Or maybe a hybrid one: regenerating one-level variant, where a down staircase exists - and take you to another random (first) level ... ? What is your opinion?

I'm curious where you will be taking this game. Both content-wise and as a technical challenge against browser/js limitations.

I am curious as well :) Regarding technical challenges, I believe I am able to overcome most issues, especially when browsers get really fast these days. But content-wise, who knows? There are so many content-related paths to take, and so little time. Which one is the most pressing? Beings? Items? Quests? Hand-picked maps? More game mechanics (skills, talents, ...) ? Tweaking and tuning base game rules? Experience?

I personally think that Experience is the first thing to implement; leveling is an important aspect. The problem is that I am not sure what "achieving a new level" should mean; what values should be raised and by what amount... I am mostly a coder, not a game designer :-(

Rabiat

  • Rogueliker
  • ***
  • Posts: 88
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #13 on: June 30, 2011, 06:58:01 PM »
Not quite sure which solution to pick. Or maybe a hybrid one: regenerating one-level variant, where a down staircase exists - and take you to another random (first) level ... ? What is your opinion?

I think you can safely discard the infinite persistent dungeon. A one-level regenerating dungeon feels too much like scumming for my taste. An infite regenerating dungeon has the advantage that coding it is almost as easy as a one-level regenerating dungeon. All you have to do is change the level counter if the player takes a staircase. Another advantage is that you could raise the difficulty according to the level counter, by dropping more monsters and traps. I always enjoyed the challenge of playing the ID just to see how deep I could get.

It may be unoriginal, but frankly, your game is too much like ADOM to be called original at this stage. Fortunately, originality isn't in The Roguelike Definition™. ;)

Quote
But content-wise, who knows? There are so many content-related paths to take, and so little time. Which one is the most pressing? Beings? Items? Quests? Hand-picked maps? More game mechanics (skills, talents, ...) ? Tweaking and tuning base game rules? Experience?

Here's my vote:
1. Experience and levelling (which implies appropriate monsters for higher level characters);
2. Food is implemented, but there is no food clock yet. It should be relatively easy to add hunger, and corpse eating effects (from eating zombies I figured you have that planned);
3. Add some dungeons and/or maps. Adding an ID would make sense after you have added experience levels. (But, despite the fact that I like ADOM's ID, my general advice to any RL developer would be to not over-expand the game world, even though procedural generation makes it tempting to do so);
4. Add some item types (especially potions and scrolls), spells, and quests;
5. Add some physical effects like teleportation, paralysis, poisoning, perhaps mutations and assign those to monsters and spells.

As for skills, their priority depends on how important you think they are for gameplay. If you decide to add them, consider the 'get skilled at what you train' method versus 'pick a skill to train at level-ups' method. Personally I prefer the former.

Quote
I personally think that Experience is the first thing to implement; leveling is an important aspect.

I agree.

Quote
The problem is that I am not sure what "achieving a new level" should mean; what values should be raised and by what amount... I am mostly a coder, not a game designer :-(

Coders easily beat designers at quantifying stuff. :) I'd say assign an experience value to a monster, and if the PC kills a monster, add that value to the PC's experience points. Then define a function to calculate the experience level from experience points (most likely you'll want exponential growth). When the PC levels, you could raise HP and one stat (chosen randomly, or biased towards racial predisposition).

A less traditional way to go about it is to define a linear experience level function, and lower the experience points gained from killing monsters as the player levels up. If I'm not mistaken, Angband does this.
« Last Edit: June 30, 2011, 07:21:32 PM by Rabiat »

ondras

  • Newcomer
  • Posts: 27
  • Karma: +0/-0
    • View Profile
Re: js-like beta (first version!) released
« Reply #14 on: June 30, 2011, 07:48:14 PM »
It may be unoriginal, but frankly, your game is too much like ADOM to be called original at this stage. Fortunately, originality isn't in The Roguelike Definition™. ;)

Makes sense :)

Quote
4. Add some item types (especially potions and scrolls), spells, and quests;

I wanted to differ from ADOM a bit, that's why I decided to have scrolls instead of spellbooks. You might not have encountered them, but there are already at least five different scrolls (with five spells to learn from them!) :)

As for potions, yes - IIRC, there are only two or three of them right now.

Quote
5. Add some physical effects like teleportation, paralysis, poisoning, perhaps mutations and assign those to monsters and spells.

Teleportation is already present (as a spell, as a trap effect); I was also thinking about bleeding, confusion, ....

Quote
As for skills, their priority depends on how important you think they are for gameplay. If you decide to add them, consider the 'get skilled at what you train' method versus 'pick a skill to train at level-ups' method. Personally I prefer the former.

Actually, I do not personally value skills much. That is why having them will be probably at the end of the TODO list...

Quote
Coders easily beat designers at quantifying stuff. :) I'd say assign an experience value to a monster, and if the PC kills a monster, add that value to the PC's experience points. Then define a function to calculate the experience level from experience points (most likely you'll want exponential growth). When the PC levels, you could raise HP and one stat (chosen randomly, or biased towards racial predisposition).

A less traditional way to go about it is to define a linear experience level function, and lower the experience points gained from killing monsters as the player levels up. If I'm not mistaken, Angband does this.

I was thinking about the Fibonacci sequence for XP thresholds. Gaining a level would result in ability to increase two (three?) of available game feats (e.g. attributes, dv/pv, maxhp/maxmana, ...).

Now the interesting part is:

  • When is XP gained - this cannot be done automatically, I am afraid, so some hand-picked events (monster kill, quest done) must be explicitely marked
  • How much XP is gained - and this might be realizable algorithmically, by comparing the dead monster's stats with PC's ...