查看照片
使用 Oppo Reno6 系列 5G 手机玩游戏的插图(OPPO 印度尼西亚文档)。
KOMPAS.com - 现代,越来越多的人将玩视频游戏作为一种娱乐方式。
事实上,如今,仅仅通过玩电子游戏,就有人可以赚很多钱。
尽管玩电子游戏是儿童游戏的代名词,但许多成年人也玩电子游戏。
据 The Wrap 报道,视频游戏是一种交互式数字娱乐,可以通过电脑、游戏机、手机或平板电脑来玩。
游戏玩家或者非常热衷于玩电子游戏的人都可以称为游戏玩家。
视频游戏也有多种不同的类型,有数百万种类型的视频游戏可以成为玩家的娱乐媒介。
Kompas.id 文章
`; document.querySelector('.compasidRec').innerHTML = htmlString; } else { document.querySelector(".compasidRec").remove(); } } else { document.querySelector(".compasidRec").remove(); } } }); xhr.open("GET", 端点); xhr.send();那么,电子游戏首次引入世界的历史是怎样的呢?
另请阅读:2022 年初 10 款最佳游戏
电子游戏的历史
引自 Kompas.com(2018 年 6 月 28 日),电子游戏首次在 20 世纪 40 年代左右在世界展览会上展出。
爱德华·U·康登 (Edward U. Condon) 设计了一台可以玩传统游戏 Nim 的计算机。
在玩电子游戏 Nim 时,玩家必须避免拿起最后一根柱子,但游戏 90% 的情况下都是计算机获胜。
1952年,英国教授AS Douglas在剑桥大学为他的论文创作了一款名为OXO的电子游戏。
这款视频游戏类似于井字游戏,主题是人与计算机之间的互动。
1955年,由于战争旷日持久,许多战争游戏开始诞生。美国军方还设计了一款名为Huspitel的游戏。
Huspitel 视频游戏由红色玩家与蓝色玩家战斗。这两种颜色代表北约和苏联。
另请阅读:历史上的今天:口袋妖怪游戏在日本为 Gameboy 发布
视频游戏开发
1957 年,William Highbotham 在一台连接到示波器屏幕的大型模拟计算机上创建了一款名为“两人网球”的视频游戏。
该视频游戏是专门为纽约厄普顿布鲁克海文国家实验室的年度访客日而制作的。
《两人网球》随后引起了在场参观者的兴趣,视频游戏甚至得到了公众的支持。
由于《两人网球》的成功,一些程序员觉得他们在学习计算机方面得到了帮助,因为他们觉得他们可以在玩游戏的同时向游戏制作者学习。
这种心态导致 20 世纪 60 年代麻省理工学院 (MIT) 的一群学生开发了一款创新游戏。
当时参与其中的学生之一史蒂夫·拉塞尔随后创造了一个两艘宇宙飞船之间的决斗游戏,名为“太空战争”。
该游戏的灵感来自一部有关太空旅行的科幻小说。
随后,《太空战争》在麻省理工学院的其他学生甚至其他设有计算机编程系的大学中广为人知。
然而,遗憾的是,当时电脑并不容易使用,因此《太空战争》游戏并未普遍向公众发布。
另请阅读:7 个可以在家玩的放松游戏及其好处
电子游戏越来越受到公众的欢迎
1966 年左右,视频游戏开始为大众所喜爱,这要归功于一位名叫 Ralph Baer 的工程师。
贝尔认为电视可以成为玩电子游戏的媒介。
1967 年,在 Bob Tremblay 的帮助下,他们两人创建了世界上第一个视频游戏测试单元 TVG。
Sanders Associates Inc. 对贝尔的 TVG 创作印象深刻,并要求他将该技术转化为商业上可行的产品。
经过几年的测试,贝尔和他的同事开发了第一个多程序视频游戏原型,绰号“棕色盒子”。
这一发现使贝尔被誉为电子游戏之父。
Brown Box 被出售给 Magnavox 后,该游戏机随后以 Odyssey 的名称进行商业销售。
然而,奥德赛游戏机的销售记录显然不太好,因此家用游戏机被宣告失败,没有卖出去。
尽管在市场上失败了,但其中一款《奥德赛》游戏激发了街机游戏公司 Atari Pong 的灵感,创造了一款家庭版视频游戏。
另请阅读:吃豆人游戏的历史,最初是为了吸引女性的兴趣
第一家街机游戏公司随后制作了Pong游戏,结果在市场上取得了巨大成功。
1977 年,Atari Pong 发布了一款使用操纵杆和卡带的家用游戏机,称为 Atari 2600。
Atari 2600以其多彩的游戏表现而著称,它标志着第二代视频游戏机的时代。
1979年,电子游戏在社会上日益流行,各种游戏如今已成为传奇。
这些传奇游戏包括吃豆人、超级马里奥兄弟和微软的第一款飞行模拟器。
(来源:Kompas.com/Resa Eka Ayu Sartika | 编辑:Resa Eka Ayu Sartika)
直接在手机上收听突发新闻和我们精选的新闻。选择您最喜爱的新闻频道来访问 Kompas.com WhatsApp 频道:https://www.whatsapp.com/channel/0029VaFPbedBPzjZrk13HO3D。确保您已安装 WhatsApp 应用程序。保存文章
不感兴趣
关闭
`); var wSpecStop = createElementFromHTML(`内容已隐藏。重新加载页面以更新推荐。撤消
`); reactionPopup.querySelector('.buttonShare').setAttribute('data-title', item.title); reactionPopup.querySelector('.buttonShare').setAttribute('data-url', itemUrl); reactionPopup.querySelector('.buttonShare').setAttribute('data-campaign', 'AIML_Widget_Desktop');让 userFeedback = new UserFeedback(resultObj.engine['tracker_algsrc'], itemUrl + tracker_params, jxRecHelper, index);反应Popup.querySelector('.buttonBookmark').addEventListener('click', function() { do_bookmark(itemUrl, index, userFeedback); }); reactionPopup.querySelector('.buttonShare').addEventListener('click', function() { userFeedback.event('share'); });反应Popup.querySelector('.buttonNotInterest').addEventListener('click', function() { if (getCookie('kmps_usrid')) { hideThisArt(this); userFeedback.event('不感兴趣'); } else { const ParentAction = this.parentElement.parentElement.parentElement if (!!parentAction) { let indexElement = ParentAction.getAttribute('data-index') if (indexElement != 'undefined') { localStorage.setItem('reaction_not_interest_temp', JSON.stringify ({ urlpage: items[indexElement].url })) } } window.location.href = "https://account.kompas.com/login/a29tcGFz/" + btoa(window.location.href); /** * 触发操作“userFeedback”,即用户之前不感兴趣的项目,当不登录而不感兴趣时 */ if (getCookie('kmps_usrid') && localStorage.getItem('reaction_not_interest_temp')) { const tempUrlNotInterest = JSON.parse(localStorage) .getItem('reaction_not_interest_temp')) if (itemUrl == tempUrlNotInterest.urlpage) { userFeedback.event('不感兴趣'); localStorage.removeItem('reaction_not_interest_temp'); } } wSpecStop.querySelector('.wSpec-stop-undo').addEventListener('click', function() { showThisArt(this); userFeedback.event('un-not-interested'); }); recItem.appendChild(buttonOption); recItem.appendChild(reactionPopup); recItem.appendChild(wSpecStop); var recItemWrapperA = createElement('a', null, null, null); recItemWrapperA.setAttribute('href', itemUrl + tracker_params); var titleDiv = createElement('h4', null, null, [cssClasses.title]); var titleTextNode = document.createTextNode(item.title); if (item.itemType == 'video') { var iconVideo = createElement('div', null, null, ['icoInline', 'icoVideo']); iconVideo.style.marginRight = '5px'; titleDiv.appendChild(iconVideo); titleDiv.appendChild(titleTextNode); var sourceDiv = null; if (item.hasOwnProperty('method')) { sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type'] + ' . ' + item.method.toUpperCase() ); } else { var sourceDiv = createElement('div', null, null, [cssClasses.source], resultObj.engine['type']); var textWrapper = createElement('div', null, null, [cssClasses.text_wrapper]); textWrapper.appendChild(categoryDiv); textWrapper.appendChild(titleDiv); textWrapper.appendChild(sourceDiv); recItemWrapper.appendChild(imgWrapper); recItemWrapper.appendChild(textWrapper); recItemWrapperA.appendChild(recItemWrapper); recItem.appendChild(recItemWrapperA); widgetWrapper.appendChild(recItem); // 连接该项目的点击处理程序 // recItem.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); recItemWrapperA.onclick = handleClick.bind(null, jxRecHelper, itemUrl + tracker_params, index); }); } // 结束 while var endDate = new Date(); var loadtime = (endDate.getTime() - startDate.getTime()); trackEventGa('AIML文章推荐', '内容已加载', 'algsrc='+algsrc+',site=TREND,device=desktop,loadtime=' + loadtime) let domain = window.location.hostname; if(domain=='www.kompas.com'){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "猜猜";让 subs_type = "";让 is_lgn = 0;让引擎= algsrc; if(getCookie('kmps_usrid')){is_lgn=1};让 time_load = 加载时间;解决(); /*** * JXRECSDK 注释第 3 条(共 5 条) - * 将有关项目的所有信息传递给记录助手 * 每一个都是一个对象:全部强制 * div * id * pos */ jxRecHelper.items(widgetItemArr); /*** * JXRECSDK 注意第 4 条(共 5 条) - * 当推荐结果已填充到小部件时调用辅助对象的 read() * (这将注册 action=ready 事件) */ if (resultObj.engine ['type'] == 'api-1') { jxRecHelper.ready(resultObj.options.algo + ":" + resultObj.options.version); } else { jxRecHelper.ready(resultObj.engine['type']); } } else { jxRecHelper.error(204); console.error("错误:没有推荐项目");返回; } } catch (err) { jxRecHelper.error(901); console.log(err.stack);让域 = window.location.hostname; if(domain=='www.kompas.com'){ var url=window.location.href.split("/"); domain=url[2]+'/'+url[3] } let user_subs_type = "猜猜";让 subs_type = "" 让 is_lgn = 0;让引擎= algsrc; if(getCookie('kmps_usrid')){is_lgn=1};让 endDate = new Date();让 time_load = (endDate.getTime() - startDate.getTime()); } }); const _jxRecSdkURL = 'https://scripts.jixie.media/jxrecsdk.1.0.min.js'; var startDate = new Date(); class OneWidget { constructor() { //这也是我们在实例化 JX rec 辅助对象时传递给它的对象: //在此实现中,大部分来自发布者页面上的选项 obj。 this._options = { accountid: '9262bf2590d558736cac4fff7978fcb1', pageurl: 'https://www.kompas.com/tren/read/2022/06/03/070000165/mengenal-apa-itu-video-game-dan-wisata-初始',widget_id:'1000183-6xWeiWZFIM',类型:'页面',容器:'推荐内容选择-for-you-aiml',关键字:content_tags,标题:标题,customid:“65”,计数:14 , } ; this._containerId = this._options.container; this._container = document.getElementById(this._containerId); this._engines = [{"url":"https:\/\/recommendation.jixie.media\/v1\/recommendation","method":"GET","pageurl":"https:\/\/www .kompas.com\/tren\/read\/2022\/06\/03\/070000165\/knowing-what-is-video-game-and-its-early-history","system":"jx" ," type":"api-1","tracker_params":"?source=widgetML","tracker_algsrc":"V","count":14,"page_status":"已读","excludeitemids":"20220603070000165 “}]; } kickOff() { startDate = new Date(); const rand = Math.floor(Math.random() * 1000); /*const randSystem = Math.floor(Math.random() * 3); this._engine = this._engines[randSystem] if (location.hostname.indexOf('sustainable') != -1) { this._engine = this._engines[1] }*/ this._engine = this._engines[0 ]; this._options.system = this._engine['system'] trackEventGa('AIML文章推荐', 'Widget加载', 'algsrc=' + this._engine['tracker_algsrc'] + ',site=TREND,device=desktop ') 让 promJXSDK = fetchJSFileP(_jxRecSdkURL);让 thisObj = this; // 首先我们等待 JX REC SDK 加载并初始化 let recHelperObj = null;让recResults = null; promJXSDK .then(function() { /*** * JXRECSDK 注释 1 of 5 - JX REC 帮助对象的实例化 * 在加载 JX REC SDK 之后但在调用 REC * 后端之前调用此函数。 * * 参数:强制选项object * options 对象必须至少有 * accountid: 从 jixie 获取 * widgetid: 从 jixie 获取 * container: 容纳 widget 的目标 div 的 DIV ID * (对于 jixie widget,这只是从页面传递的 options 对象) * * (这也会注册 action=load 事件) */ recHelperObj = jxRecMgr.createJxRecHelper(thisObj._options); let basicInfo = thisObj._options; basicInfo.engine = thisObj._engine if (basicInfo.engine.type == ' api-1') { var options = { count: basicInfo['count'], adpositions: "", keywords: basicInfo['keywords'], title: basicInfo['title'], date_published: "2022-06-03 ", pagecategory: "TRENDING", algo: "mixed" }; if(getCookie('kmps_usrid')){ var kg = { pagetype:basicInfo.engine.page_status, uid:getCookie('kmps_usrid'), ukid:getCookie( 'kmp_uid') } if(basicInfo.engine.page_status=='read'){ kg['excludeitemids'] = basicInfo.engine.excludeitemids; kg['多格式'] = true; } 选项['附加'] = { 公斤:公斤 };返回recHelperObj.getJxRecommendations(选项); } else { return fetchRecommendationsP(basicInfo, recHelperObj.getJxUserInfo()); } }) .then(function(resp) { if (thisObj._engine.type == 'api-3') { recResults = new Object recResults.items = resp.docs.result; } else { recResults = resp; } recResults .engine = thisObj._engine; if (!resp || !recResults.items || recResults.items.length == 0) { /*** * JXRECSDK 注释 2 of 5 - * 在recHelper 上调用 error() 函数当获取过程中发生错误或没有推荐项目时 * * (这将注册 action=error 事件) */ recHelperObj.error(204); function() { // 一切准备就绪(推荐结果, css): document.getElementById("推荐的内容选择-for-you-aiml").classList.remove("-loading"); document.querySelector('.wSpec -list').remove(); rand, thisObj._container, recResults, recHelperObj) .then(function() {toggleDropdown(); //观察lozad lozad('.lozad', { load: function(el) { el.src = el.dataset.src; } el.onload = function() { el.classList.add('fade') } } }).observe() }) }) .catch(function(error) { console .log(`无法创建推荐小部件 ${错误.堆栈} ${错误.消息}`); }); } } var limit_gtm_ready = 1; function check_gtm_ready() { if ('ga' in window) { // 根据选项创建一个新的小部件实例 const newW = new OneWidget(); newW.kickOff(); } else { const timeout_gtm_ready = setTimeout(check_gtm_ready, 500) limit_gtm_ready += 1; if (limit_gtm_ready > 10) { 清除超时(timeout_gtm_ready); const newW = new OneWidget(); newW.kickOff(); } } } check_gtm_ready() document.querySelector('.wSpec-secret').addEventListener('click', function(e) { e.preventDefault(); let wSl = document.querySelectorAll('.wSpec-source'); if (wSl.length > 0) { for (let i = 0; i { el.addEventListener('click', function() { el.parentElement.classList.toggle('-active') let saving = el.parentElement. getAttribute('数据保存') let kmps_usrid = getCookie('kmps_usrid'); if (kmps_usrid && !saved && el.parentElement.classList.contains('-active')) { let url = el.parentElement.getAttribute(' data-url'); let guid = get_guid(url); check_bookmark( kmps_usrid, guid ).then(function(resp) { if (resp.hasOwnProperty('total_data')) { if (resp.total_data > 0) { el .parentElement.querySelector('.buttonBookmark').classList.add('-active'); el.parentElement.querySelector('.buttonBookmark').innerHTML = '从已保存的内容中删除', 'true'); else { el.parentElement.setAttribute('数据保存', 'false'); console.log(e.target) if (el.contains(e.target)) { // console.log(tdd) } else { el.parentElement.classList.remove('-active') } }); }); } } function check_bookmark(kmps_usrid, guid) { let url = `https://api.kompas.com/2021/reaction/bookmark/list?kmps_usrid=${kmps_usrid}&guid=${guid}`; return new Promise(function(resolve,reject) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { 解析(JSON.parse( this.responseText)) } }; xmlhttp.open("GET", url, true); } function do_bookmark(pageurl, pos, userFeedback) { const wSpecItem = document.querySelector(`.wSpec-item[data-index="${pos}"]`); const btnBookmark = wSpecItem.querySelector('.buttonBookmark'); const kmps_usrid = getCookie('kmps_usrid'); const guid = get_guid(pageurl); const type = pageurl.match(/\/watch\/(\d+)/) ? '视频' : '文章'; if (kmps_usrid) { if (btnBookmark.classList.contains('-active')) { set_unbookmark({ guid: guid, kmps_usrid: kmps_usrid, type: 类型 }).then(function(resp) { btnBookmark.classList.remove( '-active'); btnBookmark.innerHTML = '保存文章';reactionToast('文章已成功从保存的列表中删除'); / message: "数据不存在" if (resp.hasOwnProperty('message') && resp. message.includes('exist')) { btnBookmark.classList.remove('-active'); 保存文章';reactionToast('文章成功从保存的列表中删除'); //activity.kompas.com/saved?order=desc"; set_bookmark({ guid: guid, kmps_usrid: kmps_usrid, type: type, 发布者: 'kompas', platform: 'desktop' }).then(function(resp) { btnBookmark.classList.add('-active'); btnBookmark. innerHTML = '从保存中删除';reactionToast('文章保存成功', user_bookmark_url); catch(function(resp) { // message: "数据已存在" if (resp .hasOwnProperty( 'message') && resp.message.includes('exist')) { btnBookmark.classList.add('-active'); btnBookmark.innerHTML = '从已保存的内容中删除'reactionToast('文章保存成功', user_bookmark_url); } }) } } else { const login_url = "https://account.kompas.com/login/a29tcGFz/" + btoa(window.location.href); window.location.href = 登录网址; } } 函数 set_bookmark(data) { const url = "https://api.kompas.com/2021/reaction/bookmark/add"; return new Promise(function(resolve,reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 201) { 解析(JSON.parse( this.responseText)); } else if (this.readyState == 4 && this.status == 400) {reject(JSON.parse(this.responseText)); true); “application/x-www-form-urlencoded;charset=UTF-8”); } 函数 set_unbookmark(data) { const url = "https://api.kompas.com/2021/reaction/bookmark/delete"; return new Promise(function(resolve,reject) { const xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { 解析(JSON.parse( this.responseText)); } else if (this.readyState == 4 && this.status == 400) {reject(JSON.parse(this.responseText)); true); “application/x-www-form-urlencoded;charset=UTF-8”); } 类 UserFeedback { 构造函数(engine, pageurl, jxRecHelper, pos) { this.engine = engine; this.pageurl = pageurl; this.jxRecHelper = jxRecHelper; this.pos = 帖子; } 事件(反馈){ if (this.engine == 'C') { const xmlhttp = new XMLHttpRequest();让 params = { 域名: 'kompas.com', ce_userid: getCookie('kmps_usrid'), ce_sessionid: getCookie('ukid'), ce_pageurl: this.pageurl, 引擎: 'C', ce_feedback: 反馈 } xmlhttp.open( "GET", 'https://apis.kgdata.dev/v1/aiml/feedback-widgetml' + formatParams(params)); xmlhttp.send(); } else if (this.engine == 'V') { if (feedback == 'share') { this.jxRecHelper.shared(this.pos); } } else if (feedback == '保存') { this.jxRecHelper.bookmarked(this.pos); } else if (feedback == '不感兴趣') { this.jxRecHelper.hidden(this.pos); } else if (feedback == '不感兴趣') { this.jxRecHelper.unhidden(this.pos); } } } } function formatParams(params) { return "?" + Object .keys(params) .map(function(key) { return key + "= +encodeURIComponent(params[key]) }) .join("&") } document.addEventListener("click", function(e ){ let dx = document.querySelectorAll('[data-dropdown]') if(dx) { dx.forEach(function(el){ if(el.contains(e.target)) { el.parentElement.classList.toggle ('-active') } else { el.parentElement.classList.remove('-active') } }) } })
留言