Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

online moria!

304 views
Skip to first unread message

Brian Ramsay

unread,
Jan 11, 2010, 10:51:22 AM1/11/10
to
Hello everyone, and greetings to our spam-bot overlords.

I don't know if anyone is still here or if the relentless spam has
driven everyone away, but I have some news that might be of interest.

I played Moria on the mac back when I was in high school and poured
countless hours into slightly less than honest games. (Once I
discovered that if I force-quit when the monster memory display
disappeared right before death I could load my old save I was off to
the races). I recently rediscovered the game, and in the whole
process of downloading the source, compiling, fixing a couple bugs and
recompiling I wondered why the process was still so annoying. I still
had fun playing, but the bug had bitten me to do something about the
inaccessibility of the game (not that roguelikes have ever been
particularly accessible).

A brief Google search didn't show up any (nice) online roguelikes, and
I wondered why none of these games - nearly all of which are open
source - had been brought to the web. So I decided to try. I have a
real job and so progress has been slow, but I am far enough along that
there is at least a recognizable facsimile of Umoria on the web. It's
not a game yet - all you can do is run around and explore (you can't
even open doors) - but it's far enough along that I wanted to get the
word out before these groups completely devolve into spam.

Check my progress out here: http://foont.net/moria. I'll update the
Development tab with my schedule for developing various features so
that I don't have to rely on spammy groups like this one to
communicate.

In summary:
http://foont.net/moria
Use Google Chrome, Safari, and maybe Firefox for Windows.
NOT Internet Explorer (Win) and Firefox (Mac), as they are too slow
- use at own risk.
Safari is the fastest browser I've used, at least on a Mac
Check out the Development tab for progress.

I'd appreciate your feedback (though please realize it's too early for
bug reports - unless it's in regards to level creation).

Brian

Beej Jorgensen

unread,
Jan 11, 2010, 1:54:15 PM1/11/10
to
On 01/11/2010 07:51 AM, Brian Ramsay wrote:
> I don't know if anyone is still here or if the relentless spam has
> driven everyone away, but I have some news that might be of interest.

I read news on eternal-september.org and they're very very effective in
spam filtering. For me, this group is just quiet.

> A brief Google search didn't show up any (nice) online roguelikes, and
> I wondered why none of these games - nearly all of which are open
> source - had been brought to the web. So I decided to try.

Holy cow--is that all written in Javascript? It looks really good! I
guess not really playable yet (?), but still it's going to be impressive
when done, I think!

-Beej

Brian Ramsay

unread,
Jan 11, 2010, 4:42:21 PM1/11/10
to

> Holy cow--is that all written in Javascript?  It looks really good!  I
> guess not really playable yet (?), but still it's going to be impressive
> when done, I think!

Thanks! It is all javascript. I was kind of surprised that no one
had done it yet - I think the potential is huge. I saw a couple tech-
demo roguelikes, but nothing major. I'm using the excellent mootools
framework (http://mootools.net) to smooth over browser compatibility
issues, so it actually works in IE7 and IE8. However, those browsers
(particularly IE7) are way too slow executing javascript to make the
game playable at this point. It's almost laughable on IE7. I'm hoping
that it will be playable in IE8 and Firefox (Mac & Win) once I start
optimizing things. I'm looking forward to when the bulk of development
is done, and I can focus on polishing it up a bit. Right now it's a
bit of a slog trying to figure out how to translate major bits of the
code. I decided to depart from a straight copy of the code, and I'm
trying to structure it a little differently with objects and whatnot,
but there are a lot of times having global variables are handy :-)

My goal is to start with a faithful port of umoria. I'll probably
pull monster memory and the options out of the main window but other
than that I'd like it to be just what you'd see in a terminal. I
expect I'll be hitting up this list (and maybe some other old moria-
related email addresses) for help finding behavior that is un-
morialike but that might not be apparent to a new user or even me,
since I'm not quite as experienced as a player.

