Profiles (different options)

Miscellaneous Forums/General Discussion/Profiles (different options)

I just posted this over at Indiegamer, and thought I'd post here too for some alternative feedback.

OK I'm adding profiles to my latest game, but I have a couple of options and wondered which you thought is best.

a) Prompt on First Play Only: On first load/play you enter your name, then play the game, when you die it auto enters your name into high score. When you next load the game, it doesn't prompt you to choose a profile, it simply says welcome back PlayerName and has a "Click here if this isn't you/Switch Player" type button. The logic behind this being if most games are only played by one person, they don't give a stuff about profiles and just want to play as fast as poss.

b) Prompt on Each Load: You are prompted to create a profile when first loading the game, and then stay "logged on" as the player when playing the game and dying etc so that when you start another game from the title, it doesn't prompt you again. You are only prompted to choose a profile when the game loads. A new player would need to exit the game and reload, unless you add a small "change player" button somewhere.

c) Prompt on Each GameStart: You are prompted to create/select a profile when you click "Play Game". Then once the profile is created/selected, you may be prompted to resume your last game, if one exists. After a game over event, if play game is clicked, you need to select your profile again. The last profile used could be auto-highlighted. No "change player" button is needed for this scenario.

I'm worried that c) involves too many times selecting the profile. However, if you load the game up and only have one go, then exit, it makes no difference from b). The problem with a) is that it actually took me a few games before I realised that there was this whole "change player" thing, it wasn't obvious in a lot of games whereas blatantly having to pick your own name each time is obvious. Having said that a) seems to be pretty prevalent. Then again the Richochet games make you pick each time you click play game, thus use option c)

fire away.... :-) thanks in avance.

A.

A.

Also, to avoid causing my rant about selfish programs to be bumped, PLEASE do not set it up so that there are different sets of profiles for each individual user account, which can only be accessed on a per-account basis (ie: If I log in to account B, I can't see profiles in account A). One would assume that if a computer has user accounts set up, there would be one person per account. This way, you can even put game save data in its own folder that was given to it when it was installed!

A, definitely.

However: when you hit a highscore, default to the profile name, but give the player the ability to change it before submitting. It can be a bit annoying if you forget to change the profile when starting a game, and don't realize it until after hitting a high score.

I disagree with Mr. Picklesworth, though -- many people share a single account, so the windows profile isn't always unique to one user. Especially when someone just does a quick game, or on Win2000 where you don't have the fast user switching, it willbe a major annoyance if you would have to log into a different windows account just to get another profile.

Yeah the profiles will be global, who you are logged onto windows as will have no effect except to perhaps fill in the initial profile creation edit box.

xlsior: Yes, ability to override current profile is good if you've messed up and are playing in someone else's profile, but it's just more code and will also slow down users who are correct, admittedly only by one mouse click or enter key press.

Also the unlocked levels will NOT be global only within the user profile. I had considered an option to "share" you unlocked levels with other players.

A)

BUT, on the first play grab the username from the Windows Enviroment variables and assume this is the player, chances are (99.999%) of the time it's correct.

It's so nice to run a game for the first time and it say "Hello Tim, Click here if this is not you".

Xlsior: I restated what my post to make it more understandable. What I am saying is actually the opposite of what you're disagreeing with. (Or something...)
The point is, I intended to point out that it's annoying when a game has a profiles system, but each user account ends up with its own set of profiles so if I'm in Account B, I can't open a profile created in Account A.

Indiepath: Yeah, I already said that
who you are logged onto windows as will have no effect except to perhaps fill in the initial profile creation edit box.
it was your idea when you came round anyway. However, I wouldn't agree with the 99% stat as plenty of people use a computer with the default/same profile, kids/parents etc. But yeah it's probably > 50%.

Mr Picklesworth. Don't worry I understood you.

well so far it's option A then?

If you do suggest an initial username based on the windows login name, make sure to recognize a couple of the most common 'generic' names like 'administrator', 'admin', 'guest' or 'user', and give a different greeting since you can be pretty sure that's not their real name.

yeah good idea. I'll see if I can be arsed to do the whole environment variable thing if I've got time.

@Grey, it's not exactly difficult :D

I'm sure it isn't but I have a pretty big to do list and have to prioritise accordingly. Post some code then ;-)

Here you go:
tmpName$ = GetEnv("USERNAME")
If Instr(Lower$(tmpName$), "admin", 1) > 0 Or Lower$(tmpName$) = "guest" Or Lower$(tmpName$) = "user" Then tmpName$ = "Player"
If tmpName$ = "" Or Len(tmpName$) > 15 Then tmpName$ = "Player"
Print tmpName$

Function GetEnv:String(env_var:String)
	Return String(getenv_(env_var))
End Function


ah how nice thanks. Now to convert it to Blitz PLus ...

I thought you were working in Max, sorry.

Blitz+ version:
tmpName$ = GetEnv("USERNAME")
If Instr(Lower$(tmpName$), "admin", 1) > 0 Or Lower$(tmpName$) = "guest" Or Lower$(tmpName$) = "user" Then tmpName$ = "Player"
If tmpName$ = "" Or Len(tmpName$) > 15 Then tmpName$ = "Player"
Notify tmpName$


Sure
Print "Hello "+GetEnv$("USERNAME")

[edit]Bah, hate it when that happens!

I thought you were working in Max, sorry.
I should be, but my original game was Plus and the new one is an enhanced version of the old one. I haven't got the time nor inclination for a full Max conversion.

thanks for the code btw. I don't really have an excuse now do I?

A