为什么我在实时编码时失败了?
随着流媒体应用的逐渐增多,实时编码技术吸引了大量的开发者投身其中。但是对于实时编码技术的上手,真的有那么简单吗?
作者 | Luke Garrigan
译者 | 谭开朗,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
实时编码
实时编码仍处于起步阶段,但随着越来越多杰出流媒体的涌现,它肯定会越来越受欢迎。实时编码可能永远不会像视频游戏流媒体那样大受欢迎,但那只是因为没有那么多的需求。这并不能说明实时编码行不通,仍有很多正式节目流媒体吸引了大量的观众!
我的故事
好几个月的时间,我几乎每天都看实时编码节目,终于在2018年7月,我决定自己动手试一下。
对于首次尝试,我没有真正的计划,甚至没有告诉家人和朋友。我只是一头扎进去,乐观地等待£1000募资的出现。
当时我正在为一个朋友开发Java后端,所以我想为什么不在我编码的时候做直播,一举两得。但我并没有吸引到很多观众,反而是和为数不多的现场观众一起开怀大笑。
动起来
我决定做个不一样的流媒体。我知道一款名为Processing的开源图形库,即使是零基础我也想作出尝试。我会写Java,所以很快也就将其学会了,最终做了一款随机游戏。看了流媒体的人也都加入了这款游戏。
这款游戏非常非常简单,但相对于我的其他流媒体,它吸引了相当多的浏览量。我才发现,人们喜欢屏幕上的动态事物。而只有达到一定的测试数量,观看者才会查看且感兴趣。
我在同一款游戏中添加了一些小功能,比如升级功能,在玩家离开游戏流时动态添加或删除玩家等。它吸引了一些观众,但没有上次那么多。
在这里我学到了非常重要的一课,但我已错过了。这是我放弃后几个月才明白的道理。
P5.js学起来
我想做一个可以和观众一起玩的游戏。我已通过Processing完成了一些开发工作,而逻辑要切换到p5, 它实际上就是浏览器的Processing(是JavaScript而非Java)。
这款游戏以行星为构思,但是一个多人游戏版本:
我对游戏开发毫无经验,所以只能在工作中不断学习。多人游戏开发需要用到Node和Socket.io,这也是我需要学习的。这款游戏的前两个流是我最喜欢的,也可能是最成功的。我设置了AWS Lightsail服务器,每次提交新代码都会重新部署,大家都可以和我一起玩或做测试。
我太缺乏经验了,以致不能确定客户端或服务器应该处理游戏的哪些部分。不久之后,有人开始侵入游戏并在屏幕上进行远程控制,一次发射了1000颗子弹。这是最好的实时编码,现场观看者十有八九是程序员,毫无疑问他们会觉得你很愚蠢(即使你希望他们不要这么认为)。
显然,大家喜欢看热闹,我最终也将流的标题更改为“来破解我的多人游戏吧”。
但最终,我的代码得到了优化,我开始知道服务器应该做什么,客户端应该做什么。因此,黑客的数量急剧下降,观看者的数量也随之大幅下降。
对这款游戏紧抓不放
我在开发这款游戏的过程中获得了很多乐趣,我不断给它添加功能,最终它从小行星游戏发展成为我自己的游戏《Spaceheir》!
目前还没有游戏的在线版,但这是我最新的gif。(现在看起来很不一样了,有了升级系统和电源)
每个流最终都与前一个流非常相似:收集想法并将其实现到游戏中,或者修复人们玩游戏时发现的bug。我认为,总是参照过去会让观众觉得单调乏味,也是收视率下降的原因之一。我被困其中,不知道该如何跨越。
像Daniel Shiffman这样的大型实时编码流媒体,他总是在做创新的事情,他从来没有一个庞杂的程序。Daniel的流媒体中都是大量的短代码挑战,人们能从头到尾看到东西的创建过程。我认为这非常重要,也是我喜欢他的流媒体的原因之一(以及他无与伦比的教学能力和性格)。
我喜欢观察他们解决问题,并且自省我对于解决该问题的想法。如果他们像我一样致力于一个大项目,能找到一个不需要先验知识的现有系统是很少见的。这意味着,如果他们从头开始,我可以立即进行比较,因为我不需要担心他们已经编写的一些现有代码。Daniel Shiffman很好地解决了这个问题。
反复无常
另一个主要问题是持之以恒,我要明确做流媒体的时间:每周三、周五和周日。而我只坚持执行了两次。在谷歌搜索“成为优秀流媒体的好用技巧”,得到的结果都有:持之以恒。而我没有坚持下来,我要去上班,有些下班还会很晚,嗯,我无法忍受。
组织性
因为我都在做着同样的事情,所以几乎每一个流项目我都没有做计划。我会直接开始,让观众看到我要做什么。现在,我知道这种做事方式是不对的,我应该计划好我想要做什么,即使是涉及到相同的游戏,至少我也应该对我想要完成的内容有一个清晰的愿景。
结论
约长达6个月的时间里,我进行了实时编码并从中获得了极大的乐趣。我遇到了很多才华横溢的人,并在过程中收获了快乐。不过最后,它变成了一件苦差事,我认为这体现在流本身的质量上。
我相信,我会在某个时间再回到这个话题上,并应用我所学到的经验。遗憾的是,我学到的很多关于实时编码的东西,都只变成了回顾而非工作。如果我学会了持之以恒,也许我会比忍者更强大。
原文:https://dev.to/lukegarrigan/why-i-failed-at-live-coding-1eie
本文为 CSDN 翻译,转载请注明来源出处。
【END】
Python的学习方式
https://edu.csdn.net/topic/python115?utm_source=csdn_bw
热 文 推 荐
任正非:华为有意出售 5G 技术!
不识 Pandas,纵是老手也枉然?
告别写笔记,AI 实时转写黑科技来了!
☞2亿日活,日均千万级视频上传,快手推荐系统如何应对技术挑战?
☞Docker容器化部署Python应用
☞给面试官讲明白:一致性Hash的原理和实践
☞预警,CSW的50万枚尘封BTC即将重返市场?
☞她说:行!没事别嫁程序员!
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
你点的每个“在看”,我都认真当成了喜欢
为什么我在实时编码时失败了?相关推荐
- 等待面试结果焦虑_在技术面试中进行实时编码时,您如何应对焦虑?
等待面试结果焦虑 I received this question last week from a reader: 我上周从读者那里收到了这个问题: I've been a developer si ...
- obs自定义编码设置_通过7个步骤设置OBS进行实时编码
obs自定义编码设置 by Wesley McCann 韦斯利·麦肯(Wesley McCann) 通过7个步骤设置OBS进行实时编码 (Setting up OBS for Live Coding ...
- AV1,实时编码READY
点击上方"LiveVideoStack"关注我们 一款编码器的成功,不仅需要大量的金钱,还需要耐心.AV1定稿三年后,是时候为它庆祝了. 文 | 包研 不知不觉,距离AV1完成定稿 ...
- H264实时编码及NALU,RTP传输(ZZ)
rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3 ...
- gt爵士变形步骤_编码广播:编码时您可以听24/7爵士节奏
gt爵士变形步骤 阅读本文时,您可以继续阅读Code Radio. (You can go ahead and start listening to Code Radio while you read ...
- gt爵士变形步骤_代码广播简介:编码时您可以收听的24/7爵士节奏
gt爵士变形步骤 阅读本文时,您可以继续阅读Code Radio. (You can go ahead and start listening to Code Radio while you read ...
- JPA 2.0 中的动态类型安全查询(如何通过 Criteria API 构建动态查询并减少运行时失败)...
简介: 如果编译器能够对查询执行语法正确性检查,那么对于 Java 对象而言该查询就是类型安全的.Java™Persistence API (JPA) 的 2.0 版本引入了 Criteria AP ...
- 动力电池编码追溯系统_学习编码时如何保持动力(10条可行的技巧!)
动力电池编码追溯系统 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . Does th ...
- 用fstream打开含中文路径文件时失败的问题。
最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下,发现这是一个普遍遇到的问题,在很多人的博文中也都给出了一些解决技巧,但大多是转载的东西,很少对这个问题引发的原 ...
最新文章
- 他本科来自普通二本,读博后3年迎来2篇Nature,创造校史!
- 【云图】如何制作附近实体店的地图?-微信微博支付宝
- linux7.4 配置yum,Centos7.4重装yum
- android导航条高度修改,Android中修改TabLayout底部导航条Indicator长短的方法
- android studio编辑不了,无法在Android Studio中编辑文件
- js函数中参数的传递
- APPium-Xpath,swipe练习
- 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...
- IDEA 配置 SpringBoot 启动端口
- 计算机毕业设计基于asp.net企业差旅管理系统
- 测试宝宝照片的软件,未来宝宝照片合成器
- 编译安装libmodbus库
- 计算机专业对于英语水平的要求,英语对计算机专业的重要性及如何提高英语水平...
- 2sum/3sum/ksum 问题
- 网易云团队前端单元测试技术方案总结,测试人员必备知识
- pip国内常用镜像源汇总
- python统计word页码_python 实现 Word Count
- Actionbar 溢出菜单背景色设置
- PAP和CHAP协议介绍
- 人脸识别,让会议签到更轻松!会议会展中的人脸识别签到!
热门文章
- windows 上安装 python3.7 和 pip 并配置虚拟环境
- 雷达数据处理及应用第三版 pdf_数字阵列雷达:零中频接收机的优缺点
- Lua笔记4 闭包、迭代器
- Flutter进阶—质感设计之持久底部面板
- Flutter进阶—质感设计之卡片
- 碳酸钡颗粒行业调研报告 - 市场现状分析与发展前景预测
- 中国接种环行业市场供需与战略研究报告
- php-china,php对chinapay的支持
- python秒表代码_斌哥教你自制千分秒表(键盘控制)
- 从入门到入土:Python爬虫学习|实例练手|详细讲解|爬取腾讯招聘网|一步一步分析|异步加载|初级难度反扒处理|寻找消失的API来找工作吧