Содержание
- 2. Как так вышло?
- 3. Как так вышло? видео трансляции фотографии голосовые сообщения рассылка пушей мониторинг логи Go RPC CDN аудио
- 4. Как так вышло? видео трансляции фотографии голосовые сообщения рассылка пушей мониторинг логи Go RPC CDN аудио
- 5. Как так вышло? трансляции фотографии голосовые сообщения рассылка пушей мониторинг логи Go RPC CDN аудио документы
- 6. Подходы к GameDev’у - Pascal (или Basic) DOS-графика
- 7. Подходы к GameDev’у - Pascal (или Basic) DOS-графика - DirectDraw/DirectX, OpenGL
- 8. Подходы к GameDev’у - Pascal (или Basic) DOS-графика - DirectDraw/DirectX, OpenGL - Blitz3D, Scratch, LÖVE
- 9. Подходы к GameDev’у Mail.ru Game Jam 2 (2017) Unity (C#) youtube.com/watch?v=WhxkAu-GAsw
- 10. Внутренний хакатон Go, GopherJS, WebGL Подходы к GameDev’у youtube.com/watch?v=no1ZJVJ1llk
- 11. Внутренний хакатон CoronaSDK (lua), WebGL Подходы к GameDev’у vk.com/app6810744
- 12. Ludum Dare 42 - CoronaSDK (lua), WebGL - ASEprite, sfxr, Bosca Ceoil Подходы к GameDev’у ldjam.com/events/ludum-dare/42/
- 13. Ludum Dare 43 CoronaSDK (lua), WebGL ASEprite Подходы к GameDev’у ldjam.com/events/ludum-dare/43/ ludumcoin
- 14. Lua, Lua, Lua... Где Go?
- 15. Выбор в пользу Go - Типизация, отладка, профилирование - Поддержка в IDE - Мало Go на
- 16. А если Go... Есть чё?
- 17. Какие есть игровые движки на Go? А если Go...
- 18. Какие есть игровые движки на Go ENGi Oak Korok g3n
- 19. Как выбрать ТОТ САМЫЙ?
- 20. Как выбрать ТОТ САМЫЙ? - Живость
- 21. ENGi Desktop + GopherJS “SUPER ALPHA v0.6” Не обновлялся > 3 лет github.com/ajhager/engi Тот самый хакатон
- 22. 3D Desktop Не обновлялся > 3 лет github.com/azul3d/engine
- 23. Какие все еще есть игровые движки ENGi Oak Korok g3n
- 24. Как выбрать ТОТ САМЫЙ? - Живость - Поддержка платформ
- 25. Платформы - Desktop Windows, Linux, MacOS - Mobile Android, iOS - Web HTML5
- 26. Как выбрать ТОТ САМЫЙ? - Живость - Поддержка платформ - Web HTML5 - Mobile - Desktop
- 27. Как выбрать ТОТ САМЫЙ? - Живость - Поддержка платформ - Web HTML5 - Mobile - Desktop
- 28. Посмотрим на оставшиеся ENGi Oak Korok g3n
- 29. Oak Software renderer Desktop Windows github.com/oakmound/oak
- 30. 2D Desktop github.com/faiface/pixel pixel-examples raycaster
- 31. Korok 2D Desktop, mobile, web Делает (делал?) один китаец Не смог запустить даже desktop github.com/KorokEngine/Korok
- 32. G3N 3D Desktop cgo ‒ сломана wasm syscall/js ‒ как? Нет примеров Почти нет документации github.com/g3n/engine
- 33. 3D + 2D Desktop, mobile, web C++ / C# / GDScript godotengine.org
- 34. GDNative API godotengine.org/article/look-gdnative-architecture Плагин .so, .dylib, .dll Нет mobile, web github.com/ShadowApex/godot-go godot-go examples DodgeTheCreeps
- 35. 3D + 2D C library github.com/raysan5/raylib raylib examples textures_bunnymark
- 36. cgo binding Desktop + Android github.com/gen2brain/raylib-go
- 37. Что остается? ENGi Oak Korok g3n
- 38. 2D Desktop, mobile, web github.com/hajimehoshi/ebiten
- 39. Документация
- 40. Примеры …
- 41. Примеры
- 42. Код ‒ Go Way ebiten.NewImageFromImage(source image.Image, ...)
- 43. Код ‒ Go Way // +build android ios
- 44. Код ‒ Go Way
- 46. Медленная загрузка картинок Немного лучше с go-bindata, statik, ...
- 47. Ограниченный API Но есть всякие DrawImageOptions.ColorM и т.п.
- 48. Очень жирный и медленный для веба GJS/WASM 9+МБ на пустышке GJS еще и глючный
- 49. “Но ENGO-то мне точно подойдет!”
- 50. 2D Desktop, mobile, web + VulkanAPI github.com/EngoEngine/engo Engo
- 51. Документация Engo
- 52. Engo Документация
- 53. Примеры Engo
- 54. A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm.
- 55. Engo
- 56. Engo Как включить рендер?
- 57. Engo // Setup is called before the main loop starts. It allows you to add entities
- 58. Engo Как добавить спрайт на сцену?
- 59. type MySuperPuperGopher struct { ecs.BasicEntity common.RenderComponent common.SpaceComponent } Engo
- 60. type MySuperPuperGopher struct { ecs.BasicEntity common.RenderComponent common.SpaceComponent common.MouseComponent } Engo
- 61. type MySuperPuperGopher struct { ecs.BasicEntity common.RenderComponent common.SpaceComponent common.MouseComponent common.AnimationComponent } Engo
- 62. type MySuperPuperGopher struct { ecs.BasicEntity common.RenderComponent common.SpaceComponent common.MouseComponent common.AnimationComponent common.AudioComponent } Engo
- 63. type MySuperPuperGopher struct { ecs.BasicEntity common.RenderComponent common.SpaceComponent common.MouseComponent common.AnimationComponent common.AudioComponent common.CollisionComponent } Engo
- 64. Компоненты сами себя не обновят Engo
- 65. Компоненты сами себя не обновят func (*myScene) Setup(u engo.Updater) { world, _ := u.(*ecs.World) world.AddSystem(&common.RenderSystem{}) world.AddSystem(&common.MouseSystem{})
- 66. Engo
- 67. Engo
- 68. Engo Как обработать click/tap?
- 69. Engo btn.AddToWorld(u) mouseSystem.Add(&btn.BasicEntity, &btn.MouseComponent, &btn.SpaceComponent, &btn.RenderComponent, ) scene.World().AddSystem(&systems.MousableSystem{ Callback: func(dt float32) { if btn.MouseComponent.Clicked { scene.join()
- 70. Engo
- 71. Engo “All problems in computer science can be solved by another level of indirection” David Wheeler
- 72. - Странная реализация ECS Engo
- 73. - Странная реализация ECS // RunOptions are the options used to Run engo type RunOptions struct
- 74. - Странная реализация ECS - Баги, нехватка документации Engo
- 75. - Странная реализация ECS - Баги, нехватка документации - Работает Engo
- 76. Нативный на компе Engo
- 77. Браузер на компе Engo
- 78. Браузер на компе Сеть? gorilla/websocket + js.Global().Get(`WebSocket`) Engo
- 79. Браузер на компе Производительность? Пару секунд мир подождет Engo
- 80. Браузер на телефоне Samsung / iPad Engo
- 81. Браузер на телефоне Samsung / iPad GJS / WASM файл: 7+МБ Парсинг на ноуте: 2 сек
- 82. А если Go... “А разве еще что-нибудь есть?”
- 83. Handmade Web HTML5
- 84. - WebGL github.com/nuberu/webgl - js WebSockets - GopherJS / WASM Handmade Web HTML5
- 85. Ebiten - 9 МБ Engo - 7 МБ Фигак-фигак - 1.5 МБ Handmade Web HTML5
- 86. Ebiten - 9 МБ Engo - 7 МБ Фигак-фигак - 1.5 МБ Handmade Web HTML5
- 87. Картинка: https://www.teepublic.com/t-shirt/5102595-golang-gopher-unicorn DEMO TIME
- 88. Demo
- 89. Попробовать: ater.me/go_races Исходники: github.com/atercattus/golangconf19_examples Demo
- 90. Что выбрать? - Desktop Godot-go выглядит круто / Raylib для души - Mobile Android ‒ raylib;
- 92. Скачать презентацию