TOP 5 books about Writing

As Level/Quest Designer I always was creating content with greater emphasis on gameplay than story .

We all know that Gameplay is the King BUT where is the Queen?

It’s better and more interesting for the player to have a story combined with mechanics, world, characters and quests. Not just ‘don’t ask – just play‘ but create purpose of existence of things in the game and clear meaning of goals that a player get during the game.

So I became more interested in Writing – this means creating stories, interesting plots, and formulating thoughts in pleasant language for the reader. Here a list I have created after visiting websites and getting information in-life.

Here is TOP 5 books about Writing:

  • Bird by Bird: Some Instructions on Writing and Life by Anne Lamott
  • On Writing by Stephen King
  • On Writing Well: The Classic Guide to Writing Nonfiction by William Zinsser
  • The 21st Century Screenplay: A Comprehensive Guide to Writing Tomorrow’s Films by Linda Aronson
  • The War of Art: Winning the Inner Creative Battle by Steven Pressfield

If you seek for more knowledge here are more materials about Writing:

  • Creating Short Fiction: The Classic Guide to Writing Short Fiction by Damon Knight
  • Getting Into Character: Seven Secrets A Novelist Can Learn From Actors by Brandilyn Collins
  • How to Write Best Selling Fiction by Dean R. Koontz
  • Plot & Structure: Techniques and Exercises for Crafting a Plot That Grips Readers from Start to Finish by James Scott Bell
  • Sin and Syntax: How to Craft Wickedly Effective Prose by Constance Hale
  • Story Structure: The Key to Successful Fiction by William Bernhardt
  • Techniques of the Selling Writer by Dwight V. Swain
  • Thanks, But This Isn’t for Us: A (Sort of) Compassionate Guide to Why Your Writing is Being Rejected by Jessica Page Morrell
  • The Forest for the Trees (Revised and Updated): An Editor’s Advice to Writers by Betsy Lerner
  • The Writing Life by Annie Dillard
  • The Writing Life: Writers On How They Think And Work by Marie Arana
  • Wild Mind: Living the Writer’s Life by Natalie Goldberg
  • Writing Down the Bones: Freeing the Writer Within by Natalie Goldberg and Julia Cameron
  • Writing the Breakout Novel: Insider Advice for Taking Your Fiction to the Next Level by Donald Maass and Anne Perry
  • Zen in the Art of Writing: Essays on Creativity by Ray Bradbury

The Tunnel – Dying Light community map goes official in DLC

Nearly year ago I made Dying Light community map – The Tunnel. The map was well received by the workshop community becoming one of most popular maps. I have added some tweaks and now… the maps is part of the DLC: Community Map 4-Pack ūüôā

The Tunnel is a single player survival horror story with multiple choices that player can make.










Here are some gameplay videos from YouTube for the older version of the map

Dying Light don’t have dialogs that support making decisions so I have created a ‘system’ that gives player power to control quest system paths.

Basically every event in The Tunnel is a small quest that is hidden and it starts triggered with other event.

QuestAssist

How it works?

Player talks with Yakup

,talk _ yakup Yakup_TheTunnel_USB -show=false  -questgiver_indicator=true

yakuptalk

After that talk I block player ability to move and show the decision spheres.

 ,player-block-move _ true
 ,show-multi _
 ,o QuestInventoryItemDI Yakup_decision_no
 ,o QuestInventoryItemDI Yakup_decision_yes

Making choices is definied by choosing green or red sphere.

quest TheTunnel_YakupTalk2 -parent=TheTunnel_YakupTalk
    ,OR _
        path
            ,cnd-quest-started _ TheTunnel_rifle -finished=true -show=false
            ,hide-multi _
                ,o QuestInventoryItemDI Yakup_decision_no
                ,o QuestInventoryItemDI Yakup_decision_yes
                ,o ModelObject Rifle
        path
             ,cnd-quest-started _ TheTunnel_machete -finished=true -show=false
             ,hide-multi _
                 ,o QuestInventoryItemDI Yakup_decision_no
                 ,o QuestInventoryItemDI Yakup_decision_yes 
                 ,o ModelObject Machete 
    ,player-block-move _ false

