So I've been working on astandalone game in .ipk3 myself since last month, and as I was trying to figure out how to do it from a directory instead. Eventually I figured out by myself a solution that seems to work perfectly, and since this is a recent thread I decided to create an account just to share my findings.
What I did was create a dummy .ipk3 file containing nothing but an IWADINFO file inside it, so that GZDoom tries to run it as an IWAD when you run it (also you should delete game_support.pk3 and brightmaps.pk3 from your project's GZDoom copy, if you haven't already). This will of course throw an error if you just run GZDoom with no other parameters, but what it accomplishes is you can now run GZDoom like so:
gzdoom.exe -file <your_project's_directory>
and, boom, there you have it, you can now test your project from a directory so you don't to repackage it every time. You can set up SLADE to run it by adding "file %a" to your game executable's run configuration; I'm not sure how to do it for UDB because I don't use it.
Then, when you're ready to distribute your game online, all you need is to package your directory into an ipk3 file and delete the dummy one.
To be honest I only figured this out because I was curious, I really don't mind editing the pk3 file directly on SLADE haha.