Glitch is an open-source esports platform. The project's goal is to lower technological barriers for live media solutions by allowing communities to decide on the right feature sets, not corporations. With contributions from diverse communities, everyone benefits from the combined thought power.
No reviews yetBe the first to leave a review for Glitch Gaming Platform
Hey Devin - What made you decide to make the product open source the code vs. keeping it closed?
Report
Maker
@tosin2 I am executing on hypothesis that I believe; if barriers are lowered and communities are allowed to build their own solutions, that will create more innovation for underserved audiences.
When the term “underrepresented” or “underserved” communities are used, I think it is often in relation to black/latinx communities. But I think of those terms as a way of describing any group of people that can have some commonality beyond race or culture, that are being overlooked in some form.
Glitch being an open-source solution, will allow underserved gaming groups to create their own solutions that corporations like Twitch are missing. Also, large corporations have rules and restrictions that aren't beneficial to certain groups, and those groups need their own space.
Esports I would consider a micro perspective. The macro perspective is live media technology(video conferencing, live streaming, and audio conferencing) is something we engage in every single day, but the barrier to building a live media solution is currently very high.
Glitch took 22 days to get to this point. What would be the potential when that tech is applied to education, sports, shopping, and other use cases that focus on shared virtual experiences?
That’s what I want to see and why it is opens sourced. I want to see the disruption and innovation it can create.
Report
Can you talk about some of the additional use-cases or areas you see Glitch enhancing?
Report
Maker
@brian_parker2 Additional use cases it was the stakeholder can envision. A lot of the features in the base platform are reusable for many kinds of social scenarios. For example, some of the features the product offers are:
- Live Streaming
- In Stream Donations
- Live Chat
- Following/Subscribing To a User
A founder who works with musicians saw this, and their minds immediately when to how they can build a live streaming app for music where the artist can get tipped from the audience and build a following. Another found saw the same product and wanted to incorporate it into their platform of podcasters along with live shopping components. I see this being re-used in a variety of creative solutions, such as:
- Live video casting/podcasting
- Live Shopping
- Live Sporting Events
- Live Conferences
- Enter unique use cases here
To me, the hallmark of great code is the ability for to easily serve other use cases. Glitch is a good core product; the enchantments will come as communities, developers, and Entrepreneurs extend the functionality to their own use cases they envision.
Report
Hey Devin, nice product! Where would you like help the most?
Report
Maker
@ryann_green Getting feedback! I want this to be community led in its features but I need active feedback to do that.
Report
What are/were the hardest parts of development?
Report
Maker
@joseph_jefferson1914 This is probably my favorite question....live video is HARD. And when I say hard, I've been coding since I was 12, and I have 15+ years as a professional developer, and nothing has challenged me as much as video.
When it comes to streaming games, there are many considerations that have to be taken into account are:
- Quality of the stream: no pixelation, and the graphics should be defined.
- The smoothness of the stream: fast movements cause glitches or can make things look blurry.
- Latency of stream: how much lag time does the user experience
- CPU/GPU Utilization: better quality takes a higher resource utilization on both the servers and the user's computer.
- File size: video sizes can get quite large as the quality increases
- Network bandwidth: not all users are able to receive the same stream.
- Costs: more resources increase the costs.
All of the considerations have to be thought through, and we haven't written a line of code yet. Then we are combining multiple technologies to accomplish the above: webrtc, FFmpeg, virtual desktops, video players, etc. You literally have to map and tweak each technology to the above considerations.
To provide a hard example and not just conceptual: FFmpeg performs the recordings of all the games on a virtual server. One of the key attributes to take into consideration when recording is the Frames Per Second (FPS). Higher FPS allows for smoother recordings, so it is not blurry or choppy. But the higher the FPS, the more CPU that is used.
My target goal was 60 FPS, and on AWS on a Compute instance (c4, c5, etc.) to get a quality recording and broadcast at 60 FPS, I needed a 16-core CPU, which still crashed! So then I moved over to GPUs with a Radeon GPU. Installing Radeon drivers on Ubuntu is hard because the drivers are not up to date and they require kernel modifications, but I managed to get 60 FPS working on an 8-core GPU, albeit with a few problems. And FFMPEG using the GPU is not straightforward, as it requires specialized commands to leverage the GPU, along with different encoding and decoding that requires testing and optimizing.
To illustrate, here is a standard FFMPEG command:
`ffmpeg -y -i video.mp4 -c:v libx264 file_out.mp4`
Here is a GPU FFmpeg Command I had to figure out to achieve the same results
`ffmpeg -hide_banner -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -video_size 1920x1080 -i video.mp4 -c:v h264_vaapi -vf 'format=nv12|vaapi,hwupload' file_out.mp4`
Then I switched to an Nvidia GPU, and it made a world of difference as I could use a 4-core GPU and achieve higher results than the Radeon GPU.
Imagine this complexity and troubleshooting at every step of the way to get the right experience. Live video is HARD.
Report
This looks really cool! Who do you see being impacted by Glitch being open source?
Shiny