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.


Messages - Azathotep

Pages: [1] 2
1
Challenges / Re: A Roguelike using the Portal 2 resources
« on: October 27, 2014, 03:14:11 PM »
I like this idea, I think I will try it out

2
Other Announcements / Re: Roguelike Radio podcast
« on: October 20, 2014, 11:00:30 AM »
Had to take a break from games because of work. Now I have 9 months of roguelike radio to work through. ;D

Oh and pixelated mushroom t-shirts? I've clearly missed something. No matter how hard I read the last dozen posts I can't figure out wtf anyone is talking about. doubt I can add any insight either so I'll leave it at that.

3
Programming / Re: Dijkstra Map
« on: September 29, 2013, 12:05:32 AM »
Thanks this was useful. My mistake was changing my array to floating point. Instructions didn't tell me to do that!

4
Programming / Dijkstra Map
« on: September 24, 2013, 10:20:34 PM »
I can't figure out the safety behavior from:
http://roguebasin.roguelikedevelopment.org/index.php?title=The_Incredible_Power_of_Dijkstra_Maps

m is a monkey that needs to flee the approaching player.

So first I do this:
"Start with a Dijkstra map calculated around goal points at the player's location and at any player allies from which your monsters will also want to flee."
Which produces this:

Code: [Select]
#   #  #   #  #  #   #   #  #

@  1   2   3   4   5   6   m  #
                         
#  #   #  #    #   6   #  #  #

               #   7   #

Then it says:
"Multiply every value in the map by a negative number somewhere in the neighborhood of -1.2"

Code: [Select]
#    #    #     #     #    #   #   #   #

@ -1.2 -2.4 -3.6 -4.8 -6 -7.2  m   # 
                         
#   #    #    #   #  -7.2  #   #   #

                  #  -8.4  #


"Take the result and pass it back through the Dijkstra scanning function. "

That's what I am stuck on. The scanning function involves:
"If any floor tile has a value that is at least 2 greater than its lowest-value floor neighbor, set it to be exactly 1 greater than its lowest value neighbor."

But how will that ever be true? How will any tile be at least 2 greater than its lowest-value floor neighbour when I have multiplied them all by 1.2?

As it stands the monkey is just going to sit in that dead end as the player approaches rather than jump out and flee to the south.

I suspect I've misread something and got the wrong end of the stick concerning the -1.2 multiplication and the rescan. But I've read it again and again and nothing springs to mind.

5
Design / Hidden Uses of Items
« on: September 21, 2013, 07:33:38 PM »
Despite this
"Oh the 'i' key, that's bound to the ironing action. You'll need to find an iron and an ironing board first of course, and a shirt to iron. Very useful towards the end of the game when you run into the monster that cannot attack anyone wearing a crease-less shirt"

And this
"You know you can identify them by dropping them in a sink? Shit man didn't you know that? It's kind of obvious. It's a sink! You know rings/sinks. Seriously you don't know about rings and sinks? Well what did you think the sinks were for"?

I still think hidden item uses can be make a game interesting. I have written a short blog post aimed at non-roguelike players to convey how roguelikes can offer intelligent decisions when it comes to using items. I know that generalizes and so is a bit misleading.
http://www.creepyshoebox.com/use-of-items

Some examples where I think it works:
-In nethack where you could carry a cockatrice corpse. If you see what touching a cockatrice does it's not that far a step to think about using one as a weapon. Of course you need to wear gloves, so that's another use for gloves.

-In brogue you can throw a potion of descent at a monster to make it fall to the next level, so it's a neat way of getting rid of threats. That's more intuitive.

I guess I am talking about items having secondary effects, uses other than the primary use they are in the game for.

-There's also cool fatal stuff, that has no real use (so this is not the same thing?) but is interesting like putting the lutefisk cube in the lutefisk cube in dredmor. Or putting on an amulet of strangulation in nethack.

