5,056 karma · joined March 2, 2020
One could say the fake part was not “approved”.
I whole heartedly disagree. There’s an entire class of performance tuning you can do to math intensive applications that absolutely require knowledge of assembly to squeeze that last 0.5% out of the machine.
Video Games, Video Editing, Image Editing, Simulations, Scientific applications, all benefit from having some assembly sprinkled into their algorithms for speed.
Because of this, I don’t need crates or packages to do things for me, I’m capable of doing it on my own. I’m capable of building a 64kb demo scene executable. I’m capable of building a hardware accelerated video decoder. I’m capable of parallel vector operations because I can haz assembly. I can disassemble and reassemble binaries, libraries, files, stacks. I can even inject my own code.
If you have no need for speed and efficiency, then I’m sure a browser-based desktop app with some JavaScript will be fine for your use case.
I’m talking about 10,000+ players. Where you need clusters of servers and synchronization techniques.
There have been some small multiplayer games that have tried to pass as mmo’s but without the player base in the 10k+ range, you never encounter certain classes of engineering problems.
Likewise GLint is just a type alias for int. There are only value types (str, int, float, etc), everything else is a construct. The only true types are those value types (and pointers to them). If you call a type a Color and I call a type a Color, you are using my lib to build a program (not me using yours), you must adhere to my contract of what a Color type is to my API. Period. You can not call a function with an unknown type and expect it to behave properly.
If it panics, it’s your fault.
Rewind 15-20 years ago and all the folks who wanted to make a game, their first game, and they want to build an mmo. None of them succeeded. Not 1. The only ones since were from people who knew the ask. Or had a crowdfunded ponzi scheme.
Such a Texas thing to say.
I had my fair share of wind turbines on my sailboat. Nothing this guy is taking about is 1) new. 2) novel. 3) revolutionary.
What he’s trying to do is white-wash and “patriot”ize a simple existing technology. Only with half a brain cell so he thinks he’s solving the worlds energy crisis.
Wind turbines are loud. The faster they spin, the louder. The faster they spin the more potential for hazardous blade separation. I once sliced right through a dinghy with one. Imagine if that was little Melody with her stuffed animal.
The future of energy is not physical force pushing propellers to drive alternators, it’s capturing (and harnessing) the power of the sun. Solar panels provide 2-3x the output, none of the physical dangers, and are quieter than an ants whisper.
If I write a function that takes Foo as an argument. I have a Foo implementation exposed elsewhere in my program. It is absolutely expected that I mean MY Foo, not your Foo. If you pass me your Foo, you will get unexpected results that are not a bug, not a side effect, not my responsibility. It’s yours, the caller, to adhere to the contract.
There are valid reasons to not adhere. To pass your own implementation. At that point, you are responsible for its use. Not me. If it adheres to MY Foo’s interface, you might get by, but it’s is not my responsibility to validate all permutations of unknown types to ensure you’re passing me mine. In go, it’s perfectly valid to return structs but accept interfaces as arguments so that you, the program author calling my api, can craft the correct program flow.
So please, leave that runtime type check reflection for Java and C# and the land of JS. We have no need for it here in machine code land.
This is one way to approach the problem. The other way is to do prefab rooms and when generating your dungeons, randomly select one or two prefab enclave rooms to throw into the shuffle. Shuffle the rooms and spread them out then connect hallways and such. This is the approach that Enter the Gungeon took.
Another approach is what @otikik describes. Tracing the walls buy assigning a value to the cells that can then be scored. Minesweeper style.
Simulation games will ALWAYS benefit from more VR, more hardware, more wheels, more human interface controls.
I’m not saying I disliked Fez, but to compare the art of Fez to Chronotrigger is like holding a child’s finger painting to a Van Gogh. From a distance they may look the same…
And never seen old games? I grew up on Atari. I’ve been playing games since. Even made a few. Fez was amazing but not for its art. It was flat. I still enjoyed it. I think gamers shouldn’t get so hung up on pushing their systems to the limits and instead should focus on pushing their play to the limit.
Indie games not on magazines says more about the indie games at the time, nothing more. How many times you going to feature Jonathan Blow?
Was Phil Fish insufferable? I don’t know, never met him. Did he say some things that were not in alignment with my worldview? Yeah, sure.
I do think Fez, the game, the wonderful spectacularly clever game, was the indie equivalent of a Mario brothers hit.
The void I think you speak of was when XNA died, MonoGame wasn’t quite there yet, people jumped to Unity and it took them awhile to get up to speed in it. Others like me went off and wrote their own engines and stuff, others joined the ranks of the studios.
I think Phil made the best game he could. That’s all that matters. Everything else is superfluous.