Tyrant - Java Roguelike Adventure Game

Just a quick update for those interested - I’ve now added a high score table to tyrant to record the greated heroes of all time.

http://tyrant.sourceforge.net/hiscores.php

In addition to the obvious added player fun, the idea is to give good stats on player success rates using different characters that can be used to help with balancing.

It’s already yielding dividends - initial evidence is that the diffculty level is too hard and a lot of players are getting sliced up before reaching level 3. The next release will be somewhat easier…

Um, what you really need to do is write some docs.

Right now, it’s impossible to choose a character without spending an hour or two finding out by trial and error what the differences are.

Then you have to do the same for races.

Actually, “one hour” is probably too optimistic, since you have to test both at once to discover e.g. that Wood Elf almost always has archery, whereas Paladin always has holy magic.

Then you have to experiment (dieing very often) for many more hours to discover:

  • Swimming, tracking, etc are completely useless
  • what the point of Literacy is, and other crucial skills
  • which skills are necessary to have the faintest chance of surviving
  • the fact that you have to play the game and close the window (there’s no Quit, and no Restart, argh!) about 5 times with the race/character you want simply because the random starting stats and items are SO wildy different and it’s easy to make the same character twice, once with twice as many hitpoints and a weapon that’s 3 times as good.

I have no idea how many hours it takes to work out how the combat works and what the actual meaning of the various stats is - I have given up before I reached that point (mainly due to RSI from the UI which forces you to do far too much keybashing. e.g. going into a shop you should have a simple menu using the cursors, e.g. going into a village you’ve already visited you should have a simple menu to jump to any visited shop (assuming no-one is hostile to you), e.g. you should either auto-pickup items or ast least have a default y or n and hitting space, enter, or somethign easy to reach from the cursor keys as accepting the default (howabout “any other key”?))

But I’m a [glutton for punishment] / [hopeless game addict] / [hopeless glory chaser] (delete as appropriate), so now that there is a way to persist and proclaim any achievements, I’m probably going to play for another hour this evening ;D. Sigh.

The new “identify items on death” actually is a step in the right direction. I know now that the dagger I start with is a [5/6/4] whereas the club is a [4/7/3]. OK so I don’t know what the heck those numbers mean, but they look similar to some of the attack/defence stats and after a few more suicides I might manage to work out what the 3 numbers actually mean. Strange, though, there should be 5 numbers AFAICS: attack cost, and strength and effectiveness (?) for each of attack and defence ??? ? (just guessing here, of course!)

PS: don’t roguelikes normally give you your initial posessions all fully id’d at startup?

“High score not available”

High score feature not available is the message that comes up when the game can’t contact the highscore server (at sourceforge.net). It could be a connection/security thing?

Also, I’m working on docs and appreciate that they would help a lot - just a couple too many things on my plate right now! There should be some done in a week or so. :slight_smile:

I am trying to do a score database that will appear the same way that yours does for my applet game. Is there anywhere that you have a tutorial about how you accomplished this or is the php script that you used open source? I have a mySQL database and php capabilities on my server so it can be done, I just need to know how and have never done any mySQL or php before :).

This is a script I use to submit scores to my database for the firecracker game.

<?php $m_name = $_REQUEST['name']; $m_score = $_REQUEST['score']; $db = mysql_connect("localhost", "username", "password"); mysql_select_db("databasename",$db); $time = time(); $sql = "INSERT INTO scoreboard VALUES('$m_name',$m_score,$time);"; mysql_query($sql,$db); ?> High Scores Test

This is the script I use to display the results, split into daily, weekly and global high scores. Most of the formatting is tables.

High Scores
24 Hours Seven Days All Time
<?php $db = mysql_connect("localhost", "username", "password"); mysql_select_db("database",$db); $time = time(); $result = mysql_query("SELECT * FROM scoreboard WHERE timestamp > $time-86400 ORDER BY score DESC LIMIT 100;",$db); echo "\n"; echo "\n"; $rank = 0; while ($myrow = mysql_fetch_row($result)) { printf("\n", ++$rank, $myrow[0], $myrow[1]); } echo "
Rank Name Score
%s %s %s
\n"; ?>
<?php $time = time(); $result = mysql_query("SELECT * FROM scoreboard WHERE timestamp > $time-604800 ORDER BY score DESC LIMIT 100;",$db); echo "\n"; echo "\n"; $rank = 0; while ($myrow = mysql_fetch_row($result)) { printf("\n", ++$rank, $myrow[0], $myrow[1]); } echo "
Rank Name Score
%s %s %s
\n"; ?>
<?php $time = time(); $result = mysql_query("SELECT * FROM scoreboard ORDER BY score DESC LIMIT 100;",$db); echo "\n"; echo "\n"; $rank = 0; while ($myrow = mysql_fetch_row($result)) { printf("\n", ++$rank, $myrow[0], $myrow[1]); } echo "
Rank Name Score
%s %s %s
\n"; ?>

These are pretty basic scripts, and you might be able to modify them to suit your needs, however you also need to create the database tables before either of these scripts will work. Naturally you should study up on SQL (MySQL is free tutorials are easy to find) and php (you can find tons of php tutorials too… it took me a few hours to whip up these scripts with no knowledge of php to start with, I am familiar with sql though… it would have taken less time but I was trying to implement some features and for some reason they didn’t work as expected).

Ok, this is a game to my liking. =D

I used to read roguelike news daily back when it was running, and I’ve reached character level 36 in ADOM.

I never really did play much of NetHack, Angband or Moria, but I’ve tried pretty much everything.

I have to say, I’m very impressed by your random dungeons, and you’ve really managed to take full advantage of being a graphical roguelike without taking away from it feeling like a roguelike.
I’ve bookmarked the applet, and will be coming back.

Personally, I don’t think it needs a lot of documentation, but that’s probably just since I’ve played so many roguelikes before. Pick up with ‘,’, search with ‘s’, and when in doubt, ‘?’… that’s all you need. :wink:

Some opinions:

Picking up items in piles is a bit annoying since you have to press ‘n’ for everything you don’t want. I’d prefer just to press ‘,’, the numbers/codes of the item(s) i want (a for the first one, b for the second, and so on), followed by either ‘,’ or enter.

Sometimes the “enter your name” prompt doesn’t show up in the applet. It still works, and shows up when I press a key, though.
This happened the first time I started it. I waited for several minutes. :wink:

No autorun? Something like like shift+direction in nethack or w+direction in adom would be useful here.

When in look mode, pressing ‘L’ again should display the information about the selected tile, without leaving look mode (like space does)

Kicking in doors in towns seems to be legal. :wink:

It seems like all creatures move at exactly one tile/turn.

If/when I come up with more feedback, should I post it in here, or what? =)
Keep up the excellent work.