Feature Request: Multiple Characters/parties

Chris H.'s Ultima / ACS-style game development system!

Moderators: Ice Cream Jonsey, joltcountry

Blacklight
Posts: 5
Joined: Tue May 19, 2009 11:01 am

Feature Request: Multiple Characters/parties

Post by Blacklight »

I've been noodling around with the ACK for a couple weeks and there's a feature that I really enjoyed with the old ACS that I don't see implemented in ACK that I would love to have in there.
In ACS, it's possible to have up to four characters going through the adventure simultaniously. You could do this using only one joystick so it was really fun to play "hotseat" with other players or to use multiple characters in the adventure together. When one character would finish his move, the next one could use his/her movement points and move, etc. If another character was in another map, the characters on one map would complete several moves, and then the action would jump to the other character on the other map for a few of his moves. This allowed for parties of characters going through the adventure, or in the case of some adventures I made, arenas and multiple maps where players or characters could hunt and fight each other. This was one of my favorite features of ACS and I'd love to see it implemented.

I want to re-create a lot of the old adventures I made with the ACS back in the old C64 days and I need this feature to do some of the most fun ones. :smile:

Get this implemented and I will create and share.

Chris H
Posts: 272
Joined: Sun Dec 02, 2007 4:07 pm
Location: California, USA

Post by Chris H »

Hi, and thanks for your input -- I wish it were possible to implement this, but unfortunately the engine is much, much too centered around "the player" for this to be possible.

As an aside, I found (in ACS anyway, and I could certainly see it true here) that multiplayer options make game authoring much more difficult, in everything from tuning the difficulty of encounters to controlling the flow of quests... if a "key" is required to enter somewhere, who gets it? if a door locks to prevent you from backing out of some plot-critical situation, how does the 2nd person get in? if an NPC sends you somewhere as part of a one-time-only dialogue exchange, what happens to the other players? etc. Not to mention playtesting: I had to run through U4Part2 enough times to make sure it was solvable, having to playtest it with multiplayer would get crazy.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

I agree that adding multiple characters to the existing engine would be a massive increase in complexity, plus it would affect games in a number of ways that would be difficult to predict and test.

However...

If Chris gets a chance to add in a macro command that lets you directly edit a creature's HP, I think that you might be able to code up a limited version of multiplayer for your particular adventure if you wanted to.

Basically, there would still only be one actual player character. What the game would do is after a certain number of turns, rotate the player to the next active character by moving the player, changing the player icon, swapping out inventory, etc. This would involve a large amount of macro code and variables, but I think it could be done if you really wanted it.

The critical bit is that when one player is moving around on the map, the other 'players' are just stationary creatures. While player A is moving, players B, C, etc. just stand there, and can be hit by creatures and the active player. Then, when it's time to swap to the next player, player A is replaced by a creature whose hit points are set to HP, and then HP is set to the current hit points of creature B. And you would have to have variables that held all the current inventory items of each player, so you could swap them out as well.

Of course, there might be some reason why this wouldn't work; i haven't actually tried it. In order to take a shot at it, we would need macro commands added along the lines of

CRGETHP <instance> <variable>
CRSETHP <instance> <value>

Of course, these commands would allow other nifty tricks like creatures that could heal themselves, or creatures that changed form or ran away after they were weakened beyond a certain point.

Blacklight
Posts: 5
Joined: Tue May 19, 2009 11:01 am

Post by Blacklight »

Another idea would be to implement it but make CERTAIN mission designed for multiplayer. That way, you don't have several players putzing through an adventure designed for one character.

ACS implemented multiplayer with no problem and what happend in the situations you mentioned above were entirely up to the author. The author can just design missions made for a certain number of characters and whether or not it's completable is in their hands. I don't think you'd have to change any interaction stuff at all. You would just have to mention that "This adventure is functional from one to three (or whatever number) players" in the description.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Another ACK fan! Welcome Blacklight!

