Lighthouse与清华学子共探云上游戏开发

合作背景

随着大数据、人工智能等研究的不断深入,云计算作为重要的技术和支撑,未来仍会有巨大的发展空间。尤其在后疫情时代,企业对云计算等技术依赖加深,互联网行业对云计算人才需求量将会越来越大。为了进一步加速云计算的校园普及,腾讯云正在投入海量云资源帮助校园开发者开启云上实践第一站,以稳定、弹性、安全、高性能且轻量、简单易用的云端计算服务助力高校师生探索前沿技术、提升实践技能。

为了推动云计算在高校的普及,并更好地助力高校人才成长,腾讯云计算产品中心携手腾讯游戏学院,与清华大学深圳国际研究生院-腾讯互动媒体设计与技术中心,于 2021 年达成合作意向。该合作意向聚焦于「互动媒体设计与技术项目」,腾讯云将为师生免费提供云上算力资源,并持续投入优质云计算学习资源赋能课程建设与人才培养。合作建立以来,双方在赛事活动、校企交流、实习生培养等多个领域开展深度合作。

互动媒体设计与技术中心(Interactive Media Design and Technology Center,简称“IMDT”)是清华大学深圳国际研究生院与腾讯于2019年合作共建的首个全日制专业硕士培养项目。该项目采用“学校导师+企业导师”的双导师授课模式,希望将最新产业需求及时结合到专业教育和人才培养中, 培养出具备技术能力、拥有艺术鉴赏能力、有互动媒体设计相关能力及鉴赏能力的跨学科、复合型、创新性人才,期望从这里走出引领中国互动媒体行业发展、行业顶尖的设计师和制作人。

收效颇丰

2022 年 11 月初,互动媒体设计与技术(IMDT)专业课程《互动媒体(游戏)开发基础》顺利举办结课作品展示会。该课程采用理论与实践紧密结合的方式,给每位同学都配置了独立的腾讯云服务器,重要知识点讲解完后马上进入到实践环节。

轻量应用服务器 Lighthouse 作为腾讯云新一代面向个人开发者、云计算入门者、中小企业打造的云服务器产品,对传统云服务器的各类复杂概念和功能进行了简化。包括高校学生在内的初学者无需了解复杂的云计算概念与知识,即可零门槛使用云服务器便捷高效完成各类实践课程的作品开发和测试验证。

在课程实践过程中,同学们只需轻点鼠标,即可在数十秒内完成一套云端游戏开发测试和运行平台的搭建,游戏运行所需的计算、网络和存储等基础设施也都可以自动完成配置。

IMDT 作为交叉学科的平台、多学科的融合中心,汇集了各领域的优秀人才。未来我们希望持续推动包括轻量应用服务器在内的云计算产品融入项目课程建设,充分发挥产品技术优势与行业经验,回馈项目应用实践与前沿思考,为培养交叉学科的创新型人才贡献力量。

历经一学期的课程学习,同学们最终产出若干个完成度较高、富有趣味、并支持多人在线的互动媒体(游戏)作品。

以下展示部分作品,更多作品请点击链接了解。

《别卷了别卷了别卷了》 作者:余昊谦 苏明扬

《meow~meow~jump?》 作者:李直霖 宋天翊

更多作品,指路:

  • 《互动媒体(游戏)开发基础》作品展示会及课程回顾(上)
  • 《互动媒体(游戏)开发基础》作品展示会及课程回顾(下)

尾声

云计算发展至今,早已不再定位于只提供类似“水电”一般的基础资源,而是面向应用,为用户的业务场景创造更多价值。未来,腾讯云将持续深度聚焦高校人才培养,积极寻求与更多高校的合作机会,并不断探索与打磨高校合作模式,通过高层次的校企合作、产学研一体化,与高校共同培养更多云计算人才。

在大家修炼内功之余,腾讯云轻量应用服务器也在近期推出了「轻云之上,无尽想象」系列主题活动,首期以「换种思路去求职」为主题,丰富实践、特惠商品,助你在求职中恣意展示风采,一往无前,所向披靡。

本文转载于网络 如有侵权请联系删除

