Quote: "but if I buy a single player game I should not NEED to be connected to play."
Agreed, and there are local security measures that be taken such as
disk anti-copy to minimize piracy. These features can easily be added to a Single Player game with Networking, not so easily to do the reverse.
As Independent Game Developers, I believe extremely in two things: 1) We must Innovate; 2) We must give our games every advantage possible to compete. Network capabilities can provide that advantage and possibly new innovation can be found within it. Example of innovation-->
remstart
******************************************************************************************************************
I wrote `The Xmas Gift` for the Christmas DBPro Minimal Media Coding Competition 2007.
It was a game in which the player had 3 opportunities to guess whats in a small Xmas Package.
I used DBPro's: FTP CONNECT password argument for the secret word to be guessed;
FTP GET FILE to grab a file and display a victory message; FTP PUT FILE to logged the winner.
The XMas Gift proved to be a extremely challenging game. Someone on the TGC forums eventually guessed
the gift word and I sent them $25.00 gift for a Christmas present. The game received high praise as
being very innovative and clever in its use of networking.
As a gift to you, I provide the original DBPro Source for The Xmas Gift below.
******************************************************************************************************************
remend
Set Display Mode 800,600,32
Set Window On
Center Text Screen Width()/2,Screen Height()/2,"The Xmas Gift"
Center Text Screen Width()/2,Screen Height()/2+24,"by Frankie 'Techlord' Taylor"
Center Text Screen Width()/2,Screen Height()/2 + 48,"Christmas DBPro Minimal Media Coding Competition 2007"
Wait 3000
Cls
Center Text Screen Width()/2,Screen Height()/2,"Be the first to guess whats in the small Xmas Package and receive a REAL big Suprize!"
Center Text Screen Width()/2,Screen Height()/2 + 24,"~ Hints ~"
Center Text Screen Width()/2,Screen Height()/2 + 36,"It can be found in a Christmas Song."
Center Text Screen Width()/2,Screen Height()/2 + 48,"Type your guess in as a single word with no spaces."
Center Text Screen Width()/2,Screen Height()/2 + 60,"If you give up, type 'Quit' to exit."
Center Text Screen Width()/2,Screen Height()/2 + 84,"Enter Your Forum Nickname to Start"
Repeat
Set Cursor Screen Width()/2 + (17 * 8),Screen Height()/2 + 84
Input ": ",XGIFT_ForumNickname$
Until XGIFT_ForumNickname$ <> ""
Clear Entry Buffer
Cls
Center Text Screen Width()/2,Screen Height()/2,"Get Ready to Play " + XGIFT_ForumNickname$ + "!"
Wait 3000
Sync On
Sync Rate 60
XGIFT_Light = 1
XGIFT_Package = 1
XGIFT_Guess$ = ""
Color Backdrop RGB(0,127,0)
Load Object "Gift01.x",XGIFT_Package
Make Light XGIFT_Light
Xrotate Object XGIFT_Light,90
XGIFT_State = 0
XGIFT_Message$ = XGIFT_ForumNickname$ + ", Guess What Santa Brought You For Xmas?"
Repeat
Center Text Screen Width()/2,8,XGIFT_Message$
Center Text Screen Width()/2,32,XGIFT_Entry$ `+ "[" + Str$(XGIFT_State) + "]"
Select XGIFT_State
Case -1
Center Text Screen Width()/2,24, "Thanks for Playing " + XGIFT_ForumNickname$ + ". Have a Very Merry Christmas and Happy New Year!"
If XGIFT_GameOver
Sync
Wait Key
End
EndIf
Center Text Screen Width()/2,Screen Height() - 128, "(ESC)APE or (RETURN)?"
Sync
Do
If EscapeKey() Then End
If ReturnKey()
Clear Entry Buffer
XGIFT_State = 0
Exit
EndIf
Loop
EndCase
Case 0
XGIFT_Entry$ = Entry$(1)
If ReturnKey()
XGIFT_Guess$ = Left$(Lower$(XGIFT_Entry$),Len(XGIFT_Entry$)-1)`make lowercase & strip of chr(13)
XGIFT_Entry$ = ""
Clear Entry Buffer
If XGIFT_Guess$ = "quit"
XGIFT_State = -1
Else
If Len(XGIFT_Guess$) > 2
XGIFT_State = 1
Else
XGIFT_Message$ = "You have to guess something. Please Try Again? "
XGIFT_State = 0
EndIf
EndIf
EndIf
EndCase
Case 1
FTP Connect "www.hpquest.com", "dbpxmasgift", XGIFT_Guess$ + "X1"
FTP Get File XGIFT_Guess$,XGIFT_Guess$,512
If Get FTP Status() = 0 Or Get FTP Failure() = 1
Inc XGIFT_Check
XGIFT_Message$ = "Sorry, Santa checked his List " + Str$(XGIFT_Check) + " time(s) and found that You have been NAUGHTY!" `+ Get FTP Error$()
XGIFT_State = -1
Else
XGIFT_LetterToSanta = 1
Open To Write XGIFT_LetterToSanta,"Dear_Santa.txt"
Write String XGIFT_LetterToSanta,"Dear Santa, Thank You, From " + XGIFT_ForumNickname$ + "."
Close File XGIFT_LetterToSanta
XGIFT_State = 2
EndIf
EndCase
Case 2
FTP Proceed
If Get FTP Progress() > -1
XGIFT_Message$ = "Santa is checking his list, he's checking it " + Str$(Get FTP Progress()) + "..."
Else
FTP Terminate
FTP Put File "Dear_Santa.txt"
FTP Disconnect
XGIFT_State = 3
EndIf
EndCase
Case 3
XGIFT_Message$ = "Santa checked his list and found that you have been NICE. He left you a Special Gift!"
XGIFT_Contents = 1
Open To Read XGIFT_Contents,XGIFT_Guess$
Read String XGIFT_Contents,XGIFT_Contents$
Close File XGIFT_Contents
XGIFT_State = 4
EndCase
Case 4
Inc XGIFT_Counter
If XGIFT_Counter = 255
XGIFT_Message$ = XGIFT_Contents$
XGIFT_Counter = 0
XGIFT_GameOver = 1
XGIFT_State = -1
EndIf
EndCase
EndSelect
Rotate Object XGIFT_Package ,Object Angle X(XGIFT_Package)+.5,Object Angle Y(XGIFT_Package)+.5,Object Angle Z(XGIFT_Package)+.5
Sync
Until EscapeKey()
End
IMO, there really isn't a good reason to develop a Single Player Game without it.