Party Time!

All new ideas for the upcoming releases of ToME 4.x.x should be discussed here

Moderator: Moderator

Post Reply
Message
Author
itastelikelove
Higher
Posts: 56
Joined: Sat Oct 30, 2010 5:19 am

Party Time!

#1 Post by itastelikelove »

I've been toying with the idea of getting together with a group of my friends, learning some Lua, and making a modest module based on a setting we've used for various pen-and-paper games since we were kids. But one of the things I'd like to do with it is to have the player control a party (three characters sounds good to me), rather than a solo adventurer. I think it could also add some fun new gameplay to ToME, as an additional game mode - finding combinations of classes that work well together (Icy Wyrmic, Archmage, Berserker?), protecting your allies, developing new tactics for facing enemies with AoE attacks, making some abilities more useful than they are in a solo adventurer game, making confusion more of a threat than stunning, etc.

So my questions are:

Is it even possible?
And
Does anyone else think this would be a fun alternate game mode for ToME?

Assuming the answer to the first question is 'yes', here are some thoughts on how it might work.

You take your turn with one character, some number of monsters take their turns, then you take your turn with the next character. The game already calculates the speed and order of various actions from multiple actors, so determining the place of additional characters in the initiative order should be easy. the hard part (I'm guessing) is going to be getting the game to switch characters. You can kind of do that already with Control Summon, but that's an activated ability with a finite duration, so that probably doesn't help... I guess you could manage them with some complicated AIs, but that would basically just be like having two golems at once. Which could be more irritating than fun. And greatly reduces your tactical options, which i think would be most of the fun of playing in Party Mode.

Party members should be able to revive each other, or you'll just have one character with two disposable meat shields. Perhaps start everyone out with a rune or infusion that lets them revive an ally. Give it a really long cooldown, maybe make the user dazed for a few turns before the revivification takes effect. Even stunned might work - you could still use it during a fight in emergencies, as long as the third party member is still alive to watch the revivifier's back. If you want to keep the "oh god oh god please please please don't die no no nooooo!" feel, make these limited use and very rare (maybe make that part of the "insane" difficulty - just one revive per rune/infusion, never found in stores). But I would prefer to see revivification be pretty easy (Outside of combat, that is. Should be very dangerous during combat), so that the difficulty can be adjusted to the point where the game is nearly impossible without a full party. This IS supposed to be Party Mode, after all.

I'm just guessing here, but I think a three-person party could probably take the game on Insane difficulty with about the same chances that a single character has in Normal difficulty. Might also need to increase the number of enemies in some zones, or have more of them spawn with buddies of their own, in order to account for the player now being three targets.

A new generic talent tree might be necessary - something with party-related abilities, like 'drop aggro', 'grab aggro', etc. More targeted heals, status-fixers, etc. would help. Actually, that would be nice anyway, to help with all those suicidal escorts. :roll:

Sirrocco
Sher'Tul
Posts: 1059
Joined: Fri Apr 23, 2010 4:56 am

Re: Party Time!

#2 Post by Sirrocco »

I don't think it would work terribly well as described - You could program it, but constantly swapping between characters would likely be deeply confusing. It would also make things that split the party - teleports and so forth - a *serious* problem.

Instead, I might suggest a multicharacter, single icon system. You'd have one little '@' running around that represented a party of however many characters. It lets you get into some of the same "what works well together with what else" stuff while voiding the confusion and control issues.

itastelikelove
Higher
Posts: 56
Joined: Sat Oct 30, 2010 5:19 am

Re: Party Time!

#3 Post by itastelikelove »

Sirrocco wrote:I don't think it would work terribly well as described - You could program it, but constantly swapping between characters would likely be deeply confusing. It would also make things that split the party - teleports and so forth - a *serious* problem.

Instead, I might suggest a multicharacter, single icon system. You'd have one little '@' running around that represented a party of however many characters. It lets you get into some of the same "what works well together with what else" stuff while voiding the confusion and control issues.
I don't think swapping characters would be too confusing in combat, as long as there is some sort of clear indicator (flash, pointer, etc.) showing whose turn it is. That's pretty much how traditional strategy RPGs work, after all. Making all of the characters use a single icon kills the 'party' feel, and you lose the ability to make all kinds of tactical decisions, like: Does the meatshield rush the boss to draw aggro immediately, or does he stay behind so we can fire off some big AoEs?; Do we fight the Drake in a bottleneck so his hatchlings can't surround us, or do we fight where we can spread out, so his breath weapon doesn't hit all of us at once?; A party member is about to die - do i move an ally over to save them, or let the weakling die, because the others are too busy?; and so on. Plus, you could create a wall to keep escorts out of trouble. :)

