00:46:58 Monster database of master branch on crawl.develz.org updated to: 0.33-a0-299-gc96b193c27 02:34:46 isn't there a rewrite stashed somewhere that might make a better starting point? 02:47:17 <06m​umra> There are at least two; there was an attempt at a complete rewrite in React but unfinished, and more recently I started a slightly simpler approach of just converting the existing client to TypeScript as is, which is seems like a more short term achievable stop gap which at least modernises the stack a bit and allows things like type checking, eslint and bundling (the former two would greatly aid further development, and the latter would 02:47:18 improve load times quite a bit) 02:48:57 <06m​umra> This would allow React (or similar framework) to then be brought in progressively to supplement the UI rather than having to be an all-or-nothing rewrite which has ddanger of never being finis 02:49:01 <06m​umra> This would allow React (or similar framework) to then be brought in progressively to supplement the UI rather than having to be an all-or-nothing rewrite which has the danger of never being finished 02:49:04 oh, I thought the React one was further along than that 02:50:26 <06m​umra> I can't find the branch now, but I did look at it. I seem to remember it was missing some big pieces of the puzzle, and it was a few years ago so has already aged somewhat against the fast pace of web technology advancement as well as crawl itself 02:50:53 <06m​umra> The big challenge is, whatever the solution, it still needs to be able to load old versions of the client 02:51:49 hm, I would have expected the read-JSON-from-the-backend part wouldn't change 02:52:01 if it's a rewrite of just the browser end 02:52:09 <06m​umra> It's not the json messages over websocket that are the problem 02:52:24 <06m​umra> In a react app, you render your own HTML ui and bind events etc to that 02:52:56 <06m​umra> But in the tornado/python backend, the html is rendered by the python backend, and the client code is a load of jquery that binds to that html 02:53:29 ah 02:53:43 that … seems like a poor fit 02:54:13 <06m​umra> which one seems like a poor fit sorry? 02:55:11 having to relocate the HTML generation 02:55:15 seems rather invasive 02:55:50 <06m​umra> well not entirely, quite a bit of html is also rendered in the client code. the backend html is more like a skeleton. "here is where the buttons go", "here is where the game canvas goes" etc 02:56:39 <06m​umra> so it's better overall to move all the html generation into the client, it allows a LOT more flexibility in future development. we're very constrained right now if you wanted to make a substantially better UI 02:56:48 ah 02:57:40 (and yes, isn't the whole point of React that it reacts to the display target and reformats everything to fit and behave appropriately, so it handles everything from a phone to a huge display?) 02:57:42 <06m​umra> and the clientside generation (e.g. making a list of inventory buttons) would be waaay nicer in something like react instead of all the horrible manual poking around in jquery 02:57:57 <06m​umra> no, that's not what react is at all 02:58:08 <06m​umra> that's just html and css and responsive design 02:58:17 <06m​umra> react is about reacting to a data model 02:58:39 <06m​umra> when your data model changes, react automatically re-renders your html components based on the changed data, and does it very efficiently 02:59:53 <06m​umra> but your html components are just outputting whatever html and css you program them to, so you still have to do the responsive stuff yourself (although there are many many ui and css frameworks you can leverage to also help solve those problems) 03:00:26 ah (I thought css was such a PITA to get right even for fixed layouts that people wanted to move that to something saner) 03:03:13 <06m​umra> no, we're still using css. but modern css has many new features now that make responsive design much better, but a good js framework makes some things easier as well 03:03:48 <06m​umra> the other big thing that changed is all the main browsers now support all the modern css/js standards in the same way 03:21:17 <06m​umra> (I do slightly question if React is the right choice for crawl ... not because of anything to do with functionality but down to stewardship, being controlled by Facebook, even tho the license is fine this doesn't sit so well with me. There are alternatives like Preact or Svelte that implement a very similar component model but are more properly open source.) 03:25:31 <06m​umra> (Could possibly have a similar debate over TypeScript, but we'd have to stop making Windows builds if we don't want any Microsoft tech in our stack ... and it's still rather different as it's more of a development aid, the final js build has all the typescript stripped out, it's not like a library forming part of the final application) 04:33:45 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5249-g4a8afe7061 05:35:51 <12g​e0ff> > I do slightly question if React is the right choice for crawl ... alternatives like Preact or Svelte Obviously the better choice for DCSS would be Vue.js. It's less popular than React (~35% popularity vs. ~16%), but it's smaller, faster, and less scary for non-web devs. 08:11:08 <09g​ammafunk> trying to figure out which javascript framework is in fashion in current year 😫 08:16:50 <09g​ammafunk> @mumra not sure if this is useful, but alex (former cpo admin and longtime contributer) started a pretty ambitious rewrite of the webtiles client and got pretty far, but he abruptly left the project. His branch is here: https://github.com/alexjurkiewicz/crawl-ref/tree/webtiles-client 08:17:22 <09g​ammafunk> apparently all his work is squashed into a single commit so that's probably going to be difficult to read 09:27:53 Real question why do I always get commits May 23, 2024 when I look up dcss commits on google 10:21:02 <09g​ammafunk> that was the only good day of crawl development in the entire project's history 19:07:10 How do we know that a store is a Gozag store? 19:07:10 shop_spec has the information, but in _gozag_place_shop we transform it to a shop_struct, which does not have it.. 19:07:11 Given that, how does it work that when I abandon Gozag, the shops to close can be identified? 19:07:11 Trying to fix #3822 20:04:47 EchoLibretto (L2 BaCj) ERROR in 'player-reacts.cc' at line 1017: ASSERT failed: you.hit_points_regeneration of -13260812 out of range 0 (0) .. 100 (100) (D:1) 20:40:13 -!- The topic of #crawl-dev is: Crawl Development | https://github.com/crawl/crawl | Logs: http://s-z.org/crawl-dev/, temporarily http://crawl.akrasiac.org/logs/cheibriados/ | People with +v have commit access, devs on bridged discord as well | General Crawl-related chat to #crawl | Long stuff to a pastebin service, please 20:40:14 -!- The topic of #crawl is: Play Dungeon Crawl Stone Soup online now! Type ??online for instructions, ??lg / !lg for play stats | PM Sequell for long queries | http://crawl.develz.org | FooTV game replays: ??footv for instructions | #crawl-dev for dev discussion, #crawl-offtopic for offtopic