您现在的位置是:知识 >>正文

《燕云十六声》进度分享 新关卡“十二载恩仇”

知识289人已围观

简介今日11月23日),燕云十六声官方公布“关于新关卡十二载恩仇”的进度分享,同时公布多张十二载恩仇的实机截图。官方公告:游侠们好,我是燕云的关卡负责人,今天来跟各位汇报一些公测版本新关卡的进度,请多指教 ...

今日(11月23日),声进燕云十六声官方公布“关于新关卡十二载恩仇”的度分进度分享,同时公布多张十二载恩仇的享新实机截图。

官方公告:

游侠们好,载恩我是声进燕云的关卡负责人,今天来跟各位汇报一些公测版本新关卡的度分进度,请多指教!享新

不知不觉已临冬至,载恩今日恰好是声进小雪节气。而最近我们正“热火朝天”地收尾优化,度分希望在公测时能给大家更沉浸、享新丰富的载恩关卡体验。

《燕云十六声》进度分享 新关卡“十二载恩仇”

相较于之前的声进测试版本,我们预计将在公测版本中新增约7个小时的度分全新关卡体验内容。而以武侠x开放世界的享新视角打开燕云,燕云的关卡设计和验收确实是个持续打磨的过程。

在关卡的设计开发中,我们不仅要保证体验品质,还要在一个广阔的、非线性的环境中,将关卡融入玩家的世界探索。除此之外,还想让一个个关卡成为非线性叙事的组成,进一步展现五代十国的武侠史观。

我们的追求,就是让关卡成为世界的一环,在叙事、玩法、表现上都做到更好。在此基础上,也有了当前燕云在关卡开发上的侧重——

比如“强叙事类”,以剧情的叙事为主,要求关卡的叙事主题和故事情节足够有张力,并且整个关卡流程为叙事服务,能够看懂,且能够打动人;

比如“强玩法类”,这类关卡以各种玩法机制的体验为主,致力于给玩家带来或趣味或新奇或刺激的过程感受;

再比如“强表现类”,将侧重关注关卡的视觉与氛围表现,通过高光画面的特色化传达,期望给玩家留下深刻的印象。

《燕云十六声》进度分享 新关卡“十二载恩仇”

《燕云十六声》进度分享 新关卡“十二载恩仇”

具体而言,大家可以在“镇守”关卡中与各有千秋的BOSS交手、互动,体会江湖人物背后的情节与历史;

也可以在“侠迹”关卡中,通过各类奇术等玩法组合,感受武侠江湖上天入地无所不能的新奇体验;

另外还有“偷师”类关卡,可通过潜行习得心仪武功;以及“解谜”类关卡,通过攻克各种机关,完成不同的经历和成就。

而恰逢今日“小雪”,接下来也想以一个充满“雪景”的全新侠迹关卡【十二载恩仇】为例,和大家分享一些我们在关卡设计上的具体思路:

要想成为世界的一环,首先需要让关卡成为一种“动态世界事件”。

简单来说,燕云的大多数关卡,都是在动态探索和随机事件中激活和发生的。我们希望这些关卡不是被动的“任务”,而是主动的“经历”,是在对世界探索的兴趣驱动中,遇到各种意想不到的故事和挑战。

《燕云十六声》进度分享 新关卡“十二载恩仇”

比如“十二载恩仇”这个关卡,就将融入到开封区域的探索中。游侠们可能只是在闲逛中来到了一个偏居一隅、迷雾重重的小镇,和这里的人有了几句无心交谈,就将开启一段尘封多年的生杀恩仇。

我们也希望让燕云里的每个地方,都能有故事发生。因此我们对于开放世界的构建,追求的向来不是面积数字的扩张,而更想用类似“关卡”、“奇遇”这样实打实的内容,让燕云的江湖和历史能“大而不空”。

而当游侠们在探索中激活了某个关卡,真正走进某个故事,自此以后的体验就更加与这个世界息息相关。

在这个意义上,我们不仅在做关卡,还是在做一套“生态与关系系统”。比如玩家的选择或者对关卡的完成情况,将深刻地影响到生活于此的人物命运,甚至是地貌环境和历史走向。

《燕云十六声》进度分享 新关卡“十二载恩仇”

《燕云十六声》进度分享 新关卡“十二载恩仇”

在十二载恩仇关卡中,游侠们将不仅是来到了此时此刻的此地,还将在机缘巧合下,回到十二年前的那个雪夜,重温这片土地上发生过的故事,并扮演其中的关键角色,左右其中的无数命运。

除此之外,这种“生态与关系”也构成了一个更宏大的叙事,比如这郑氏宅邸里发生过的事情,就与另一个镇守关卡BOSS——“郑鄂”的生平和抉择,形成遥远的互文,使游侠们能够在探索中发现更多的情节和角色深度。

