[{"data":1,"prerenderedAt":289},["ShallowReactive",2],{"project-44882441":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":28,"sentiment":29,"stance_mix":30,"scored_comments":33,"aspects":34,"strip":41,"post_text":44,"what":45,"said":76,"maker_in_thread":128,"shape":139,"grid":143,"attempts":247,"same_week":253,"maker_shows":38,"maker_hidden":282,"reader_version":283,"card":284},"44882441","Gore","Doom port to pure Go – Gore","title","Show HN: Doom port to pure Go – Gore","https:\u002F\u002Fgithub.com\u002FAndreRenaud\u002Fgore","github.com","EstIgnavus",1755037148,2025,148,42,504,3837,14,"notable","games","game engine port","library",[24,25,26,27],"doom go port","go game engine","wad loader","software renderer","loved",0.37,{"positive":31,"neutral":31,"mixed":32,"critical":32},4,0,8,{"idea":35,"performance":37,"design":39,"execution":40},{"positive":36,"critical":32},2,{"positive":38,"critical":32},1,{"positive":32,"critical":32},{"positive":32,"critical":32},[42,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,42,42,32,43,43,42,32,43,32,32,32,32,43],5,3,"Hi HN, I’ve been working on Gore – a port of the classic Doom engine written in pure Go, based on a ccgo C-to-Go translation of Doom Generic. It loads original WAD files, uses a software renderer (no SDL or CGO, or Go dependencies outside the standard library). Still has a bit of unsafe code that I'm trying to get rid of, and various other caveats.\n\nIn the examples is a terminal-based renderer, which is entertaining, even though it's very hard to play with terminal-style input\u002Foutput.\n\nThe goal is a clean, cross-platform, Go-native take on the Doom engine – fun to hack on, easy to read, and po",{"problem":46,"audience":55,"pricing":55,"motivation":56,"time_to_build":55,"stack":61,"openness":74,"stage":75,"team_size":75},{"value":47,"source":48,"evidence":49},"Provides a clean, portable, Go-native Doom engine that can be embedded in other projects.","maker",[50,52],{"id":51},"post",{"id":53,"by":11,"text":54},"44894942","Tragically, it will not. Most 'modern' Doom wads use features that weren't present in the original release (ie: they need GZDoom, Boom, or one of the other modern engines). This…",null,{"value":57,"source":48,"evidence":58},"Sneak the Doom engine into unrelated projects, easter-egg style; fun to hack on.",[59,60],{"id":51},{"id":53,"by":11,"text":54},[62,66],{"value":63,"source":48,"evidence":64},"Go",[65],{"id":51},{"value":67,"source":48,"evidence":68},"ccgo C-to-Go translation of Doom Generic",[69,70],{"id":51},{"id":71,"by":72,"text":73},"44887280","donatj","Nah, I suspect it's just because it's a machine translated port of the original C to Go > The original C code was converted to Go using (modernc.org\u002Fccgo\u002Fv4), by cznic…","open_source","unknown",{"praise":77,"objections":93,"requests":98,"questions":105,"alternatives":113},[78,86],{"value":79,"source":80,"evidence":81},"Good demonstration that Go can be used for game development.","commenter",[82],{"id":83,"by":84,"text":85},"44885272","pjmlp","Great effort. Although I tend to be a critic of Go's design, I love projects like these, as they make the point not everything needs to be C or C++ for game development. Kudos…",{"value":87,"source":80,"evidence":88},"Inspired, fun name.",[89],{"id":90,"by":91,"text":92},"44886756","markpapadakis","What an inspired name :)",[94],{"value":95,"source":48,"evidence":96},"Does not run modern WADs that need GZDoom or Boom features.",[97],{"id":53,"by":11,"text":54},[99],{"value":100,"source":80,"evidence":101},"Will it run myhouse.wad?",[102],{"id":103,"by":104,"text":100},"44885538","dvh",[106],{"value":107,"source":80,"evidence":108},"Why is doom.go a single ~46K LOC file?",[109],{"id":110,"by":111,"text":112},"44887224","romperstomper","Just curios, why everything is in a single large file (doom.go ~46K LOC)? Is it because of how Go handle modules?",[114,121],{"value":115,"source":80,"evidence":116},"kubedoom",[117],{"id":118,"by":119,"text":120},"44885419","MrDrMcCoy","Why not both? https:\u002F\u002Fgithub.com\u002Fstorax\u002Fkubedoom",{"value":122,"source":80,"evidence":123},"PSDoom",[124],{"id":125,"by":126,"text":127},"44886625","merelysounds","There is also prior art, PSDoom: > The Doom process manager (PSDoom) is a modiﬁcation of the game Doom that displays representations of the processes running on a machine. Rather…",{"comments":42,"answered":38,"key":129},[130,133,136],{"id":131,"text":132},"44894968","I remember when this was announced. It had another humorous side effect - in Doom monsters can kill other monsters, which meant the PSDoom could result in processes randomly…",{"id":134,"text":135},"44894994","I'm amazed at how prolific he is. I've interacted with him a couple of times, and he's always super polite and helpful. In spite of the fact that he is also churning through…",{"id":137,"text":138},"44894952","Yes, that's exactly correct. I had intended to break it apart back to the original Doom source layout, but I haven't completed that yet. I'm not 100% sure if that's a good idea…",{"commenters":140,"max_depth":141,"maker_replies":42,"first_comment_mins":142,"lifespan_hours":140},25,12,497,[144,146,150,153,156,158,161,163,166,168,170,172,174,176,178,181,183,186,188,191,193,196,198,202,203,204,205,208,211,212,216,218,220,222,225,227,231,234,236,240,243,246],[83,32,42,145,84,32],"project\u002Fpositive\u002Fidea",[147,32,32,148,149,32],"44885435","commenter\u002Fneutral\u002Fnone","alrs",[151,32,32,148,152,32],"44885529","stared",[154,32,32,148,155,32],"44888776","9rx",[157,32,32,148,84,32],"44885534",[159,32,32,148,160,32],"44886353","whizzter",[162,32,32,148,84,32],"44886536",[164,32,32,148,165,32],"44887032","snickerdoodle12",[167,32,32,148,84,32],"44887177",[169,32,32,148,165,32],"44887374",[171,32,32,148,84,32],"44887528",[173,32,32,148,165,32],"44887807",[175,32,32,148,84,32],"44888131",[177,32,32,148,155,32],"44888393",[179,32,32,148,180,32],"44889871","trenchpilgrim",[182,32,32,148,84,32],"44889968",[184,32,32,148,185,32],"44888555","yomismoaqui",[187,32,32,148,84,32],"44890017",[189,32,32,148,190,32],"44887440","stpedgwdgfhgdd",[192,32,32,148,84,32],"44889999",[194,32,32,148,195,32],"44888435","justin66",[197,32,32,148,84,32],"44890041",[199,38,32,200,201,32],"44885393","other\u002Fneutral\u002Fnone","alexchantavy",[118,38,32,200,119,32],[125,38,32,200,126,32],[131,38,32,200,11,38],[206,38,32,200,207,32],"44886844","varispeed",[209,38,32,200,210,32],"44894414","hu3",[90,36,42,145,91,32],[213,43,42,214,215,32],"44892900","project\u002Fpositive\u002Fperformance","flowerthoughts",[134,43,32,217,11,38],"other\u002Fpositive\u002Fnone",[110,31,43,219,111,32],"maker\u002Fneutral\u002Fdesign",[71,31,43,221,72,32],"maker\u002Fneutral\u002Fnone",[223,31,42,224,111,32],"44887310","maker\u002Fpositive\u002Fnone",[137,31,32,226,11,38],"project\u002Fneutral\u002Fdesign",[228,31,43,229,230,32],"44889507","project\u002Fneutral\u002Fexecution","nasretdinov",[232,42,32,200,233,32],"44885774","xxs",[235,42,32,200,11,38],"44895010",[237,238,32,200,239,32],"44886512",6,"nottorp",[241,238,32,200,242,32],"44886953","rob74",[103,244,43,245,104,32],7,"project\u002Fneutral\u002Fnone",[53,244,32,245,11,38],[248,252],{"id":249,"t":250,"points":251,"comments":36},"44496009",1751936359,9,{"id":4,"t":12,"points":14,"comments":15},[254,259,264,269,273,278],{"id":255,"name":256,"points":257,"category":258},"44846281","horizon",788,"creative",{"id":260,"name":261,"points":262,"category":263},"44878151","Building a web search engine from scratch with 3B neural embeddings",699,"web_saas",{"id":265,"name":266,"points":267,"category":268},"44855157","Engineering.fyi",470,"dev_tools",{"id":270,"name":271,"points":272,"category":268},"44878650","Omnara",310,{"id":274,"name":275,"points":276,"category":277},"44856935","Bolt",261,"languages",{"id":279,"name":280,"points":281,"category":258},"44870137","Tilf",214,false,"v2",{"id":285,"name":5,"line":6,"ai":282,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":286,"maker":11,"domain":10,"tier":19,"attempts":36,"strip":287,"url":9,"mix":288,"praise":79,"objection":95,"sub":21},44882441,[24,25,26,27],"5000000000000000000000000005503350300003",[31,31,32,32],1794036680195]