5 ms·
I developed the isometric engine for this[0] video game in the 90s. I remember trying to figure out the algorithm to determine where the cursor was (converting
by qingcharles 2y ago
I developed the isometric engine for this[0] video game in the 90s. I remember trying to figure out the algorithm to determine where the cursor was (converting screen x/y to position on tile, taking into account height of tile stack and the fact the tiles could be transparent) was a monstrous headache for some reason.
The sort of thing you'd solve in 30 seconds with Google in 2024.
The 2D tiles were rendered out of 3D Studio Max, and the characters were meshes exported from Max.
[0] https://www.youtube.com/watch?v=9UOYps_3eM0 https://www.youtube.com/watch?v=9UOYps_3eM0
- codeflo 2y agoThat’s awesome. > The sort of thing you'd solve in 30 seconds with Google in 2024. This is unfortunately becoming increasingly untrue, as the forums where stuff like that was posted are rotting away, and Google’s advertisement optimized result ranking neglects the long tail. And to the extent it is still true, it’s because pioneers like you figured it out and shared their results!
- MrGilbert 2y agoTo add to that, people (at least in my org) resort to ask "ChatGPT" for all sorts of questions. I don't share that sentiment, but oth, I never had trouble finding what I was looking for using Google. I agree though, it get's tougher with all that walled gardens. I guess I'm becoming the old, grumpy "back in my days, we used Google!" type of guy.
- meiraleal 2y agoBack in my days, Google worked. Now it is a waste of time. Someone that wants to hold himself to the notion that Google was/is good really looks like someone having issues getting old
- MrGilbert 2y agoAny alternative to Google?
- meiraleal 2y agoClaude Sonnet 3.5
- johnnyanmac 2y agoBing is pretty much the next best engine, but also has targeted ads (albiet less intrusive) and IMO less relevant results without fine tuning. DuckDuckGo uses Bing's backend without targeted ads (but still uses ads). Kagi uses google backend but without Google's ad-optimized algorithms. But that's a subscription solution. sadly your best "free" alteratives is going back to the days of smaller, specific communities, and searching through there. If the forum has a bad search, you go back to google but can then use Site:[website.com] as a filter to fine tune your results. .
- Xywzel 2y agoYes, lots of them, but they are all just a matter of not giving all your search data to same company, non I know work better in this regard, in finding good forum posts or logs to answer questions you have.
- danielheath 2y agoKagi (I'm a customer) works much the same way google did in 2010 or so.
- red_admiral 2y agoI looked up Kagi and their sources include "AI" - do you know if one can turn this off?
- einsteinx2 2y agoYes there’s a toggle to turn it off in settings. It’s a little AI summary box they sometimes show at the top of search results.
- layer8 2y agoGoogle still works for me, but you have to generously apply “tricks” like verbatim mode, double quotes, time ranges, domain filters, exclude terms (minus sign), include search terms that bias it towards forum results, and so on.
- dgb23 2y agoGoogle works very well as an alternative to knowing the exact link to something you already know exists and know how it's named. But it has become very bad at _discovering_ valuable information.
- dgb23 2y agoI've become a paranoid link hoarder because of this. I'm Pretty Sure these things are true in comparison to the past: - There is much more high quality content on the web than was ever before. - The signal to noise ratio is _much_ smaller. - Search results are getting cluttered by SEO spam, some of which is straight up copying from organic social media style sites (forums, SO, reddit, Github issues etc.) It's extremely hard to find good content, even though _i know_ it is out there. Sometimes it's even hard to find sites I visited before, but I only remembered vague keywords. And this is true especially for content that is of educational nature or interesting punditry. You know, the stuff that comes directly from people who have expertise and have earned a grounded opinion. This is why I'm hoarding links to all sorts of interesting things. It's not an efficient way to do it and I don't know if there's a more general solution here. Very unfortunate.
- fouronnes3 2y agoI agree with your observations. The time is just right for a Google search killer. There might be some AI in it, but the fundamental goal should be a massive increase of the SNR of search results.
- LiveTheDream 2y agoFor me, this has been perplexity.ai. Give it a query, it expands that into multiple queries (possibly chained depending on results) and synthesizes the results into an answer with citations.
- viraptor 2y agoKagi's done that for me. Most is prefiltered and setting some domains to never appear again sorts out remaining spam. No generative AI, would recommend. The SNR is amazing compared to google. On the other hand like the sibling comment mentions, perplexity is great at digging out obscure stuff sometimes. Provide enough details and use the pro type search and you may be surprised.
- binary132 2y agoMaybe it would be neat if there was a place online people could hoard, archive, and share their link troves. I know I’d be interested in that. A lot of this type of content becomes unmaintained and rots badly.
- katzenversteher 2y agoI vaguely remember having played this game or a demo of it. I remember it being so difficult (or maybe I did not understand it) that I stopped playing after a while being frustrated. The dark and squishy atmosphere is great though!
- chungus 2y agoReally cool music on the "character screen" (~6:33). Takes me back.
- bob1029 2y agoI've been prototyping an isometric browser game, and the approach I took was to draw an explicit interactive grid of divs on top of the isometric tiles with CSS affine transforms to get each to fit its respective tile surface dimensions. OnHover, et. al. follow this transform perfectly. It took me a while to get the transform figured out, but once you do you are basically done for an entire tile set. This is also robust to vertical/horizontal overflow of tile art. The browser gives you reasonable ways to get at the various coordinate systems. You can either take the screen space coords directly or inverse transform them to get the orthographic (i.e. purely top-down) tile coords. Modern web browser tech is really something to behold. It's maybe the best game engine if you hold it right. There are some crazy things you can do in the browser in 5 minutes that are completely infeasible everywhere else. For example, what if some of the tiles are x264 video files and not just static PNGs? What if we also mix in tiles that are drawn using webgl/canvas at each frame update? We could have the client itself handle rendering of tiles using scene descriptions received from the server.
- ChiperSoft 2y agoTheres so many abandonware isometric games from the 90s and 00s that I’d love to see ported into browser based games. I had a pet project for a while where I was extracting all the assets from Lineage 1 so I could try to recreate it.
- Lewton 2y agoOh man, I completely forgot about that game. Absolutely loved it as a teen!
- qingcharles 2y agoHaha, thanks. It was supposed to be a fully 2D game, and several months in we realized we'd run out of RAM for all the sprites with all their rotations. So somehow I managed to convert it into a 2D+3D game in two weeks.
- klodolph 2y ago> The sort of thing you'd solve in 30 seconds with Google in 2024. I’ve implemented this in my own games and I remember that the solution was basically raycasting. But it was NOT some 30 seconds thing. It was a major effort anyway. (There are of course other options, like rendering a picture with a different color for each object, and sampling the color to figure out what you clicked on. And “color” may just be a 1-channel integer object ID.)
- YesBox 2y agoEven with Google, it's a difficult problem[1]. What if you have multiple items on the same tile? What if one of them is one pixel wide (e.g. a wall)? What if something in front of that tile is tall enough to block the view? What if you need pixel perfect collision? My first solution (before the buildings in my game had multiple floors) was to take the ISO mouse position, grab a list of items within a cone spreading towards the screen, then: 1.) Loop through each item 2.) Create a sprite of the item (so I have direct access to RGBA info) 3.) Convert mouse coords to sprite coords 4.) Check if I'm hitting a pixel (i.e. alpha > 0) 5.) Keep track of this item 6.) Update if an item closer to the bottom of the screen (i.e. closer to camera) gets a hit Once I added building height, this became impractical (too many items to loop through, sprite creation is CPU intensive). New solution is to assign a 24 byte UUID to each item, convert that to RGB, draw it to the screen (invisible to the user), and then return a tiny texture every frame from the GPU at the mouse position. If the color in the texture is not black, then convert RGB back into the UUID. PS: If you know how to draw so that alpha replaces existing alpha (instead of blending), please let me know so I can have 32 byte UUIDs! [1] Source: I'm developing Metropolis 1998 https://store.steampowered.com/app/2287430/Metropolis_1998/ https://store.steampowered.com/app/2287430/Metropolis_1998/
- mrec 2y agoHeh. I remember doing your first solution for an Eye of the Beholder-style FPV engine back on the Amiga circa 1994. This was using existing blitter mask bitplanes so there was no sprite creation, everything was very fast (assembly). Can't remember whether I did culling based on bounding boxes first. I also remember being quite chuffed about coming up with a "novel" approach using dithered planar masks to offset colours into palette ranges for not-too-blocky lighting. Then Quake came out. You forget just how siloed we all were before the Internet took off; every wheel imaginable must have been reinvented so many times...
- pharrington 2y agoI'll be honest - I'm spitballing here, as I havent made an isometric game yet. My instinct would be that the cursor, a visual UI element, only directly interacts in visual space - ie the screen tile is the screen tile, with no height information. When rendering though, you're projecting logical information to visual information. So when you render an object, you fill some struct that correlates screen tiles with last game objects' IDs that were drawn over it. The cursor logic just queries that structure. edit: thats assuming you cant select anything that's been occluded. If you need to select things that've been occluded, lmao i dunno
- goostavos 2y agoHearing that other people struggled with this problem gives me solidarity. It took me an embarrassing amount of time to get "click and drag thing" working in isometric [0]. Rendering differently sized sprites was a whole other thing. Figuring it out without google was immensely satisfying, though. Reminded me what I love about programming. [0] https://chriskiehl.com/article/home-theater-calculator https://chriskiehl.com/article/home-theater-calculator