[{"data":1,"prerenderedAt":369},["ShallowReactive",2],{"project-50305320":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":96,"maker_in_thread":207,"shape":217,"grid":221,"attempts":333,"same_week":334,"maker_shows":39,"maker_hidden":362,"reader_version":363,"card":364},"50305320","catcopter","A multiplayer game where you're an aerial fighter cat","title","Show HN: I built a multiplayer game where you're an aerial fighter cat","https:\u002F\u002Fcatcopter.com","catcopter.com","pawelwentpawel",1793374180,2026,85,43,797,4366,19,"notable","games","multiplayer browser game","web_app",[24,25,26,27,28],"multiplayer game","browser game","aerial combat","three.js","cat game","debated",0.22,{"positive":32,"neutral":33,"mixed":34,"critical":35},11,5,1,7,24,{"design":38,"execution":40,"idea":42,"performance":43},{"positive":34,"critical":39},3,{"positive":41,"critical":34},2,{"positive":39,"critical":34},{"positive":34,"critical":41},[45,45,45,45,45,45,39,45,45,45,39,45,34,33,39,45,33,45,39,45,39,34,33,45,34,45,39,33,34,34,33,33,45,33,45,34,33,33,33,39],0,"Hi everyone!\n\nI had the idea for catcopter on my mind for a long time (got the domain ~13 years ago). It's a web multiplayer game where you can fly a dangerous cat and engage in competition with other players and critters (pterodactyls, chickens and angry penguins). I made it initially for me and my friends but it was quite fun so I thought I'll share it here too.\n\nThe game is intentionally dorky and it was fun to develop. The tools I used were mostly Opus 5.5 (objects \u002F rigging \u002F motion), Tripo3d for some elements I struggled with and Fable for optimisation (cpu \u002F networking). Backend physics",{"problem":48,"audience":49,"pricing":48,"motivation":55,"time_to_build":59,"stack":66,"openness":93,"stage":94,"team_size":95},null,{"value":50,"source":51,"evidence":52},"Friends of the maker and HN players","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Made initially for the maker and friends, then shared for fun",[58],{"id":54},{"value":60,"source":51,"evidence":61},"Around a week, reusing elements from a previous project",[62,63],{"id":54},{"id":64,"by":11,"text":65},"50310740","Thanks! To respond to your questions - there is a lot indeed. I think the trick was reusing the same techniques I used before (materials, shaders, colours, light setups and much…",[67,73,77,81,85,89],{"value":68,"source":51,"evidence":69},"Node.js",[70],{"id":71,"by":11,"text":72},"50307443","I think I flew next to you haha, happy you liked it! Yep it's all Node.js + Websockets + Rapier, front-end is mostly Three.js",{"value":74,"source":51,"evidence":75},"WebSockets",[76],{"id":71,"by":11,"text":72},{"value":78,"source":51,"evidence":79},"Rapier physics",[80],{"id":71,"by":11,"text":72},{"value":82,"source":51,"evidence":83},"Three.js",[84],{"id":71,"by":11,"text":72},{"value":86,"source":51,"evidence":87},"Opus 5.5 for objects, rigging and motion",[88],{"id":54},{"value":90,"source":51,"evidence":91},"Tripo3d for some elements",[92],{"id":54},"unknown","launched","solo",{"praise":97,"objections":129,"requests":165,"questions":183,"alternatives":195},[98,118],{"value":99,"source":100,"evidence":101},"Fun and dorky gameplay","commenter",[102,106,110,114],{"id":103,"by":104,"text":105},"50307427","rishi_devan","Was a lot of fun. What's the server backend built in? NodeJS?",{"id":107,"by":108,"text":109},"50306844","cfontes","Loved it",{"id":111,"by":112,"text":113},"50308106","geooff_","This is absolutely ridiculous. I love it.",{"id":115,"by":116,"text":117},"50309774","akman","Team Fortress for cats. Nice!",{"value":119,"source":100,"evidence":120},"Good concept and mechanics",[121,125],{"id":122,"by":123,"text":124},"50307263","gosen","It's pretty fun! I can see a lot of \"AI-markers\" in the assets, but these things can be improved over time. The concept and mechanics are quite cool, keep it going!",{"id":126,"by":127,"text":128},"50308837","modinfo","This is fun and nice idea for a multiplayer game, but will be cool if you open sourced it. But, still good work.",[130,137,148,158],{"value":131,"source":100,"evidence":132},"Assets look AI-generated",[133,134],{"id":122,"by":123,"text":124},{"id":135,"by":123,"text":136},"50308818","Building creative parts of games is actually the most difficult part with AI, it's usually very sloppy and I had to do many iterations to make it less \"AI-looking\" because AI…",{"value":138,"source":100,"evidence":139},"Busy UI with too many popups",[140,144],{"id":141,"by":142,"text":143},"50308609","avereveard","Popups popups everywhere",{"id":145,"by":146,"text":147},"50311517","RugnirViking","Very busy ui. Mmo levels of stuff vying for the players attention",{"value":149,"source":100,"evidence":150},"Does not run well in Firefox",[151,155],{"id":152,"by":153,"text":154},"50307129","jnellis","Doesn't seem to work in firefox. Probably my old pc. CPU pegged on chrome version.",{"id":156,"by":153,"text":157},"50309134","Here's the console output. It get's stuck at 72%... \"painting or something\" on progress bar. THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.…",{"value":159,"source":100,"evidence":160},"Core gameplay feels rough with input lag",[161],{"id":162,"by":163,"text":164},"50312624","Fizz43","The core gameplay is so 'bad'. It looks and feels like a mobile game slop you'd see in a shady popup ad. The guns seen to have broken physics, the movement has input lag. I guess…",[166,173,177],{"value":167,"source":100,"evidence":168},"Add a full screen button for mobile",[169],{"id":170,"by":171,"text":172},"50307296","adzm","Please add a full screen button for mobile!",{"value":174,"source":100,"evidence":175},"Open source the game",[176],{"id":126,"by":127,"text":128},{"value":178,"source":100,"evidence":179},"Change default game mode when enough players join",[180],{"id":181,"by":171,"text":182},"50308717","Would be cool if the default game mode changed when there were enough players; I think everyone goes into the catnip mode just because it is default, no one is ever in the other…",[184,188],{"value":185,"source":100,"evidence":186},"What is the server backend built in",[187],{"id":103,"by":104,"text":105},{"value":189,"source":100,"evidence":190},"How the cat movements and animations are created",[191],{"id":192,"by":193,"text":194},"50309923","algorr","How were the cat’s movements such as its flight the motion of its wings or propeller and its head movements created? did the ai generate pre-made animation clips or are the…",[196,200],{"value":197,"source":100,"evidence":198},"Team Fortress",[199],{"id":115,"by":116,"text":117},{"value":201,"source":100,"evidence":202},"SWAT Kats",[203],{"id":204,"by":205,"text":206},"50310025","tracerbulletx","Was kind of hoping this would be more like SWAT Kats",{"comments":208,"answered":39,"key":209},9,[210,213,214],{"id":211,"text":212},"50307366","Yep the assets were all generated, cat faces were the hardest one to get \"right\". Glad you had fun & thank you!",{"id":71,"text":72},{"id":215,"text":216},"50307375","Roger that, thanks for feedback!",{"commenters":218,"max_depth":33,"maker_replies":208,"first_comment_mins":219,"lifespan_hours":220},31,4,49,[222,226,229,232,236,239,241,245,248,251,254,256,258,260,262,264,265,266,269,271,273,275,276,278,280,283,286,288,289,293,297,299,302,307,309,311,313,315,318,322,325,327,329],[223,45,45,224,225,45],"50307436","other\u002Fneutral\u002Fnone","Fraterkes",[227,45,45,224,228,45],"50308049","xnx",[230,45,45,224,231,45],"50311995","Sydrik",[233,45,45,234,235,45],"50313396","commenter\u002Fneutral\u002Fnone","nextaccountic",[237,45,45,224,238,45],"50321126","theneverendingp",[240,45,45,234,225,45],"50309835",[242,34,39,243,244,45],"50305383","maker\u002Fneutral\u002Fnone","luxpsycho",[246,34,45,224,247,45],"50308983","jonwinstanley",[249,34,45,224,250,45],"50310832","shermantanktop",[252,34,45,224,253,45],"50309331","thisislife2",[122,41,39,255,123,45],"project\u002Fmixed\u002Fdesign",[211,41,45,257,11,34],"project\u002Fneutral\u002Fdesign",[135,41,34,259,123,45],"project\u002Fcritical\u002Fdesign",[103,39,33,261,104,45],"project\u002Fpositive\u002Fexecution",[71,39,45,263,11,34],"project\u002Fneutral\u002Fexecution",[170,219,39,257,171,45],[215,219,45,243,11,34],[267,33,33,261,268,45],"50310613","andai",[64,33,45,270,11,34],"maker\u002Fneutral\u002Fexecution",[192,272,39,257,193,45],6,[274,272,45,257,11,34],"50309968",[181,35,39,257,171,45],[141,277,34,259,142,45],8,[126,208,33,279,127,45],"project\u002Fpositive\u002Fidea",[281,208,45,234,282,45],"50309157","throwitaway222",[152,284,34,285,153,45],10,"project\u002Fcritical\u002Fperformance",[287,284,45,243,11,34],"50307249",[156,284,34,285,153,45],[290,284,33,291,292,45],"50307292","project\u002Fpositive\u002Fperformance","SwiftyBug",[294,32,33,295,296,45],"50308957","project\u002Fpositive\u002Fnone","atakmim",[145,298,34,259,146,45],12,[204,300,34,301,205,45],13,"project\u002Fcritical\u002Fidea",[303,304,33,305,306,45],"50327198",14,"project\u002Fpositive\u002Fdesign","usmanshafs",[115,308,33,279,116,45],15,[310,308,45,243,11,34],"50309955",[107,312,33,295,108,45],16,[314,312,45,243,11,34],"50306933",[162,316,34,317,163,45],17,"project\u002Fcritical\u002Fexecution",[319,320,33,295,321,45],"50306554",18,"alator21",[323,18,33,295,324,45],"50307120","BatmansMom",[111,326,33,279,112,45],20,[328,326,45,243,11,34],"50308133",[330,331,39,257,332,45],"50305489",21,"mtford",[],[335,340,345,349,354,358],{"id":336,"name":337,"points":338,"category":339},"50326821","HackerBooks",1242,"learning_science",{"id":341,"name":342,"points":343,"category":344},"50306442","nesformer",292,"ai",{"id":346,"name":347,"points":348,"category":20},"50311686","Episodle",243,{"id":350,"name":351,"points":352,"category":353},"50325253","OmniDiff",213,"dev_tools",{"id":355,"name":356,"points":357,"category":339},"50290533","Outcrop",187,{"id":359,"name":360,"points":361,"category":353},"50294506","dontallow",154,false,"v2",{"id":365,"name":5,"line":6,"ai":362,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":366,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":367,"url":9,"mix":368,"praise":99,"objection":131,"sub":21},50305320,[24,25,26,27,28],"0000003000301530503031501035115505015553",[32,33,34,35],1793991170933]