相关文章

  • 序列化与反序列化系列二:JPA 与 Querydsl

    系列文章:序列化与反序列化之Protostuff(一)一前言其实JPA放在这里有些牵强,不过我们开始这个系列的研究是与JPA相关的,起源于数据库查询中自动生成的一段Dabatase相关代码。事实上,在简化orm代码时,序列化和反序列化也确实是其中的一部分重要工作。那么我们就开始本篇学习。二SpringDataJpa2.1简介spring-data-jpa官网:https://spring.io/projects/spring-data-jpa。根据官网的描述:SpringDataJPA是SpringData大家族中的一员,使基于repositories的JPA实现变得简单。本模块对基于JPA的数据访问层做了增强支持。它使得构建使用数据访问技术的Spring驱动的应用程序变得更加容易。实现应用的数据访问层通常都很笨重,最典型的就是传统的JDBC,为了执行简单的一段查询,我们需要写太多重复的(样板)代码。ORM框架Hibernate、Mybatis等都是为了解决这个问题而出现。SpringDataJPA致力于显著提升数据访问层的代码编写效率,开发者可以写自己的repository接口,包括

  • Drug Target Review | 人工智能(AI)在基因组学中的作用

    人工智能在包括基因组学在内的许多研究领域中都有应用。阿斯利康(AstraZeneca)的斯拉夫·彼得罗夫斯基(SlavéPetrovski)揭示了如何在人类基因组研究中使用AI及其在未来的发展。基因组学领域产生了大型数据集,可用于发现和开发潜在的新疗法。人工智能(AI)在此研究领域中具有很高的价值,因为它可以加快从信息获取知识所需的时间。DrugTargetReview的VictoriaRees与阿斯利康基因组研究中心(CGR)的基因组分析和信息学负责人SlavéPetrovski进行了交谈,以了解AI在这一领域的使用方式。Petrovski将AI定义为“利用先进的分析方法来挖掘复杂的数据类型”,从而可以识别其他难以捉摸的模式。最终,他说AI可以用来推动“从数据到知识的发展”。基因组学中使用AIPetrovski首先解释说,该领域内AI的用途广泛。构成人类基因组的大约30亿个碱基对可以通过AI进行分析,以找到遗传变异。下一步是确定置入不同数据的置信度,以决定其是否代表生物学遗传变异。他继续说道,“通常使用AI来帮助研究者更好地了解与遗传变异有关的生物学。”这意味着AI的结果可用于确定变

  • Canvas系列(4):线条操作

    通过前三章的学习,你几乎可以绘制出任何图形了,但是却不会画一条虚线,也是够惨的。今天的内容很简单,只简绍3个属性和1个方法,准备好了吗?线条的粗线lineWidth是改变线条的粗线的,默认是一个像素:context.beginPath(); context.moveTo(20,50); context.lineTo(280,50); context.lineWidth=1; context.stroke(); //如果这里没有beginPath你猜猜这三条线的宽度分别是多少 context.beginPath(); context.moveTo(20,75); context.lineTo(280,75); context.lineWidth=5; context.stroke(); context.beginPath(); context.moveTo(20,100); context.lineTo(280,100); context.lineWidth=10; context.stroke();复制结果如下:如果上面没有beginPath那么后面线描边的时候也会把之前的绘制一下

  • uni-app提交表单成功之后跳转首页

    功能需求: 1:填写表单内容,点击提交审批按钮,提交成功之后,弹出弹框,提示已经提交成功。2:提交成功之后,两秒钟之后自动跳转到首页主要函数:sub(){ uni.showToast({ title:'上传成功', icon:'success', duration:1000 }) setTimeout(()=>{ uni.switchTab({ url:"../main", }); },600); },复制参考代码:<template> <view> <form> <viewclass="cu-form-groupmargin-top"> <viewclass="title">补卡原因</view> <picker@change="PickerChange":value="index":range="picker"> <viewc

  • 微软也爱 Python!VS Code Python 全新发布!Jupyter Notebook 原生支持终于来了!

    1、创建JupyterNotebook当安装好Python插件最新版后,使用快捷键Ctrl+Shift+P调出CommandPalette,然后输入"Python:CreateNewBlankJupyterNotebook",就能创建一个新的JupyterNotebook。如果你已经有一个JupyterNotebook文件了,你可以在VSCode中双击打开这个文件,或者在CommandPalette里通过"Python:OpeninNotebookEditor"打开。2、管理cellsVSCode的JupyterNotebookEditor使得开发者可以轻松地创建、编辑和运行codecells。创建codecells添加额外的codecells运行单个codecell运行多个codecells移动codecell删除codecell在代码与markdown之间切换3、Intellisense支持在VSCode中编辑JupyterNotebook的Python代码,就犹如平时在VSCode编写Python文件一样,有强大的IntelliSense(

  • 为什么选择软件测试作为职业道路?

    原文于2018年12月份发表在Javacodegeeks。如果你看到这里,那只是意味着你面临/曾经面临了一个至关重要的决定:你应该选择软件测试来支持甚至开始你的职业生涯吗? 软件测试适合您吗?你应该从哪里开始?你该怎么办?你为什么要这么做?还有一千多个问题…… 有许多文章向你保证为什么或为什么没有,你肯定也必须经历过它们。但我们在这里提供帮助,编制了一份全面的清单,可以帮助您做出决定。那么,让我们开始吧。为什么选择软件测试作为职业道路?软件测试人员专为具有挑战性的工作环境而设计,如果您是喜欢接受新挑战的人,那么软件测试就适合您。 我们不只是声称这一点。软件测试每天都会带来很多挑战。在某些日子里,挑战是长时间工作,而在其他方面,挑战是一遍又一遍地重复相同的过程而不会感到疲倦,以便找到一个正在震动整个系统的错误。 软件测试人员喜欢挑战,他们有能力在大多数其他人之前发现错误。你可以享受每一天的工作软件测试是一个完全动态的领域。它在不断变化。在软件开发领域,没有一种技术可以长期统治世界。 作为一名软件测试人员,您将了解到您所在行业每天都会遇到的令人惊叹的新技术,并且还有机会与他们合作。由于单调

  • 极速体验SpringCloud Gateway

    SpringCloudGateway是SpringCloud技术栈中的网关服务,本文实战构建一个SpringCloud环境,并开发一个SpringCloudGateway应用,快速体验网关服务;环境信息操作系统:win10(64位)JDK:1.8.0_181Maven:3.5.0SpringCloud:Greenwich.SR源码下载如果您不打算写代码,也可以从GitHub上下载本次实战的源码,地址和链接信息如下表所示:名称链接备注项目主页https://github.com/zq2599/blog_demos该项目在GitHub上的主页git仓库地址(https)https://github.com/zq2599/blog_demos.git该项目源码的仓库地址,https协议git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该项目源码的仓库地址,ssh协议这个git项目中有多个文件夹,本章的源码在gatewaydemo文件夹下,如下图红框所示: 整体设计本次实战的源码涉及到三个应用:注册中心、服务提供者、网关,它们的关系和业务逻辑如下图

  • ansible生产常用十一大模块总结

    注:-a参数后的命令用单引号,单引号,单引号;双引号有可能会出问题,特别是在user模块;模块一:测试目标主机是否在线:ping模块主机如果在线,则回复pong1 2 3 4 5 6 7 8 9 10测试主机是否在线 [root@localhost~]#ansibleerp-mping 192.168.10.6|SUCCESS=>{ "changed":false, "ping":"pong" } 192.168.10.7|SUCCESS=>{ "changed":false, "ping":"pong" }模块二:command模块和shell作用:用于在各被管理节点运行指定的命令shell和command的区别:shell模块可以特殊字符,而command是不支持1 2 3 4

  • 探究RemoteViews的作用和原理

    作者:猪_队友 https://www.jianshu.com/p/9bdf7c9efca5 本文已获得作者原创首发授权什么是RemoteViews?/** *Aclassthatdescribesaviewhierarchythatcanbedisplayedin *anotherprocess.Thehierarchyisinflatedfromalayoutresource *file,andthisclassprovidessomebasicoperationsformodifying *thecontentoftheinflatedhierarchy. */复制翻译成自己的话就是:RmoteViews是一个能显示在其他进程的视图。同样也提供了一些基本的操作方法来修改视图的内容。从这段描述来看,我们感觉他和普通的View没有什么区别,只不过可以在远程进程中进行更新修改View。那么事实是不是这样呢?我们慢慢往下探究。我们平时使用RemoteViews无非就两种:通知栏和桌面小部件。那我们就一个一个来探究一番。通知栏我们先写一个系统默认的通知栏:voidsendNotify(){

  • C# 找出泛型集合中的满足一定条件的元素 List.Wher()

    在学习的过程中,发现泛型集合List<T>有一个Where函数可以筛选出满足一定条件的元素,结合Lambda表达式使用特别方便,写出来与大家分享。1.关于Func<>Func是一种有任意个输入参数,有一个返回值的委托,在使用的过程中,Func<in,in,out>,前n-1个是输入参数类型,第N个是输出参数类型。如Fun<int,int,bool>compare=(x,y)=>{returnx>y;};表示定义一个两个输入参数为int类型的,输出类型为bool类型的委托。2.Where()可以看到以List<string>为例子,改where的参数为Func<string,bool>的委托,也就是说是一个输入值为string类型,输出为bool类型的委托。如果返回为真,则该元素会被添加到IEnumerable中,通过对IEnumerable的遍历,可以将符合条件的每个元素输出。3.代码片段List<string>names=newList<string>(); names.Add

  • 【开源 UI 组件】Flutter 图表范围选择器

    前言最近有一个小需求:图表支持局部显示,如下底部的区域选择器支持左右拖动调节中间区域拖拽中间区域,可以进行移动图表数据根据中间区域的占比进行显示部分数据1.使用chart_range_selector目前这个范围选择器已经发布到pub上了,名字是chart_range_selector。大家可以通过依赖进行添加dependencies: chart_range_selector:^1.0.0复制这个库本身是作为独立UI组件存在的,在拖拽过程中改变区域范围时,会触发回调。使用者可以通过监听来获取当前区域的范围。这里的区域起止是以分率的形式给出的,也就是最左侧是0最右侧是1。如下的区域范围是0.26~0.72。ChartRangeSelector( height:30, initStart:0.4, initEnd:0.6, onChartRangeChange:_onChartRangeChange, ), void_onChartRangeChange(doublestart,doubleend){ print("start:$start,end:$end");

  • Mdict词典文件

    Mdict词典文件作者:matrix被围观:2,640次发布时间:2013-01-26分类:兼容并蓄|一条评论»这是一个创建于3504天前的主题,其中的信息可能已经有所发展或是发生改变。手机上安装了mdict这种外挂型辞典软件相当好用。早在以前就在小明上用过了zdict,只是没这个安卓版mdict强大。那时候都遭同学羡慕啊。哈哈。网上收罗来的MDX词典文件。常用中文词典:http://dl.vmall.com/c0969vmpa2几个英汉词典:http://dl.vmall.com/c0l1rztt8c 15万词的美式发音库,共376M大小,分4个压缩包,全部下载后解压即可. 压缩包1:http://dl.vmall.com/c0ldqi9w2x 压缩包2:http://dl.vmall.com/c0ve8jdkyo 压缩包3:http://dl.vmall.com/c0ff8eitua 压缩包4:http://dl.vmall.com/c03wmfd000ED2k上部分资源下载:http://www.ed2000.com/ShowFile.asp?FileID=232113掌上百科N

  • [Qt 基础-01] QPushButton

    QPushButton 简介 QPushButton是一个很常用的一个按钮控件,主要用于创建一个可按压的按键。它显示了一个文本和一个图标。另外,你也可以在创建时,指定一个快捷键。 基本用法 1.创建 QPushButton主要有两种创建方法,一种是直接在QtCreator上进行拖拽添加,另外一种是用代码创建。 用代码创建如下: QPushButton*button=newQPushButton("Download",this); 复制 你也可以在创建的时候这样写: QPushButton*button=newQPushButton("&Download",this); 复制 这样,你就指定了一个快捷键,用于按下这个按钮,具体的规则为:在"&"后面的那个字母就是你的快捷键,而且快捷键的组合方式为Alt+D。所以如果你是这样写 QPushButton*button=newQPushButton("D&ownload",this); 复制 你的快捷键就是:Alt+o 2.设置信息 你也可以自己手动的去设置信息,包括按钮上面的字,按钮上的图标。调用setText来

  • 立即执行函数 IIFE

    立即执行函数表达式IIFE(Immediately-invokedfunctionexpression)我们知道,在javascript(ES5)中,是没有块级作用域的概念的。看一个例子 for(vari=0;i<5;i++){ }console.log(i);//5因为没有块级作用域的概念,因此,在for循环中声明的i变量实际上是一个全局变量,因此可以在全局环境中访问的到。 块级作用域,也可以称为私有作用域。也就是说只在for循环的语句块中有定义,一旦循环结束,变量i就会被销毁。而在ES5中,我们主要通过匿名函数的方式来块级作用域。 用作块级作用域(私有作用域)的匿名函数的语法: (function(){//此处是块级(私有)作用域})()以上代码定义并立即调用了一个匿名函数。将函数声明包含在一对圆括号中,表示它实际上是一个函数表达式。看看这种写法是如何产生的 vara=function(){console.log(123);}; a();//123我们将一个匿名函数赋值给了一个全局变量a,然后调用了这个函数 当然也可以这样调用函数 vara=function(){consol

  • Vue——v-for中 key 属性的使用

    当在组件中使用v-for时,key现在是必须的。   首先,为了方便演示。我们先搭建一个基础结构       现在我们目前添加的是用的push方法,添加到了对象的尾部 在添加之前选中了第五个后再添加也不会出现上面异常   接下来我们再来看看如果是使用unshift方法,是添加到对象前面的   我们可以看到如果在添加之前选中了其中一项,后再添加就会出现索引错位的现象     所以我们需要给对象里面的每一项都绑定上一个唯一的标识 这个时候就可以用到我们的这个key了    绑定好之后我们再来看一下 现在可以看到我们没有添加新用户之前,我们选中了5号,添加之后选中的还是5号 附上完整代码 <!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scal

  • php反序列化

    在php序列化格式(即数据在传输时防止格式类型丢失,先进行打包即序列化,完成传输后解包即反序列化) 序列化函数原型:stringserialize(mixed$value) classCC{ public$data; private$pass; publicfunction__construct($data,$pass) { $this->data=$data; $this->pass=$pass; } } $number=34; $str='uusama'; $bool=true; $null=NULL; $arr=array('a'=>1,'b'=>2); $cc=newCC('uu',true); var_dump(serialize($number)); var_dump(serialize($str)); var_dump(serialize($bool)); var_dump(serialize($null)); var_dump(serialize($arr)); var_dump(serialize($cc)); 复制  输出结

  • simpread-(127 条消息) FastAPI 接受 POST 上传文件并保存本地,python_zhangphil 的博客 - CSDN 博客

    本文由简悦SimpRead转码,原文地址blog.csdn.net FastAPI接受POST上传文件并保存本地,python 设置文件路径 读取成二进制数据,然后写入文件 importos importuvicorn fromfastapiimportFastAPI,File,UploadFile app=FastAPI() @app.post("/file/upload") asyncdefupload(file:UploadFile=File(...)): fn=file.filename save_path=f'./file/' ifnotos.path.exists(save_path): os.mkdir(save_path) save_file=os.path.join(save_path,fn) f=open(save_file,'wb') data=awaitfile.read() f.write(data) f.close() return{"msg":f'{fn}上传成功','length':len(data)} if__name__

  • clickhouse系列之二:clickhouse遇到的报错问题及解决方法

    问题一,启动报错启动参数:sudoclickhouse-server--config-file=/etc/clickhouse-server/config.xml 2020.08.2018:49:28.189321[29338]{}<Error>Application:DB::Exception:Effectiveuseroftheprocess(root)doesnotmatchtheownerofthedata(clickhouse).Rununder'sudo-uclickhouse' 复制 解决办法,已经有了提示,Rununder‘sudo-uclickhouse’.修改后启动参数:sudo-uclickhouseclickhouse-server--config-file=/etc/clickhouse-server/config.xml成功启动.问题二,spark写入报错 ru.yandex.clickhouse.except.ClickHouseException:ClickHouseexception,code:210,host:1.1.1.1,por

  • 在springboot中配置web.xml

    在springBoot中配置web.xml中配置的servlet http://www.cnblogs.com/wangxiaomei/p/8885470.html

  • LeetCode617 合并二叉树

    LeetCode617合并二叉树 #Definitionforabinarytreenode. #classTreeNode: #def__init__(self,val=0,left=None,right=None): #self.val=val #self.left=left #self.right=right classSolution: defmergeTrees(self,root1:Optional[TreeNode],root2:Optional[TreeNode])->Optional[TreeNode]: ifnotroot1:returnroot2 ifnotroot2:returnroot1 merged=TreeNode(root1.val+root2.val) merged.left=self.mergeTrees(root1.left,root2.left) merged.right=self.mergeTrees(root1.right,root2.right) returnmerged 复制

  • 如何给自己的品牌选择颜色

    博客搬到了fresky.github.io-DaweiXU,请各位看官挪步。最新的一篇是:如何给自己的品牌选择颜色。

相关推荐

推荐阅读