One of my favorite ACS features I thought would be cool for ACK was the ability to auto-generate adventures using whichever kit or custom set of graphics and objects you had loaded. That was the best part of it for me as a kid since I didn't know anybody else who had ACS and so I could only play my own adventures. So I would just experiment with different kits [including my own custom stuff] and hit auto generate adventure whenever I wanted to play a new game that I didn't already know all the maps and stuff.
Which of you is interested in my fine wares?

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Garth's Equipment Shop wrote: One of my favorite ACS features I thought would be cool for ACK was the ability to auto-generate adventures using whichever kit or custom set of graphics and objects you had loaded. .
ACK currently has a fairly extensive set of export features (export text of macros, messages, descriptions of objects and lists of creatures, etc.), but the capability to import is more limited; you can pull tiles from BMP files, but that's about it with the exception of importing data from a different adventure.

I've always thought it would be really cool if ACK could export/import map data to/from an external file using a really simple text format, something like

165,123,0,0,210,45,45,...

for each row of the map, where each number represents the object/terrain at that location. Obviously it would be a bit more complicated than that, since objects have data fields (for custom objects/graphics), and since you can have stacks of objects/terrain in a given location. But if you had some sort of simple file format (simple enough to be opened in a text editor if you wanted), it would be possible for anyone who was interested to write programs that could manipulate that file and do things like auto-complete or randomize maps, or even do search and replace.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Another cool idea would be to be able to import text files full of objects [either setting the graphics for them from within ACK once imported or assigning a certain tile number to each one if you have them already and know the numbers]. Maybe import dialogs and macros and mosaics the same way.
Which of you is interested in my fine wares?

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

It would also be handy to be able to display all tiles (one of the two sets) on screen at once in the graphics editor. Just some sort of hot key that would display all 240 tiles (which should fit in 320x200), and then when you hit another key it goes back to the editor. One key to show the normal set, another key to show the alternate.

This would make it easy to grab a screenshot which had all the tiles in one frame, which would be useful for a number of things I think.

Chris H
Posts: 272
Joined: Sun Dec 02, 2007 4:07 pm
Location: California, USA

Post by Chris H »

If anyone is interested in making add-on editors, I'd just as soon give them all the details of the file formats so they can manipulate the files directly. (I'm reluctant to spend a lot of time creating something that isn't by itself useful without third party software which may or may not be created)

The all-tiles export and import is a cool idea, I may see about that. I'm spending the next few days quarantined at home due to exposure to a co-worker with swine flu, so I may have a little time to poke around in the code.

By the way, at least as far as the ACK source code goes, there's some truth to this. :)

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

I am interested Chris. Maybe rld and I could work on something as a team effort... rld?

Loved that techy humor comic. So you discovered the elusive point between under-intoxicated and over-intoxicated at which you become a superhuman programmer? lol.
Which of you is interested in my fine wares?

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Chris H wrote:If anyone is interested in making add-on editors, I'd just as soon give them all the details of the file formats so they can manipulate the files directly.
I'm definitely interested in this. I spent a little time at one point poking around in the macro save files, and was thrown off a bit by the amount of what appeared to be extraneous information. At the time, it seemed to me that the Pascal code might be writing variable data to these files in some sort of format internal to that compiler, which gave me no confidence in my ability to poke around in more complex things (like the map files).

So, any information you can provide about how the data files are stored would be most appreciated. I think I am probably most interested in the region map files at this point, particularly the simpler type of worldmap region (the non-"custom" type).

Beyond that, i would also be interested in how the macro and message/dialog files are stored, because it would be cool to be able to export/import these to some sort of plain text format.

Garth

Post by Garth »

Hey rld, with the source code are we able to do these things now? I really really want to be able to manipulate and import maps, macros and dialogs via text files or something.

metoo

party mode

Post by metoo »

ultima5 has "fight rooms" where you actually see the party members, and you take a turn to control them. In world map you only see one character. But since ack uses variables, could you not make other members be spawned (friendlies) that will fight along side you.
you could say something like:
IF pm1(party member one) = 1 (true, or has joined your group) THEN spawn them in the fight room. You couldn't control them, but being friendly would make them fight bad guys. if pm1 = 0(false) then don't spawn them in the fight room. Monsters would go after friendlies if I'm not mistaken.
You would have to enter a fight room for each fight.
I thought it tedious to have to control every member anyways and in ultima7 you don't have to control them.

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