I haven't played a lot of roguelikes but nethack is the only one I have played which has a ton of this kind of item interaction...although too unintuitive. I was expecting all the different cheeses in dredmor to do something until I found out it was a joke....and crafting isn't the kind of thing I am thinking of, that just produces more items.

I was wondering what people's thoughts are on this kind of item interaction aspect of roguelikes? Is it a bad idea, is it better to make interfaces less complex, with less actions?


6
Programming / Re: 7DRL Ideas - It's never too soon!
« on: September 19, 2013, 12:32:09 AM »
KickstarteRL. You promised people to create an epic RL, but you failed. People that have donated money turn to an angry mob and they are after you! You have to evade them while you try to escape the city.

It would be funny to create an actual Kickstarter project for this game. I would donate so that I could be part of the angry mob when it failed.

7
Programming / Re: dialect in the textbox
« on: September 19, 2013, 12:09:05 AM »
cockney goblins? (although I just looked up pony, is 25)

8
Early Dev / Re: Making a Cyberpunk Roguelike
« on: September 17, 2013, 07:55:13 PM »
Quote
One of my main ideas is that every time you're injured, like if somebody shoots your arm and it has to be amputated, you'll be able to pay to get your arm replaced with a better (or worse depending on your money) robotic arm

Would be cool also if you can trade in one of your arms for extra $$$? As in "i would give my left arm for that plasma rifle". then the game informs you you can't fire it because it's a two handed weapon.

9
Programming / Re: Porting to other platforms - how to test?
« on: September 14, 2013, 11:55:01 PM »
thanks very helpful, i'll stick with the advice in #5 for now

10
Programming / Porting to other platforms - how to test?
« on: September 14, 2013, 12:04:23 PM »
I am currently building stuff under Windows and was thinking of how to port to other desktop operating systems like OS X, Linux and Atari DOS. Possibly even Android and iOS (although I doubt it, but I am interested in hearing how it would be done). If I had a macbook or something it would be fairly easy to mess about getting stuff to run on that system, but I don't. I was wondering what the best method is for porting and testing the ports work given that I have an aversion to effort. I came up with a list of a few possibilities but how do other people do it?

1. Write the game in a cross-platform language in the first place where you don't really have to bother (eg Java) about testing it on other platforms because it should just work, or something.

2. Cross-compile the game for other platforms but never test that it works on those platforms. Ask other people familiar with those platforms to test it for you, or even let angry players inform you it doesn't work. As soon as someone reports it does work then continue with the philosophy that it will continue working as long as you only make changes to the game code not the setup stuff.

3. Actually buy hardware (!!) or dual boot for different platforms and learn (!!) those platforms, eg how to use the desktop, how to compile on them, how installers should work on them, etc (this would take a long time? or is this a case of "tough shit, just get on with it")

4. Create virtual machines for other platforms. Will virtual machines come close enough to the real thing (eg graphics acceleration if I use a framework that uses opengl or directx to render tiles?). Same thing though, you have to learn all these other platforms, eg how they tick at a basic level.

5. Don't bother porting unless people complain there's no Mac or Linux version. afterall what's the point in porting if people don't ever play the port? but then there's a chicken an egg, they can't play it if you don't port it.

11
Programming / Re: Maze algorithm in python libtcod rl
« on: September 14, 2013, 11:40:03 AM »
One way would be each time you dig a room out you tag each floor tile you dig out with the property "room1", the next room you dig out "room2", etc.

Then to find the nearest room to a tile just scan all the tiles on the map and return the nearest one with a room tag. Then if say that tile is tagged room14 you can gather all the other tiles on the map with the same tag. Now you have all the tiles belonging to the closest room. You can use them to find a suitable wall tile facing in the right direction you can use as a new entrance to that room.

12
Programming / Re: 7DRL Ideas - It's never too soon!
« on: September 13, 2013, 07:17:11 PM »
Roguebike


