Well, without choice it could be difficult. I have seen it done, but still don't understand how it works. It uses 'start /b' to run a controller that writes to a files, which is always being read for input, but that's as far as I could get. Here is a
link.
I would recommend getting a copy of choice.exe and putting it in the folder with your batch. If you are moving between folders while the game runs, run this command at the beginning to add choice 'set path=%path%;%~pd0 '. Don't forget to add %~pd0 to path, not override it or you will get some really ugly bugs.
To save your game to a text file, I would use these sets of commands (without having seen the code I cannot give you the optimized method. This may not work depending on how you are structuring your game).
set >save1.txt
for /f "delims=" %%A in (save1.txt) do set %%A
All code written in batch is viewable if opened. If you want your game 100% unhackable make a board game. I would use a language that compiles to write the password generation and input if you really want it secure. I think that for the arcade type of game you are talking about, a simple password will do. Here is how I would write it. This is the simplest (in terms of getting in) as I know, but it is also the easiest to code.
cls
echo Input Name:
set /p saveFunc_name=^>
cls
echo Input Password for %saveFunc_name%:
set /p saveFunc_pass=^>
cls
echo Saving, Please Wait. . .
echo %saveFunc_name%/%saveFunc_pass% >>saves.txt
set >save_%saveFunc_name: =_%.txt
cls
echo Enter Username:
set /p loadFunc_name=^>
cls
echo Enter Password for %loadFunc_name%:
set /p loadFunc_pass=^>
cls
echo Loading Game, Please Wait. . .
for /f "delims=" %%A in (saves.txt) do (
if "%%A"=="%loadFunc_name%/%loadFunc_pass%" (
for /f "delims=" %%G in (save_%loadFunc_name: =_%.txt) do set %%G
) )
if not defined saveFunc_name goto :Error_noSaveDataFound
I doubt you will need a more secure save function, but if you do, ask.
*No code has been tested.