《燕云十六声》进度分享 新关卡“十二载恩仇”

而除了探索和剧情上的感知,关卡中的细节设计则更具体地决定了关卡的体验品质。

其中如何平衡“探索”和“引导”至关重要。

尽管开放世界中强调玩家的自由度,但在具体的关卡中,仍需要自然地实现对玩家的引导。换句话说,我们希望在不知不觉中完成关卡的指引,而避免破坏整体的探索感和沉浸感。

《燕云十六声》进度分享 新关卡“十二载恩仇”

例如在十二载恩仇中,我们就利用了雪与火的氛围反差,来构建和暗示关卡中人物的轨迹和目标,并通过视觉和音频提示、环境设计(如高地、光源)等手段,强调某些特定区域和特定目标。

在关卡的体验过程中,游侠们也能够通过多种方式来推进关卡探索的进程,如战斗、潜行、解谜等等。

作为首个雪景关卡,游侠们可以在冰与火交织的氛围中踏雪潜行。而在雪夜之中,潜行暗杀的路线规划将带来不同的战斗可能,也将很大程度上左右关卡的难度。

《燕云十六声》进度分享 新关卡“十二载恩仇”

我们也非常关注“节奏”的设计,比如紧张的战斗和相对轻松的剧情交叉,关卡地图的层次推进和战斗据点的分布配置等。在十二载恩仇关卡中,除了有主路线的两个首领外,还有位于支路的其他隐藏首领也在严阵以待。

当然,光说理念只是空谈,而像十二载恩仇这样的关卡,在公测版本中还有20+个,等待大家亲临检验。

工作尚未通关,我们仍在努力。

燕云里的“通关”,又称作“验讫”,意为检验和体验的达成。

相比于“通关”的目标感,我们更希望把江湖视作一种经历和体验。

关关难过关关过,期待大家的验讫,也期待这个笃定的冬天。

Tags:

相关文章