There are two hidden quests that wait for player response also:

quest TheTunnel_machete -parent=TheTunnel_YakupTalk -reward_set=EncExperienceNormal
    ,take _ QuestInventoryItemDI Yakup_decision_yes -show=false
    ,give-weapon _ Melee_MacheteB2
    ,reward _ yakup
quest TheTunnel_rifle -parent=TheTunnel_YakupTalk
   ,take _ QuestInventoryItemDI Yakup_decision_no -show=false
   ,hide _ ModelObject dead_survivors::RifleAmmo
   ,give-weapon _ Bundle_Rifle_A

This is the base concept of alternative paths. Not all events start from taking the objects so I crated option that starts when player is in location using SensorGoto. And here comes the tricky part!

dawud

Using flag m_QEnableSate that can disable or enable object I can control when to enable SensorGoTo. So even if player were in sensor area few times the action wont trigger until i will enable it. This can be used as a boolean variable. For example, player didn’t help Dawud so I enable¬†SensorGoTo TheTunnel_Dawud_Fail (which is size as a playable area) that triggers actions for infected Dawud:

quest TheTUnnel_Dawud_Zombie -parent=TheTunnel_Dawud
    ,goto _ SensorGoTo TheTunnel_Dawud_Fail -show=false -- player failed to help dawud
    ,goto _ HumanAI Dawud -distance=-20 -show=false -- player enters the sewers
    ,set _ DoorDI Doors_003 -state=closed -- closing doors
    ,enable _ AISpawnBoxNumber TheTunnel_Dawud_spanwer_01 -- spawn infected viral
    ,use _ DoorDI Doors_003 -state=opened -show=false -- wait untill player opens the door
    ,kill _ AISpawnBoxNumber TheTunnel_Dawud_spanwer_01 -show=false -- be sure that player kills dawud (this will disable spawner and he won't respawn)

Using this ‘trick’ i set objectives for the player and control all events in the quest. Here is main part of quest system that control objectives:

    quest TheTunnel2 -parent=TheTunnel  -glued=true -final=true
        ,OR _  
            path
                ,use _ PhysicalSwitchDI TheTunnel_swith_01 -state=off -show=false
                ,OR _
                    path
                        ,cnd-quest-started _ TheTUnnel_SurvivorsAreDead -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_WalkingSurvivors -finished=true
                        ,goto _ SensorGoTo TheTunnel_blockEnd -show=false
                    path
                        ,show-multi _
                            ,o QuestInventoryItemDI Elevator_decision_no
                            ,o QuestInventoryItemDI Elevator_decision_yes
                        ,player-block-move _ -block=true
                        ,OR _
                            path
                                ,take _ QuestInventoryItemDI Elevator_decision_no
                            path
                                ,take _ QuestInventoryItemDI Elevator_decision_yes
                                ,hide-multi _
                                    ,o QuestInventoryItemDI Elevator_decision_no
                                    ,o QuestInventoryItemDI Elevator_decision_yes
                                ,player-block-move _ -block=false    
                                ,cnd-quest-started _ TheTunnel_WalkingSurvivors -finished=true
                                ,disable _ SensorGoTo TheTunnel_blockEnd
                                ,set _ PhysicalSwitchDI TheTunnel_swith_01 -state=on
                                ,use _ PhysicalSwitchDI TheTunnel_swith_01 -state=off
                ,player-block-move _ -block=false
                ,hide-multi _
                    ,o QuestInventoryItemDI Elevator_decision_no
                    ,o QuestInventoryItemDI Elevator_decision_yes
                ,wait _ 2
            path
                ,siblings _ -show=true  -count=13
                ,semaphore _ 
            path
                ,goto _ SensorGoTo FindOutOfSewers -show=false
                ,BLOCK _ -obj=<>
                    ,cnd-quest-started _ TheTUnnel_KillVolatiles -finished=true
                ,OR _
                    path
                        ,cnd-quest-started _ TheTunnel_WalkingSurvivors -finished=true
                    path   
                        ,BLOCK _ -obj=<>
                            ,cnd-quest-started _ TheTUnnel_SurvivorsAreDead -finished=true
                        ,BLOCK _ -obj=<>
                            ,wait _ 15
                        ,semaphore _ 
                        
                ,BLOCK _ -obj=<>
                    ,wait _ 15
                ,semaphore _ 
            path
                ,cnd-quest-started _ TheTunnel_Antizine -finished=true
                ,OR _ -obj=<>
                    path
                        ,cnd-quest-started _ TheTunnel_Tahir_Yes -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Tahir_Maybe -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Tahir_No -finished=true
                ,OR _
                    path
                        ,OR _
                            path
                                ,cnd-quest-started _ TheTunnel_Tahir_Yes -finished=true
                            path
                                ,cnd-quest-started _ TheTunnel_Tahir_Maybe -finished=true
                        ,BLOCK _ -obj=<>
                            -- ,goto _ SensorGoTo TheTunnel_Tahir__01_TahirGotAntizine -show=false                             
                            ,cnd-quest-started _ TheTunnel_TahirGotAntizine -finished=true
                        ,BLOCK _ -obj=<>
                            ,wait _ 15
                        ,semaphore _
                    path
                        ,cnd-quest-started _ TheTunnel_Tahir_No -finished=true
                        ,BLOCK _ -obj=<>
                            ,cnd-quest-started _ TheTunnel_fightwithtahirs -finished=true
                        ,BLOCK _ -obj=<>
                            ,wait _ 15
                        ,semaphore _
            path
                ,cnd-quest-started _ TheTunnel_Dawud -finished=true
                ,OR _ -obj=<>
                    -- path
                        -- ,cnd-quest-started _ TheTunnel_Valve2 -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud_Maybe -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud_No -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud_Yes -finished=true
                ,OR _
                    -- path
                        -- ,cnd-quest-started _ TheTunnel_Valve2 -finished=true
                    path
                        ,OR _ -- -obj=<>
                            path
                                ,cnd-quest-started _ TheTunnel_Dawud_Maybe -finished=true
                            path
                                ,cnd-quest-started _ TheTunnel_Dawud_Yes -finished=true
                        
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud_No -finished=true
                        ,semaphore _ 
                ,OR _ -obj=<>
                    -- path
                        -- ,cnd-quest-started _ TheTunnel_Valve2 -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud_Yes -finished=true
                    path
                        ,cnd-quest-started _ TheTunnel_Dawud2 -finished=true
                    path
                        ,goto _ SensorGoTo TheTunnel_Dawud_Fail -show=false
                        ,cnd-quest-started _ TheTUnnel_Dawud_Zombie -finished=true
                ,OR _
                    path
                        ,goto _ SensorGoTo TheTunnel_Dawud_NotFail -show=false
                    path
                        ,goto _ SensorGoTo TheTunnel_Dawud_Fail -show=false
                        ,cnd-quest-started _ TheTUnnel_Dawud_Zombie -finished=true
                        ,BLOCK _ -obj=<>
                            ,wait _ 15
                        ,semaphore _ 
                ,BLOCK _ -obj=<>
                    ,wait _ 15
                ,semaphore _
                    
            path
                ,BLOCK _ -obj=<>
                    ,cnd-quest-started _ TheTunnel_YakupTalk -finished=true
                ,BLOCK _ -obj=<>
                    ,OR _ 
                        ,area ZoneBox ChooseWeapon
                        path
                            ,cnd-quest-started _ TheTunnel_YakupTalk2 -finished=true
                ,BLOCK _ -obj=<>
                    ,use _ DoorDI TunnelDoor -state=opened
                    ,enable _ SpawnPoint TheTunnel_sp_02
                ,AND _ -obj=<>   
                    ,area ZoneBox Sewers
                    path
                        ,goto _ SensorGoTo FindOutOfSewers -show=false
                ,BLOCK _ -obj=<>   
                    ,wait _ 15
                ,semaphore _ 

And thats it! If you have any quetions you can write them in comments or leave a message.