13
Early Dev / TempRL
« on: September 13, 2013, 07:10:21 PM »
Finally a game in which you can play as a red pixel. Experience life as a red pixel scouring an eight level dungeon for the artifact known as the Game Completion Objective.



https://github.com/Azathotep/TempRl/releases/tag/v0.1

What I've done is taken an old map generator experiment I had and put a game over the top of it just to get a game out. So it's a bit simple and rough. There's no combat, you generally run away from any enemies and have to work round them. There's no skill tree or items either. You just have to find the stairs on each level and finally on the 8th level find the GCO.

Zip file: https://github.com/Azathotep/TempRl/releases/download/v0.1/TempRL_v0.1.zip

It's in C#. The source code is open source (although perhaps it's closed source in the sense that it's such a mess). I like C# but the big flaw about it is that the game:
1) Only runs on windows
2) Requires .net framework 4 to run. I think most windows machines have that installed (?) but in case I put the .net 4 framework installer in the zip.

I can hopefully solve both problems by adding an installer and figuring out how to use mono to run C# on linux and ios, but for now I am just putting it out as windows only, sorry :(

14
Programming / Re: Maze algorithm in python libtcod rl
« on: September 12, 2013, 02:25:33 AM »
Found the maze algorithm output at http://rosettacode.org/wiki/Maze_generation:

Code: [Select]
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|        |     |     |                    |     |
+  +  +  +  +  +  +  +  +--+--+--+--+--+  +--+  +
|  |  |     |  |  |     |     |        |        |
+--+  +--+--+  +  +--+--+--+  +  +--+  +--+--+  +
|     |     |  |  |  |        |     |  |        |
+  +--+  +--+  +  +  +  +  +  +--+  +  +  +--+--+
|  |           |  |     |  |     |  |     |     |
+  +--+  +--+--+  +  +--+  +--+--+  +--+--+  +  +
|     |  |        |     |           |        |  |
+--+  +  +  +--+--+--+  +--+--+--+--+--+--+--+  +
|     |  |  |        |        |           |     |
+  +--+--+  +--+--+  +--+--+  +--+  +--+  +  +  +
|        |        |        |        |     |  |  |
+  +--+  +--+--+--+  +  +--+--+--+--+  +--+  +  +
|     |              |                       |  |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

The code design is the problem. It's bollocked for anything other than printing "+--+---" to screen. Nearly all the examples on that rosettacode page are anti-reusable. They tightly couple the maze generation to the renderer so that it's a pain in the ass to swap in a new renderer to eg carve without having to touch the generation itself. Kind of defeats the point of having code samples for maze generation if we can't just copy paste them and apply them to something useful. Can't help fix it because I don't know python.

15
Programming / Re: Effect Architecture
« on: September 11, 2013, 09:17:22 PM »
Quote
Alien Parasite: damage, activateOverTime, onTargetDeath (would create the Summon Parasite effect)

You could add a new creature to do that rather than a chain of abstract effects. The alien parasite creature would be added to the turn system but would not be part of the map.

Code: [Select]
AlienParasite::DoTurn()
{
   if (Size < Juvenile)
   {
      Grow();
      //You could do anything to the host here
      Host.Hunger++;
   }
   else
      HatchFromHost();
}

AlienParasite::HatchFromHost()
{
    Host.Kill();
    Die();
    Host.Tile.Summon(new AlienJuvenile());
}

Infecting a creature:

Code: [Select]
FaceHugger::MeleeAttack(Creature target)
{
    Game.TurnSystem.Add(new AlienParasite(Host=target));
    target.Paralyze(turns=20);
    Die();
}

Code: [Select]
SurgeryMachineMkII::CaesareanSection(Creature patient)
{
    foreach (Creature creature in patient.AttachedCreatures)
    {
        if (creature.GetType() == typeof(AlienParasite))
        {
           //To reduce the risk of giant alien squids in the operating theatre
           //the Mk II surgery machine kills the parasite rather than just removing it
           creature.Kill();
        }
    }
}

Pages: [1] 2