Where I do think it could get confusing is when you aren'tin combat. Moving everyone one space at a time is fine when your lives are in danger and you need to be careful, but it could get stupid for wandering around. A possible solution is to make all characters move at the same time and in the same direction when you use the Run command. Then you could add in a bit of code so that pressing a directional key like normal makes you Run for one space instead of walking. Still a few little problems with that, though...your Ghoul beefcake could end up falling behind the rest of the group. Also, there should be a way to send one character off to scout. Maybe make group-run a setting that you can toggle off and on freely.

As for difficulties from Teleport, etc.: I consider that part of the challenge of being in a party, rather than a flaw in the system. One more decision that makes party mode an interesting change from the regular game. You could also change Teleport to affect all allies within a certain radius. Or, better yet, make that part of the party mode generic talent tree. Example Talent - Teamwork: 1/5, self-target PD affects all adjacent allies, 2/5, Regen infusion affects all adjacent allies, 3/5, Wild Infusion affects all adjacent allies, 4/5, TP affects all allies within 3 spaces, 5/5 all self-target runes/infusions affect adjacent allies.

Frumple
Sher'Tul Godslayer
Posts: 1517
Joined: Sat May 15, 2010 9:17 pm

Re: Party Time!

#4 Post by Frumple »

Just in case you've not already seen it, Love, look into The Guild. It's one of the few party based Roguelikes around, and does the multiple critter approach similarly* to how you're suggesting. It's also roughly* inspired by the *band family, as ToME is.

There's at least one other party based RL -- Peleron's Brilliant Rebirth -- that does the single-tile thing. There's also a couple of ASCII SRPG-type (read: Turn-based Tactical, what most RLs use to some extent*.) games among the 7dRL stuff, though I can't remember names off the top of my head, which you might want to look to for design inspiration.

