6 ms·
Hey not bad. 3 years ago now (ugghh wow) I chose what engine to go all in on as a hobbyist. At the time only Unity supported producing web based games and I wan
by sovietmudkipz 3y ago
Hey not bad. 3 years ago now (ugghh wow) I chose what engine to go all in on as a hobbyist. At the time only Unity supported producing web based games and I wanted to make games for the web so I went all in on Unity.
Unity is great. Unity is also horrible, especially on devx. It takes anywhere from 10-30 seconds to recompile code or changes on each save. Making a unity html game takes 5-30 minutes. There are things that can be done to reduce these times but requires knowing a bunch of info (usage of asset database, dividing code into assemblies, etc). Writing a container image to run Unity CLI commands requires you deal with license. Ugghh I wish Unity was just better to use.
I may scope out godot again. I’m working on a multiplayer game and it’d be interesting to evaluate how I’d plug a godot game into AWS gamelift.
- nonethewiser 3y agoYou described how Unity fares with web games. How does Godot compare?
- nightowl_games 3y agoWe made this in Godot, and it deploys to k8s on digital ocean via GitHub actions; https://rocketbotroyale.winterpixel.io/ https://rocketbotroyale.winterpixel.io/
- tester457 3y agoDo you have a blog where you talk about the deploy?
- a1o 3y agoHey that looks very good. Do you mind walking through a bit on how the graphics work? Are they vector or raster? Or are they 3D? In what format the artist sends the assets that get into the game? Is there any trick you had to do to make the graphics look this sharp? Does adapting to different viewport size required a lot of work?
- nightowl_games 3y agoRaster, all the assets are hi rez pngs. We play around with mipmaps and filtering algorithms to make the assets scale down nicely. Mostly just using large .pngs will get you all the way.
- a1o 3y agoPretty cool. I am on iPhone 14 and it plays really fluid in it, which surprised me. There is a small weird loading thing in the border right interacting with the ground, when scrolling either left or right. I am impressed on how sharp the PNG looks though! I thought filtering in WebGL was like nearest neighbor and bilinear and that's it, perhaps there is additional things that can be accomplished with shaders that you are using.
- rcme 3y agoThe frame rate on an iPhone 13 Pro is pretty bad. Seems to average around 20 FPS. Granted, Safari sucks, but it’s not exactly a ringing endorsement of Godot given that your game appears to be 2D?
- nightowl_games 3y agoIt's not optimized to run on mobile iPhone. Apple deliberately doesn't support open gl on the web. We previously disabled mobile iPhone from playing the game, and redirecting to the store. I wouldn't lay this issue at Godots feet. The difference between 2D and 3D in terms of performance demand is not significant. We are running some serious shaders to render the terrain. They are pure SDFs that are absolutely massive mathematical functions that run on both the cpu and GPU. These shaders run better on android phones than on iOS phones, largely because apple does not iterate on webgl, because it undermines their app store to do so. The menu is poorly optimized in terms of draw calls. The poor performance is largely our fault and apples fault. Godot could offer some tooling to make optimizing draw calls easier, but the way we built the menu is just not optimal for the GPU. The biggest endorsement of Godot is the smallness of the download for our game. ~20mb iirc. It's not the smallest download in the world, but it's way smaller than a unity web game.
- fulafel 3y agoMobile Safari was advertised to have gotten a WebGL upgrade (w 2.0 support) about 1.5 years[1] ago but has since been plagued by reports of performance problems. It seems to take a long time to mature there. Chrome shipped WebGL 2 in 2017, hopefully WebGPU case won't take 6+ years for Safari to catch up. [1] https://news.ycombinator.com/item?id=30370852 https://news.ycombinator.com/item?id=30370852
- z3t4 3y agoIt's very fun. Remins me about worms armageddon - but this is more fun. What are you using for the backend ? The hardest part in the beginning is to not get dropped in the water :P
- sovietmudkipz 3y agoCan you elaborate on your system architecture for your game? It’s interesting that you’re deploying on k8s and implies a more complex app than a simple game client.
- nightowl_games 3y agoThis is a multiplayer game with dedicated game servers, a matchmaker, agones to orchestrate those game servers, a client that runs on the web, a second client that runs on the web but doesnt use threads, an account system/api server, a database, a couple reverse proxies and some generic tooling like grafana and pyroscope. Heres a blog post about it from a while back: https://blog.winterpixel.com/the-tech-stack-behind-a-wasm-and-webgl2-battle-royale https://blog.winterpixel.com/the-tech-stack-behind-a-wasm-an... We also deploy the client to steam for windows, mac and linux, the mac app store, google play, the ios app store, and we have custom web clients for some international portals. It's definetly a lot.
- fulafel 3y agoThere's also PlayCanvas and Three.js which have been around for a long time.