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 - Krenium

Pages: [1]
Off-topic (Locked) / Re: To get or not to get Windows 10
« on: July 30, 2015, 05:12:26 PM »
Be careful. Microsoft recently changed their privacy agreement (as in the day of the launch). It's now quite intrusive.

TL;DR it's best not to upgrade if you value privacy.


  • inventory management
  • consumables

I'm not a huge fan of tiles in roguelikes. I think some of the Dwarf Fortress tilesets are by far the best I've seen.

Programming / Re: Physics of Magic
« on: December 02, 2013, 01:12:33 PM »
(Double-post; sorry!)

Programming / Re: Physics of Magic
« on: December 02, 2013, 12:57:10 PM »
I have put a lot of thought into this topic. I mean a lot. One thing I've always wanted to do is create a roguelike where you are tasked with researching magic. Everyone always goes on and on in their games about how wizards attend academies and study diligently. And I think to myself, wouldn't it be rewarding if the player actually had to research and discover magic for himself?

I've always wanted to tie linguistics into it. For instance, maybe the aspiring mage says the word "peh" out loud and he notices that the air around him seems a little warmer. He investigates further by saying "pehra" and the effect seems to be strengthened. He adds the word "rhi" in front which has proven to strengthen the effects of most magic in past experiments, and suddenly he has discovered a spell to keep himself warm on the most frigid of nights! Now he has learned a spell which he can call on time and time again. His learning wasn't constrained by some skill tree and his experience isn't denoted by XP; he learned the spell through experimentation and he is naturally more experienced as a result.

I eventually came to the conclusion that a convincing procedurally-generated system like this must be based upon a strongly axiomatic system. Thinking of it in terms of physics and particles could be a clever way to model this. This particle always travels against gravity. This particle has a half-life of 10 turns. That particle exerts a strong force on others around it. When this particle and this particle collide, it creates a new particle and releases energy. Simple rules often have profound influences and can be used to build unexpected things. The key is to let the player have access to this power, unhindered by cumbersome interfaces and overly-prescriptive rules and abilities.

Regarding the topic of spamming "super spells:" I agree this can diminish the fun and novelty of any game. I can't remember where I first came across the concept—I believe it may have been an anime?—but there was this universe where saying a word out loud caused a magical spell, but no one was physically able to speak that word ever again. It simply vanished from existence at that point. I found the concept to be utterly fascinating. However, this would negate the benefit of discovery, so perhaps a compromise could be made: each successive use of a spell diminishes its potency, so eventually you have to branch out to other things. But in the mean time, you can leverage your discovery.

Programming / Re: pedantic object oriented question
« on: April 26, 2013, 09:40:55 PM »
Hmm. I'm curious: if the critter object doesn't know its map, then what do you do with something as basic as this: movement. Suppose your "Critter" object has a "move()" method, which, well, makes the critter move. Seems reasonable, no? But then you have to check for walls, etc. (you don't want your critter to move through the walls (unless it's a ghost or something)!) which means you need access to the map. Plus, if the map contains a reference to the critter attached to the tile it's standing on, that needs updating. So what should one do? What should that call to "move()" do?

Also, where should the "critters" be stored, anyway? Currently, in my program I have them "owned" by the map, since they're on the map and most would be associated with a map, anyway (when you save out a map, you have to save out all critters on it). How should it be?

See, this is why I've become so disappointed with OOP over the past several years. This question comes up so often from so many different people that I simply consider it a failing of the paradigm.

The way I reckon it, it's because people try to find real-world analogs to their program architecture, where there really shouldn't be. For instance:

It seems obvious to you that a critter should have a move method. I say it's not obvious at all. If you don't want your critter object to have a reference to your world, then the world should have a move(Entity e) method that moves critters and other objects around.

It may not be intuitive to think that way in real-world terms, but it is much cleaner OO. You ask your world to move everything that needs to be moved, just like you ask your main game loop to update everything that needs updated.

Honestly there is not a language in existence that has a proper scope system, in my opinion. Almost all the problems I have with programming are caused by where to keep data and the juggling required to get those data to the proper functions. It's not a technical limitation; it's a conceptual one. I know I could throw any old system together and force it to work. The trick is whether it is intuitive to think about or not.

 Games are about the most state-based programs you can write, which only compounds the problem.

Programming / Re: Another Crash and Burn
« on: April 26, 2013, 09:20:09 PM »
What's really funny is that I still find it nearly impossible to complete a computer game outside of the 7DRL. Card games, no problem. Computer games just kick my ass unless I have a deadline.

I have this problem too. For me, it's because programming easily allows you to get bogged down in endless details.