Oh yes that is definitely doable with macros. And you could simulate them being in your party when not in combat with dialogs and macros triggered when you enter someplace or find some special item while that npc is 'in your party' at which point their dialog screen with their picture pops up to interrupt things for a moment while they tell you something about the place or item or something on their mind perhaps also based on earlier flags that were tripped in a quest. Another idea is to set a special key for opening up dialog with your party. Variables could keep track of their 'virtual' inventory which you could take from or add to from your own inventory via macros and thus use your npcs as pack mules. The possibilities are endless.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

Another thing that would make this easier is to avoid the whole 'having to revive/heal party members after combat' which tends to be an annoying/repetitive part of RPGs in any case.

You could heal party members during combat if you wanted easily enough, by simply using the patch mechanisms to edit the HP of the NPC creatures, but any time you started a new battle, just respawn all the current party members at full HP, just like all the creatures you would be fighting against.

metoo

party members

Post by metoo »

definitely going to make a game.
I know the inventory of party members helps keep the idea that individuals are with you. But i prefer the item list 1-99 of the original ultima4. genius to do away with the having to heal members. Too much time is spent healing party members. If they die, then a "body item" can increase by one, and later resurrect them at a healer shop. I would like them to die off but too many fans like resurrect, and shops can still do it. resurrect should be more of a challenge. You should have to do something serious in order to accomplish it, otherwise its like cheating.
The game i plan to make will incorporate that. Also, party members don't have to be human characters that get spawned. They could be spirit guides or daemon helpers of monster addons.
Even if you are cursed, a bad demon will always get spawned and fight against you along side the other monsters you fight. And eventually you have to get cured.

rld
Posts: 223
Joined: Sun Jan 25, 2009 2:17 am
Location: Dallas, TX

Post by rld »

I like the idea of a curse, with an extra enemy spawning against you in every battle, a lot. Sort of an anti-ally.

I also like the idea of having to go through more trouble than casting a resurrect spell or using an item to bring allies back. Maybe if the allies are entities/creatures that get summoned to fight alongside you, you use a special item to summon them (like a crystal or something), and if they are killed in battle your summoning item gets cracked/broken and you have to go through some special trouble or go somewhere specific to get it repaired.

If you want to have 'equipment' that can be used by allies without having to go through all the trouble of transferring items to/from them, you could use the armor slots mechanism to have special weapons that could be equipped/deequipped for each ally type.

For example, you might say slot 2 was weapons for your Knight character, so the game would only let you equip one of these items at a time in slot 2. The equip item (technically armor) would have no effect on your 'main' character, but when the Knight ally spawned the game would look at the Knight item you had equipped and take that into account when deciding what variation of the Knight creature to spawn.

me too

party members

Post by me too »

great idea. Having slots to fill. The game i imagine will combine quest items with ally spawns. One item will be death's scycle, and you have to go through hundreds of monsters to get it. I was thinking death itself could spawn to use it. It would horribly tough to get, but so rewarding to go back through what you just came from with death at your side.
Does the macros use basic? I learned basic ages ago on a commodore, and from what i've seen, looks like basic.
Also can there be more then one world map? Ultima5 has two world maps, the land and the underworld. I would love to have this. I wanted to use ultima4 engine at first for the game but you have to play by ultima 4 rules and I didn't like them, so I'm going to use Ack. great that you guys are committed to 2d rpg. Thanx

User avatar
Garth's Equipment Shop
Posts: 638
Joined: Fri Dec 05, 2008 5:55 pm
Location: Festering Foothills
Contact:

Post by Garth's Equipment Shop »

lots of great ideas MeToo. I recommend starting a new thread for your project where you can collect all your thoughts, ideas, screenshots, questions, playtest downloads, etc.

Yes the ACK macro syntax is very much like Basic though not nearly as large a vocabulary. There are quite a few macro commands and variables unique to ACK though. Its all covered in the official pdf manual that comes with ACK or readable online here: http://www.80sgaming.org/ack/MANUAL.PDF

I've been working on a kind of html version of the manual with much more included in it. One use of this will be so I can link a specific topically relevant page to someone asking a question. For example here is the page on macros.

https://dl.dropbox.com/u/21267578/ACK/A ... acros.html

It is a bit wordy with minimal formating at the moment and could probably be broken down into further child pages. I still have a lot of work to do on the whole site yet.

Also you can export macros from existing adventures like Chris's Ultima parody and study what his macros do and how they do it.

Post Reply