jtr7 on 16/2/2008 at 00:18
We are on a veritable cusp of a Thief Renaissance!
Thief: The New Age!
No pressure, Tos! Seriously, you just do what you can, for as long as you care to. I know you knew that, but I think it had to be said.;)
Tos on 16/2/2008 at 02:03
Quote Posted by Yandros
If this thing makes it into general circulation, I'd be shocked if there isn't eventually a plethora of GvT FMs. Probably more than coop.
Out of curiosity, do you have any idea how that might be done (through a great deal of scripting, I imagine)?
Adding new game types shouldn't be
too difficult, but I have no idea how I'd handle assigning players to specific teams or spawning them at different locations. Using different models for the different teams should be fairly easy, though. I've never played Thievery, so I'm not sure what else would be necessary.
Yandros on 16/2/2008 at 03:14
Hmmmm, that's a good point, Tos. Perhaps custom scripts would be needed for the initial spawning, assuming you'd want guards and thieves to start in different locations initially (duh). I think currently Dark crashes if there's more than one PlayerFactory link (it expects a singleton), so unless that can be worked around as part of your work, we'd need a custom script that basically looked for tagged markers and teleported the player to the right one as soon as they're created based on their team. The Team prop is an integer IIRC so we actually have access to many, many values, not just the 7 supported through Dromed... in fact, NV wrote a script called NVTeamSetter that sets an AI's team upon instantiation to any given value. By default, it's set to its concrete object number, which means that by default every AI and player is on a different team - just what I needed in Hammerite Deathmatch! where it's basically a free-for-all, but not what you'd want for this. But as I said the script can assign the Team prop to whatever based on the archetype - so you could, for example, have ThiefPlayer and GuardPlayer archetypes that derive from Avatar and are set to different teams by default.
For the player, spawns after the initial one (at sim start) are a piece of cake and wouldn't require all that. You basically remove the player's DeathStage prop, heal them, then teleport them where you want them to spawn to (which can easily be randomly selected from among several).
Tos on 16/2/2008 at 04:42
Sounds like anyone attempting this through DromEd would have their work cut out for them.
There may also be problems with the way I've implemented respawning, if that were to be done. Currently, when the player is killed, a six second timer is initiated and the player is resurrected with approximately half of their hit points at the location of the map's starting point when it expires. I'm calling a function in Thief that returns the object ID of the starting point and then teleporting the player to its coordinates to do so.
This obviously won't work too well if there are multiple starting points -- though it sounds like that wouldn't work anyhow -- so this would either have to be reworked somehow (perhaps there's some way for me to find tagged markers on the map as you suggested) or respawning would have to be disabled entirely in that game type and left up to the FM author's scripts.
I haven't looked into teams, but I wouldn't think that they would be very hard to assign without using scripts. Changing the player's object archetype (or just the model) mid-game shouldn't be very hard at all, either. As we somewhat amusingly discovered after attempting to use a scouting orb for the first time in multiplayer, the game is fully capable of doing that. :p
Mortal Monkey on 16/2/2008 at 19:58
Quote Posted by Volca
If you'd like to, let me know what you'd need. I'd be able to create a GAM->XML and XML->GAM converter [...] I guess this would be interesting for DromEders as well, so worth the trouble.
Yes! \o/
Edit:Quote Posted by vort
Most of the changes are related to the sound (schema) trees in the .gam, I need to edit the playing parameters applied to them. The problem is, if I apply parameters to the parent of a tree that contains dozens or hundreds of schema entries, I need to manually look at every single one of them to make sure they don't have their own properties which override that of the parent's.
Writing a script to patch all occurences of a property in the exported XML should be trivial, no?
Irenices on 25/2/2008 at 09:09
Been a while since anyone posted here, this still making progress?
vort on 25/2/2008 at 09:24
Tos has been busy with other stuff lately.
But as far as progress since the last update goes: saving/loading works now via the quick keys, you can see other players' names when you frob them, guards lag a lot less due to the ghost update delay being reduced, probably a couple other things that have slipped my mind as well.
He also mentioned having an idea on how to fix blackjacks for clients, but I haven't had a chance to talk to him about that much yet.
Tos on 27/2/2008 at 22:04
As vort said, saving and loading have been (kinda) implemented, but it's restricted to quicksaves and quickloads.
Other player's names are now visible in the center of the screen once you get within a certain distance of them (they do not need to be frobbed), which should help to reduce confusion in games with more than two players.
The AI lag has been significantly improved as well -- though not completely eliminated -- and most of their motions work properly for clients now, which has helped a lot. Blackjacking is definitely fixable, but that will take a little bit more work.
All in all, it is largely playable at this point, though I'm not sure if I can call it "fun" yet. The biggest problems remaining are some infrequent crashes to the desktop, occasional game-breaking bugs that require a restart, and quite a few minor glitches that can be a bit frustrating at times.
jtr7 on 27/2/2008 at 22:32
So now playing the game is like working with DromEd?:p
sNeaksieGarrett on 27/2/2008 at 23:24
Man, this is so cool. We should all thank you for your work;)
PS - any chance of a new video one of these days?:cheeky: