CINXE.COM
Been a While: new post: NPC responsiveness, notes on FPS design and RPG design
<!DOCTYPE html> <html dir='ltr' lang='en'> <head> <meta content='width=device-width, initial-scale=1' name='viewport'/> <title>Been a While: new post: NPC responsiveness, notes on FPS design and RPG design</title> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <!-- Chrome, Firefox OS and Opera --> <meta content='#01050c' name='theme-color'/> <!-- Windows Phone --> <meta content='#01050c' name='msapplication-navbutton-color'/> <meta content='blogger' name='generator'/> <link href='https://ookaminocoochie.blogspot.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="The Wolf's Vagina Dentata - Atom" href="https://ookaminocoochie.blogspot.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="The Wolf's Vagina Dentata - RSS" href="https://ookaminocoochie.blogspot.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="The Wolf's Vagina Dentata - Atom" href="https://www.blogger.com/feeds/2183119049220274304/posts/default" /> <link rel="alternate" type="application/atom+xml" title="The Wolf's Vagina Dentata - Atom" href="https://ookaminocoochie.blogspot.com/feeds/3189488992356214665/comments/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' property='og:url'/> <meta content='Been a While: new post: NPC responsiveness, notes on FPS design and RPG design' property='og:title'/> <meta content='聽Hiya, it's been....... oh dear god. Well I've had a busy life, did briefly lose interest in ttrpgs on account of not being able to run a ga...' property='og:description'/> <style type='text/css'>@font-face{font-family:'Lato';font-style:normal;font-weight:300;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh7USSwiPHQ.eot);}@font-face{font-family:'Lato';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v24/S6uyw4BMUTPHjx4wWg.eot);}@font-face{font-family:'Lato';font-style:normal;font-weight:700;font-display:swap;src:url(//fonts.gstatic.com/s/lato/v24/S6u9w4BMUTPHh6UVSwiPHQ.eot);}</style> <style id='page-skin-1' type='text/css'><!-- /*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} /*!************************************************ * Blogger Template Style * Name: Soho **************************************************/ body{ overflow-wrap:break-word; word-break:break-word; word-wrap:break-word } .hidden{ display:none } .invisible{ visibility:hidden } .container::after,.float-container::after{ clear:both; content:""; display:table } .clearboth{ clear:both } #comments .comment .comment-actions,.subscribe-popup .FollowByEmail .follow-by-email-submit{ background:0 0; border:0; box-shadow:none; color:#77e4ff; cursor:pointer; font-size:14px; font-weight:700; outline:0; text-decoration:none; text-transform:uppercase; width:auto } .dim-overlay{ background-color:rgba(0,0,0,.54); height:100vh; left:0; position:fixed; top:0; width:100% } #sharing-dim-overlay{ background-color:transparent } input::-ms-clear{ display:none } .blogger-logo,.svg-icon-24.blogger-logo{ fill:#ff9800; opacity:1 } .loading-spinner-large{ -webkit-animation:mspin-rotate 1.568s infinite linear; animation:mspin-rotate 1.568s infinite linear; height:48px; overflow:hidden; position:absolute; width:48px; z-index:200 } .loading-spinner-large>div{ -webkit-animation:mspin-revrot 5332ms infinite steps(4); animation:mspin-revrot 5332ms infinite steps(4) } .loading-spinner-large>div>div{ -webkit-animation:mspin-singlecolor-large-film 1333ms infinite steps(81); animation:mspin-singlecolor-large-film 1333ms infinite steps(81); background-size:100%; height:48px; width:3888px } .mspin-black-large>div>div,.mspin-grey_54-large>div>div{ background-image:url(https://www.blogblog.com/indie/mspin_black_large.svg) } .mspin-white-large>div>div{ background-image:url(https://www.blogblog.com/indie/mspin_white_large.svg) } .mspin-grey_54-large{ opacity:.54 } @-webkit-keyframes mspin-singlecolor-large-film{ from{ -webkit-transform:translateX(0); transform:translateX(0) } to{ -webkit-transform:translateX(-3888px); transform:translateX(-3888px) } } @keyframes mspin-singlecolor-large-film{ from{ -webkit-transform:translateX(0); transform:translateX(0) } to{ -webkit-transform:translateX(-3888px); transform:translateX(-3888px) } } @-webkit-keyframes mspin-rotate{ from{ -webkit-transform:rotate(0); transform:rotate(0) } to{ -webkit-transform:rotate(360deg); transform:rotate(360deg) } } @keyframes mspin-rotate{ from{ -webkit-transform:rotate(0); transform:rotate(0) } to{ -webkit-transform:rotate(360deg); transform:rotate(360deg) } } @-webkit-keyframes mspin-revrot{ from{ -webkit-transform:rotate(0); transform:rotate(0) } to{ -webkit-transform:rotate(-360deg); transform:rotate(-360deg) } } @keyframes mspin-revrot{ from{ -webkit-transform:rotate(0); transform:rotate(0) } to{ -webkit-transform:rotate(-360deg); transform:rotate(-360deg) } } .skip-navigation{ background-color:#fff; box-sizing:border-box; color:#000; display:block; height:0; left:0; line-height:50px; overflow:hidden; padding-top:0; position:fixed; text-align:center; top:0; -webkit-transition:box-shadow .3s,height .3s,padding-top .3s; transition:box-shadow .3s,height .3s,padding-top .3s; width:100%; z-index:900 } .skip-navigation:focus{ box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2); height:50px } #main{ outline:0 } .main-heading{ position:absolute; clip:rect(1px,1px,1px,1px); padding:0; border:0; height:1px; width:1px; overflow:hidden } .Attribution{ margin-top:1em; text-align:center } .Attribution .blogger img,.Attribution .blogger svg{ vertical-align:bottom } .Attribution .blogger img{ margin-right:.5em } .Attribution div{ line-height:24px; margin-top:.5em } .Attribution .copyright,.Attribution .image-attribution{ font-size:.7em; margin-top:1.5em } .BLOG_mobile_video_class{ display:none } .bg-photo{ background-attachment:scroll!important } body .CSS_LIGHTBOX{ z-index:900 } .extendable .show-less,.extendable .show-more{ border-color:#77e4ff; color:#77e4ff; margin-top:8px } .extendable .show-less.hidden,.extendable .show-more.hidden{ display:none } .inline-ad{ display:none; max-width:100%; overflow:hidden } .adsbygoogle{ display:block } #cookieChoiceInfo{ bottom:0; top:auto } iframe.b-hbp-video{ border:0 } .post-body img{ max-width:100% } .post-body iframe{ max-width:100% } .post-body a[imageanchor="1"]{ display:inline-block } .byline{ margin-right:1em } .byline:last-child{ margin-right:0 } .link-copied-dialog{ max-width:520px; outline:0 } .link-copied-dialog .modal-dialog-buttons{ margin-top:8px } .link-copied-dialog .goog-buttonset-default{ background:0 0; border:0 } .link-copied-dialog .goog-buttonset-default:focus{ outline:0 } .paging-control-container{ margin-bottom:16px } .paging-control-container .paging-control{ display:inline-block } .paging-control-container .comment-range-text::after,.paging-control-container .paging-control{ color:#77e4ff } .paging-control-container .comment-range-text,.paging-control-container .paging-control{ margin-right:8px } .paging-control-container .comment-range-text::after,.paging-control-container .paging-control::after{ content:"\b7"; cursor:default; padding-left:8px; pointer-events:none } .paging-control-container .comment-range-text:last-child::after,.paging-control-container .paging-control:last-child::after{ content:none } .byline.reactions iframe{ height:20px } .b-notification{ color:#000; background-color:#fff; border-bottom:solid 1px #000; box-sizing:border-box; padding:16px 32px; text-align:center } .b-notification.visible{ -webkit-transition:margin-top .3s cubic-bezier(.4,0,.2,1); transition:margin-top .3s cubic-bezier(.4,0,.2,1) } .b-notification.invisible{ position:absolute } .b-notification-close{ position:absolute; right:8px; top:8px } .no-posts-message{ line-height:40px; text-align:center } @media screen and (max-width:1162px){ body.item-view .post-body a[imageanchor="1"][style*="float: left;"],body.item-view .post-body a[imageanchor="1"][style*="float: right;"]{ float:none!important; clear:none!important } body.item-view .post-body a[imageanchor="1"] img{ display:block; height:auto; margin:0 auto } body.item-view .post-body>.separator:first-child>a[imageanchor="1"]:first-child{ margin-top:20px } .post-body a[imageanchor]{ display:block } body.item-view .post-body a[imageanchor="1"]{ margin-left:0!important; margin-right:0!important } body.item-view .post-body a[imageanchor="1"]+a[imageanchor="1"]{ margin-top:16px } } .item-control{ display:none } #comments{ border-top:1px dashed rgba(0,0,0,.54); margin-top:20px; padding:20px } #comments .comment-thread ol{ margin:0; padding-left:0; padding-left:0 } #comments .comment .comment-replybox-single,#comments .comment-thread .comment-replies{ margin-left:60px } #comments .comment-thread .thread-count{ display:none } #comments .comment{ list-style-type:none; padding:0 0 30px; position:relative } #comments .comment .comment{ padding-bottom:8px } .comment .avatar-image-container{ position:absolute } .comment .avatar-image-container img{ border-radius:50% } .avatar-image-container svg,.comment .avatar-image-container .avatar-icon{ border-radius:50%; border:solid 1px #ffffff; box-sizing:border-box; fill:#ffffff; height:35px; margin:0; padding:7px; width:35px } .comment .comment-block{ margin-top:10px; margin-left:60px; padding-bottom:0 } #comments .comment-author-header-wrapper{ margin-left:40px } #comments .comment .thread-expanded .comment-block{ padding-bottom:20px } #comments .comment .comment-header .user,#comments .comment .comment-header .user a{ color:#ffffff; font-style:normal; font-weight:700 } #comments .comment .comment-actions{ bottom:0; margin-bottom:15px; position:absolute } #comments .comment .comment-actions>*{ margin-right:8px } #comments .comment .comment-header .datetime{ bottom:0; color:rgba(255, 255, 255, 0.54); display:inline-block; font-size:13px; font-style:italic; margin-left:8px } #comments .comment .comment-footer .comment-timestamp a,#comments .comment .comment-header .datetime a{ color:rgba(255, 255, 255, 0.54) } #comments .comment .comment-content,.comment .comment-body{ margin-top:12px; word-break:break-word } .comment-body{ margin-bottom:12px } #comments.embed[data-num-comments="0"]{ border:0; margin-top:0; padding-top:0 } #comments.embed[data-num-comments="0"] #comment-post-message,#comments.embed[data-num-comments="0"] div.comment-form>p,#comments.embed[data-num-comments="0"] p.comment-footer{ display:none } #comment-editor-src{ display:none } .comments .comments-content .loadmore.loaded{ max-height:0; opacity:0; overflow:hidden } .extendable .remaining-items{ height:0; overflow:hidden; -webkit-transition:height .3s cubic-bezier(.4,0,.2,1); transition:height .3s cubic-bezier(.4,0,.2,1) } .extendable .remaining-items.expanded{ height:auto } .svg-icon-24,.svg-icon-24-button{ cursor:pointer; height:24px; width:24px; min-width:24px } .touch-icon{ margin:-12px; padding:12px } .touch-icon:active,.touch-icon:focus{ background-color:rgba(153,153,153,.4); border-radius:50% } svg:not(:root).touch-icon{ overflow:visible } html[dir=rtl] .rtl-reversible-icon{ -webkit-transform:scaleX(-1); -ms-transform:scaleX(-1); transform:scaleX(-1) } .svg-icon-24-button,.touch-icon-button{ background:0 0; border:0; margin:0; outline:0; padding:0 } .touch-icon-button .touch-icon:active,.touch-icon-button .touch-icon:focus{ background-color:transparent } .touch-icon-button:active .touch-icon,.touch-icon-button:focus .touch-icon{ background-color:rgba(153,153,153,.4); border-radius:50% } .Profile .default-avatar-wrapper .avatar-icon{ border-radius:50%; border:solid 1px #ffffff; box-sizing:border-box; fill:#ffffff; margin:0 } .Profile .individual .default-avatar-wrapper .avatar-icon{ padding:25px } .Profile .individual .avatar-icon,.Profile .individual .profile-img{ height:120px; width:120px } .Profile .team .default-avatar-wrapper .avatar-icon{ padding:8px } .Profile .team .avatar-icon,.Profile .team .default-avatar-wrapper,.Profile .team .profile-img{ height:40px; width:40px } .snippet-container{ margin:0; position:relative; overflow:hidden } .snippet-fade{ bottom:0; box-sizing:border-box; position:absolute; width:96px } .snippet-fade{ right:0 } .snippet-fade:after{ content:"\2026" } .snippet-fade:after{ float:right } .centered-top-container.sticky{ left:0; position:fixed; right:0; top:0; width:auto; z-index:50; -webkit-transition-property:opacity,-webkit-transform; transition-property:opacity,-webkit-transform; transition-property:transform,opacity; transition-property:transform,opacity,-webkit-transform; -webkit-transition-duration:.2s; transition-duration:.2s; -webkit-transition-timing-function:cubic-bezier(.4,0,.2,1); transition-timing-function:cubic-bezier(.4,0,.2,1) } .centered-top-placeholder{ display:none } .collapsed-header .centered-top-placeholder{ display:block } .centered-top-container .Header .replaced h1,.centered-top-placeholder .Header .replaced h1{ display:none } .centered-top-container.sticky .Header .replaced h1{ display:block } .centered-top-container.sticky .Header .header-widget{ background:0 0 } .centered-top-container.sticky .Header .header-image-wrapper{ display:none } .centered-top-container img,.centered-top-placeholder img{ max-width:100% } .collapsible{ -webkit-transition:height .3s cubic-bezier(.4,0,.2,1); transition:height .3s cubic-bezier(.4,0,.2,1) } .collapsible,.collapsible>summary{ display:block; overflow:hidden } .collapsible>:not(summary){ display:none } .collapsible[open]>:not(summary){ display:block } .collapsible:focus,.collapsible>summary:focus{ outline:0 } .collapsible>summary{ cursor:pointer; display:block; padding:0 } .collapsible:focus>summary,.collapsible>summary:focus{ background-color:transparent } .collapsible>summary::-webkit-details-marker{ display:none } .collapsible-title{ -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; align-items:center; display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex } .collapsible-title .title{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto; -webkit-box-ordinal-group:1; -webkit-order:0; -ms-flex-order:0; order:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap } .collapsible-title .chevron-down,.collapsible[open] .collapsible-title .chevron-up{ display:block } .collapsible-title .chevron-up,.collapsible[open] .collapsible-title .chevron-down{ display:none } .flat-button{ cursor:pointer; display:inline-block; font-weight:700; text-transform:uppercase; border-radius:2px; padding:8px; margin:-8px } .flat-icon-button{ background:0 0; border:0; margin:0; outline:0; padding:0; margin:-12px; padding:12px; cursor:pointer; box-sizing:content-box; display:inline-block; line-height:0 } .flat-icon-button,.flat-icon-button .splash-wrapper{ border-radius:50% } .flat-icon-button .splash.animate{ -webkit-animation-duration:.3s; animation-duration:.3s } .overflowable-container{ max-height:28px; overflow:hidden; position:relative } .overflow-button{ cursor:pointer } #overflowable-dim-overlay{ background:0 0 } .overflow-popup{ box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); background-color:#01050c; left:0; max-width:calc(100% - 32px); position:absolute; top:0; visibility:hidden; z-index:101 } .overflow-popup ul{ list-style:none } .overflow-popup .tabs li,.overflow-popup li{ display:block; height:auto } .overflow-popup .tabs li{ padding-left:0; padding-right:0 } .overflow-button.hidden,.overflow-popup .tabs li.hidden,.overflow-popup li.hidden{ display:none } .search{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; line-height:24px; width:24px } .search.focused{ width:100% } .search.focused .section{ width:100% } .search form{ z-index:101 } .search h3{ display:none } .search form{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-flex:1; -webkit-flex:1 0 0; -ms-flex:1 0 0px; flex:1 0 0; border-bottom:solid 1px transparent; padding-bottom:8px } .search form>*{ display:none } .search.focused form>*{ display:block } .search .search-input label{ display:none } .centered-top-placeholder.cloned .search form{ z-index:30 } .search.focused form{ border-color:rgba(255, 255, 255, 0.54); position:relative; width:auto } .collapsed-header .centered-top-container .search.focused form{ border-bottom-color:transparent } .search-expand{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto } .search-expand-text{ display:none } .search-close{ display:inline; vertical-align:middle } .search-input{ -webkit-box-flex:1; -webkit-flex:1 0 1px; -ms-flex:1 0 1px; flex:1 0 1px } .search-input input{ background:0 0; border:0; box-sizing:border-box; color:rgba(255, 255, 255, 0.54); display:inline-block; outline:0; width:calc(100% - 48px) } .search-input input.no-cursor{ color:transparent; text-shadow:0 0 0 rgba(255, 255, 255, 0.54) } .collapsed-header .centered-top-container .search-action,.collapsed-header .centered-top-container .search-input input{ color:rgba(255, 255, 255, 0.54) } .collapsed-header .centered-top-container .search-input input.no-cursor{ color:transparent; text-shadow:0 0 0 rgba(255, 255, 255, 0.54) } .collapsed-header .centered-top-container .search-input input.no-cursor:focus,.search-input input.no-cursor:focus{ outline:0 } .search-focused>*{ visibility:hidden } .search-focused .search,.search-focused .search-icon{ visibility:visible } .search.focused .search-action{ display:block } .search.focused .search-action:disabled{ opacity:.3 } .widget.Sharing .sharing-button{ display:none } .widget.Sharing .sharing-buttons li{ padding:0 } .widget.Sharing .sharing-buttons li span{ display:none } .post-share-buttons{ position:relative } .centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{ fill:#ffffff } .sharing-open.touch-icon-button:active .touch-icon,.sharing-open.touch-icon-button:focus .touch-icon{ background-color:transparent } .share-buttons{ background-color:#01050c; border-radius:2px; box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); color:#ffffff; list-style:none; margin:0; padding:8px 0; position:absolute; top:-11px; min-width:200px; z-index:101 } .share-buttons.hidden{ display:none } .sharing-button{ background:0 0; border:0; margin:0; outline:0; padding:0; cursor:pointer } .share-buttons li{ margin:0; height:48px } .share-buttons li:last-child{ margin-bottom:0 } .share-buttons li .sharing-platform-button{ box-sizing:border-box; cursor:pointer; display:block; height:100%; margin-bottom:0; padding:0 16px; position:relative; width:100% } .share-buttons li .sharing-platform-button:focus,.share-buttons li .sharing-platform-button:hover{ background-color:rgba(128,128,128,.1); outline:0 } .share-buttons li svg[class*=" sharing-"],.share-buttons li svg[class^=sharing-]{ position:absolute; top:10px } .share-buttons li span.sharing-platform-button{ position:relative; top:0 } .share-buttons li .platform-sharing-text{ display:block; font-size:16px; line-height:48px; white-space:nowrap } .share-buttons li .platform-sharing-text{ margin-left:56px } .sidebar-container{ background-color:#f7f7f7; max-width:284px; overflow-y:auto; -webkit-transition-property:-webkit-transform; transition-property:-webkit-transform; transition-property:transform; transition-property:transform,-webkit-transform; -webkit-transition-duration:.3s; transition-duration:.3s; -webkit-transition-timing-function:cubic-bezier(0,0,.2,1); transition-timing-function:cubic-bezier(0,0,.2,1); width:284px; z-index:101; -webkit-overflow-scrolling:touch } .sidebar-container .navigation{ line-height:0; padding:16px } .sidebar-container .sidebar-back{ cursor:pointer } .sidebar-container .widget{ background:0 0; margin:0 16px; padding:16px 0 } .sidebar-container .widget .title{ color:rgba(255, 255, 255, 0.54); margin:0 } .sidebar-container .widget ul{ list-style:none; margin:0; padding:0 } .sidebar-container .widget ul ul{ margin-left:1em } .sidebar-container .widget li{ font-size:16px; line-height:normal } .sidebar-container .widget+.widget{ border-top:1px dashed rgba(255, 255, 255, 0.54) } .BlogArchive li{ margin:16px 0 } .BlogArchive li:last-child{ margin-bottom:0 } .Label li a{ display:inline-block } .BlogArchive .post-count,.Label .label-count{ float:right; margin-left:.25em } .BlogArchive .post-count::before,.Label .label-count::before{ content:"(" } .BlogArchive .post-count::after,.Label .label-count::after{ content:")" } .widget.Translate .skiptranslate>div{ display:block!important } .widget.Profile .profile-link{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex } .widget.Profile .team-member .default-avatar-wrapper,.widget.Profile .team-member .profile-img{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; margin-right:1em } .widget.Profile .individual .profile-link{ -webkit-box-orient:vertical; -webkit-box-direction:normal; -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column } .widget.Profile .team .profile-link .profile-name{ -webkit-align-self:center; -ms-flex-item-align:center; align-self:center; display:block; -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto } .dim-overlay{ background-color:rgba(0,0,0,.54); z-index:100 } body.sidebar-visible{ overflow-y:hidden } @media screen and (max-width:1439px){ .sidebar-container{ bottom:0; position:fixed; top:0; left:0; right:auto } .sidebar-container.sidebar-invisible{ -webkit-transition-timing-function:cubic-bezier(.4,0,.6,1); transition-timing-function:cubic-bezier(.4,0,.6,1) } html[dir=ltr] .sidebar-container.sidebar-invisible{ -webkit-transform:translateX(-284px); -ms-transform:translateX(-284px); transform:translateX(-284px) } html[dir=rtl] .sidebar-container.sidebar-invisible{ -webkit-transform:translateX(284px); -ms-transform:translateX(284px); transform:translateX(284px) } } @media screen and (min-width:1440px){ .sidebar-container{ position:absolute; top:0; left:0; right:auto } .sidebar-container .navigation{ display:none } } .dialog{ box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); background:#01050c; box-sizing:border-box; color:#ffffff; padding:30px; position:fixed; text-align:center; width:calc(100% - 24px); z-index:101 } .dialog input[type=email],.dialog input[type=text]{ background-color:transparent; border:0; border-bottom:solid 1px rgba(255,255,255,.12); color:#ffffff; display:block; font-family:Lato, sans-serif; font-size:16px; line-height:24px; margin:auto; padding-bottom:7px; outline:0; text-align:center; width:100% } .dialog input[type=email]::-webkit-input-placeholder,.dialog input[type=text]::-webkit-input-placeholder{ color:#ffffff } .dialog input[type=email]::-moz-placeholder,.dialog input[type=text]::-moz-placeholder{ color:#ffffff } .dialog input[type=email]:-ms-input-placeholder,.dialog input[type=text]:-ms-input-placeholder{ color:#ffffff } .dialog input[type=email]::-ms-input-placeholder,.dialog input[type=text]::-ms-input-placeholder{ color:#ffffff } .dialog input[type=email]::placeholder,.dialog input[type=text]::placeholder{ color:#ffffff } .dialog input[type=email]:focus,.dialog input[type=text]:focus{ border-bottom:solid 2px #77e4ff; padding-bottom:6px } .dialog input.no-cursor{ color:transparent; text-shadow:0 0 0 #ffffff } .dialog input.no-cursor:focus{ outline:0 } .dialog input.no-cursor:focus{ outline:0 } .dialog input[type=submit]{ font-family:Lato, sans-serif } .dialog .goog-buttonset-default{ color:#77e4ff } .subscribe-popup{ max-width:364px } .subscribe-popup h3{ color:#ffffff; font-size:1.8em; margin-top:0 } .subscribe-popup .FollowByEmail h3{ display:none } .subscribe-popup .FollowByEmail .follow-by-email-submit{ color:#77e4ff; display:inline-block; margin:0 auto; margin-top:24px; width:auto; white-space:normal } .subscribe-popup .FollowByEmail .follow-by-email-submit:disabled{ cursor:default; opacity:.3 } @media (max-width:800px){ .blog-name div.widget.Subscribe{ margin-bottom:16px } body.item-view .blog-name div.widget.Subscribe{ margin:8px auto 16px auto; width:100% } } body#layout .bg-photo,body#layout .bg-photo-overlay{ display:none } body#layout .page_body{ padding:0; position:relative; top:0 } body#layout .page{ display:inline-block; left:inherit; position:relative; vertical-align:top; width:540px } body#layout .centered{ max-width:954px } body#layout .navigation{ display:none } body#layout .sidebar-container{ display:inline-block; width:40% } body#layout .hamburger-menu,body#layout .search{ display:none } body{ background-color:#01050c; color:#ffffff; font:normal 400 20px Lato, sans-serif; height:100%; margin:0; min-height:100vh } h1,h2,h3,h4,h5,h6{ font-weight:400 } a{ color:#77e4ff; text-decoration:none } .dim-overlay{ z-index:100 } body.sidebar-visible .page_body{ overflow-y:scroll } .widget .title{ color:rgba(255, 255, 255, 0.54); font:normal 700 12px Lato, sans-serif } .extendable .show-less,.extendable .show-more{ color:#77e4ff; font:normal 700 12px Lato, sans-serif; margin:12px -8px 0 -8px; text-transform:uppercase } .footer .widget,.main .widget{ margin:50px 0 } .main .widget .title{ text-transform:uppercase } .inline-ad{ display:block; margin-top:50px } .adsbygoogle{ text-align:center } .page_body{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column; min-height:100vh; position:relative; z-index:20 } .page_body>*{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto } .page_body>#footer{ margin-top:auto } .centered-bottom,.centered-top{ margin:0 32px; max-width:100% } .centered-top{ padding-bottom:12px; padding-top:12px } .sticky .centered-top{ padding-bottom:0; padding-top:0 } .centered-top-container,.centered-top-placeholder{ background:#01050c } .centered-top{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap; -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between; position:relative } .sticky .centered-top{ -webkit-flex-wrap:nowrap; -ms-flex-wrap:nowrap; flex-wrap:nowrap } .centered-top-container .svg-icon-24,.centered-top-placeholder .svg-icon-24{ fill:rgba(255, 255, 255, 0.54) } .back-button-container,.hamburger-menu-container{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; height:48px; -webkit-box-ordinal-group:2; -webkit-order:1; -ms-flex-order:1; order:1 } .sticky .back-button-container,.sticky .hamburger-menu-container{ -webkit-box-ordinal-group:2; -webkit-order:1; -ms-flex-order:1; order:1 } .back-button,.hamburger-menu,.search-expand-icon{ cursor:pointer; margin-top:0 } .search{ -webkit-box-align:start; -webkit-align-items:flex-start; -ms-flex-align:start; align-items:flex-start; -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; height:48px; margin-left:24px; -webkit-box-ordinal-group:4; -webkit-order:3; -ms-flex-order:3; order:3 } .search,.search.focused{ width:auto } .search.focused{ position:static } .sticky .search{ display:none; -webkit-box-ordinal-group:5; -webkit-order:4; -ms-flex-order:4; order:4 } .search .section{ right:0; margin-top:12px; position:absolute; top:12px; width:0 } .sticky .search .section{ top:0 } .search-expand{ background:0 0; border:0; margin:0; outline:0; padding:0; color:#77e4ff; cursor:pointer; -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; font:normal 700 12px Lato, sans-serif; text-transform:uppercase; word-break:normal } .search.focused .search-expand{ visibility:hidden } .search .dim-overlay{ background:0 0 } .search.focused .section{ max-width:400px } .search.focused form{ border-color:rgba(255, 255, 255, 0.54); height:24px } .search.focused .search-input{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto } .search-input input{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto; font:normal 700 16px Lato, sans-serif } .search input[type=submit]{ display:none } .subscribe-section-container{ -webkit-box-flex:1; -webkit-flex:1 0 auto; -ms-flex:1 0 auto; flex:1 0 auto; margin-left:24px; -webkit-box-ordinal-group:3; -webkit-order:2; -ms-flex-order:2; order:2; text-align:right } .sticky .subscribe-section-container{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; -webkit-box-ordinal-group:4; -webkit-order:3; -ms-flex-order:3; order:3 } .subscribe-button{ background:0 0; border:0; margin:0; outline:0; padding:0; color:#77e4ff; cursor:pointer; display:inline-block; font:normal 700 12px Lato, sans-serif; line-height:48px; margin:0; text-transform:uppercase; word-break:normal } .subscribe-popup h3{ color:rgba(255, 255, 255, 0.54); font:normal 700 12px Lato, sans-serif; margin-bottom:24px; text-transform:uppercase } .subscribe-popup div.widget.FollowByEmail .follow-by-email-address{ color:#ffffff; font:normal 700 12px Lato, sans-serif } .subscribe-popup div.widget.FollowByEmail .follow-by-email-submit{ color:#77e4ff; font:normal 700 12px Lato, sans-serif; margin-top:24px; text-transform:uppercase } .blog-name{ -webkit-box-flex:1; -webkit-flex:1 1 100%; -ms-flex:1 1 100%; flex:1 1 100%; -webkit-box-ordinal-group:5; -webkit-order:4; -ms-flex-order:4; order:4; overflow:hidden } .sticky .blog-name{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto; margin:0 12px; -webkit-box-ordinal-group:3; -webkit-order:2; -ms-flex-order:2; order:2 } body.search-view .centered-top.search-focused .blog-name{ display:none } .widget.Header h1{ font:normal 300 18px Lato, sans-serif; margin:0; text-transform:uppercase } .widget.Header h1,.widget.Header h1 a{ color:#ffffff } .widget.Header p{ color:rgba(255, 255, 255, 0.54); font:normal 400 12px Lato, sans-serif; line-height:1.7 } .sticky .widget.Header h1{ font-size:16px; line-height:48px; overflow:hidden; overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap; word-wrap:normal } .sticky .widget.Header p{ display:none } .sticky{ box-shadow:0 1px 3px rgba(0, 0, 0, 0.1) } #page_list_top .widget.PageList{ font:normal 700 14px Lato, sans-serif; line-height:28px } #page_list_top .widget.PageList .title{ display:none } #page_list_top .widget.PageList .overflowable-contents{ overflow:hidden } #page_list_top .widget.PageList .overflowable-contents ul{ list-style:none; margin:0; padding:0 } #page_list_top .widget.PageList .overflow-popup ul{ list-style:none; margin:0; padding:0 20px } #page_list_top .widget.PageList .overflowable-contents li{ display:inline-block } #page_list_top .widget.PageList .overflowable-contents li.hidden{ display:none } #page_list_top .widget.PageList .overflowable-contents li:not(:first-child):before{ color:rgba(255, 255, 255, 0.54); content:"\b7" } #page_list_top .widget.PageList .overflow-button a,#page_list_top .widget.PageList .overflow-popup li a,#page_list_top .widget.PageList .overflowable-contents li a{ color:rgba(255, 255, 255, 0.54); font:normal 700 14px Lato, sans-serif; line-height:28px; text-transform:uppercase } #page_list_top .widget.PageList .overflow-popup li.selected a,#page_list_top .widget.PageList .overflowable-contents li.selected a{ color:rgba(255, 255, 255, 0.54); font:normal 700 14px Lato, sans-serif; line-height:28px } #page_list_top .widget.PageList .overflow-button{ display:inline } .sticky #page_list_top{ display:none } body.homepage-view .hero-image.has-image{ background:#01050c url(https://themes.googleusercontent.com/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh) no-repeat scroll top center /* Credit: Matt Vince (http://www.offset.com/photos/223311) */;; background-attachment:scroll; background-color:#01050c; background-size:cover; height:62.5vw; max-height:75vh; min-height:200px; width:100% } .post-filter-message{ background-color:#77e4ff; color:rgba(0, 0, 0, 0.54); display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap; font:normal 700 12px Lato, sans-serif; -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between; margin-top:50px; padding:18px } .post-filter-message .message-container{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0 } .post-filter-message .home-link-container{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto } .post-filter-message .search-label,.post-filter-message .search-query{ color:rgba(0, 0, 0, 0.87); font:normal 700 12px Lato, sans-serif; text-transform:uppercase } .post-filter-message .home-link,.post-filter-message .home-link a{ color:rgba(0, 0, 0, 0.87); font:normal 700 12px Lato, sans-serif; text-transform:uppercase } .widget.FeaturedPost .thumb.hero-thumb{ background-position:center; background-size:cover; height:360px } .widget.FeaturedPost .featured-post-snippet:before{ content:"\2014" } .snippet-container,.snippet-fade{ font:normal 400 14px Lato, sans-serif; line-height:23.8px } .snippet-container{ max-height:166.6px; overflow:hidden } .snippet-fade{ background:-webkit-linear-gradient(left,#01050c 0,#01050c 20%,rgba(1, 5, 12, 0) 100%); background:linear-gradient(to left,#01050c 0,#01050c 20%,rgba(1, 5, 12, 0) 100%); color:#ffffff } .post-sidebar{ display:none } .widget.Blog .blog-posts .post-outer-container{ width:100% } .no-posts{ text-align:center } body.feed-view .widget.Blog .blog-posts .post-outer-container,body.item-view .widget.Blog .blog-posts .post-outer{ margin-bottom:50px } .widget.Blog .post.no-featured-image,.widget.PopularPosts .post.no-featured-image{ background-color:#77e4ff; padding:30px } .widget.Blog .post>.post-share-buttons-top{ right:0; position:absolute; top:0 } .widget.Blog .post>.post-share-buttons-bottom{ bottom:0; right:0; position:absolute } .blog-pager{ text-align:right } .blog-pager a{ color:#77e4ff; font:normal 700 12px Lato, sans-serif; text-transform:uppercase } .blog-pager .blog-pager-newer-link,.blog-pager .home-link{ display:none } .post-title{ font:normal 400 20px Lato, sans-serif; margin:0; text-transform:uppercase } .post-title,.post-title a{ color:#ffffff } .post.no-featured-image .post-title,.post.no-featured-image .post-title a{ color:rgba(0, 0, 0, 0.87) } body.item-view .post-body-container:before{ content:"\2014" } .post-body{ color:#ffffff; font:normal 400 14px Lato, sans-serif; line-height:1.7 } .post-body blockquote{ color:#ffffff; font:normal 700 16px Lato, sans-serif; line-height:1.7; margin-left:0; margin-right:0 } .post-body img{ height:auto; max-width:100% } .post-body .tr-caption{ color:#ffffff; font:normal 400 16px Lato, sans-serif; line-height:1.7 } .snippet-thumbnail{ position:relative } .snippet-thumbnail .post-header{ background:#01050c; bottom:0; margin-bottom:0; padding-right:15px; padding-bottom:5px; padding-top:5px; position:absolute } .snippet-thumbnail img{ width:100% } .post-footer,.post-header{ margin:8px 0 } body.item-view .widget.Blog .post-header{ margin:0 0 16px 0 } body.item-view .widget.Blog .post-footer{ margin:50px 0 0 0 } .widget.FeaturedPost .post-footer{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap; -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between } .widget.FeaturedPost .post-footer>*{ -webkit-box-flex:0; -webkit-flex:0 1 auto; -ms-flex:0 1 auto; flex:0 1 auto } .widget.FeaturedPost .post-footer,.widget.FeaturedPost .post-footer a,.widget.FeaturedPost .post-footer button{ line-height:1.7 } .jump-link{ margin:-8px } .post-header,.post-header a,.post-header button{ color:rgba(255, 255, 255, 0.54); font:normal 700 12px Lato, sans-serif } .post.no-featured-image .post-header,.post.no-featured-image .post-header a,.post.no-featured-image .post-header button{ color:rgba(0, 0, 0, 0.54) } .post-footer,.post-footer a,.post-footer button{ color:#77e4ff; font:normal 700 12px Lato, sans-serif } .post.no-featured-image .post-footer,.post.no-featured-image .post-footer a,.post.no-featured-image .post-footer button{ color:rgba(0, 0, 0, 0.87) } body.item-view .post-footer-line{ line-height:2.3 } .byline{ display:inline-block } .byline .flat-button{ text-transform:none } .post-header .byline:not(:last-child):after{ content:"\b7" } .post-header .byline:not(:last-child){ margin-right:0 } .byline.post-labels a{ display:inline-block; word-break:break-all } .byline.post-labels a:not(:last-child):after{ content:"," } .byline.reactions .reactions-label{ line-height:22px; vertical-align:top } .post-share-buttons{ margin-left:0 } .share-buttons{ background-color:#252525; border-radius:0; box-shadow:0 1px 1px 1px rgba(0, 0, 0, 0.1); color:rgba(255, 255, 255, 0.87); font:normal 400 16px Lato, sans-serif } .share-buttons .svg-icon-24{ fill:#77e4ff } #comment-holder .continue{ display:none } #comment-editor{ margin-bottom:20px; margin-top:20px } .widget.Attribution,.widget.Attribution .copyright,.widget.Attribution .copyright a,.widget.Attribution .image-attribution,.widget.Attribution .image-attribution a,.widget.Attribution a{ color:rgba(255, 255, 255, 0.54); font:normal 700 12px Lato, sans-serif } .widget.Attribution svg{ fill:rgba(255, 255, 255, 0.54) } .widget.Attribution .blogger a{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-align-content:center; -ms-flex-line-pack:center; align-content:center; -webkit-box-pack:center; -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center; line-height:24px } .widget.Attribution .blogger svg{ margin-right:8px } .widget.Profile ul{ list-style:none; padding:0 } .widget.Profile .individual .default-avatar-wrapper,.widget.Profile .individual .profile-img{ border-radius:50%; display:inline-block; height:120px; width:120px } .widget.Profile .individual .profile-data a,.widget.Profile .team .profile-name{ color:#ffffff; font:normal 300 20px Lato, sans-serif; text-transform:none } .widget.Profile .individual dd{ color:#ffffff; font:normal 400 20px Lato, sans-serif; margin:0 auto } .widget.Profile .individual .profile-link,.widget.Profile .team .visit-profile{ color:#77e4ff; font:normal 700 12px Lato, sans-serif; text-transform:uppercase } .widget.Profile .team .default-avatar-wrapper,.widget.Profile .team .profile-img{ border-radius:50%; float:left; height:40px; width:40px } .widget.Profile .team .profile-link .profile-name-wrapper{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto } .widget.Label li,.widget.Label span.label-size{ color:#77e4ff; display:inline-block; font:normal 700 12px Lato, sans-serif; word-break:break-all } .widget.Label li:not(:last-child):after,.widget.Label span.label-size:not(:last-child):after{ content:"," } .widget.PopularPosts .post{ margin-bottom:50px } body.item-view #sidebar .widget.PopularPosts{ margin-left:40px; width:inherit } #comments{ border-top:none; padding:0 } #comments .comment .comment-footer,#comments .comment .comment-header,#comments .comment .comment-header .datetime,#comments .comment .comment-header .datetime a{ color:rgba(255, 255, 255, 0.54); font:normal 700 12px Lato, sans-serif } #comments .comment .comment-author,#comments .comment .comment-author a,#comments .comment .comment-header .user,#comments .comment .comment-header .user a{ color:#ffffff; font:normal 700 12px Lato, sans-serif } #comments .comment .comment-body,#comments .comment .comment-content{ color:#ffffff; font:normal 400 16px Lato, sans-serif } #comments .comment .comment-actions,#comments .footer,#comments .footer a,#comments .loadmore,#comments .paging-control{ color:#77e4ff; font:normal 700 12px Lato, sans-serif; text-transform:uppercase } #commentsHolder{ border-bottom:none; border-top:none } #comments .comment-form h4{ position:absolute; clip:rect(1px,1px,1px,1px); padding:0; border:0; height:1px; width:1px; overflow:hidden } .sidebar-container{ background-color:#01050c; color:rgba(255, 255, 255, 0.54); font:normal 700 14px Lato, sans-serif; min-height:100% } html[dir=ltr] .sidebar-container{ box-shadow:1px 0 3px rgba(0, 0, 0, 0.1) } html[dir=rtl] .sidebar-container{ box-shadow:-1px 0 3px rgba(0, 0, 0, 0.1) } .sidebar-container a{ color:#77e4ff } .sidebar-container .svg-icon-24{ fill:rgba(255, 255, 255, 0.54) } .sidebar-container .widget{ margin:0; margin-left:40px; padding:40px; padding-left:0 } .sidebar-container .widget+.widget{ border-top:1px solid rgba(255, 255, 255, 0.54) } .sidebar-container .widget .title{ color:rgba(255, 255, 255, 0.54); font:normal 700 16px Lato, sans-serif } .sidebar-container .widget ul li,.sidebar-container .widget.BlogArchive #ArchiveList li{ font:normal 700 14px Lato, sans-serif; margin:1em 0 0 0 } .sidebar-container .BlogArchive .post-count,.sidebar-container .Label .label-count{ float:none } .sidebar-container .Label li a{ display:inline } .sidebar-container .widget.Profile .default-avatar-wrapper .avatar-icon{ border-color:#ffffff; fill:#ffffff } .sidebar-container .widget.Profile .individual{ text-align:center } .sidebar-container .widget.Profile .individual dd:before{ content:"\2014"; display:block } .sidebar-container .widget.Profile .individual .profile-data a,.sidebar-container .widget.Profile .team .profile-name{ color:#ffffff; font:normal 300 20px Lato, sans-serif } .sidebar-container .widget.Profile .individual dd{ color:rgba(255, 255, 255, 0.87); font:normal 400 12px Lato, sans-serif; margin:0 30px } .sidebar-container .widget.Profile .individual .profile-link,.sidebar-container .widget.Profile .team .visit-profile{ color:#77e4ff; font:normal 700 14px Lato, sans-serif } .sidebar-container .snippet-fade{ background:-webkit-linear-gradient(left,#01050c 0,#01050c 20%,rgba(1, 5, 12, 0) 100%); background:linear-gradient(to left,#01050c 0,#01050c 20%,rgba(1, 5, 12, 0) 100%) } @media screen and (min-width:640px){ .centered-bottom,.centered-top{ margin:0 auto; width:576px } .centered-top{ -webkit-flex-wrap:nowrap; -ms-flex-wrap:nowrap; flex-wrap:nowrap; padding-bottom:24px; padding-top:36px } .blog-name{ -webkit-box-flex:1; -webkit-flex:1 1 auto; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; -webkit-box-ordinal-group:3; -webkit-order:2; -ms-flex-order:2; order:2 } .sticky .blog-name{ margin:0 } .back-button-container,.hamburger-menu-container{ margin-right:36px; -webkit-box-ordinal-group:2; -webkit-order:1; -ms-flex-order:1; order:1 } .search{ margin-left:36px; -webkit-box-ordinal-group:5; -webkit-order:4; -ms-flex-order:4; order:4 } .search .section{ top:36px } .sticky .search{ display:block } .subscribe-section-container{ -webkit-box-flex:0; -webkit-flex:0 0 auto; -ms-flex:0 0 auto; flex:0 0 auto; margin-left:36px; -webkit-box-ordinal-group:4; -webkit-order:3; -ms-flex-order:3; order:3 } .subscribe-button{ font:normal 700 14px Lato, sans-serif; line-height:48px } .subscribe-popup h3{ font:normal 700 14px Lato, sans-serif } .subscribe-popup div.widget.FollowByEmail .follow-by-email-address{ font:normal 700 14px Lato, sans-serif } .subscribe-popup div.widget.FollowByEmail .follow-by-email-submit{ font:normal 700 14px Lato, sans-serif } .widget .title{ font:normal 700 14px Lato, sans-serif } .widget.Blog .post.no-featured-image,.widget.PopularPosts .post.no-featured-image{ padding:65px } .post-title{ font:normal 400 24px Lato, sans-serif } .blog-pager a{ font:normal 700 14px Lato, sans-serif } .widget.Header h1{ font:normal 300 36px Lato, sans-serif } .sticky .widget.Header h1{ font-size:24px } } @media screen and (min-width:1162px){ .centered-bottom,.centered-top{ width:922px } .back-button-container,.hamburger-menu-container{ margin-right:48px } .search{ margin-left:48px } .search-expand{ font:normal 700 14px Lato, sans-serif; line-height:48px } .search-expand-text{ display:block } .search-expand-icon{ display:none } .subscribe-section-container{ margin-left:48px } .post-filter-message{ font:normal 700 14px Lato, sans-serif } .post-filter-message .search-label,.post-filter-message .search-query{ font:normal 700 14px Lato, sans-serif } .post-filter-message .home-link{ font:normal 700 14px Lato, sans-serif } .widget.Blog .blog-posts .post-outer-container{ width:451px } body.error-view .widget.Blog .blog-posts .post-outer-container,body.item-view .widget.Blog .blog-posts .post-outer-container{ width:100% } body.item-view .widget.Blog .blog-posts .post-outer{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex } #comments,body.item-view .post-outer-container .inline-ad,body.item-view .widget.PopularPosts{ margin-left:220px; width:682px } .post-sidebar{ box-sizing:border-box; display:block; font:normal 700 14px Lato, sans-serif; padding-right:20px; width:220px } .post-sidebar-item{ margin-bottom:30px } .post-sidebar-item ul{ list-style:none; padding:0 } .post-sidebar-item .sharing-button{ color:#77e4ff; cursor:pointer; display:inline-block; font:normal 700 14px Lato, sans-serif; line-height:normal; word-break:normal } .post-sidebar-labels li{ margin-bottom:8px } body.item-view .widget.Blog .post{ width:682px } .widget.Blog .post.no-featured-image,.widget.PopularPosts .post.no-featured-image{ padding:100px 65px } .page .widget.FeaturedPost .post-content{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex; -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between } .page .widget.FeaturedPost .thumb-link{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex } .page .widget.FeaturedPost .thumb.hero-thumb{ height:auto; min-height:300px; width:451px } .page .widget.FeaturedPost .post-content.has-featured-image .post-text-container{ width:425px } .page .widget.FeaturedPost .post-content.no-featured-image .post-text-container{ width:100% } .page .widget.FeaturedPost .post-header{ margin:0 0 8px 0 } .page .widget.FeaturedPost .post-footer{ margin:8px 0 0 0 } .post-body{ font:normal 400 16px Lato, sans-serif; line-height:1.7 } .post-body blockquote{ font:normal 700 24px Lato, sans-serif; line-height:1.7 } .snippet-container,.snippet-fade{ font:normal 400 16px Lato, sans-serif; line-height:27.2px } .snippet-container{ max-height:326.4px } .widget.Profile .individual .profile-data a,.widget.Profile .team .profile-name{ font:normal 300 24px Lato, sans-serif } .widget.Profile .individual .profile-link,.widget.Profile .team .visit-profile{ font:normal 700 14px Lato, sans-serif } } @media screen and (min-width:1440px){ body{ position:relative } .page_body{ margin-left:284px } .sticky .centered-top{ padding-left:284px } .hamburger-menu-container{ display:none } .sidebar-container{ overflow:visible; z-index:32 } } --></style> <style id='template-skin-1' type='text/css'><!-- body#layout .hidden, body#layout .invisible { display: inherit; } body#layout .page { width: 60%; } body#layout.ltr .page { float: right; } body#layout.rtl .page { float: left; } body#layout .sidebar-container { width: 40%; } body#layout.ltr .sidebar-container { float: left; } body#layout.rtl .sidebar-container { float: right; } --></style> <script async='async' src='https://www.gstatic.com/external_hosted/imagesloaded/imagesloaded-3.1.8.min.js'></script> <script async='async' src='https://www.gstatic.com/external_hosted/vanillamasonry-v3_1_5/masonry.pkgd.min.js'></script> <script async='async' src='https://www.gstatic.com/external_hosted/clipboardjs/clipboard.min.js'></script> <style> body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh);} @media (max-width: 320px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w320);}} @media (max-width: 640px) and (min-width: 321px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w640);}} @media (max-width: 800px) and (min-width: 641px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w800);}} @media (max-width: 1024px) and (min-width: 801px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w1024);}} @media (max-width: 1440px) and (min-width: 1025px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w1440);}} @media (max-width: 1680px) and (min-width: 1441px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w1680);}} @media (max-width: 1920px) and (min-width: 1681px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w1920);}} /* Last tag covers anything over one higher than the previous max-size cap. */ @media (min-width: 1921px) { body.homepage-view .hero-image.has-image {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=wltVPUckfSK9W7r7g9igwymWBEo331nLn9RtDt0jiRzLWLfYn17ncXNLjzi6gMZd0cE2mcKHh5eh&options=w2560);}} </style> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=2183119049220274304&zx=e1f71a23-0ed6-494c-8057-97517805f3de' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=2183119049220274304&zx=e1f71a23-0ed6-494c-8057-97517805f3de' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body class='post-view item-view version-1-3-3 variant-fancy_neon'> <a class='skip-navigation' href='#main' tabindex='0'> Skip to main content </a> <div class='page'> <div class='page_body'> <div class='main-page-body-content'> <div class='centered-top-placeholder'></div> <header class='centered-top-container' role='banner'> <div class='centered-top'> <div class='back-button-container'> <a href='https://ookaminocoochie.blogspot.com/'> <svg class='svg-icon-24 touch-icon back-button rtl-reversible-icon'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_back_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> </a> </div> <div class='search'> <button aria-label='Search' class='search-expand touch-icon-button'> <div class='search-expand-text'>Search</div> <svg class='svg-icon-24 touch-icon search-expand-icon'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> </button> <div class='section' id='search_top' name='Search (Top)'><div class='widget BlogSearch' data-version='2' id='BlogSearch1'> <h3 class='title'> Search This Blog </h3> <div class='widget-content' role='search'> <form action='https://ookaminocoochie.blogspot.com/search' target='_top'> <div class='search-input'> <input aria-label='Search this blog' autocomplete='off' name='q' placeholder='Search this blog' value=''/> </div> <label> <input type='submit'/> <svg class='svg-icon-24 touch-icon search-icon'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> </label> </form> </div> </div></div> </div> <div class='blog-name'> <div class='section' id='header' name='Header'><div class='widget Header' data-version='2' id='Header1'> <div class='header-widget'> <div> <h1> <a href='https://ookaminocoochie.blogspot.com/'> The Wolf's Vagina Dentata </a> </h1> </div> <p> </p> </div> </div></div> <nav role='navigation'> <div class='no-items section' id='page_list_top' name='Page List (Top)'> </div> </nav> </div> </div> </header> <div class='hero-image has-image'></div> <main class='centered-bottom' id='main' role='main' tabindex='-1'> <div class='main section' id='page_body' name='Page Body'> <div class='widget Blog' data-version='2' id='Blog1'> <div class='blog-posts hfeed container'> <div class='post-outer-container'> <div class='post-outer'> <div class='post-sidebar'> <div class='post-sidebar-item post-share-buttons'> <div aria-owns='sharing-popup-Blog1-byline-3189488992356214665' class='sharing' data-title=''> <button aria-controls='sharing-popup-Blog1-byline-3189488992356214665' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-3189488992356214665' role='button'> Share </button> <div class='share-buttons-container'> <ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-3189488992356214665' role='menu'> <li> <span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Get link'> <svg class='svg-icon-24 touch-icon sharing-link'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Get link</span> </span> </li> <li> <span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=facebook' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to Facebook'> <svg class='svg-icon-24 touch-icon sharing-facebook'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Facebook</span> </span> </li> <li> <span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=twitter' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to X'> <svg class='svg-icon-24 touch-icon sharing-twitter'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>X</span> </span> </li> <li> <span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=pinterest' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> <svg class='svg-icon-24 touch-icon sharing-pinterest'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Pinterest</span> </span> </li> <li> <span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=email' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Email'> <svg class='svg-icon-24 touch-icon sharing-email'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Email</span> </span> </li> <li aria-hidden='true' class='hidden'> <span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to other apps'> <svg class='svg-icon-24 touch-icon sharing-sharingOther'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Other Apps</span> </span> </li> </ul> </div> </div> </div> </div> <div class='post'> <script type='application/ld+json'>{ "@context": "http://schema.org", "@type": "BlogPosting", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html" }, "headline": "Been a While: new post: NPC responsiveness, notes on FPS design and RPG design","description": " Hiya, it\u0026#39;s been....... oh dear god. Well I\u0026#39;ve had a busy life, did briefly lose interest in ttrpgs on account of not being able to ...","datePublished": "2024-05-03T10:11:00-07:00", "dateModified": "2024-05-03T10:11:12-07:00","image": { "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/", "height": 348, "width": 1200},"publisher": { "@type": "Organization", "name": "Blogger", "logo": { "@type": "ImageObject", "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/", "width": 206, "height": 60 } },"author": { "@type": "Person", "name": "Ookami no Coochie" } }</script> <div class='post-header'> <div class='post-header-line-1'> <span class='byline post-timestamp'> <meta content='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html'/> <a class='timestamp-link' href='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' rel='bookmark' title='permanent link'> <time class='published' datetime='2024-05-03T10:11:00-07:00' title='2024-05-03T10:11:00-07:00'> May 03, 2024 </time> </a> </span> </div> </div> <a name='3189488992356214665'></a> <h3 class='post-title entry-title'> Been a While: new post: NPC responsiveness, notes on FPS design and RPG design </h3> <div class='post-body-container'> <div class='post-body entry-content float-container' id='post-body-3189488992356214665'> <p> Hiya, it's been....... oh dear god. Well I've had a busy life, did briefly lose interest in ttrpgs on account of not being able to run a game, moved apart from old friend groups, y'know, shit happens. Well anyways, I've been trying to learn coding and wanna make an fps game, and have gotten very autistic over what makes for good enemies, gamefeel, and AI/behavior, and how much of this can apply to TTRPGs.</p><p>So first thing is, I wanted to make a boomer shooter remake of the halo trilogy or halo 4 at some point, and that requires dealing with Halo's AI, which is famously pretty good. Well then I got to play halo ce, and it's kinda mid. Not that I doubt it's potential, I hear halo 2 was great, but I wonder what abt the AI is so smart. Saw some vids, and I'd never noticed, but halo's AI does try and execute nice tactical maneuvers and is regarded as smart cuz of its responsivenes and expressiveness. So my theoretical idea was basically, doom AI, but with a commander AI that would maneuver the AI around, so it would make AI flank you or run away, or call reinforcement squads, or hold ground, etc. </p><p>AI responsiveness is funny, in commentary on Halo CE's devcycle, it was mentioned tougher AI makes players feel the AI is smarter, but in bungie's older title, Marthon 1, there were some very tough NPCs who added nothing to the sandbox, like the cool but literally just spongy hulks who you could dump magazines into for no avail, and who were no real threat due to their close ranged attack. But in M1, AI is actually very basic and limited, and the hulk just ambles about moving to kill. So in M2, along with making the energy gun actually do extra damage vs mechanical targets, replaced the hulks with treaded cyborgs who used flamethrowers or rolling grenades to present a tanky close quarters challenge that more or less was effective cuz of very superior AoE effect and also cuz the grenades would track you, so it would force you to move. No Hulks is sad tho, wish they could be provokable slaves who if you shot would go aggro on you, or if you killed a leader, would turn on their masters, but were otherwise just enslaved grunt workers manning bases and 'moving' crates (not rlly cuz it's an old engine, and that behavior would be too hard, but still). It's rather neat that with dumb AI, a thing to make them more interesting is to always have an option to kill them quick that's non optimal vs others, like the fusion pistol lays utter havoc upon the s'pht (cyborg hacker slaves), hunters (power suit dudes, possibly cyborgs), drones, and cyborgs, but is subpar vs the AR in area denial and the flamer in organics clearing, and also not as reliable at range as the magnum, which thanks to revamped animations is far more powerful seeming. </p><p>Enemy types and sandbox positions do interest me as well. In marathon, you had a basic staff enemy who could be melee or ranged, and was quick to kill, dumb cannon fodder. Further augmented by armored troopers who used grenades at range which could be dodged easy, and up close ripped you up with a machine gun, who were also sorta rank and file shock troops. Hunters were big and armored machine gunners who sent volleys of plasma at you, and enforcers were snipers, who in the 2nd game, were made to fire a stream of projectiles that acted as a long ranged flamethrower because the old hitscan MG was not a fun thing to fight, fun as the old scatter gun was to use. s'pht were weird, they're most tanky fliers more vulnerable to plasma who fired powerful fusion bolts, they weren't very fun to face in the OG marathon, likely cuz they were too fucking tanky. Hulks and cyborgs shared a role. There were suicide bomber bugs in m1, and both games had suicide bomber human replicants, the latter was more interesting I assume, and less annoying than a fat floating bug that stayed below eye hieght or was invisible. The wasp/drone is the same enemy, a flier with a wimpy ranged strike, idk why they changed it, I figure an automated (or perhaps 'brain in a jar' cyborg) drone just felt more like what a massive empire would do, to say nothing of how easy wasps used to be killed with fusion guns on normal (1 shot and they drop). Juggernauts were huge flying tanks, in m2 they traded hitscan enforcer MGs for the same dual projectile stream, making dodging their attacks easier and more fun, instead of a cover hugging affair.</p><p>Halo ce upped AI intelligence, and altered role. Basic melee wasn't an enemy anymore, it's not as fun for an enemy to directly charge you, or rather, that behavior was ported to the flood. Grunts were the ranged fighters born anew and given a morale system so killing their officer would scatter them, but, because AI was less restricted to 1 attack, maybe 2 based on situation, the grunts were made grenadiers. The old hunter role was mainly given to the jackals, who also had heavy shield drainer attacks and put out accurate long ranged fire like the enforcers. The challenge with them was given more depth, as their toughness was based around a physical shield you could surmount, and they had the same morale system as grunts, meaning you could choose to ignore them and focus down an officer. The elites were like enforcers, tough, long range accurate fire, and hunters, being ofc tough machine gunners, but the main thing abt them was you could kill them to lessen enemy threat, but they were so tough you were garunteed to make sacrifices, esp as they ducked and weaved and dodged around your fire and you were forced into energy weapons to make short work of these vile foes. Hunters took the role of juggernaut and hulk anew, being super tough almost bosslike monsters who excelled in melee cuz of them preferring to get up close, but threatening you at range and having weakpoints that needed closeness to access, so you would be brought into them instead of merely being threatened. the covenant vehicles don't seem remarkable, but the banshee is an interesting stripped down juggernaut, a skimmer vehicle is great for fast intrusion into your space, sorta like the cyborg, and the wraith uses the new engine to simulate artillery fire properly, adding a new dimension of threat. Sentinels were the drones reborn with a tracking beam that made you move, and made neutral for big old 3v3 fights. The flood feel like an evolution of the flck'ta wildlife, being dumb and ugly foes who could do ranged and melee attacks, refitted to carry weapons so as to work within halo\s 2 weapon paradigm, allowing you to switch as you moved. The pod and carrier forms were adaptations, but it's neat to see all the 'aggressive' foes put into the flood faction while the covenant were mainly ranged focussed, which meant each party had a unique identity. In marathon, the flck'ta are another dumb mook that feels the same, and ngl, so do the wildlife from many marathon 3rd parties cuz they inevitably become melee mooks and the pfhor already use that.</p><p>Interesting AI and/or enemies force the player to act and adapt tactics, they engage in dialogue with the player, and react to a reasonable amount of stimulus. Reactivity to stimulus and attacks via flinching and death communicates what's effective to use and what the player should plan around, and furthermore, simply feel fun: machinegunning an enemy and not stunlocking them makes the machinegun feel useless, so its effectiveness becomes measured solely in ttk, but this isn't fun. </p><p>To translate into TTRPG terms, enemies should use clever tactics firstly, not just charging, try and make them flank or burn shit as they go. A burning house setpeice is more fun then just a defence. Role play the NPCs your players fight. In the OG dnd systems, there was a chase mechanic, meaning that to leave an enemy behind, players would need to struggle a bit, not just leave arenas, to say nothing of using randomized patrols and manual adaptations of combat zones to add unpredictability and pressure. Another reactive element is that NPCs need to be effected even by nonlethal attacks if they cannot be killed in short order. My first 5e combat I ran had me take bandits out of action and put them in wound states even w/o killing them save for 0 HP, which led to a more fluid and dynamic combat, and the campaign got fun again when vehicles were added and I got to trap vehicles in the jaws of werepig rigs and deal with harpoons. None of this shit was in the rules, and most rule systems will codify thresholds and such for damage that I guess work well, but let's break it down here. Delaying combat to check a critical damage chart isn't very fun, while critical damage is a fine mechanic, it's not often that it gets intergrated organically. As a general rule, enemy behavior should change as they take damage, fleeing is fine, tarantinoesque dismemberment and wounding is also very fun, so make your enemies quick to kill or randomly bullshit wound effects. I had at some point decided half the remaining HP gone in 1 attack would KO the NPC, but such hard threholds are silly I think. If I had to really, honestly, give a solid mechanic for wounding, I think codifying aiming points would be a good idea, to force players to interface with attacking each enemy in a unique way, esp when faced with armor or zombie/unresponsive types. I do not feel an extra roll is the best for this, but if say, you made hitting the torso automatic, and the limbs require a swordskill check, that becomes incentive to just default to torso attacks until an exception reveals itself. Randomizing hit locations for ranged attacks is also a good way to balance out the inherent advantage of range as is, as you can no longer garuntee armor circumvention and must close in or waste ammo. In medieval settings, I don't like to make archers roll to hit, because if you are a good enough archer for combat, realisitically you've trained forever to be a sharpshooter supreme who doesn't generally miss. I also consider narrative wounding to be useful in say, an intiaitive system with a designated aggressor position that needs to be challeneged via changing the environ or stipping away advantage, allowing oneself to get to attack, tying narrative wounding to ability to attack is good for abstract scenarios and still provokes thinking and bahevioral changes in players. </p><p>Key thing to provoke behavior change is to ahve a simple objective and harshly contest it, then allow players to use shit around it to adapt, the ability to do damage, or even the ability to attack being put on the line already causes behavior changes in players, which makes them have more fun. enemy variety forces the player to constantly alter approaches instead of sticking in routine, causing engagement if done well. Will continue. <br /></p> </div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'> <div class='byline post-share-buttons goog-inline-block'> <div aria-owns='sharing-popup-Blog1-footer-1-3189488992356214665' class='sharing' data-title='Been a While: new post: NPC responsiveness, notes on FPS design and RPG design'> <button aria-controls='sharing-popup-Blog1-footer-1-3189488992356214665' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-footer-1-3189488992356214665' role='button'> Share </button> <div class='share-buttons-container'> <ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-footer-1-3189488992356214665' role='menu'> <li> <span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Get link'> <svg class='svg-icon-24 touch-icon sharing-link'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Get link</span> </span> </li> <li> <span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=facebook' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to Facebook'> <svg class='svg-icon-24 touch-icon sharing-facebook'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Facebook</span> </span> </li> <li> <span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=twitter' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to X'> <svg class='svg-icon-24 touch-icon sharing-twitter'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>X</span> </span> </li> <li> <span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=pinterest' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> <svg class='svg-icon-24 touch-icon sharing-pinterest'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Pinterest</span> </span> </li> <li> <span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=3189488992356214665&target=email' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Email'> <svg class='svg-icon-24 touch-icon sharing-email'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Email</span> </span> </li> <li aria-hidden='true' class='hidden'> <span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html' role='menuitem' tabindex='-1' title='Share to other apps'> <svg class='svg-icon-24 touch-icon sharing-sharingOther'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Other Apps</span> </span> </li> </ul> </div> </div> </div> </div> <div class='post-footer-line post-footer-line-2'> </div> <div class='post-footer-line post-footer-line-3'> </div> </div> </div> </div> <section class='comments embed' data-num-comments='0' id='comments'> <a name='comments'></a> <h3 class='title'>Comments</h3> <div id='Blog1_comments-block-wrapper'> </div> <div class='footer'> <div class='comment-form'> <a name='comment-form'></a> <h4 id='comment-post-message'>Post a Comment</h4> <a href='https://www.blogger.com/comment/frame/2183119049220274304?po=3189488992356214665&hl=en&skin=soho' id='comment-editor-src'></a> <iframe allowtransparency='allowtransparency' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe> <script src='https://www.blogger.com/static/v1/jsbin/3061944402-comment_from_post_iframe.js' type='text/javascript'></script> <script type='text/javascript'> BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html'); </script> </div> </div> </section> </div> </div> </div><div class='widget PopularPosts' data-version='2' id='PopularPosts1'> <h3 class='title'> Popular Posts </h3> <div class='widget-content'> <div role='feed'> <article class='post' role='article'> <div class='post no-featured-image'> <div class='post-header'> <div class='post-header-line-1'> <span class='byline post-timestamp'> <meta content='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html'/> <a class='timestamp-link' href='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' rel='bookmark' title='permanent link'> <time class='published' datetime='2021-12-22T09:32:00-08:00' title='2021-12-22T09:32:00-08:00'> December 22, 2021 </time> </a> </span> </div> </div> <h3 class='post-title'><a href='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html'>Why Charisma Rolls are Stupid and Ugly and Stuff</a></h3> <div class='post-footer'> <div class='post-footer-line post-footer-line-0'> <div class='byline post-share-buttons goog-inline-block'> <div aria-owns='sharing-popup-PopularPosts1-footer-0-457810444948936831' class='sharing' data-title='Why Charisma Rolls are Stupid and Ugly and Stuff'> <button aria-controls='sharing-popup-PopularPosts1-footer-0-457810444948936831' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-PopularPosts1-footer-0-457810444948936831' role='button'> Share </button> <div class='share-buttons-container'> <ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-PopularPosts1-footer-0-457810444948936831' role='menu'> <li> <span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=457810444948936831&target=' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Get link'> <svg class='svg-icon-24 touch-icon sharing-link'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Get link</span> </span> </li> <li> <span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=457810444948936831&target=facebook' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Share to Facebook'> <svg class='svg-icon-24 touch-icon sharing-facebook'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Facebook</span> </span> </li> <li> <span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=457810444948936831&target=twitter' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Share to X'> <svg class='svg-icon-24 touch-icon sharing-twitter'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>X</span> </span> </li> <li> <span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=457810444948936831&target=pinterest' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> <svg class='svg-icon-24 touch-icon sharing-pinterest'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Pinterest</span> </span> </li> <li> <span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=2183119049220274304&postID=457810444948936831&target=email' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Email'> <svg class='svg-icon-24 touch-icon sharing-email'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Email</span> </span> </li> <li aria-hidden='true' class='hidden'> <span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html' role='menuitem' tabindex='-1' title='Share to other apps'> <svg class='svg-icon-24 touch-icon sharing-sharingOther'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <span class='platform-sharing-text'>Other Apps</span> </span> </li> </ul> </div> </div> </div> <span class='byline post-comment-link container'> <a class='comment-link' href='https://ookaminocoochie.blogspot.com/2021/12/why-charisma-rolls-are-stupid-and-ugly.html#comments' onclick=''> 2 comments </a> </span> </div> </div> </div> </article> </div> </div> </div></div> </main> </div> <footer class='footer section' id='footer' name='Footer'><div class='widget Attribution' data-version='2' id='Attribution1'> <div class='widget-content'> <div class='blogger'> <a href='https://www.blogger.com' rel='nofollow'> <svg class='svg-icon-24'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_post_blogger_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> Powered by Blogger </a> </div> <div class='image-attribution'> Theme images by <a href="http://www.offset.com/photos/223311">Matt Vince</a> </div> </div> </div></footer> </div> </div> <aside class='sidebar-container container sidebar-invisible' role='complementary'> <div class='navigation'> <svg class='svg-icon-24 touch-icon sidebar-back rtl-reversible-icon'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_back_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> </div> <div class='section' id='sidebar' name='Sidebar'><div class='widget Profile' data-version='2' id='Profile1'> <div class='widget-content individual'> <a href='https://www.blogger.com/profile/17565616389519070434' rel='nofollow'> <img alt='My photo' class='profile-img' height='120' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSa7D9IgGGJWT9zvvaDdzDW74qhpljhz1RKsAW8-xjWi2VHoV8HVZyPZsR4KOfvTysNgvF1IGt5jNJq8UklujaqQMaibqkX2j5gnblhuUfucpwHxvwAux8G5NcnlVFmHI6jpe7nY-dAemmTuV0pqf4d-9KXH3kTJi4qYr-ZDjxoZ4/s220/newpfp.jpg' width='120'/> </a> <div class='profile-info'> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-link g-profile' href='https://www.blogger.com/profile/17565616389519070434' rel='author nofollow'> Ookami no Coochie </a> </dt> </dl> <a class='profile-link' href='https://www.blogger.com/profile/17565616389519070434' rel='author'> Visit profile </a> </div> </div> </div><div class='widget BlogArchive' data-version='2' id='BlogArchive1'> <details class='collapsible extendable'> <summary> <div class='collapsible-title'> <h3 class='title'> Archive </h3> <svg class='svg-icon-24 chevron-down'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> <svg class='svg-icon-24 chevron-up'> <use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> </svg> </div> </summary> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <div class='first-items'> <ul class='flat'> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2024/05/'>May 2024<span class='post-count'>1</span></a> </li> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2023/05/'>May 2023<span class='post-count'>1</span></a> </li> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2023/04/'>April 2023<span class='post-count'>1</span></a> </li> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2023/03/'>March 2023<span class='post-count'>2</span></a> </li> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2023/02/'>February 2023<span class='post-count'>1</span></a> </li> <li class='archivedate'> <a href='https://ookaminocoochie.blogspot.com/2021/12/'>December 2021<span class='post-count'>1</span></a> </li> </ul> </div> </div> </div> </div> </details> </div> <div class='widget ReportAbuse' data-version='2' id='ReportAbuse1'> <h3 class='title'> <a class='report_abuse' href='https://www.blogger.com/go/report-abuse' rel='noopener nofollow' target='_blank'> Report Abuse </a> </h3> </div> </div> </aside> <script type="text/javascript" src="https://resources.blogblog.com/blogblog/data/res/2927634581-fancy_compiled.js" async="true"></script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2725212210-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY4UBnhKHMMNFNqqmpUxCLlA6VVeLg:1740692296752';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d2183119049220274304','//ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html','2183119049220274304'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '2183119049220274304', 'title': 'The Wolf\x27s Vagina Dentata', 'url': 'https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html', 'canonicalUrl': 'https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html', 'homepageUrl': 'https://ookaminocoochie.blogspot.com/', 'searchUrl': 'https://ookaminocoochie.blogspot.com/search', 'canonicalHomepageUrl': 'https://ookaminocoochie.blogspot.com/', 'blogspotFaviconUrl': 'https://ookaminocoochie.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Wolf\x26#39;s Vagina Dentata - Atom\x22 href\x3d\x22https://ookaminocoochie.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22The Wolf\x26#39;s Vagina Dentata - RSS\x22 href\x3d\x22https://ookaminocoochie.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Wolf\x26#39;s Vagina Dentata - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/2183119049220274304/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22The Wolf\x26#39;s Vagina Dentata - Atom\x22 href\x3d\x22https://ookaminocoochie.blogspot.com/feeds/3189488992356214665/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/74cfe181c1bbb7a1', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'item', 'postId': '3189488992356214665', 'pageName': 'Been a While: new post: NPC responsiveness, notes on FPS design and RPG design', 'pageTitle': 'The Wolf\x27s Vagina Dentata: Been a While: new post: NPC responsiveness, notes on FPS design and RPG design'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Soho', 'localizedName': 'Soho', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': false, 'variant': 'fancy_neon', 'variantId': 'fancy_neon'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Been a While: new post: NPC responsiveness, notes on FPS design and RPG design', 'description': '\xa0Hiya, it\x27s been....... oh dear god. Well I\x27ve had a busy life, did briefly lose interest in ttrpgs on account of not being able to run a ga...', 'url': 'https://ookaminocoochie.blogspot.com/2024/05/been-while-new-post-npc-responsiveness.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 3189488992356214665}}, {'name': 'widgets', 'data': [{'title': 'Search This Blog', 'type': 'BlogSearch', 'sectionId': 'search_top', 'id': 'BlogSearch1'}, {'title': 'The Wolf\x27s Vagina Dentata (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': '', 'type': 'FeaturedPost', 'sectionId': 'page_body', 'id': 'FeaturedPost1', 'postId': '3189488992356214665'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'page_body', 'id': 'Blog1', 'posts': [{'id': '3189488992356214665', 'title': 'Been a While: new post: NPC responsiveness, notes on FPS design and RPG design', 'showInlineAds': true}], 'headerByline': {'regionName': 'header1', 'items': [{'name': 'timestamp', 'label': ''}]}, 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'share', 'label': ''}, {'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}]}, {'regionName': 'footer2', 'items': [{'name': 'labels', 'label': 'Labels:'}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'timestamp', 'label': ''}, {'name': 'share', 'label': ''}, {'name': 'comments', 'label': 'comments'}, {'name': 'icons', 'label': ''}, {'name': 'labels', 'label': 'Labels:'}, {'name': 'location', 'label': 'Location:'}]}, {'title': '', 'type': 'PopularPosts', 'sectionId': 'page_body', 'id': 'PopularPosts1', 'posts': [{'title': 'Why Charisma Rolls are Stupid and Ugly and Stuff', 'id': 457810444948936831}, {'title': 'Been a While: new post: NPC responsiveness, notes on FPS design and RPG design', 'id': 3189488992356214665}]}, {'type': 'Attribution', 'sectionId': 'footer', 'id': 'Attribution1'}, {'title': 'About Me', 'type': 'Profile', 'sectionId': 'sidebar', 'id': 'Profile1'}, {'type': 'BlogArchive', 'sectionId': 'sidebar', 'id': 'BlogArchive1'}, {'title': '', 'type': 'ReportAbuse', 'sectionId': 'sidebar', 'id': 'ReportAbuse1'}]}]); _WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'search_top', document.getElementById('BlogSearch1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_FeaturedPostView', new _WidgetInfo('FeaturedPost1', 'page_body', document.getElementById('FeaturedPost1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'page_body', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/177302283-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/1964470060-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'page_body', document.getElementById('PopularPosts1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer', document.getElementById('Attribution1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ReportAbuseView', new _WidgetInfo('ReportAbuse1', 'sidebar', document.getElementById('ReportAbuse1'), {}, 'displayModeFull')); </script> </body> </html>