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 - Ari Rahikkala

Pages: [1]
1
Programming / Simultaneous turns?
« on: February 28, 2012, 05:54:44 PM »
Just wondering - are there any roguelikes out there with a simultaneous turn system? Well, not a true simultaneous turn system where all actions are resolved fairly - I've seen Diplomacy's resolution rules, and trying to make even a simple game like that work with fair simultaneous turns seems to lead to horrible logical contraptions. But how about roguelikes with an initiative system? That is, every actor chooses an action and rolls initiative, and then those actions get resolved in initiative order.

As far as I can tell, the big downside is that simultaneous turns are harder to program. Instead of just changing the game state from the interface and/or AI code, you actually have to make a representation of actions and separate code to produce actions and resolve them into the game state. And since the world might have changed between when the action is selected and when it's resolved, you have to make the representation and the resolution code flexible enough that they can "guess" the "intent" of an action. For instance, if the player enters a walking action in a direction where there's currently a monster, that definitely has to be represented as a "bump this monster" rather than a "walk in this direction" action, because they mean entirely different things if the monster has moved away by the time your turn is resolved. And it's still not necessarily clear what that means either - what if the monster dies before you can attack it? What if bumping friendly monsters swaps places with them rather than attacking, and the monster becomes friendly before the player's action is resolved? What if the player in fact was expecting the monster to move away and in fact wanted to just move into that tile afterward?

The upside, though? There's a lot of interesting little things you could do with a concept of initiative and a certain sort of concept of simultaneity. You could design gameplay based on controlling initiative. Taking an earlier initiative slot could obviously have a great many uses - dodge out of the way of attacks, get to control your positioning better, hit things before they get a chance to hit you so that they don't get to hit you at all on the turn when they die, etc.. Taking a later slot probably could be useful in some cases, too, for instance for making sure that you moving next to a monster happens *after* that monster's turn so that it doesn't get a chance to hit you that turn. For that to happen there'd have to be some kind of a "reaction" mechanic so that, say, if you were just moving into a tile but a hostile monster takes the place before your action is resolved, you attack that monster instead. It would be kind of breaking the concept, but it would be interesting nonetheless if there were also a  "fast thinking" ability that could also allow the player to actually pick their actions at their time of resolution - no, I don't know how this would work if your initiative depended on what action you were actually taking.

Less importantly (but I'm mentioning it anyway since it amuses me), it would mean you could run your AIs in parallel as long as they're thread-safe and don't modify the game state. I'm pretty sure it doesn't matter for the vast majority of roguelikes, but it might be an appropriate design for the next Dwarf Fortress.

So far though I'm just curious if anyone's got experience of doing this or trying to. It seems more trouble than it's worth, but roguelikes cover a wide range of designs, so there's always a chance that someone's done it. Would be interesting to hear how it worked and try the game out.

2
Other Announcements / The 7DRL crop of the year
« on: March 12, 2011, 06:33:37 PM »
Strange that we have had so little 7DRL discussion on Roguetemple this year. Everyone busy on RGRA or just quietly developing their own?

Most of the 7DRLs I've tried this year have been more or less the usual dungeon crawlin' monster-hack-and-slashin' fare. There's a few highlights like the clever mechanic and nice atmosphere of God of Change. If you're going to implement a Xom-like chaos god in your roguelike, you might want to try out God of Change for inspiration. hmp's Dwarftown also does a lot of atmosphere with little material: Going from the cheerful sunlit forest to the dank dark rat cave lit here and there by glowing fungi is a pretty evocative moment. Like Madness from last year it's balanced to be pretty easy, so consider it a nice stroll through some ASCII environments.

So far, though, my favourite, if-you-only-play-one-7DRL-this-year-make-it-this game is kusemono. I already praised it on the newsgroup, but I'd just like to repeat that this game does being a stealthy killer really well, with some simple and cool mechanics to govern visibility and running. It's cleverly designed so that you don't need to hide around corners to take out a single enemy: You just need to walk in at an angle and run the last couple of steps. However making good use of the environment is essential to clearing (or going around) rooms with more ants in them.

The shield mechanic is cool too. Essentially the game will always forgive you one error, giving you a variety of tools that all require having the shield charged to use. Killing an ant recharges the shield, so you can use those tools a lot... but if you should ever make two mistakes in a row, you'll be next to an angry mutant ant with a discharged shield, meaning a pretty good chance of ending up dead. It's a far more relaxed approach than consumables that you have to manage over time, yet it still keeps the game breathing down on your neck regardless of how careful you try to be.

3
Programming / In the early midgame
« on: November 18, 2010, 09:27:41 PM »
That's right, I'm in the early midgame. Well, *very* early midgame of roguelike development. My plan is to eventually release a game named Straylight: Divergence, a sci-fi roguelike with some transhumanist themes. But here's all I have right now, in the form of a video (Don't ask me what those Haskell libraries like HTTP and xml are doing in the first few frames, I'll be looking at the packages I depend on and what sort of weird dependencies they have once I'm closer to release time). Going through it, you can see I have:

