Friday 20 February 2009

What would you do? (about HAK packs)

Hi fellow mod-builders (and others),
I sitting here (at a Friday evening!!!) thinking about HAK-packs and what would be the best to do.

1 BIG single hak-file
Pros: Easy to pack and distribute
Cons: Big size

or

Multiple hak-files (one for 2da files, one for models and textures, one for vfx files and so on)
Pros: Easy to distribute patches and fixes. If there's need for changing a 2da I just upload that small hak to overwrite the old one.
Cons: Complex to make

Ideas?

Yesterday when trying my install kit I installed on my laptop. While the installation when well I encountered some strange behavior in the module when playing it. Maybe some of you have an idea about what's happening.

When entering an new area i write some variables on the PC. One of those is if the PC is in a area where the Thief will show up. Then in a HeartBeat script i do some checking of that variable and if it is TRUE I'll jump the thief to the PC. The thing is that it does not always work. Even on the same area. I now have one game saved where the thief shows up all the time and another saved game where everything works as it should. It seems that if it fails one time it will faill forever and vice versa. Strange - and scary because I was about to release the module for testing this weekend. Now, instead I have a bit of detective work to do...

Take care!

16 comments:

Jclef said...

If it were me, I'd go with the single Hak.

And good luck with that strange behavior, Amraphael - I hope it gets resolved soon with as little fuss as possible!

EC said...

As a player I find it daunting when I see a long list of separate files to download for one mod (e.g. the Conan series). It can be a turn off. I suspect less savvy players may feel even more strongly.

So I would go with the fewer number of files needed to download.

However, if you provide a single file installer that contains all your necessary files, then you could break up your haks in there if that is useful for you, while it all remains invisible to the player.

But I don't think I would thereafter issue separate patches to the first download, unless they can be applied to an *ongoing saved* game. I think your main single installer download should always contain the latest complete version of the mod. Which means you need to upload the full content (all haks and all) everytime you update. Unless that is an issue (bandwidth), that's probably the way I'd do it.

Bottom line, in my view, multiple haks might be useful for providing smaller hak-related patches to players for ongoing games when there is a hak-content related bug (2das, models etc.) to fix. I guess they are not the most common bugs but they can happen. If you go with multiple haks, make sure you name them so they can be easily recognizable (e.g. zork_2da.hak etc.).

Also you may want to look into Lance's empty hak method to deliver patches. I believe it involves pre-attaching an empty hak to your mod and then delivering patches through new versions of that hak. That hak would need to be loaded last I suppose. Lance would explain it better I'm sure!

Good luck bug hunting!

PJH said...

Single hak. It's compact, organized and it'll be players to keep track of what hak is for what module. Name it to match your module too, like zork.hak or something.

Wyrin said...

On balance I'd go for a single hak. Tho I don't like large downloads as a rule even on modern connections as there can still be problems - I think the installation advantages for the end user probably outweigh it
Good luck on the bug hunt. I've had so many bug reports I can never replicate and so many one off quirks. Can you have back up triggers to check variables?

dirtywick said...

Depends how big your hak is. If we're talking under, say, 100 MB I wouldn't care personally.

There's a lot of reasons with larger haks to have the 2da files seperate, mostly because any fixes/updates to current game versions will happen with those files and only those files. In fact, once you've verified all CC is working, I doubt you'll ever touch anything but those 2da files again.

So, if you'll save a significant amount of time by uploading a smaller hak, I would do that. Otherwise it's not really worth the trouble for both you having to maintain seperate haks and players for having to manage them.

Amraphael said...

Thanks for the comments. As the most of you think it's better with a single hak I'll think about it. But as usual I'm not completely convinced ;) We'll see after the tests. If I use a single file it'll be about 270MB. That has to be compared to the full installer which is about 160MB - all inclusive. With multiple haks I could release a 1.2x 2da patch of a few 100kB that the player just drops in the hak folder.

Jazhara7 said...

After just downloading dozens of files for reinstalling Baldur's Gate 2 with as many mods as possible (Look up "Big World Project" on the Spellhold Studios site, if you want to see what I mean exactly), I can only second that downloading dozens of files is rather daunting...at least right now. Downloading a large file is not a problem for my connection personally (in fact, it has been the object of "bandwidth envy" before), though I do understand that some people have less fast connections *shivers at the thought of dial-up*.

In the end, I will go along with anything you choose for this. :)


- :) :) :) :) :) :) :)

Shaughn said...

This is something that I have also been kicking around. Up until now I have been using override files so it is easy to add, modify and whatnot.

I have been looking at doing 2 HAK files. A 2da HAK then the second will have all the other stuff.

Lance Botelle (Bard of Althéa) said...

Hi,

Did you consider my "PATCHING" hak idea? It is something that I recommend all builders to consider, and is something I will use myself.

The idea is to release one major hak and a small update hak at the same time. The small update hak takes priority over the big hak so that any updates you need to do will take priority over any parts in the bigger hak.

If you have not heard of this idea or want me to explain more, I can do. Basically, any updates you make *after* the initial release should only require a download of the priority smaller PATCHING hak.

:)

Lance.

Lance Botelle (Bard of Althéa) said...

Hi Again,

I found a link to an older post explaining the concept:

http://nwn.bioware.com/forums/myviewtopic.html?topic=574566&forum=47

Lance.

Lance Botelle (Bard of Althéa) said...

The heartbeat script ... can be a timing issue. Sometimes, I have applied variables to a PC to work on a heartbeat and then wanted to clear them as well. Make sure you are not clearing the variables down before the heartbeat has taken place, which can happen depending on how you are coding it. Sorry if that sounds a bit vague, but I am finding it hard to explain what I mean without seeing your code.

I'm looking forward to getting my hands on your mod. :)

Lance.

Lance Botelle (Bard of Althéa) said...

I just read that E.C. Patterson mentioned my hak idea as well ... :) Thanks E.C. Patterson!

I would definitely recommend it, as you *can* patch your module even during saved games, so no player ever has to start again. That link I posted above gives more explanation, but be sure to quiz me more about it of you like. :)

You have to sign into the forums to get to the post.

Lance.

Amraphael said...

@Lance, thanks. Yes, I've been thinking that way to make patching easier and will probably have what I called a "override hak".

About the HB. It could be timing problems as both the module-hb and the NPCs hb sets and deletes that variable. I've added some intelligence behind it now but it's hard to see if it works. The problem showed up once on over 100 play tests.

Lance Botelle (Bard of Althéa) said...

Hi again,

"Override.hak" would do fine. :) I called my Soul Shaker hak "SSPatchedScripts.hak" as it shows it as the "patching" hak. As long as its clear to the player what it is, then all should be great! :)

If the variable is cleared in teh module heartbeat as well as the PC's then it is almost certainly to do with this (as I expected) as I encountered the same problem in a part of my code once. In the end, I had to remove it from the module heartbeat and work a way of doing it within just the PC heartbeat. Otherwise, the problem is, the module heartbeat can clear down the variable before all PCs have had the alteration take place (if you see what I mean).

You could (I suppose) set up a a counter for the number of players and reduce the variable by one until all players/pcs had had the variable chaned, but this may be a bit fiddly.

Lance.

Marc Paradise said...
This comment has been removed by the author.
Marc Paradise said...

I would also say to use a single hak - updates can always be applied via small hak "patch" downloads that take priority over the original haks.


On the other hand, if you're providing an installer then go with whatever is easiest for you to manage.

- Grinning Fool