I'll try to keep http://foont.net/moria/development updated with a
schedule of when to expect certain things. All you can do now is move
around levels and go up and down stairs. It will be another few months
before it's fully playable - assuming everything goes according to
plan. A rather big assumption, I suppose, but I'm looking forward to
April-June all the same!

Brian

Brian

Beej Jorgensen

unread,
Jan 11, 2010, 9:58:10 PM1/11/10
to
On 01/11/2010 01:42 PM, Brian Ramsay wrote:
> I'm using the excellent mootools framework (http://mootools.net) to
> smooth over browser compatibility issues, so it actually works in IE7
> and IE8.

Make sure you don't have any sharp objects nearby if you decide to do an
IE6 version--you might accidentally and brutally commit suicide. ;-)

I was running it on Google Chrome beta... and it was just as fast as I
wanted it to be. But Chrome's V8 JS engine is supposed to be one of the
fastest out there.

> I decided to depart from a straight copy of the code, and I'm
> trying to structure it a little differently with objects and whatnot,

This is probably a good idea, even though it's undoubtedly more work,
because:

> My goal is to start with a faithful port of umoria.

If you decide to start hacking it to a "superMoria", it'll be convenient
to have it all properly Object Oriented and stuff. Just make sure you
always leave the "classic" version available. :)

Good stuff!

-Beej

Brian Ramsay

unread,
Jan 11, 2010, 10:51:37 PM1/11/10
to
> Make sure you don't have any sharp objects nearby if you decide to do an
> IE6 version--you might accidentally and brutally commit suicide. ;-)

Oh, it wouldn't be an accident.

> Just make sure you always leave the "classic" version available.

Yeah, I've been mulling over ways to have a Classic Moria switch so
that I can play with and extend the game without having two copies of
the source to maintain. I'll tackle that when I come to it.

Glad to hear that the Chrome beta is snappy. I've got a big
optimization to make when displaying that should improve things a lot
and level out all the major browsers. Currently the whole display is
refreshing each time, rather than maintaining a list of the
coordinates that need to be refreshed. I think redrawing the screen
is the bottleneck at the moment so that will hopefully bring Firefox
in line with Safari and Chrome. FYI, if you want to check out speed
differences you can check out the tests at http://foont.net/moria/test/
. Can be an interesting look at how fast the browsers can run the test
suite, though there are occasionally weird discrepancies (for example,
the above link was just 3 times slower than my local copy on the same
browser - when I forced a reload of the same code, it was back to
normal).

On the mac the current speed champ is Safari, with Chrome close behind
and Firefox a distant third. I'd be interested to see what browsers
on Linux and Windows do.

Brian

Beej Jorgensen

unread,
Jan 12, 2010, 4:24:42 AM1/12/10
to
On 01/11/2010 07:51 PM, Brian Ramsay wrote:
> Oh, it wouldn't be an accident.

Heh!

> is the bottleneck at the moment so that will hopefully bring Firefox
> in line with Safari and Chrome. FYI, if you want to check out speed
> differences you can check out the tests at http://foont.net/moria/test/

This is an excerpt from Google Chrome 4.0.288.1 x86_64 Linux, Athlon 64:

LevelTest#test_blank_cave: Broken by grid changes.
LevelTest#test_execute_monster_move: Not tested yet.
LevelTest#test_flatten_spot: Not tested yet.
LevelTest#test_generate: Broken by grid changes.
LevelTest#test_get_monster_moves: Not tested yet.
LevelTest#test_level_ascii: Broken by grid changes.
LevelTest#test_light_room: Not tested yet.
LevelTest#test_monster_move: Not tested yet.
LevelTest#test_monster_movement_rate: Not tested yet.
LevelTest#test_move_light: Not tested yet.
LevelTest#test_place_monsters: Broken by grid changes.
LevelTest#test_place_one_monster: Broken by grid changes.
LevelTest#test_place_stairs: Broken by grid changes.
LevelTest#test_set_rocks: Broken by grid changes.
LevelTest#test_update_monsters: Not tested yet.
LevelTest#test_update_single_monster: Not tested yet.
DungeonTest#test_turn: Will fail until we remove the reference to a DOM
element
Completed tests in 16.418s.
269 tests, 14325 assertions, 17 failures, 0 errors, 0 skips.

