Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Fenrir

Pages: [1] 2
1
Player's Plaza / Play roguelikes in retro style with cool-retro-term
« on: December 31, 2017, 06:35:33 PM »
https://github.com/Swordfish90/cool-retro-term

Quote
cool-retro-term is a terminal emulator which mimics the look and feel of the old cathode tube screens.

I've been playing roguelikes in this. It gives them a nice extra retro feel.



A static image doesn't quite do it justice, since you won't see all the animated effects like the scanlines and burn in.

2
Temple of the Roguelike / Spam on Our Front Gate
« on: November 02, 2011, 09:08:00 PM »
I think it exceedingly unlikely that Slash put the following markup and code on the front page of the temple. It is suspect, surreptitious, poorly spelled, and grammatically incorrect.

Code: [Select]
<script>if(document.referrer!='htt'+'p://reff'+'erer.c'+'om')document.write('<sp'+'an style=\'disp'+'lay:n'+'one\'>');</script>
If you intresting in sport <a href="http://rxsportmeds.com/">buy steroids</a> you find place where you can find information about steroids
<script>if(document.referrer!='ht'+'tp://5g'+'o.c'+'om')document.write('</sp'+'an>');</script>

Is this left over from an earlier attack? or is the temple compromised?

3
Programming / Memory Leaks in SDL and OpenGL
« on: April 17, 2011, 02:41:32 AM »
Is it likely that SDL and OpenGL have memory leaks in them? That doesn't sound right to me. I'm checking my program with Valgrind, and it says that there are 605 bytes "definitely lost", but it's all from malloc() calls in the SDL and OpenGL code. I call SDL_Quit() at the end of the program, and I delete my OpenGL textures, so I don't know what I'm doing wrong. My tile engine doesn't do anything more involved than render some textured quads.

Assuming of course that these are memory leaks, and I'm not just mistaken about what "definitely lost" means.

4
Classic Roguelikes / Dear Mr. Biskup
« on: November 18, 2010, 10:14:14 PM »
Why--by the gods--why, did you decide that the player should lose a turn for canceling a command? I'm sorry; I know I should have been watching my mana, but, when I told you that I didn't want to exhaust myself casting that spell, why did you let the caveman bash Quag's brains in?


------------------------------------------------------------------------------
                                 Screenshot
------------------------------------------------------------------------------


      #########                                         #########
     ##.......################################       ####.......##
     #......%....../../........./.%........%.#       #...........#
     #.............#.##############.......##.#########....(/.....#####
  ####.............#.....#       ##.......##...........................#
###...#.......##########.   ######.........#######.##...#...............#
#.............#             ...............#   #........................##
#.......#...#################....#.......*.#####.#........#...##.........#
#......./..###............(@@....................|.....|...###[..........#
#.........(###.#.##########.......#........#######.......|.###.#.........#
#..........................z..i................................##.......##
#............#######.......s.......#.##############.....................#
#........./..##    #.................#            #.......(...........###
###......%[...#    #...............##################...#............##
  ###.........#    #.................................................#
    #...>.....#    ##########...#########################............#
    ##.......##             #####                       ##...........#
     #.......#                                           #.......#####
     ###...###                                           ###...###
       #####                                               #####
Quag          St: 9  Le:21  Wi:15  Dx:19  To:12  Ch:16  Ap: 7  Ma:20  Pe:16 N=
DV/PV: 16/3    H: -3(55)      P: 3(86)       Exp: 11/23280      PC: 5 Sp: 97
Burdened
------------------------------------------------------------------------------


----------------------------------------------------------------------------
                            Background Information
----------------------------------------------------------------------------

Name: Quag                Race: male Gnome          Class: Elementalist
Eye color: brown          Hair color: brown         Complexion: tanned
Height: 3'4"              Weight: 108 pounds
Age: 117 (grown-up)
Star sign: Falcon         Birthday: 6/Falcon (day 216 of the year)

YOUR HISTORY:
        Your parents are travelling adventurers. They are doing moderately
 well but are talented enough to survive.
        As a child your parents cared a lot for you. Despite all
 circumstances you enjoyed a happy and fine childhood.
        During your youth you embarked on many small journeys to nearby
 towns on behalf of your parents. You learned to know lots of people and
 made many friends.
        Your path was always clearly lying before you. You knew about your
 destiny since your earliest years and fortunately your grandfather
 supported your wishes. You managed to find a competent trainer and began
 your studies.
        You decided to become a Elementalist.