- A walking @, yeah!
- An environment of some sort to play in. The room and connection layouts are supposed to look a bit like a university campus or a small office complex that's built "close to nature", with outdoors areas everywhere, and trying to avoid corridors (corridors are a bane of interesting gameplay).
- Other walking @s. They pathfind to randomly picked positions.
- A mess of characters in the indoors rooms. I intend to eventually get around to implementing some sort of furniture, these characters display places where it could go without disrupting paths between doors inside rooms.
- A sort of "shooting" (though there are no guns in the game yet) and "jumping" (with no limits on how far you can jump) interface.
- Incredibly basic character stats. Stamina doesn't do anything and I'm not entirely sure it will even stay in the game. I kill one walking @ by shooting at it ten times.
- Oh, and forgot to show this in the video, but you can pick objects up and they'll be carried with you. At least as much as the game state knows, anyway, there is no actual inventory interface yet.

That's all well and good, but where do I eventually intend to get? Well, here's pitch.txt, which I hope to use as the feature list when I eventually announce a v1.0:

Quote
- A mixture of melee and firearms combat, somewhat influenced by the Matrix series (but not as flashy), with cover as a significant element in gameplay
- Acrobatic combat moves controlled by "dancing" a la PrincessRL
- No killing rats or worrying about food - you are a badass superagent right from the first turn
- Equipment- and implant-based raceless, level-less, XP-less, skill-less and almost classless character customization
- Five character archetypes to kick off a specialised build (while avoiding limiting your later options): Homo Superior, Catlike Assassin, Hulking Brute, Half-brained Abomination, and Robed Ascetic
- A mid-hard approach to the science fiction theme, avoiding things like rayguns and psionics, but allowing for all sorts of cinematic transhumanism and weird physics
- Character advancement based on a large tree of perks ranging from mundane advantages like increasing your character's hitpoints, to special abilities like wallrunning or ability to "undo" actions
- Cyberware, bioware, nanites, performance-enhancing drugs, special mental disciplines, and more ways to make your character greater than human!
- A variety of psychoses to suffer from if one goes too far in one's human enhancement forays (based on a sort of sanity meter)

Some of these things I've got more specific plans about, some only a couple of vague ideas of. You'll note I've been savvy enough not to try to design a procedural plot generator, or to use complicated AI techniques, or make a MMORPG, or any of the other usual stupid pitfalls. But I haven't been savvy enough to come up with a development schedule that would take me to something playable through minimal effort (something that in fact screwed me over a bit in the past as I spent weeks working on some fancy subsystems that I've gutted by now after realising how completely useless or unimplementable they are), and still don't really know where to go with development.

So right now I'm having something of motivational/organizational problem: Here in the early midgame of roguelike development, you can get started on anything, but everything depends on something you haven't yet finished. I could just randomly decide to improve the interface for shooting, but I don't have a way to determine what's a good target yet. I could make an inventory interface, but I haven't decided what sort of an inventory system I should have and, for instance, how many different objects to expect the player to have to manage. I could try and see if I can make the NPCs start acting in more meaningful ways and reacting to things, but it would be so nice to at least have an idea of what sorts of NPCs I want, not to mention finishing with the furniture so I could have them interact with that...

... actually, come to think of it, I might just do message printing next.

So, uh, yeah. Please feel free to ask questions, make comments, commiserate about the difficulty of developing with a spec that's partially half-formed in your head, etc.. I just went public with this in the hope of refreshing some motivation points. :)

Pages: [1]