For instance, lately I've been making my map generator better instead of working on stuff like items, monsters, and mechanics. I could spend years on the map generator and never get anything else done..

Off-topic (Locked) / Re: Scrolling vs non-Scrolling game
« on: October 18, 2012, 01:32:22 AM »
You could also have a mix of both. Once the player gets near the edge of the screen, the map is centered on that location. I believe Angband takes this approach. I think it's a little less jarring than the 'always centered' approach.

Programming / Re: Weapon durability
« on: June 17, 2012, 01:31:40 AM »
I think it could work well, but mainly if it can end up helping the player somehow. In Diablo II, for example, there were ethereal weapons that did more damage, but couldn't be repaired. If you found a zod rune, however, you could stick it in the weapon and it would become indestructible. Sometimes items would spawn with "repairs x durability every y seconds" which would make them effectively indestructible too.

Giving the player the opportunity to eventually overcome the drawbacks of weapon degradation could give quite a bit of depth to loot.

Programming / Re: libjcsi patch
« on: June 17, 2012, 01:16:43 AM »
Wow! I wrote a routine using libjcsi to draw textboxes using box-drawing unicode characters less than 12 hours ago and I was puzzling over this. Horizontal lines were fine but the vertical ones were broken up. This is wonderful! Thanks!  ;D

I do have a question, though. There seems to be a good chunk of 'unused' space resulting in a moderate-sized gap between WSwingConsoleInterface.xdim and the right edge of the window. There's also a small one between ydim and the bottom of the window. Is there any way to get rid of that? Or is that what the third fix is?

Oh, I have another question: can libjcsi do multi-key input? I want to detect when ctrl + [letter] is pressed, but I can't seem to figure out how.

Programming / Re: Identify? (y/n)
« on: June 04, 2012, 12:41:52 PM »
Also I think junk being useful can be bad, since it forces you to hoover up the whole dungeon looking for vaguely useful items, and carrying around a pack of crap "just in case". These both make the core game experience (combat, character building) a lot more boring. The game should focus on what's most fun.

Well, I'm definitely not having encumbrance or a typical inventory that you have to scroll through. I don't find those fun at all. I'm building the game that I want to play. Personally, I think it's as much about the loot as it is combat and character-building.

Besides, giving the player the option to do something doesn't mean they have to do it. Removing a feature to protect players from boring themselves is a bit heavy-handed in my opinion. I subscribe to the NetHack philosophy. There is a built-in drawback to pudding farming: it's called pudding farming.

Programming / Re: Identify? (y/n)
« on: June 04, 2012, 06:01:46 AM »
I like identification. Even in Diablo, where it's essentially free. It milks your anticipation from the time that you find a shiny yellow item until the time it is identified (and you find out it's crap). It has an addictive, lulling effect, much like pulling the lever on a slot machine. I agree that the identify sub-game doesn't necessarily have a lot to do with the game per se, but that doesn't mean it can't.

For example, in my roguelike, I'm planning to implement item identification as fuel for certain types of spells. The item becomes identified and it releases a fireball or whatever else. That way, unidentified junk which is strewn across the dungeon can become a valuable resource.

Other Announcements / Re: a RL that requires skill?
« on: June 03, 2012, 07:14:20 AM »
It's not that difficult to play DCSS without consumables; certainly not hard to do so until the majority of them are identified. Doubly so for NetHack. Besides — smart identification should be part of your strategy. Brogue is a different kettle of fish altogether.

Other Announcements / Re: a RL that requires skill?
« on: June 02, 2012, 08:04:16 AM »

You're also missing the point. Because so much of the game is the product of the RNG, your strategy is pretty limited. Your strategy generally cannot hinge upon specific enablers or any environmental variables, as they are all randomly generated and therefore you cannot count on them. All you can do is gen a PC, shoot for a survivable build and go through the motions hoping you don't get boned. I don't feel terribly engaged (mentally) when I'm playing a RL. I run through a limited set of "what ifs" in my head, maybe do some simple calculations (DPS, enemy strength vs. my own), but for the most part, the RNG dictates my actions.

We can't make you suddenly start thinking about your moves.

I find it preposterous that you're pegging your lack of success on the RNG when there are 20+ win-streaks in all the major roguelikes to prove that skill really matters (no really, trust me, it does).

To me it just sounds like you hit some kind of a brick wall where you aren't getting any better because you aren't taking your time or you refuse to look up spoilers or other self-imposed hardships. Obviously any game that can be won 20 times in a row gives the player the ability to prevail over the RNG.

The easiest way to tell that someone is a newbie is if they say "X roguelike just depends too much on luck." (Assuming the roguelike in question is well-worn and balanced, of course.) The veterans will laugh at you pretty hard.

Pages: [1]