Самый банальный способ - шифрация сессии, запуск апплета в лаунчере, но принятая сессия преобразуется и уже запуск происходит с другой сессией + при запуске игры сразу коннект на сервер и обнуление сессии. Сессию пускать через соккет.
Добавляем обфускацию в лаунчер + в алгоритмах расставляем проверки на измененность лаунчера, чтобы лишние хлопаты предоставить тем, кто полезет в байткод.
+ Если реализовывать лаунчер на базе пабликов, нужно внести небольшие изменения для отсылки и получения сессии.
Более - менее защищенная сессия готова, придется каждый раз трудится для того, чтобы обойти лаунчер, если версию лаунчеров и алгоритм для сессии менять, Защита от 98%.