Another run was 15.5s. Are those reasonable numbers?

-Beej

Brian Ramsay

unread,
Jan 12, 2010, 11:05:10 AM1/12/10
to
> Another run was 15.5s. Are those reasonable numbers?

Yeah, that's about what I get on Chrome beta for Mac. I've been very
impressed with the Chrome beta, and it looks like it's consistent
across platforms, which is nice. Firefox 3.5 for Mac, on the other
hand, comes in around 40 seconds, while Firefox 3.5 for Windows (even
in Parallels) does 30s and Firefox 3.6RC1 does 20s. I'll have to snag
a Windows box at work and try out a few browsers running natively and
see what the situation looks like.

As for the broken tests, well, I got lazy and didn't update them after
my last grid changes. Since I'm going to do one more iteration, I
didn't feel like changing them all, and then having to re-update them
in a few weeks so I added a generic failure message. TDD it's not, I
suppose. :-)

Brian

Beej Jorgensen

unread,
Jan 12, 2010, 2:59:33 PM1/12/10
to
On 01/12/2010 08:05 AM, Brian Ramsay wrote:
> As for the broken tests, well, I got lazy and didn't update them after
> my last grid changes.

You have tests at all--you are already less lazy than 98% of the coders
out there. :)

-Beej

Eli the Bearded

unread,
Jan 27, 2010, 6:08:24 PM1/27/10
to
In rec.games.roguelike.moria, Beej Jorgensen <be...@beej.us> wrote:
> On 01/11/2010 07:51 AM, Brian Ramsay wrote:
> > I don't know if anyone is still here or if the relentless spam has
> > driven everyone away, but I have some news that might be of interest.
> I read news on eternal-september.org and they're very very effective in
> spam filtering. For me, this group is just quiet.

I'm not seeing spam here, either, and I'm not on that server.

> Holy cow--is that all written in Javascript? It looks really good! I
> guess not really playable yet (?), but still it's going to be impressive
> when done, I think!

First impression: it's slow (I'm using an older Firefox on linux). Reminds
me of playing over a modem. Doable, but laggy. I killed a couple of
townspeople without any messages about their demise. Browser bug or just
not implemented yet? Oh, wait, "toggle console" shows me the blubbering
idiot attacking me and dying. Those top status line messages really do
belong in same window. Inventory and monster history separated, sure, but
looking somewhere else for fight info isn't good.

Elijah
------
would love to see a vi clone in javascript, if you need something else to do

Brian Ramsay

unread,
Jan 29, 2010, 6:56:52 AM1/29/10
to
> Those top status line messages really do belong in same window. Inventory and monster history separated, sure, but looking somewhere else for fight info isn't good.

I totally agree with everything you say. :-)

a) At the moment, Firefox doesn't cut it, and is too slow. I've got
some display optimizations I'm working on now that will hopefully
bring Firefox into the realm of playability, but right now Chrome and
Safari are the only ones that are reasonable. (and even Chrome isn't
quite there - hopefully the aforementioned optimizations will fix
that)

b) My goal is to have it look exactly like the terminal version. The
console is there mostly as a placeholder for status messages and will
go away in the final version. Everything will eventually be in the
main window, and any additional windows / html jazziness will only be
supplementary (except Monster Memory). I've still got a ways to go
before it even can be considered an Alpha version, though. Check out
the timeline here for a rough estimate of feature completion:
http://foont.net/moria/development. And I am using 'completion'
loosely (talk about covering my ass).

Brian

0 new messages