YouTube2Text

Endel Dreyer - Colyseus Multiplayer Framework | Made With Defold Jam 2025 — Transcript

by Unfolding Gamedev · 2,454 words · 339 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Hello. At Made with Def Jam 2025, we
  2. 0:04hosted Enel Dreer, the creator of
  3. 0:07Kissios, the multiplayer framework that
  4. 0:10is suitable to make multiplayer games in
  5. 0:12default. Together with Endel, I also
  6. 0:15created an example of a realtime
  7. 0:17multiplayer game made with Default and
  8. 0:20Kissios. So, check it out. And
  9. 0:22meanwhile, I invite you to check out the
  10. 0:25recording of the talk by Andel.
  11. 0:28>> All righty. I think my presentation can
  12. 0:30collaborate a bit with the crazy games
  13. 0:32guys because as they mentioned very well
  14. 0:35like the multiplayer games tend to have
  15. 0:37a long tail and perhaps more engagement
  16. 0:40sometimes. So I'm going to talk about
  17. 0:43Kicus that is an open- source uh
  18. 0:46multiplayer framework. It won't be very
  19. 0:49technical. Uh it's mostly I'll show a
  20. 0:52bunch of nice games that I was uh
  21. 0:55gathering yesterday. Like uh I was
  22. 0:57really excited gathering a lot of games
  23. 0:59made with Cicius and perhaps my
  24. 1:01presentation got too big. It's uh but
  25. 1:03I'll try to skip some slides real quick
  26. 1:06cuz I got like 35 slides. Most of them
  27. 1:09are cool games made with Kicis. And at
  28. 1:12the very end there's uh some demos with
  29. 1:16the default engine. And one Pavl the one
  30. 1:20of the organizers here was very nice of
  31. 1:22him to make the port of that example. So
  32. 1:26really thanks to him. So starting well
  33. 1:28if you don't know the framework highly
  34. 1:30recommend checking out the uh website to
  35. 1:33learn more. It has rooms uh built in is
  36. 1:37really the core of the framework is
  37. 1:39rooms for any connection to be made from
  38. 1:43clients to the server is through rooms.
  39. 1:46Matchmaking clients into rooms very
  40. 1:49custom uh synchronizable data structures
  41. 1:52which is called uh schema. Yeah, I I
  42. 1:55think this past year I've been working
  43. 1:57on schema. Mostly all of my time was
  44. 2:00dedicated to the latest version of
  45. 2:02schema. It's really uh it's crazy stuff
  46. 2:05going on there and it's the majority of
  47. 2:08bugs also comes from schema. So, but
  48. 2:10yeah, we we try to keep it uh as bug
  49. 2:14free as possible and more recently uh
  50. 2:17authentication. Yeah, I won't go too
  51. 2:19much on on code, but basically you would
  52. 2:23define a room in the server and you
  53. 2:26expose that room for the SDK. So here
  54. 2:30there's uh also a filter by it means you
  55. 2:35could have the the client dictating
  56. 2:37which room he's going to be uh directed
  57. 2:40to. So if you the client provides the
  58. 2:43code a specific code then it will go to
  59. 2:46that specific room for the uh default
  60. 2:49integration this is the boiler plate for
  61. 2:52connecting with the room. So you provide
  62. 2:55that identifier that was declared in the
  63. 2:57server and basically you have a room
  64. 3:00connection and you can send data,
  65. 3:02receive data and listen to the state
  66. 3:05callbacks that the server has uh because
  67. 3:09yeah the basically the server mutates
  68. 3:12the state and then you receive the state
  69. 3:15on the client side and uh this is a
  70. 3:19diagram of a more complicated scenario.
  71. 3:22So basically a single process can handle
  72. 3:25multiple rooms and rooms are tied to a
  73. 3:29specific process and the clients
  74. 3:32necessarily connect directly to the
  75. 3:34process and the machine that those rooms
  76. 3:38live in. So generally one server can
  77. 3:42handle a lot of load like a single
  78. 3:45instance generally can handle like from
  79. 3:49500
  80. 3:50to 3,000. It depends on how uh how heavy
  81. 3:55your logic is and how much traffic your
  82. 3:59server is handling. traffic in the terms
  83. 4:02of messages. On this diagram, it's
  84. 4:04basically saying how the connection is
  85. 4:07established for a particular client with
  86. 4:11a particular server and it could be also
  87. 4:14a single server. So this diagram could
  88. 4:17be represent either a single server with
  89. 4:20multiple processes or multiple servers
  90. 4:24with also multiple processes. So
  91. 4:26necessarily you would have single uh
  92. 4:29load balancer which can be more
  93. 4:31instances of a load balancer and on kus
  94. 4:35you have two requests. So the first
  95. 4:37request you ask for a room you receive
  96. 4:40the data where the that room is and then
  97. 4:43you can connect directly to that room
  98. 4:47that you are asking for. Uh this is a
  99. 4:49real example of a single instance uh
  100. 4:52handling to 500 connections. This is the
  101. 4:55limit for this particular game cuz uh
  102. 4:58it's already uh very high in CPU. So if
  103. 5:01you need to scale more than this, you
  104. 5:03need uh you will need more machines.
  105. 5:06This game already is handling multiple
  106. 5:09rooms, then you can scale easily.
  107. 5:12there's a big problem that is unsolvable
  108. 5:14right now. That is if you have only a
  109. 5:17small amount of rooms or let's say one
  110. 5:20big room. It's really impossible to
  111. 5:22scale cuz you really need to be able to
  112. 5:24separate those clients into multiple
  113. 5:27rooms to be able to distribute these
  114. 5:30rooms across many uh machines or
  115. 5:32processes. This is new on the latest
  116. 5:36version. uh there was a big problem uh
  117. 5:39since the latest version that all state
  118. 5:43data all the schemas are uh visible uh
  119. 5:46globally. So you couldn't really have a
  120. 5:50way to uh have particular clients be
  121. 5:54aware of just a small amount of data
  122. 5:57either for security or for optimization
  123. 6:00as this is new also uh I've been fixing
  124. 6:02bugs about this until like past month
  125. 6:06hopefully now I mean I it's I can't say
  126. 6:09bug free but hopefully it works better
  127. 6:12than it used to but yeah I'm always
  128. 6:14looking out for fixing any issues that
  129. 6:18have with the latest versions. So yeah,
  130. 6:20I I'll go briefly how you can specify
  131. 6:24specific parts of the state to be
  132. 6:26visible for specific clients. The
  133. 6:29scenario of a card game, you usually
  134. 6:31only you would be able to see your own
  135. 6:33cards. It's fine for other players to
  136. 6:36know the number of cards you have. I
  137. 6:39mean, this example doesn't cover the
  138. 6:41scenario of like users not knowing the
  139. 6:44amount of cards. So here the view tag is
  140. 6:48being used on both the suit and number
  141. 6:51fields. All the other fields are visible
  142. 6:54to all players. For you to use the state
  143. 6:57view, you need to first assign the
  144. 7:00create an instance of the state view for
  145. 7:02a particular client. It's special
  146. 7:04keyword like client.view only accepts a
  147. 7:07state view. On this piece of code is a
  148. 7:09bit implicit, but this state.cards cards
  149. 7:14has the all the cards in the game and
  150. 7:18the server is expecting a discard
  151. 7:21message here that says that that card
  152. 7:24was played and then it adds that card to
  153. 7:27everyone else's state view. And if you
  154. 7:30need to remove you you need to do that
  155. 7:32manually as well. So you need to iterate
  156. 7:34over the state views and remove that
  157. 7:38item from the state views or you can
  158. 7:40remove the item completely from the
  159. 7:41state. So it's a new thing. It's I'm
  160. 7:44getting feedback and trying to improve.
  161. 7:47This approach is being easier to
  162. 7:50maintain and easier to to evolve as the
  163. 7:54previous approach that was with filters
  164. 7:56and it was crazy. I don't even want to
  165. 7:59remember about that. So yeah. Yeah. I'm
  166. 8:02going to show some cool games made with
  167. 8:05the very first one I I can't not say
  168. 8:07about this. It's a really old news, but
  169. 8:10the guys from uh Tiny Dobbins made this
  170. 8:13game. I I helped them make the server.
  171. 8:16It was the reason why the default SDK
  172. 8:20exists today. So, we made the default
  173. 8:23SDK back then in 2019.
  174. 8:27And since then, we've been me and the
  175. 8:30community improving the default SDK and
  176. 8:33keeping it up to date with the latest
  177. 8:35versions of the framework. It's very
  178. 8:37basic a physics based game etc. All
  179. 8:40right. Next. It's kind of platform. It's
  180. 8:43not only a game. They have uh multiple
  181. 8:48small games inside this blocks platform.
  182. 8:52I mean right now the those parkour games
  183. 8:55are really taking off. There are so many
  184. 8:57of them. But I think they were one of
  185. 8:59the first to release a parkour game on
  186. 9:02the web. And after the success of that
  187. 9:05parkour game, Arthur, the author of this
  188. 9:08game, decided to go next level and they
  189. 9:11released game after game and started
  190. 9:14really small as an indie and now I think
  191. 9:17he has a team of I don't know how many
  192. 9:19members, but yeah, it started as indie
  193. 9:22and now he is building a company on top
  194. 9:24of this game. Emolingo is also doing
  195. 9:28really well. They all their games
  196. 9:30currently uh use Keskis. They kind of
  197. 9:33build their own framework on top of it
  198. 9:35cuz I think they use play canvas right
  199. 9:37now. Yeah, they are non-stop releasing
  200. 9:40games game after after game for 3 years
  201. 9:42I think and they're performing really
  202. 9:45well as well. Simply up is from Elander
  203. 9:49Studios from Leonidas. They are also
  204. 9:52building a portfolio of games. They have
  205. 9:55been using uh Kesus for a few years and
  206. 9:58sometimes he offers a connected world uh
  207. 10:02online classes using play canvas and
  208. 10:04kicus. It's just uh really really cool
  209. 10:07to see uh make it meme also started as
  210. 10:11uh indie and now they are a company. I
  211. 10:14think they they managed to get this big
  212. 10:17from co times. So, everybody wanted to
  213. 10:20have some fun and it's basically a place
  214. 10:23where you gather together and make some
  215. 10:26memes and laugh at memes. Uh, right now
  216. 10:29you can also play from mobile. So, you
  217. 10:32in person you could like gather with a
  218. 10:34group of friends and start uh making
  219. 10:38memes and just having a good time. More
  220. 10:42recently, Legend Games started adopting
  221. 10:46as well. I think they have two games
  222. 10:48released right now and a really talented
  223. 10:51team. I mean at pulling off a I don't
  224. 10:54know how to pull off a FPS game. It's
  225. 10:56really for me it's really complicated
  226. 10:58and yeah this is also really cool cuz
  227. 11:00they managed to get on the top action
  228. 11:04game on Discord activities. So if you go
  229. 11:07to to launch a discord activity and you
  230. 11:10scroll to the action game section is
  231. 11:13there. Discord activities is kind of new
  232. 11:16thing and it's another platform to
  233. 11:19consider for web. I I really love on
  234. 11:22Rush Studio they their attention to
  235. 11:24detail is really it's really cool. They
  236. 11:27also recently started adopting uh Kicus
  237. 11:30for a few of their games not their big
  238. 11:32games. I think they have multiple modes
  239. 11:35as well inside the game itself. I wasn't
  240. 11:37aware of that many people joining
  241. 11:40together these games. So it's really
  242. 11:42fun. Similarly, On Rush also released a
  243. 11:45fishing game. And I think it also has
  244. 11:48some small mini games on it. And another
  245. 11:52thing that On Rush does really well is
  246. 11:54their mobile support. So, this game is
  247. 11:56running on mobile. This is a new one.
  248. 11:59It's this is an unreleased game. All the
  249. 12:02games that I've I've mentioned
  250. 12:03previously were released in production
  251. 12:06games. Uh this one is not in production
  252. 12:08yet, but I think it's going to do really
  253. 12:11well. They they are on wish list on
  254. 12:14Steam right now and they made it using
  255. 12:17uh construct tree if I'm correct. Uh,
  256. 12:19another one is from
  257. 12:23team flow on the audience also.
  258. 12:25Similarly, they uh it's not fully
  259. 12:27released if I'm right. I think it's uh
  260. 12:30on online on beta and also a small clip.
  261. 12:35I'll play here. They have a 25 versus 25
  262. 12:38mode. And I think there's some uh
  263. 12:41something that you do that affects other
  264. 12:43screen and it's a crazy mode inside. Of
  265. 12:47course, they have a single player mode.
  266. 12:49uh that you progress over like a map or
  267. 12:51something. Cool. So, this is their Steam
  268. 12:54page. Yeah. So, the next slide, big
  269. 12:57disclaimer. I know a lot of people don't
  270. 12:59like crypto or they're not big fan of
  271. 13:01crypto, but yeah, a lot of crypto games,
  272. 13:05they choose Cicius because it's it's
  273. 13:07free and easy to host. And it's nice
  274. 13:09that a lot of them uh use it and help.
  275. 13:12Yeah, by using and also reporting any
  276. 13:16issues basically grows the framework and
  277. 13:18most of them run on the Ronin chain. I
  278. 13:21don't understand much of the crypto
  279. 13:22world. So I'm just sharing cuz it's uh
  280. 13:25interesting to see perhaps there there
  281. 13:27is something to be explored on the
  282. 13:29crypto space. I personally don't don't
  283. 13:33know much about it and just observe and
  284. 13:35see. Um all righty I think that's it for
  285. 13:39the games. Cool. So now perhaps less
  286. 13:43exciting cuz the games are really cool.
  287. 13:45The demos one is not new as well. It's
  288. 13:49this small tic-tac-toe turnbased
  289. 13:52two-player shared experience. It was
  290. 13:55supported by Salem a few years ago. I
  291. 13:58think seven years ago, but we we still
  292. 14:01keep it updated. There's the source code
  293. 14:03available on GitHub and more recently
  294. 14:07this was ported by Pavl himself and
  295. 14:11yesterday we put it online and it only
  296. 14:15works on desktop. It doesn't work on
  297. 14:18mobile. If you can you will see a small
  298. 14:23arrow at the bottom that then you click
  299. 14:25on that arrow you click connect and then
  300. 14:29you click join or create. So yeah, this
  301. 14:32is still under development. I think uh I
  302. 14:34think Babel wants to do some
  303. 14:36improvements on this. It is made off the
  304. 14:39phot example made by Por. He made for
  305. 14:43the native phot plugin and we parted I
  306. 14:48mean Pavo ported to use Kicis. So it's
  307. 14:51really cool. I think Bejorn wants to
  308. 14:53make this like go-to example for any uh
  309. 14:57multiplayer provider for default. So,
  310. 15:01Kicus is all about open source.
  311. 15:03Everything is MIT licensed. The server,
  312. 15:06the SDKs, it's all open. So far, I run a
  313. 15:10script. Uh, and so far we had 160
  314. 15:14contributors of code directly across all
  315. 15:16repositories. Of course, there's more on
  316. 15:19the community like answering questions
  317. 15:21or interacting or reporting bugs is
  318. 15:23really important as well. Like to to to
  319. 15:26report a high quality to have a high
  320. 15:28quality report of a bug is really
  321. 15:30valuable and this is not accounted here.
  322. 15:32I think that's the most value of open
  323. 15:34source is having like this interactions
  324. 15:38with people and with the intent of
  325. 15:40growing and stabilizing things on the
  326. 15:43framework. It's close to an end. A
  327. 15:45special thanks to all the sponsors for
  328. 15:48Kesis that is blocks. Uh Pocky and Zerox
  329. 15:51N is like a consulting company for
  330. 15:54crypto and yeah Pocky you probably know
  331. 15:56and blocks I showed their game to all
  332. 15:59the individuals support as well. And
  333. 16:02that's it for the talk. I hope you
  334. 16:04enjoyed it. Thanks a lot for having me.
  335. 16:06I'm really glad to participate and yeah
  336. 16:09of course you can ping me send me a
  337. 16:11message on Discord on uh Twitter X
  338. 16:13whatever. Yeah, I'm happy to talk to
  339. 16:15you.

About this transcript

This page contains the full transcript of Endel Dreyer - Colyseus Multiplayer Framework | Made With Defold Jam 2025 by Unfolding Gamedev, generated from the public captions YouTube serves with the video. The transcript has 2,454 words across 339 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.