You can also check out Gearhead 2, whose tactics mode allows individual party control (and see how incredibly useful it is in-combat and how freakishly irritating it can be to get people places when there's nothing to kill) and Dungeon Monkey Unlimited, by the same developer. DMU is close to the CRPG feel you might be interested in, while still borrowing many RL concepts.

I'd probably suggest the ability to toggle between those two with a configurable auto-switch (I.e. auto split when seeing enemy, perhaps with a tile distance selectable.) between non-combat single tile movement and combat multi-tile movement. You'll have your work cut out for you getting UI and stuff to be comfortable. It's not impossible -- I've seen it done -- but it'll take some monkeying with the T-Engine to get it to work smoothly.

As for the module itself, the standard advice would be system-first. Get multiparty working well before you start adding fancy stuff. Get used to the engine and code before you determine if what you're planning on is possible or worth the effort. Even if it doesn't work out, the experience will let you do other, more reachable, modifications in the future.

Good luck!

*Note this word well. :roll:

yufra
Perspiring Physicist
Posts: 1332
Joined: Tue Jul 13, 2010 2:53 pm

Re: Party Time!

#5 Post by yufra »

Sounds interesting! In regards to feasibility, there is already code for switching the "view" to another actor: Summon Control. You can find the talent details in data/talents/gifts/summon-utility.lua. The important line there is the engine.Map:setViewerActor. The implementation will probably find a bunch of other issues, but at least the viewpoint is easy. The easiest (but least elegant) way to implement multiple character control would be to use the game.player variable to store the currently active player and then add this to Player.lua:

Code: Select all

function _M:act()
    -- Set this player character as active
    game.player = self
    return mod.class.Actor.act(self)
end
Good luck!
<DarkGod> lets say it's intended

getter77
Thalore
Posts: 125
Joined: Sat Dec 12, 2009 2:16 pm
Location: GA, USA
Contact:

Re: Party Time!

#6 Post by getter77 »

http://lnl.sourceforge.jp/en/ Labyrinths & Legends, probably the longest running thing at kind of taking a stab at party based doings.

Bound to be some way to reckon it.

itastelikelove
Higher
Posts: 56
Joined: Sat Oct 30, 2010 5:19 am

Re: Party Time!

#7 Post by itastelikelove »

Thanks for the links! Guild was the most enjoyable of the bunch, but i'd still like more control over the rest of the party. AI always seems to be more A and less I. Slightly off-topic...darkgod, thank you SO MUCH for showing items stats, giving us monster and ability tooltips, simplifying gameplay and controls, and giving a shit about grammar and spelling. Thank you for making a game that is fun to play.

Down to business. Thanks for the snippet of code there, yufra, but...I don't know what to do with it. I know literally zero programming, in any language. But I am pretty good at poking around in things and figuring out how they work. So. Is there a good source out there for learning the basics of lua really quickly? Or, failing that, where should I start poking around first? And what tools do I need? Can you recommend a text editor? For windows and for linux, if you can - i have access to a fast Win7 computer, but when i move in the next month or two, it'll be just me and my slightly outdated linux box.

Also, what should the first step be? I'm thinking it might be easiest to start playing around with it by modifying the Alchemist class to have multiple golems, and giving everyone a modified version of Control Summon. And then go from there. Anyone else have a better idea?

Frumple
Sher'Tul Godslayer
Posts: 1517
Joined: Sat May 15, 2010 9:17 pm

Re: Party Time!

#8 Post by Frumple »

Most help I can give you is to recommend Notepad++ for windows coding. There's supposedly two or three other text editors that match it in functionality, but the two I tried (and have forgotten the name of) did not have even remotely as usable a UI.

As for Linux, I can't help yeh. I do know there's more than one good text editor out there, but not owning a linux box, I've never bothered to keep up with such.

As for tools, so far as I know all you (might) need is a text editor and whatever compiler is appropriate for the T-Engine -- but you probably won't need the latter. All LUA usually needs for you to muck around with it is a text editor. Maybe some graphics edtior-whatsit (ala photoshop, I guess, or maybe Paint.NET, for windows) if you want/need to add new graphical dongles to the UI.

Learning a coding language, unfortunately, isn't what I could generally call 'quick,' at least for the uninitiated (Note: I am not what one could call 'initiated' into the coding world.). Even picking up enough to functionally work with something like the T-Engine will probably take a few weeks. That being said, a quick google search will probably yank up plenty of resources for you to start the process. Try starting at the LUA-users wiki. Best of luck, yeah.

yufra
Perspiring Physicist
Posts: 1332
Joined: Tue Jul 13, 2010 2:53 pm

Re: Party Time!

#9 Post by yufra »

itastelikelove wrote: Down to business. Thanks for the snippet of code there, yufra, but...I don't know what to do with it. I know literally zero programming, in any language. But I am pretty good at poking around in things and figuring out how they work. So. Is there a good source out there for learning the basics of lua really quickly? Or, failing that, where should I start poking around first? And what tools do I need? Can you recommend a text editor? For windows and for linux, if you can - i have access to a fast Win7 computer, but when i move in the next month or two, it'll be just me and my slightly outdated linux box.
I learned the basics of Lua from this: http://www.lua.org/pil/
Keep in mind that I had a good bit of programming knowledge from other languages, so you way want to find a more general "welcome to programming" tutorial. You can ask DG about a linux text editor... I have used vi, gedit and kate.
Also, what should the first step be? I'm thinking it might be easiest to start playing around with it by modifying the Alchemist class to have multiple golems, and giving everyone a modified version of Control Summon. And then go from there. Anyone else have a better idea?
I think that depends on how you design the control. Some of this will be gibberish to you now, but I will go ahead and put it down for reference and other people's suggestions. You could add a modified version of Control Summon that costs zero energy (doesn't take a turn) to use, but that would only allow one character to act per turn (since when you send a command the game will tick and allow NPCs to move). I think it would make sense to switch view/control to each character as soon as they are able to act, and since characters can have different speeds this would have to be flexible.

I think your best bet is to start tinkering with Lua, then get familiar with how ToME is set up. For the later you can visit the IRC channel #tome where several people who code in ToME (I don't know, do we count as developers?) including DG (well he definitely does) hang out. You might want to outline some talents, monsters, etc that you want to put in the game and get them working in ToME first to get some momentum and then when you feel comfortable take a stab at the party modification. I personally feel this would be a great addition to ToME itself, opening up interesting class designs.
<DarkGod> lets say it's intended

Post Reply