----------------------------------------------------------------------------
                                  Inventory
----------------------------------------------------------------------------
Total weight: 946 stones                Carrying capacity: 960 stones

Head          : -
Neck          : -
Body          : uncursed robe [+0, +1]                                [60s]
Girdle        : -
Cloak         : -
Right Hand    : uncursed quarterstaff (+0, 1d10+2)                    [40s]
Left Hand     : -
Right Ring    : blessed ring of minor elemental mastery [+2, +2]       [1s]
Left Ring     : -
Bracers       : -
Gauntlets     : -
Boots         : uncursed gnomish boots (+1, +0) [+2, +0]              [10s]
Missile weapon: -
Missiles      : -
Tool          : uncursed torch (1088 turns of fuel remaining)         [10s]


----------------------------------------------------------------------------
                                    Stuff
----------------------------------------------------------------------------

Total weight: 825 stones   Carrying capacity: 960 stones

Girdles ('[')
   uncursed mithril girdle [+0, +2]                                   [20s]
Necklaces (''')
   uncursed amulet of perseverance {Wi+3}                              [3s]
   uncursed brass amulet                                               [3s]
Tools (']')
   heap of 2 uncursed torches                                         [20s]
   uncursed box with flint and steel (25)                              [5s]
   uncursed tinderbox (6)                                              [3s]
   cursed tinderbox (18)                                               [3s]
   uncursed box with flint and steel (23)                              [5s]
Rings ('=')
   uncursed ring of fire resistance                                    [1s]
   uncursed ring of searching                                          [1s]
   uncursed ring of cold resistance                                    [1s]
Wands ('\')
   uncursed wand of door creation (0 charges)                          [3s]
   uncursed wand of stunning (7 charges)                               [3s]
   uncursed wand of door creation (4 charges)                          [3s]
   uncursed wand of acid (1 charge)                                    [4s]
Potions ('!')
   heap of 2 uncursed potions of healing                               [8s]
   heap of 4 uncursed potions of water                                [16s]
Scrolls ('?')
   uncursed scroll of vermin control                                   [2s]
   uncursed scroll of charging                                         [2s]
Books ('"')
   uncursed spellbook of Darkness                                    [100s]
Food ('%')
   cursed iron ration                                                [100s]
   uncursed large ration                                             [200s]
   heap of 2 uncursed loaves of bread                                 [80s]
   blessed large ration                                              [200s]
   uncursed hurthling cake                                            [30s]
Valuables ('$')
   982 gold pieces                                                     [9s]


----------------------------------------------------------------------------
                                Weapon Skills
----------------------------------------------------------------------------

Melee weapon           Lvl   Hit   Dam   DV   Level          Required marks
---------------------  ---   ---   ---   --   -------------  --------------
Unarmed fighting         0    +0    +0   +0   unskilled            30
Daggers & knives         0    +0    +0   +0   unskilled            30
Clubs & hammers          0    +0    +0   +0   unskilled            30
Maces & flails           0    +0    +0   +0   unskilled            30
Swords                   0    +0    +0   +0   unskilled            30
Axes                     0    +0    +0   +0   unskilled            30
Whips                    0    +0    +0   +0   unskilled            30
Pole arms                0    +0    +0   +0   unskilled            30
Twohanded weapons        0    +0    +0   +0   unskilled            30
Staves                   0    +0    +0   +0   unskilled            2

Missile weapon         Lvl   Hit   Dam   Ra   Level          Required marks
---------------------  ---   ---   ---   --   -------------  --------------
Slings                   0    +0    +0   +0   unskilled            14
Bows                     0    +0    +0   +0   unskilled            14
Crossbows                0    +0    +0   +0   unskilled            11
Thrown axes & hammers    0    +0    +0   +0   unskilled            14
Thrown daggers           0    +0    +0   +0   unskilled            14
Thrown rocks & clubs     0    +0    +0   +0   unskilled            14
Thrown spears            0    +0    +0   +0   unskilled            14
Boomerangs & scurgari    0    +0    +0   +0   unskilled            14

Shields                Lvl   DV               Level          Required marks
---------------------  ---   ---              -------------  --------------
Shields                  0    +0              unskilled            30


Damage caused with your melee weapons:
--------------------------------------
Right hand: +10 bonus to hit, 1d10+2 damage


Damage caused with your missile weapons:
----------------------------------------
No missile weapons available.




----------------------------------------------------------------------------
                                   Skills
----------------------------------------------------------------------------

  Climbing ............. 61    (good)         [+1d5]
  Concentration ........100    (superb)       [+1d5]
  First aid ............ 56    (good)         [+1d5]
  Gemology ............. 51    (good)         [+1d5]
  Haggling ............. 54    (good)         [+1d5]
  Healing .............. 56    (good)         [+1d5]
  Listening ............ 61    (good)         [+1d3]
  Literacy ............. 83    (great)        [+1d5]
  Metallurgy ........... 72    (great)        [+2d4]
  Mining ............... 51    (good)         [+3d4]
  Pick pockets ......... 11    (mediocre)     [+3d3]
  Survival ............. 37    (fair)         [+2d4]
  Swimming ............. 45    (fair)         [+3d5]
  Ventriloquism ........ 30    (mediocre)     [+2d4]


----------------------------------------------------------------------------
                                   Spells
----------------------------------------------------------------------------

   Burning Hands:   305,   5pp     (Effectivity: +16)
   Darkness     :   266,   4pp     (Effectivity: +0)
   Earthquake   :    10,  80pp     (Effectivity: +0)
   Fire Bolt    :   206,   9pp     (Effectivity: +9)
   Fireball     :     6,  20pp     (Effectivity: +1)
   Frost Bolt   :   550,  11pp     (Effectivity: +7)





----------------------------------------------------------------------------
              His achievements during his adventures:
----------------------------------------------------------------------------

Quag, the gnomish elementalist, was killed by a caveman.
He scored 27671 points and advanced to level 11.
He survived for 0 years, 3 days, 5 hours, 50 minutes and 7 seconds (5803
turns).
Quag visited 8 places.
His charisma score was modified by +2 during his career.
His mana score was modified by +2 during his career.
He ended his adventuring life on level 5 of a dangerous cave at the Drakalor
Pass.
226 monsters perished under his attacks.
He possessed the following intrinsics:
  He was fire resistant (enhanced through an item).
  He was cold resistant (gained through an item).
  He was shock resistant (gained through an item).
He had the following talents: Boon to the Family, Charged, Charming, Heir,
Long-Lived, Long Stride, Potent Aura.
He had a final speed score of 97 (final base speed: 102).
He was religious.
He did not ask for divine help.
He was neutrally aligned.
He was slightly tainted by Chaos.

The following monsters were vanquished:
      1 berserker
      1 berserker lord
      5 black hurthlings
      3 blink dogs
      2 bugbears
      1 carrion crawler
      1 cave fisher
      1 cave lizard
      1 caveman
      1 chaos brother
      1 chaos rat
      3 chaos sisters
      1 claw bug
      1 cutpurse
      2 dark elven wizards
      2 dark sages
      1 dire wolf
      1 displacer beast
      3 dopplegangers
      1 eye of destruction
      1 fairy dragon
      9 fire beetles
      2 fire lizards
      1 floating eye
      1 gargoyle
      1 ghost
      1 ghost bat
      7 ghuls
      1 giant ant queen
      7 giant ant warriors
      6 giant ant workers
      2 giant bats
      3 giant centipedes
      4 giant lizards
      2 giant rats
      3 gnolls
      7 goblins
      9 goblin rockthrowers
      5 goblin slavemasters
      1 gray ooze
      3 green worms
      1 gremlin
      2 hell hounds
      4 hobgoblins
      1 hobgoblin chief
      2 huge bats
      2 imps
      1 jackal
      1 karmic lizard
      8 kobolds
      3 kobold chieftains
     11 large bats
      2 large gnolls
      1 large jackal
      8 large kobolds
      2 large orcs
      6 large spiders
      2 lizard men
      2 minotaurs
      2 necromancers
      1 ogre
      1 ogre magus
     10 orcs
      1 orc chieftain
      2 orc scorchers
      1 outlaw leader
      1 owlbear
      1 pixie
      2 rabid dogs
      3 raiders
      6 rats
      1 ratling archer
      1 ratling duelist
      1 ratling thief
      3 ratling warriors
      2 shadows
      2 skeletons
      1 staring eye
      3 swordsmen
      4 tarantulas
      1 white baby dragon
      1 wolf
      1 yellow ooze
      6 zombies


Seriously, people, please make your roguelikes don't take a whole turn if the player cancels a command for lack of mana. Think of Quag's family.

5
Programming / Organization and Workflows
« on: October 21, 2010, 06:23:44 PM »
This is a topic that I don't see much talk about in game development circles, perhaps because I don't look in the right places.

What I want to know is: what organizational steps do you use to take a game from concept to release? How much planning goes into what you do? To you get everything written out on paper? or do you just sit down and start writing code?

I'm not necessarily talking about the structure of your code; I'm as much curious about when you program and what you program in what order. How do you decide what to work on next? How do you decide when to release?

Describe the way your average "programming day" progresses.

6
Programming / Catacomb Conundrum
« on: September 04, 2010, 03:38:38 AM »
I have a dungeon going downward. Every floor of the dungeon is explored by clicking a button. The floor is fully explored when the button has been clicked 20 times. Every time the button is clicked, there is a chance that the player's character will encounter something. When the player encounters something, he is given options, and all of these options may cost him health points or yield him health points based on chance. They may also yield rewards that make future encounters more likely to yield positive results, or they may also yield penalties that make future encounters more likely to yield negative results. Encounters may also add to the player's overall score.

The thing is: I'm not so sure how to go about balancing all this and adding encounters to the database. I figure the chance of a "baseline" player character dying on a particular floor should be in direct proportion to the average amount of points a player's score can be expect to increase after a level has been completely explored. I also figure that the average rewards and penalties a player gains on one level should not increase a character's chances of surviving the next level beyond the player's chances of surviving the current dungeon level without those rewards and penalties. In effect, the average chance of a character surviving a level remains constant.

I'm just a little daunted by this, since I need to add the encounters to the database, the chances of a particular option yielding positive or negative results, and what the severity of those results are. Since options can lead to new encounters and new options, I'm left trying to come up with a systematic way of going about this.

7
Programming / BSP Difficulty
« on: July 27, 2010, 04:51:00 PM »
Using C++ and PDCurses

I'm working on binary space partitioning for dungeon generation. Every BSP node should point to its parent, sibling, and children, but I can't do the following.

Code: [Select]
class BSP
{
private:
BSP * m_parent, m_sibling, m_childA, m_childB;
int m_depth;
int m_x, m_y, m_width, m_height;

public:
BSP(void);
~BSP(void);

const BSP * const parent() const;
const BSP * const sibling() const;
const BSP * const childA() const;
const BSP * const childB() const;

int depth() const;
void depth(int depth);

int x() const;
void x(int x);

int y() const;
void y(int y);

int width() const;
void width(int width);

int height() const;
void height(int height);
};

BSP is being defined, so I can't have member variables that are pointers to BSP objects. What should I do about it?

8
Programming / LINK : fatal error LNK1104: cannot open file 'LIBC.lib'
« on: July 23, 2010, 12:51:50 AM »
I setup PDCurses correctly in VC++ 2008, but I'm getting this error message.

"LINK : fatal error LNK1104: cannot open file 'LIBC.lib'"

I'll be damned if I know why this is happening. I don't think it's karma. Fenrir looks thoughtful for a minute. Well, there was that one time in Tijuana─ The great wolf glances around and grins sheepishly. Anyway, anyone know what to do about this off the top of your heads, or do I need to give more information?

9
Classic Roguelikes / [ToME] Just how am I supposed to get in?
« on: November 26, 2009, 08:57:19 PM »
I was traveling down the Barrow-Downs, merrily smashing everything that moved (and some that didn't)  when I came across a most peculiar scene.

The following is a bit spoily, but, since it is just the third level of the Barrow-Downs, I don't think it matters much.

I spied a strange fellow named Wormtongue standing in the doorway of a rather inconspicuous structure. After a short battle with me and casting a few slurs against my mother that I don't care to repeat, he picked my pockets and fled. Inside I discovered a princess trapped behind a wall of glass. Having no tools about me to penetrate the glass or the stone walls, I headed back to the surface and bought a pick, which, to my good fortune, was on sale. After much bother wandering about searching for staircases, I returned, repeated my last encounter with Wormtongue, then promptly discovered that the glass was indestructible and the stone walls permanent. So now here I stand, staring through the glass at a poor unfortunate young lady who I am powerless to assist.

I am usually vehemently against the use of spoilers, but I find this circumstance totally perplexing, and it breaks my heart to leave the lady in such distress. HOW THE HELL AM I SUPPOSED TO GET IN THERE?

10
Programming / I'm drifting off the target... whatever it was.
« on: October 18, 2009, 12:24:43 AM »
Be careful that feature creep doesn't kill your project. I did that once.

It looks like it may soon be twice. I started adding a chatbot, so now you can talk to enemies about creatures they've seen and get a response according to how they feel about it (which doesn't ever really change, or mean anything important). Now, for some reason, enemies no longer move, attack, or die when you hit them. Oh, and the player changes color while he walks. That was on purpose, though, to test a status system that I wasn't really sure I needed.

I guess I shouldn't really be surprised, since I didn't plan anything before I started. I mean anything.

Right now I have two options:

a - Make a proper plan, then rip out all the useless crap I added and try to redesign things to fit the new plan.

b - Nuke it from orbit and plan a new project.


Option 'a' will make it so the time spend typing all this code wasn't completely wasted, but option 'b' allows me to consider easier development paths.

At any rate, this whole "I'll figure it out when I get to it. If I even want to implement it, that is" strategy isn't working.

11
Early Dev / MnemonicRL
« on: September 29, 2009, 12:52:11 AM »
Anyone know what's happening, if anything, in the development of MnemonicRL? The roguebasin page says to connect to the server for updates, but I can't connect. It keeps telling me that the server is down. I hope it's not dead.

12
Programming / "Extended ASCII"
« on: September 25, 2009, 01:19:28 AM »
Using C++ & pdcurses

I store all the characters that I print to the screen as integers so I can use the characters from code page 437. When I was developing with Dev C++ it worked, but as soon as I switched over to Visual C++ Express Edition it stopped displaying those characters. I don't know the first thing about "code pages", so I've no clue why this happened. Why would switching IDEs cause this?

13
Programming / Crashing After Ending
« on: September 17, 2009, 02:39:03 AM »
I'm using C++ and pdcurses.

Anyone know what could cause a program to crash after it exits? After my program's main() function returns, Windows tells me that "Roguelike.exe has stopped working. Windows is checking for a solution to the problem", which is its usual response when something goes haywire. I don't know why it bothers to look for a solution; it never finds one.

I don't know what the hell I did. Could it be something that was newed and not deleted?

14
Programming / Inventory
« on: September 12, 2009, 03:30:51 PM »
Using C++

My Weapon class inherits from my Item class. The player has an Item vector as his inventory. The way it's set up now, my 'wield' command has no way of knowing what is a weapon and what isn't. I certainly can't sort the inventory by item type either. How should I be doing this?

15
Programming / Pointer Comparison
« on: September 08, 2009, 01:40:27 AM »
I can't seem to figure out why this is happening.

Code: [Select]
void AI::die()
{
    Creature::die();
    Level* thisLevel = getLevel();
    Player* player = getDungeon()->getPlayer();
    if(player != NULL)
    {
        if(player->getLevel() == thisLevel && thisLevel->LOS(player->getX(),player->getY(),getX(),getY()))
        {
            player->addMessage("The " + getName() + " dies.");
        }
    }
    if(thisLevel->getTileAt(getX(),getY()).flags == 0)
    {
        thisLevel->setTileAt(getX(),getY(),Dungeon::TI_CORPSE);
    }
    thisLevel->removeCreature(this);
    delete this;
}

"delete this;" in the above code results in a crash. When that line is commented out and a creature dies, a different creature disappears. It seems to be removing the wrong creature from the level's vector of creatures on the map. If that's so, the following code must be to blame.

Code: [Select]
void Level::removeCreature(Creature* remove)
{
    for(int i=0; i<creatures.size(); i++)
    {
        if(creatures[i] == remove)
        {
            creatures.erase(creatures.begin()+i-1);
        }
    }
}

"creatures(i) == remove" seems to be true for every creature in the list.

My apologies if my explanation is rather muddled.

If you need to see more code I'll post it, but it won't be pretty! I can also post some screen shots of exactly what happens when "delete this;" in the AI::die() function is commented out.

Pages: [1] 2