Temple of The Roguelike Forums

Announcements => Traditional Roguelikes (Turn Based) => Topic started by: corremn on October 31, 2018, 01:00:19 PM

Title: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on October 31, 2018, 01:00:19 PM
LATEST VERSION (https://sourceforge.net/projects/wofm/)

Hi, after some inpiration by Virtua Sinner and his Youtube play through (which is awesome btw) - Video (https://www.youtube.com/watch?v=nRvxOH-4HRg&list=PLTnwft743i3_rTYy0KM-RLagj59Mu7CVa) - I have released a new version. And added a Save feature. :o  Fixed a bunch of stuff and what not.  I am close to an official 1.0 version. Cheers

So I present to you the new and improved adaptation of The Warlock of Firetop Mountain.

Deep in the caverns beneath Firetop Mountain lies an untold wealth of treasure, guarded by a powerful Warlock, or so the rumour goes.
Several adventurers like yourself have set off for Firetop Mountain in search of the Warlock's hoard. None have ever returned. Do you dare follow them?

You take the role of an adventurer on a quest to find the treasure of a powerful Warlock, hidden deep within Firetop Mountain.
People from a nearby village advise that the treasure is stored in a chest with two locks, and that the keys are guarded by various creatures within the dungeons.
You approach the shadow of the great mountain.

The local villages have warned you that the entrance is well guarded...

Good luck!


 Homepage: (https://sourceforge.net/projects/wofm/)
Files (https://sourceforge.net/projects/wofm/files/latest/download)

(https://a.fsdn.com/con/app/proj/wofm/screenshots/WOFM-2.png/1)
(https://a.fsdn.com/con/app/proj/wofm/screenshots/WOFM-1.png/1)

I personally think it looks beautiful - done with the freetype2 lib

FYI

version 1.0.0 RC 06 31/10/2018
==============================
- Added Save/Load game
- Fixed in game help command list
- 'Continuous run' halts on different conditions
- Fixed cave levels not looking like a cave
- Removed 'x' as cancel in inventory
- Fixed poison resistance armour
- Luck can save you from poison death
- Status line changes colour to reflect ailment
- Tower shield renamed to cresent shield
- Added bats
- Added rotten planks (bridge)
- Modified dog
- Small chance teleports disappear on use
- Experience level starts at level 1
- More experience required to level up
- You no longer have the option to choose not to rest
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 01, 2018, 07:22:03 AM
It's a nice looking game, but has some input problems which are always so pesky. In Finnish keyboard I get only '<' letter when I input the name of character, which is kind of hilarious, but it fires an exception at the end when trying to quit, when it tries to load(?) the file with that name. Then obviously the usual problems with keys like ? and > which also don't work, because in Finnish keyboard layout they both require shift keypress.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 01, 2018, 08:16:53 AM
Thanks Krice. The input issues will be looked at next release, I will replace all non alpha-numeric + Shift.

As for the exception I guess if your character name is an invalid windows filename (i.e ">>>>" then things will go bad.  You can probably edit name in the savegame.dat file.

Hey Krice, while you are being nice, can you re-download the game and see if the '<' and '>' and '?' work for you?
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 02, 2018, 07:27:06 AM
Doesn't work. Also noticed when it's asking the name if you press shift it will also type < letter, but that's how low level key routines tend to work. My get key routine in SDL2 takes out modifier keys as normal key presses, so they don't cause confusion.

Btw, when I randomly look at your code I noticed things like this:
Code: [Select]
Coord * pos = player->getPosition();
Coord new_pos;
new_pos.x = pos->x;
new_pos.y = pos->y;

switch (run_dir)
{
case dNorth: new_pos.y--; break;
case dEast:  new_pos.x++; break;
case dSouth: new_pos.y++; break;
case dWest:  new_pos.x--; break;

case dNorthEast: new_pos.x++; new_pos.y--; break;
case dSouthEast: new_pos.x++; new_pos.y++; break;
case dSouthWest: new_pos.x--; new_pos.y++; break;
case dNorthWest: new_pos.x--; new_pos.y--; break;

case dWait: return 2;
}

And that stuff is repeating so many times! What you should do is first make a constructor for Coord that takes pos as argument, so you can copy x,y in constructor and don't have to set them manually like that. Then create a function Coord::MoveToDirection(int direction) which will handle those directions to Coord changes. Make it return true if the position was changed so you can check special cases like that dWait. And while I'm at it, change stuff like dWait (hungarian or whatever notation) to namespace. I'm using 'way' as namespace for directions, it's sweet and short.

I think you really should have a keyboard get routine that handles that VK keys array. Maybe one to turn keys into ascii and other to return gameplay command type etc. When I look at StartScreen::GetName I don't know why it changes everything to < (maybe that pName.append, it looks suspicious) but I think the shift key if should be if (shift && i < 65) rather than ||.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 02, 2018, 10:05:20 AM
Here is how I would rewrite this part of GetName. You did know that std::string can take char when you just push_back it?

Code: [Select]
    char c=-1;
 
    for (int i = 48; i < 123; i++) //alpha keys only
    {
        if (keys[i])
        {
            c=(char)i;
            break;
        }
    }

    if (c==-1) return 0;

    if (shift && c>='a') c-=32;

    pName.push_back(c);
    length++;
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 02, 2018, 11:14:25 AM
Thanks Krice, just so you know this code is 12 years old and there is a lot of really bad code. I mean this game is really what I used to teach me C++. Now I am just trying to finish a game release. I am trying not to re-factor code.  As you can see no one should ever be looking at this code to learn how to program in C++.

Anyway, I have updated the binary to fix  your issues. They '>' issue was actually from me ironically trying to fix your finish keyboard issues at some time or another.  Instead of trying to fix it I have given alternative keys for help and stairs, 'h' for help and 'E' to enter levels.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 02, 2018, 11:51:56 AM
Thanks Krice, just so you know this code is 12 years old and there is a lot of really bad code.

Only 12 years? That's still fresh code for a roguelike. Even my secondary new roguelike Teemu is already 10 years old project. Anyway, you should always rewrite bad code, it's not a good excuse if the code is "old". Of course, sometimes refactoring is not needed if the code works and doesn't become a maintaining problem (it can later become that).
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 02, 2018, 12:33:36 PM
I have refactored this code, many times over, this is mostly my original code from 12 years ago.  The game is 99% done and does not warrant drastic changes IMHO.

That being said I totally agree with you, this just happens to be a project from the past I want to be done with.

I want to leave this world with completed roguelike game. My tombstone will say "He didn't do much, but at least left the world one completed roguelike."
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Tzan on November 02, 2018, 04:46:50 PM
"He didn't do much, but at least left the world one completed roguelike."

  :)
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 03, 2018, 11:58:26 AM
I have refactored this code, many times over, this is mostly my original code from 12 years ago.  The game is 99% done and does not warrant drastic changes IMHO.

The source code available is old code? Besides, roguelikes are never 99% done, at most they are 50% done which is always the case. Refactoring can be seen as "bad" thing to do, but I think it's not just refactoring and waste of time, it's also becoming a better programmer when you find out new, better ways to do things. In C++ particular creating a "foundation" class library of small data type classes (like Coord class for location of objects etc.) with required functionality is never a waste of time, because you can reuse that code easily in new projects.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 03, 2018, 12:44:24 PM
The sourceforge code is current. This was my first roguelike project in 2006 and has been resurrected a couple of times over the years, there is no point in refactoring this code because the game is essentially done.  Hence the version 1.0 Release Candidate 6.

By my reckoning it takes around 12 years to finish a "proper" rougelike.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 03, 2018, 05:42:00 PM
there is no point in refactoring this code because the game is essentially done.

You may think it's done...
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Skeletor on November 04, 2018, 07:08:27 AM
I want to leave this world with completed roguelike game. My tombstone will say "He didn't do much, but at least left the world one completed roguelike."

Ha I wish we could see this more often.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 05, 2018, 10:50:29 AM
I want to leave this world with completed roguelike game. My tombstone will say "He didn't do much, but at least left the world one completed roguelike."

Ha I wish we could see this more often.

What, more dead roguelike developers?


And I have to ask Krice what is with all the constructive feedback? Surely you have not mellowed with age?
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 05, 2018, 09:48:25 PM
Surely you have not mellowed with age?

It feels like I'm now more distant to humankind and maybe some day I will reach enlightenment. Fear and hate are fading and being replaced by growing understanding of this world and people with their unfortunate limitations.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 08, 2018, 07:23:40 AM
In the help screen, fire command is "numpad f" and help command is not aligned properly, it should probably have three tab characters, but it has something else displayed with three boxes.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 08, 2018, 10:50:48 PM
Thanks Krice, very simple errors I should of picked up on. Also missing is message history command (ctrl-p) which I will change to 'm' when I get around to it.


Just noticed the monster descriptions get jumbled after a load.  Doh.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 12, 2018, 12:31:07 PM
Version Update: Warlock of Firetop Mountain version 1.0.0 RC 06 update 5.

Fixed a bunch of minor stuff. Thanks to our Finnish friend.

LATEST VERSION (https://sourceforge.net/projects/wofm/)
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Sock Puppet on November 13, 2018, 11:08:33 AM
I played this a couple of times now and noticed some bugs.

I see you already found out the jumbled monster descriptions one.

The other thing I noticed is that when you have a full inventory, you can't pick up ammo for your equipped type.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 13, 2018, 11:19:13 PM
I see you already found out the jumbled monster descriptions one.

The other thing I noticed is that when you have a full inventory, you can't pick up ammo for your equipped type.

Monster descriptions should be fixed, with the latest binary. Note I am just replacing the binary for minor updates, so it will seem like I am not updating it.   The latest binary should say "06r5" in the start screen.  Save files should in incompatable.

I have noticed the pickup bug before, but since you have mentioned it I will go ahead a fix it.

Feel free to give further feedback on what you like/dislike while playing (and of course any bugs).
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 15, 2018, 07:21:45 AM
Tried to use a smelly cheese, but I couldn't eat it, instead the game was asking a direction to use and then it dropped the cheese in that place. I wonder if it is some kind of special item. Like you have to place the cheese on a pedestal to prevent triggering of an arrow trap.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 16, 2018, 12:43:44 PM
Yep smelly cheese has a specific use - one useful and one not so useful (but gives you an achievement).  The first is kinda obvious when you encounter certain scenario.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 17, 2018, 10:22:12 AM
Yep smelly cheese has a specific use

This is just a minor nitpick, but I think special items like that should be somehow announced. Because now when the player thinks it's just a food item it can mess the gameplay when you save that for the last and only then realize you can't eat it. I think a simple way to announce special items is some kind of message when you first encounter it. If you don't do that then it's going to make the game possibly more difficult without the player even knowing it and it's kind of bad game design. I guess making some things not "obvious" is part of classical roguelike style, but it doesn't mean it's good design.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Tzan on November 17, 2018, 06:08:49 PM
Totally agree with Krice.
In Witcher 3, you pick up a quest item and its marked that way in its description. "quest item"
It gets put in a special quest item area, no weight, cant sell it.

If there is just one smelly cheese, it should be marked.
If there are hundreds all over, then its not necessary.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on November 18, 2018, 11:01:41 AM
Smelly cheese is only dropped by bosses (and possible boss chests), I think the player can take that as a hint. 
And yes it is rather confusing.. However I feel sticking to the original source material is best approach here.

Of course I could write a complete manual, and those players who like to read such things can.

Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Krice on November 18, 2018, 04:51:16 PM
Smelly cheese is only dropped by bosses (and possible boss chests), I think the player can take that as a hint.

I didn't know it was a boss enemy. How would you know? Even if I did, what makes me think that the items it drops are quest items? In fact this is quite a typical problem in game development where the developer makes an assumption that players should obviously know things. I have done that mistake even myself. In Teemu I assumed that the player knows he has to sneak past the pirates and not attack them. Even so, someone told me he had killed all pirates somehow. I was like, well, eh, all right... People are just so different, it's no use trying to make any kind of assumptions based on your own playing style etc. If there is something special it has to be made extremely obvious, or in a way that you can't break the game at least.
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on December 05, 2018, 11:30:30 PM
I just experienced the "You do not have any of the keys" bug when you have all the keys for the treasure.  So the bug still exists.
I will have to look at the code for this one.

Note that dropping some items (possibly the required keys and picking them back up) fixes the bug and allows you to progress.

Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Virtua Sinner on December 21, 2018, 05:17:25 PM
RC 6 :)  Super looking forward to this!  Do you have a sense of a final version in the future?  I.e. are you actively working toward an RC 7 or should I look at this as the final step?

On a side note, thought you might enjoy - I took a couple stabs at Sewer Jacks: 

https://www.youtube.com/watch?v=zYx6RdxYMlA&list=PLTnwft743i39sVkMweinxG16qAgcXKYF7
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: Slash on December 22, 2018, 05:16:33 PM
Hey corremn, glad to see you back :D

Good lucK!
Title: Re: Warlock of Firetop Mountain version 1.0.0 RC 06
Post by: corremn on January 02, 2019, 02:00:40 AM
Hey corremn, glad to see you back :D

Good lucK!

Thanks Slashie.  Roguelikes are never far from my mind, but too time poor.  Happy new year.


RC 6 :)  Super looking forward to this!  Do you have a sense of a final version in the future?  I.e. are you actively working toward an RC 7 or should I look at this as the final step?

On a side note, thought you might enjoy - I took a couple stabs at Sewer Jacks: 

https://www.youtube.com/watch?v=zYx6RdxYMlA&list=PLTnwft743i39sVkMweinxG16qAgcXKYF7

Hi, my idea is the game is finished, I am just cleaning/tidying it up before I release version 1.0. That does not mean I wont continue working on it from time to time.
Obviously I have to fix the key bug, but I think the game is done.  (There is so much more I could do but that was why I started Warlocks Mountain, perhaps I should clean that up next as it is not in a playable state)

Thanks for playing SewerJacks, looks like a cool game :) Seriously I have not seen that for ages, it blew my mind, look at home much work I put in to it.  That game really needs a new release.
Funny thing about SewerJacks is that I have a completly unreleased version somewhere, with a tutorial!  When I watch people play it, it is obvious that playing it like a roguelike will get you killed quickly. 

Some simple rules:
Let enemies come to you (never let them get the first hit)
Dont get outnumbered.
Blitz should be used frequently, mostly to get into a good position or avoid bad ones. (ideal to close the gap quickly to attack enemies next to a wall.
Never get pushed into a corner and never fight from one, quickest way to die use blitz to re-position. (also avoid having a wall at your back)
And obviously try to push enemies into a corner or a wall.

(and by push I mean that most attacks will result in a knockback - knockbacks against walls turn into hits)

This game is really about positional strategy.

Man I could talk for hours about this game so I will shut up now :)

P.s here is my 9 year old video on Sewerjacks, and no, we didnt talk over our vidoes in those days. ;D https://www.youtube.com/watch?v=b4qCbJcQ7Uo&t=17s