[{"data":1,"prerenderedAt":192},["ShallowReactive",2],{"project-22137758":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":35,"aspects":36,"strip":39,"post_text":40,"what":41,"said":57,"maker_in_thread":113,"shape":122,"grid":126,"attempts":151,"same_week":152,"maker_shows":183,"maker_hidden":184,"reader_version":185,"card":186},"22137758","Teapong","A two-player game for fans of Pong and the Utah teapot","title","Show HN: Teapong – A two-player game for fans of Pong and the Utah teapot","https:\u002F\u002Fgithub.com\u002Fdiegomacario\u002FTeapong\u002Fblob\u002Fmaster\u002FREADME.md","github.com","diegomacario",1579871060,2020,33,12,1318,3028,44,"shown","games","two-player pong game","game",[24,25,26,27,28],"pong","utah teapot","webgl","computer graphics","real-time rendering","curious",0.077,{"positive":32,"neutral":33,"mixed":34,"critical":32},1,3,0,5,{"design":37,"execution":38},{"positive":34,"critical":34},{"positive":34,"critical":32},[34,33,34,33,34,35,34,33,34,32,34,34],null,{"problem":40,"audience":40,"pricing":40,"motivation":42,"time_to_build":49,"stack":53,"openness":54,"stage":55,"team_size":56},{"value":43,"source":44,"evidence":45},"To gain a deeper understanding of computer graphics and real-time rendering","maker",[46],{"id":47,"by":11,"text":48},"22137787","Hi everyone! After 4 months of effort, I can finally show you my first game! I decided to work on this project to gain a deeper understanding of some fundamental concepts of…",{"value":50,"source":44,"evidence":51},"4 months",[52],{"id":47,"by":11,"text":48},[],"open_source","launched","solo",{"praise":58,"objections":63,"requests":82,"questions":97,"alternatives":112},[59],{"value":60,"source":44,"evidence":61},"Learning experience and beautiful end result",[62],{"id":47,"by":11,"text":48},[64,72],{"value":65,"source":66,"evidence":67},"Physics is simplistic; teapot spout and handle collisions not modeled","commenter",[68],{"id":69,"by":70,"text":71},"22148170","fit2rule","This looks like you just took pong and glommed some 3D models on it, and the physics isn't really that interesting - especially when you consider all the different reflections…",{"value":73,"source":66,"evidence":74},"Angular momentum effect is only cosmetic",[75,79],{"id":76,"by":77,"text":78},"22145699","im3w1l","Does the angular momentum affect gameplay or is it just for show? I never saw the direction change to clockwise.",{"id":80,"by":11,"text":81},"22146772","Hehehe it's just for show! A simple equation that uses the incident angle of a collision to produce a visually appealing result. I felt I could get away with this because the…",[83,90],{"value":84,"source":66,"evidence":85},"Add a gameplay gif to the readme",[86],{"id":87,"by":88,"text":89},"22148026","jwilber","I think a great way to generate both usage and stars (if that matters to you) is to add a gif to the readme showing some gameplay. Looks awesome!",{"value":91,"source":66,"evidence":92},"Use actual surface physics instead of bounding circle collisions",[93,94],{"id":69,"by":70,"text":71},{"id":95,"by":70,"text":96},"22149507","Fair enough. Shouldn't be too much harder to use the actual surface physics next, then ..",[98,105],{"value":99,"source":66,"evidence":100},"Whether state management design is better than globals",[101],{"id":102,"by":103,"text":104},"22144010","travbrack","With the benefit of hindsight, is the implementation you used actually better than using globals?",{"value":106,"source":66,"evidence":107},"How the engine will be redesigned to reduce coupling",[108],{"id":109,"by":110,"text":111},"22144222","prestonh","Given your learnings, how are you going to redesign your engine to have less tightly coupled components?",[],{"comments":35,"answered":33,"key":114},[115,116,119],{"id":47,"text":48},{"id":117,"text":118},"22146753","I would say that it is. I think that the idea of having each state be its own class is very natural, and that it helps organize the code very effectively. My failure was in how I…",{"id":120,"text":121},"22146663","That's a question that I'm still asking myself :P Here's an example of what's wrong with my state management system: - Let's say that state A places the teapot at position X. -…",{"commenters":123,"max_depth":35,"maker_replies":35,"first_comment_mins":124,"lifespan_hours":125},7,4,36,[127,129,131,132,133,134,136,139,142,143,145,149],[47,34,34,128,11,32],"project\u002Fpositive\u002Fidea",[102,34,33,130,103,34],"maker\u002Fneutral\u002Fdesign",[117,34,34,130,11,32],[109,34,33,130,110,34],[120,34,34,130,11,32],[87,32,35,135,88,34],"maker\u002Fpositive\u002Fnone",[137,32,34,138,11,32],"22149658","maker\u002Fneutral\u002Fnone",[76,140,33,141,77,34],2,"project\u002Fneutral\u002Fexecution",[80,140,34,141,11,32],[69,140,32,144,70,34],"project\u002Fcritical\u002Fexecution",[146,140,34,147,148,34],"22148798","commenter\u002Fneutral\u002Fnone","setr",[95,140,34,150,70,34],"commenter\u002Fneutral\u002Fexecution",[],[153,158,163,168,173,178],{"id":154,"name":155,"points":156,"category":157},"22152736","usb-hubs.org",560,"web_saas",{"id":159,"name":160,"points":161,"category":162},"22154088","botium-speech-processing",438,"ai",{"id":164,"name":165,"points":166,"category":167},"22128385","Women Make",345,"consumer_social",{"id":169,"name":170,"points":171,"category":172},"22164212","Binarysearch.io",279,"learning_science",{"id":174,"name":175,"points":176,"category":177},"22174412","Thinc",250,"languages",{"id":179,"name":180,"points":181,"category":182},"22139975","Postgresqlco.nf",223,"dev_tools",6,false,"v2",{"id":187,"name":5,"line":6,"ai":184,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":188,"top":18,"kw":189,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":190,"url":9,"mix":191,"praise":60,"objection":65,"sub":21},22137758,0.08,[24,25,26,27,28],"030305030100",[32,33,34,32],1794036585798]