Tutorial:
Tell a Story
Why i do this:
First i am frustrated by all the zombie games, which populate the FPSC-GAME-World. No story at all. Just shoot zombies it makes „FUN“! HAHAHAHHAHAH
Story Methodes:
Give a text with the game, where the story is explained:
Oh come on, you can do this better.
Loading-Screen:
Of course you can write a story in the picture of your loadingscreen, but this is just a compromise! To create a good story, you must add pictures and a lot more and then each player wont read this all, because he has too much information. Maybe if he had a fast pc he can not read all, because it loads too fast. So you see this is not a good solution
Short-Story:
This is a short story, which present the background and is often used in „Zombie games“. There you need not to explain much, just tell:
WHY
WHAT
MAYBE WHO(not necessary)
Ingame-Story-Telling:
This is the hardest element and if you decide to create something similar to this, I must warn you: IT´S DAMN HARD WORK
Cut-Scenes:
This is more easily than the following point. Create a level and make a movie of it. Speak a little bit in your microphone and you have it! Ok so easy it isn´t. It needs a lot of time to create a new level, to create the ambience sound, to create the voices. To say the truth i did not test this methode, because I have not enough time!
Warning: the following point is just for persons, who can script
Scripted-Scenes:
First i can calm you down. Here i not describe how you script a complete level like the cod-Team it always do. Before i say anything, i show you how hard it is/ how easy it could be, how you can set up a character, which tell you a story:
Example: (you are allowed to change the script to your need, but if you use this as a basic credit is required)
;Artificial Intelligence Script
;Header
;desc =storyteller ai
:varequal=move 1,plrfacing=1:fpgcrawtextsize=20,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=50,fpgcrawtext=Follow
;Triggers
:waypointstate=0:animate=2,waypointstart
:waypointstate=3:animate=2,waypointnext
:waypointstate=4:animate=2,waypointrandom
:waypointstate=5:animate=2,waypointreverse
:state=0:dimvar=move,setvar=move 0
:state=0:dimvar=talk,setvar=talk 0
:state=0:dimvar=trashcan,setvar=trashcan 0
:state=0:fpgcrawtextsize=32,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=70
;grundhaltung
:state=0:waypointstop,animate=31,state=1
:state=1,plrdistwithin=70,plrfacing=50:fpgcrawtext=Talk to character (Press F),state=2
:state=2,plrdistfurther=100:state=1
:state=2:fpgcrawtext=Talk to Character (Press F)
:state=2,keypressed=33 1:animate=1,rotatetoplr,state=3
;gespräch beginnt (robot)
:state=3:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=What do you want from me?,state=4
:state=4:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=What do you want from me?
:state=4,etimergreater=3000:etimerstart,state=5
;gespräch (du)
:state=5:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=I am new here! Where i am?,state=6
:state=6:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=I am new here! Where i am?
:state=6,etimergreater=3000:etimerstart,state=7
;Antwort (robot)
:state=7:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Oh you are new? Welcome to the bigest energyfactory of the world!,state=8
:state=8:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Oh you are new? Welcome to the bigest energyfactory of the world!
:state=8,etimergreater=3000:etimerstart,state=9
;Führung beginnt
:state=9:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=So follow me! I show you all!,state=10
:state=10:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=So follow me! I show you all!
:state=10,etimergreater=3000:state=11
:state=11:waypointstart,setvar=move 1,state=12
;erster Halt
:state=12,varequal=talk 1:waypointstop,setvar=move 0,rotatetoplr,state=13
;trashcan
:state=13:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Look at this! This are our trashcans!,state=14
:state=14:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Look at this! This are our trashcans!
:state=14,etimergreater=3000,varequal=trashcan 1:etimerstart,state=17
;trashcan dont look
:state=14,etimergreater=3000,varequal=trashcan 0:etimerstart,state=15
:state=15:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=I said "Look at the trashcans"!,state=16
:state=16:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=I said "Look at the trashcans"!
:state=16,etimergreater=3000:state=14
;trashcan 2
:state=17:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=If you do not use them i will hit you newby!,state=18
:state=18:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=If you do not use them i will hit you newby!
:state=18,etimergreater=3000:etimerstart,state=19
;run1
:state=19:waypointstart,setvar=move 1,state=20
:state=20,varequal=talk 2:waypointstop,setvar=move 0,state=21
;controllroom
:state=21:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=This is our controlroom!,state=22
:state=22:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=This is our controlroom!
:state=22,etimergreater=3000:etimerstart,state=23
;controlroom 2
:state=23:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=From here we control the generator and how much energy it produce!,state=24
:state=24:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=From here we control the generator and how much energy it produce!
:state=24,etimergreater=3000:etimerstart,state=25
:state=25:waypointstart,setvar=move 1,state=26
:state=26,varequal=talk 3:waypointstop,setvar=move 0,state=27
;generator gespräch
:state=28:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Here you see the generator! Impressiv?,state=29
:state=29:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Here you see the generator! Impressiv?
:state=29,etimergreater=3000:etimerstart,state=30
;generator gespräch 2
:state=30:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Very imperessiv! This is a big generator!,state=31
:state=31:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Very imperessiv! This is a big generator!
:state=31,etimergreater=3000:etimerstart,state=32
;generator gespräch 3
:state=32:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Yes...,state=33
:state=33:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Yes...
:state=33,etimergreater=2000:etimerstart,state=34
;Sato
:state=34:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=0,fpgcrawtextb=0,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Hey jainitor! Go back to your work!,state=35
:state=35:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=Hey jainitor! Go back to your work!
:state=35,etimergreater=2000:etimerstart,state=36
;Sato 2
:state=36:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=But i just want to show this newbie the generator!,state=37
:state=37:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=But i just want to show this newbie the generator!
:state=37,etimergreater=2000:etimerstart,state=38
;Sato 3
:state=38:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=255,fpgcrawtextg=0,fpgcrawtextb=0,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=GO BACK TO YOUR WORK!,state=39
:state=39:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=GO BACK TO YOUR WORK!
:state=39,etimergreater=2000:etimerstart,state=40
;Sato 4
:state=40:etimerstart,fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=OK! Bye little newbie!,state=41
:state=41:fpgcrawtextsize=36,fpgcrawtextfont=Arial,fpgcrawtextr=0,fpgcrawtextg=0,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=OK! Bye little newbie!
:state=41,etimergreater=2000:etimerstart,state=42
:state=42:waypointstart,state=43
:state=43,varequal=talk 4:waypointstop,animate=31,state=44
;End of Script
and this is just for one character, so you see this is a lot of work and if you are a newbie dont try this!
So now you see that it is possible to create a good story! If anybody has critics, they are always welcome
Corno