(function(){ function qs(s,root){return (root||document).querySelector(s)}; function qsa(s,root){return Array.prototype.slice.call((root||document).querySelectorAll(s));} var DICT = { home: { zh: '首页', en: 'Home' }, siteHome: { zh: '网站首页', en: 'Home' }, recommended: { zh: '推荐文章', en: 'Featured' }, hot: { zh: '热门文章', en: 'Trending' }, readArticle: { zh: '文章阅读', en: 'Read Article' }, latest: { zh: '最新博文', en: 'Latest Posts' }, readMore: { zh: '阅读更多', en: 'Read more' }, positionNow: { zh: '您现在的位置是:', en: 'You are here: ' }, content: { zh: '正文', en: 'Content' }, related: { zh: '相关文章', en: 'Related' }, tags: { zh: '标签', en: 'Tags' }, keywordsAssistant: { zh: '关键词助手', en: 'Keyword Assistant' }, enterText: { zh: '输入文本', en: 'Enter text' }, extractKeywords: { zh: '提取关键词', en: 'Extract Keywords' }, manualKeywords: { zh: '手动关键词', en: 'Manual keywords' }, applyKeywords: { zh: '应用到页面', en: 'Apply to page' }, manualPlaceholder: { zh: '手动关键词,逗号分隔', en: 'Manual keywords, comma-separated' } }; function getParam(name){try{var u=new URL(location.href);return u.searchParams.get(name)}catch(e){return null}} function detectLocale(){ var forced = getParam('lang') || (typeof localStorage!=='undefined' && localStorage.getItem('lang')); if(forced){return forced==='zh'?'zh':'en'} var nav=(navigator.language||'').toLowerCase(); var tz=''; try{tz=Intl.DateTimeFormat().resolvedOptions().timeZone||''}catch(e){} if(nav.indexOf('zh')===0 || /shanghai|urumqi|chongqing|harbin|beijing|hong_kong|macau/i.test(tz)) return 'zh'; return 'en'; } var LANG = detectLocale(); document.documentElement.setAttribute('lang', LANG==='zh'?'zh-CN':'en'); (function setCL(){ var el = qs('meta[http-equiv="content-language"]'); if(!el){ el=document.createElement('meta'); el.setAttribute('http-equiv','content-language'); document.head.appendChild(el); } el.setAttribute('content', LANG==='zh'?'zh-CN':'en'); })(); function t(key){var m=DICT[key];return m?m[LANG]||m.zh||(''+key):(''+key)} function applyI18n(root){ qsa('[data-i18n]',root).forEach(function(el){ var k=el.getAttribute('data-i18n'); el.textContent=t(k); }); } applyI18n(); // Try to retitle some known headings if present qsa('h2.htitle').forEach(function(h){ // If contains certain keywords, replace text var txt = (h.textContent||'').trim(); if(/推荐|Featured/i.test(txt)) h.textContent=t('recommended'); if(/热门|Trending/i.test(txt)) h.textContent=t('hot'); if(/相关文章|Related/i.test(txt)) h.textContent=t('related'); }); // Insert Keyword Assistant into .searchbox function buildKW(){ var box = qs('.searchbox'); if(!box) return; box.classList.add('modern'); var w = document.createElement('div'); w.className='kw-box'; w.innerHTML = ''+ '
'+ ''+ ''+ '
'+ ''; box.appendChild(w); applyI18n(w); var toggleBtn = qs('#kw-toggle', w); var panel = qs('#kw-assistant', w); toggleBtn.addEventListener('click', function(){ panel.hidden = !panel.hidden; }); var langBtn = qs('#lang-toggle', w); langBtn.addEventListener('click', function(){ var next = LANG==='zh'?'en':'zh'; try{localStorage.setItem('lang', next)}catch(e){} location.search = (function(){var p=new URL(location.href); p.searchParams.set('lang', next); return p.search})()}); var extractBtn = qs('#kw-extract', w); var manualInput = qs('#kw-manual', w); var source = qs('#kw-source', w); var list = qs('#kw-list', w); function getPageText(){ var text=''; var post=qs('#post'); if(post) text += ' '+post.textContent; qsa('.blogtitle a, .blogtext, h1, h2').forEach(function(n){ text += ' '+(n.textContent||''); }); return text; } var STOP_ZH = ['我们','你们','他们','以及','这个','那个','因此','但是','如果','因为','不是','就是','可以','文章','新闻','阅读','更多','相关','推荐','热门','最新','内容','正文','位置','现在','时间','作者']; var STOP_EN = ['the','and','for','are','this','that','with','from','your','you','was','were','will','have','has','had','can','could','would','should','a','an','to','in','by','of','on','at','as','is','it','be','or','not','but','we','our','they','their','more','read','article','news','content','latest','related','hot','recommended','author','time']; function tokenizeZh(text){ var zh = (text||'').replace(/[^\u4e00-\u9fa5]/g,''); var tokens=[]; var i; var s; for(i=0;i2;}); } function count(arr, stop){ var m={},i,t; for(i=0;i=0) continue; m[t]=(m[t]||0)+1; } return m; } function topN(map, n){ var items=Object.keys(map).map(function(k){return {k:k,c:map[k]}}); items.sort(function(a,b){return b.c-a.c}); return items.slice(0,n).map(function(x){return x.k}); } function extract(text, maxN){ maxN = maxN || 12; var zhT = tokenizeZh(text); var enT = tokenizeEn(text); var zhC = count(zhT, STOP_ZH); var enC = count(enT, STOP_EN); var zhTop = topN(zhC, Math.ceil(maxN*0.6)); var enTop = topN(enC, Math.floor(maxN*0.4)); var all = zhTop.concat(enTop); // de-duplicate substrings var out=[]; all.forEach(function(w){ if(!out.some(function(x){return x===w || x.indexOf(w)>=0 || w.indexOf(x)>=0;})) out.push(w); }); return out; } function renderList(keys){ list.innerHTML=''; keys.forEach(function(k){ var li=document.createElement('li'); li.textContent=k; list.appendChild(li); }); } function ensureTagContainer(){ var container = qs('.seo-keywords'); if(container) return container; var anchor = qs('.con_text') || qs('.lbox') || qs('article') || document.body; container = document.createElement('div'); container.className='seo-keywords'; anchor.appendChild(container); return container; } function updateMeta(keys){ var meta = qs('meta[name="keywords"]'); if(!meta){ meta=document.createElement('meta'); meta.setAttribute('name','keywords'); document.head.appendChild(meta); } meta.setAttribute('content', keys.join(',')); // visible tags var c = ensureTagContainer(); c.innerHTML=''; keys.forEach(function(k){ var a=document.createElement('a'); a.textContent=k; a.href='/search?kw='+encodeURIComponent(k); c.appendChild(a); }); } qs('#kw-apply', w).addEventListener('click', function(){ var auto = extract(source.value || getPageText(), 12); var manual = (manualInput.value||'').split(/[\s,,]+/).filter(Boolean); var keys = auto.concat(manual); // unique var seen={}; keys = keys.filter(function(x){ if(seen[x]) return false; seen[x]=1; return true; }); renderList(keys); updateMeta(keys); try{ localStorage.setItem('last_keywords', JSON.stringify(keys)); }catch(e){} }); extractBtn.addEventListener('click', function(){ var keys = extract(source.value || getPageText(), 12); renderList(keys); }); // Auto initialize from page content try{ var last = localStorage.getItem('last_keywords'); if(last){ var keys=JSON.parse(last); renderList(keys); updateMeta(keys); } else { var keysInit = extract(getPageText(), 12); renderList(keysInit); updateMeta(keysInit); } }catch(e){} } buildKW(); })();