HackerTrans
TopNewTrendsCommentsPastAskShowJobs

Ogre

504 karmajoined 16 years ago

comments

Ogre
·5 days ago·discuss
There used to be a site called Forgotify that would only play songs from Spotify that had zero listens. So each song played, of course, removed that song from the set that could ever be played by Forgotify. Doesn't look like it's around any more, sadly.
Ogre
·2 months ago·discuss
I'm with you, came here to ask this too. This is how I would have read it:

"Crack engineer" someone who is an excellent engineer, I feel like this goes back to at least the early 20th century, certainly long before gaming culture.

"Cracked engineer" a damaged person who is an engineer

Shrug. Language changes all the time!
Ogre
·2 months ago·discuss
The Merchant Princes series is fun, and I really enjoy the story of why he wrote it. It starts out as fantasy for basically the whole first novel and then some. But you can find some evidence from the start that it's really sci-fi, and by the end of the series it has dropped all pretense. It's sci-fi through and through.

This is all because he had an exclusive contract for sci-fi with his other publisher. But not an exclusive contract period. So he stealth wrote a second sci-fi series without actually breaking that contract until later.

I'm not sure if The Laundry Files was done for the same reason. It's possible. I haven't read those past the first novel. But I'm a big fan of everything else he's done.
Ogre
·12 years ago·discuss
Something you can do with components if you set some strict restrictions is do static or runtime analysis to determine which sets of components are disjoint in terms of systems that access them. For example, if the combat system only needs access to combat components, and the builder system needs pathing and inventory components, then those two systems can run completely in parallel.

One place this is likely to break down is the transform (position) component, but one strategy for that is to differentiate between read-only and write access. Lots of systems need to know where things are (const access) but few need to change where things are (write access). All the systems that can deal with const access can still run in parallel.

The trick here is you have to strictly enforce all this. You CAN'T have a method for getting an arbitrary component from an entity, and this may drive you nuts. Instead you have to have each system specify ahead of time exactly what components it needs and how it uses them, and then hand them those components, and only those components. As soon as you let someone write "entity->GetComponent(Physics)" in leaf code, you've lost your ability to analyse the dependency tree.

For a lot of games, the other problem you're going to run into is that one or two systems are going to take up most of your time and every other system is just going to sit around waiting for those anyway. Usually those are physics and rendering. Which you might be happily avoiding by making a dwarf fortress style game!

I have a coworker who's got a "toy" engine at home that does all this and some other fairly amazing tricks. He says he's going to open source it, still waiting on that. Sorry for this pointless tease, just wishing he'd hurry up out loud.