As any programmer would tell you, HTML is the best programming language.
Just to make sure you know, this is satire. People often mistakenly think HTML is a programming language when it is not. It is used solely to format how data is displayed.
Rudey24 ยท 1 points ยท Posted at 21:38:30 on November 14, 2018 ยท (Permalink)
It is used solely to format how data is displayed.
This is just to render the bare HTML page in the browser. NASA is currently working on the technology required to process and generate that HTML page, with current estimates being having enough computing power sometime around 2022.
preseto ยท 10 points ยท Posted at 14:27:35 on November 14, 2018 ยท (Permalink)
I disable the custom CSS in my preferences due to the abilities to abuse it by using ridiculous colors, removing buttons, adding distracting overlays. I would rather reddit look more like a newsgroup than a 12 year old's myspace page. Just my two cents.
PHP isn't a terrible language at all, just your typical herd brain programmers that are still stuck in 2000 and write bad, inefficient, unoptimized code like it's 2018 and have never used PHP that just vomit their opinions based on rumors think it's bad language.
It's just like the real world, 90% of the population use a sledge hammer because they heard 10 people say the regular hammer is horrible so they'll never actually use the regular hammer but will perpetuate the idea just because they heard it from someone else...oh wait is this religion?
To me the funny thing is that this is an artificially created meme, because you people can't/won't/don't care about writting efficient/optimized/well written code, either because you don't know how or don't care, if it's the latter GTFO of this industry.
Yeah, I know this isn't the subreddit to blow off steam, but this thing has 600 comments, at least 200 people will see this one I'm sure.
Yeah, I know, php4 wasn't the best, neither was the early 5 but it got and getting a lot better, and if you swore not to touch then do it, just don't become a preacher yelling it's a bad language if you didn't touch it for so many years. That's all I'm saying.
WcDeckel ยท 4 points ยท Posted at 18:43:19 on November 14, 2018 ยท (Permalink)
Also bashing php is just boring now. I don't know why people are still upvoting these jokes...
Ikr? They're upvoting mostly because they don't realize it's actually their code that it's made fun of. The guys in the 90s were real engineers, the gods of this industry, not today's mortal programmers that try to make a blockchain with CSS right after they finish a course on code academy or whathaveyou...
just your typical herd brain programmers that are still stuck in 2000 and write bad, inefficient, unoptimized code like it's 2018 and have never used PHP that just vomit their opinions based on rumors think it's bad language.
no, really... I had to use it most of my professional career - it is crappy. More crappy than most languages.
It's just like the real world, 90% of the population use a sledge hammer because they heard 10 people say the regular hammer is horrible so they'll never actually use the regular hammer but will perpetuate the idea just because they heard it from someone else...oh wait is this religion?
Funny how you compare PHP to a hammer... it's fitting.
To me the funny thing is that this is an artificially created meme, because you people can't/won't/don't care about writting efficient/optimized/well written code, either because you don't know how or don't care, if it's the latter GTFO of this industry.
Funny how you compare PHP to a hammer... it's fitting.
Now I know who I'm talking to, you completed some free courses online and you think you know everything about programming, let me enlighten you. Programming languages, and anything related to them, i.e. frameworks, libraries, packages etc. are in fact tools that enable you to get a job done, so yes, any programming language and its adjacent suppoting stuff can be compared with physical tool, hammer, screwdriver, pliers etc. You're just didn't catch my metaphor.
no, really... I had to use it most of my professional career - it is crappy. More crappy than most languages.
A couple of months isn't really a career nor is it long enough to make you an authority and allow you to spit out wrongly formed opinions, if you write crappy code, it's not the language that is to blame, you just do.
Now I know who I'm talking to, you completed some free courses online and you think you know everything about programming
you are cute.
and totally wrong - but that was expected after your claims that PHP would be ok.
it's not the language that is to blame
yeah right...
but if the language comes with a huge bunch of crap (like pretty much all build in functions of PHP - just take a look at array_merge!) then the language is generally crap.
Yes you can work around such stuff. You could use the PHP-hammer to remove nails and use it sideways to hammer nails - that just doesn't make it a good language/tool.
and it's funny how you have to resort to ad hominem - because everybody who claims PHP is crap must be somebody who doesn't know what he's talking about.
Yeah I was right, I deffinitly know who I'm talking to. I have no clue what array_merge has that bothers you, it does what it says on the tin. JS has Array.concat, jquery has a PHP similar implementation with $.merge and in python you can concatenate with the + operator. You rather do it with a loop like in C++ since I doubt you know how to work with <vector> or like in Java with List and ArrayList and addAll to another array?
Edit: rather than have the JS concat that technically means to "glue" 2 things together and not specifically only a list, I'll take the explicit array_merge function which is self explanatory in what it does and I don't even need to google anything to figure out what I have to do.
Make me understand what makes you the authority to tell other people how bad X language is? Other than the fact that you don't know how to write proper code?
Like I said, a couple of months of programming doesn't mean a career, and it just makes you look stupid because you are too ignorant to actually read and understand the documentation of a language.
I think you should read the docs better, both docs actually.
so you really think I didn't?
All fixed
Uh? No? It's not fixed? array_merge still does the same broken thing it ever did?
Are you claiming I just shouldn't use it?
Because if that's so, then why is it still there?
array_merge_recursive is even kind of worse, because it only half-fixes the original version into something even less usefull. And "+" is possibly the worst option ever, because it just silently dropps stuff when numeric index based things are encountered.
This exactly my point. PHP comes with huge piles of old, broken bullshit that nobody should use. You now have 3-4 versions of how to merge two arrays and none of them is actually consistent and intuitively usable.
In fact in most cases people who use any of this would actually expect something like
array_diff_key($a, $b) + $b
accomplishes. And that's something that none of these functions/operators do.
Now tell me again how usefull this PHP-Hammer is!
[Edith:] how often did you switch your "all fixed" comment between array_merge_recursive and + now? Could you please decide what of those broken versions you actually prefer? Not that any of them would be actually good.
Also, show us how array_merge should work in your preferred language.
Well, to start with, any sane language wouldn't silently convert array indices between string and int, then doing different things depending on weather its one or the other.
Heck, most languages do discern between arrays and dictionaries - the whole problem couldn't apply there.
handling "01", "1", "a" and 1 different is just stupid and will lead to people making errors - even PHP could check if what type it is before just doing such stuff.
And even if you do need to do such horrible things, then at least throw a warning when somebody merges "arrays" that contain both numeric and string indices!
Well excuse me, but your example was array_merge($foo, $foo) so naturally I solved that problem, you change the problem I'll need to update my answer based on the new context, don't jump from one bad example to another.
Well, to start with, any sane language wouldn't silently convert array indices between string and int, then doing different things depending on weather its one or the other.
Heck, most languages do discern between arrays and dictionaries - the whole problem couldn't apply there.
Now you're comparing apples with oranges, every language has its application domain the only language at that moment in time that could handle only web and wasn't designed as a general purpose language (Rasmus himself said/says that he didn't design the language for what it is used today, but he's still working on/updating it) so you can't expect it to behave like you think it should, if you really don't like it, ask to be changed/updated. That's how most of today's programming languages work, see github. How would you update a language that powers 78.9% of the web, production and all and still be backwards compatible so you don't break more than half the web?
PHP is used by 78.9% of all the websites whose server-side programming language we know.
source
So no, PHP doesn't discern between dicts and lists (languages that have dicts and lists tend not to use arrays in its nomenclature, it's just a legacy term for a list from C/C++, that's why you have multidimensional arrays instead of dictionaries, just like mathematics treats lists, vectors for ordered lists and arrays for unordered lists, there is no mention of a dictionary in math)
But coming back to your problem, you still didn't show us your solution to the problem in another language, or you couldn't actually find a language that does what you want it to do the way you want it?
Ok, so I'm not really interested in your answers anymore, today you have a dozen languages to do webdev in, that work exactly how you like it to work, no one is carrying a floppy with a self made toolbox.js, ie6.js and ie7.js, because jQuery wasn't released yet, anymore. Pick whatever languages you want.
What bothers me is that you and the rest of the hipsters, that learned how to code less than 5 (no, make it 3) years ago, spew shit about stuff you barely used no more than 12 months (not even, I bet) especially when the languages about you speak are older than you.
You don't spew shit about C++ being a bad language, because you don't know it and you never used it and probably never will, because you're afraid, you're lazy, or just I don't know... And the quirks you will never look up on Stackoverflow like you do with PHP.
So yeah, I'm calling it a day, I don't have time for this anymore, enjoy!
Edit:
I just remembered you said:
Well, to start with, any sane language wouldn't silently convert array indices between string and int, then doing different things depending on weather its one or the other.
a fun thing was noticing that the SNES-version of chrono trigger in an emulator runs way better than the native android port.
and that's not even looking at how now the game is no longer playable offline or how it wants to download "content" by "chapters" that weren't there in the original.
vozmozno ยท 527 points ยท Posted at 14:44:32 on November 14, 2018 ยท (Permalink)
FatFunkey ยท 213 points ยท Posted at 16:36:36 on November 14, 2018 ยท (Permalink)
Why would I put an online only DRM on a game that's single player from the 90's that anyone can download an emulator and ROM for free on the internet? Come on I got a little more sense than that................Yeah I remember putting an online only DRM on a game that's single player from the 90's that anyone can download an emulator and ROM for free of the internet.
Scipio11 ยท 70 points ยท Posted at 17:57:45 on November 14, 2018 ยท (Permalink)
They only lost money though. No one's going to waste time breaking the super awesome DRM you made if they can just click "download" on a ROM site.
It's like adding super strict laws for buying blueberries, but then everyone just goes to their neighbor that has a blueberry bush since it's way faster, easier, and free.
Reddit isn't most people. Most people don't break copyright laws to get around DRM. Most people simply put up with DRM if they even know what it is. DRM has been shown to create more profit.
We were comparing the pros/cons of DRM. Would need the amount the game would sell with DRM and the amount it would sell without DRM, and the amount the DRM usage rights/implementation development cost. And compare the two to see which is greater.
Scipio11 ยท 8 points ยท Posted at 20:58:55 on November 14, 2018 ยท (Permalink)
I'm not saying most people. I'm saying people that pirate the game will avoid DRM entirely and the people that legally pay for the game won't trigger the DRM.
So why waste money developing DRM when literally no one is going to trigger it? Expecialy if it has an impact on performance on paying consumers.
It's almost the same argument as the Sim City DRM where the pirates were having a better overall experience than the paying customers
beetard ยท -2 points ยท Posted at 23:16:48 on November 14, 2018 ยท (Permalink)
And gog and cdpr is evidence anti drm games will sell! I mean, when was the last time valve released a game?
From what I've seen, most ROM sites are bogus and don't provide a download, and if they do have any ROMs they're ones you don't care about. You gotta torrent them nowadays, I think.
Scipio11 ยท 5 points ยท Posted at 21:01:16 on November 14, 2018 ยท (Permalink)
I can't link them here, but if we're talking strictly Nintendo there are huge dumps on legit rom sites, public google drive folders, and just straight up hosting websites (no torrenting or TOR browser needed)
But I put the emulator on my phone instead and still play some of them once every X years. (i.e. when I'm at my in-laws, far away from any internet connection)
I can and I do.
SaftigMo ยท 92 points ยท Posted at 16:40:57 on November 14, 2018 ยท (Permalink)
That's because they're using emulators themselves. Sony admitted to using the RPCS1 emulator that everybody has been using up till now for their mini PS1. I'd imagine Nintendo does the same.
the1975 ยท 71 points ยท Posted at 17:00:04 on November 14, 2018 ยท (Permalink)
Its okay, but I dislike that it has visible emulation glitches in a certain SuperFX title (Yoshi's Island is one of the best looking games on the system and you fucked it up by making the BG disappear when you touch fuzzy.)
Beyond that, the main thing I dislike is that they handle audio in every game that isn't Star Fox 2 by blanking the section of the ROM that held the audio samples and storing the samples in (as far as I can tell) the Wii sound format. Your emulator should NEVER ask for an altered ROM, especially given that Star Fox 2 demonstrates it doesn't need them, but I guess they just reused the Virtual Console versions for most of the titles since that's how they did it on the Wii.
I've been impressed with compatibility considering it was written with 30 games or so in mind. It works with almost everything.
Not just their SNES classic emulator but also the VC ones on the 3DS are great. Higan is obviously better but it takes a lot more juice to run it, too.
Well of course, accuracy comes at the price of speed and the SNES mini doesn't nearly have the hardware to run Higan (or their own similarly accurate emulator).
It would have brought great dishonor to the legacy of Satoru Iwata if they hadn't
Shiz0id01 ยท 21 points ยท Posted at 17:14:00 on November 14, 2018 ยท (Permalink)
RPCS1 isn't an emulator, you're thinking of PCXReArmed
damian001 ยท 32 points ยท Posted at 17:28:31 on November 14, 2018 ยท (Permalink)
I bought SimCity 2000 on Origin for nostalgia purposes, but mostly because I was expecting it to be the Windows version that had extra tilesets to change the look of the city. But nope, it simply installed DOSBox and the DOS version of SC2K.
refunded that shit immediately.
ProgMM ยท 22 points ยท Posted at 19:43:44 on November 14, 2018 ยท (Permalink)
Fun fact: the Windows version still works. The biggest issues are that it seems to bring up a save dialog which is no longer supported (someone patched this) and animated tiles seem to freeze since 256 color palettes needed to be enabled manually (change settings pre-XP, compatibility mode thereafter) and aren't actually supported by Windows 8+. Also, the installer doesn't work on its own in 64-bit but that's easily worked around.
GOG and EA use the DOS version because it appears to be more stable, because it's cross-platform, to prevent the above issues, and to future-proof since DOS emulation will outlast native support for the Win32 API and versions of DirectX from 1995.
If you think getting the old Windows version to run is a pain, lord help anyone who wants to run the original version for 68k/PPC Macs running OS 7-9... *shudders*...
tmlnz ยท 2 points ยท Posted at 22:10:06 on November 14, 2018 ยท (Permalink)
The original version runs perfectly on Mac OS 9 in SheepShaver.
Nintendo made their own, and it was found to be better iirc.
Enverex ยท 6 points ยท Posted at 17:50:49 on November 14, 2018 ยท (Permalink)
Are you referring to the Virtual Console or the NES/SNES mini? Because none of those were better than the current PC emulators for the same platforms (BSNES, Snes9x, etc).
I beat SNES Chrono Trigger on a 486 with zsnes. Couldn't have sound or texture transparency, but it was amazing to see a SNES emulator running full speed on such a slow computer
Kyanche ยท 6 points ยท Posted at 17:53:35 on November 14, 2018 ยท (Permalink)
The emulator engines themselves are usually about as impressive as the games are. I had a similar experience with Ocarina of Time on an old desktop back in the day lol.
A compressed copy of the installer for the shareware version of Doom takes up about 2.39MB of space. Today's average webpage, meanwhile, requires users to download about 2.3MB worth of data, according to HTTP Archive
I do wonder if this takes into account assets like photos, because in my opinion that's an unfair comparison when a lot of pages have a legitimate reason to have several to dozens of HD photos on a single page (which tally up to a few MB quickly even if you compress them).
I'm deeply embedded into the whole npm library framework shebang, and I have no idea how I'd go about serving as much as 2.4MB of compressed production code alone to my users. I'd have to turn off compression and tree-shaking, and include the sourcemaps.
boon4376 ยท 294 points ยท Posted at 14:25:59 on November 14, 2018 ยท (Permalink)
Because people world rather install huge libraries for every little thing than write 10 lines of code.
[deleted] ยท 131 points ยท Posted at 14:54:12 on November 14, 2018 ยท (Permalink)
... until Doom 3, where a software patent for shadow volumes was resolved by licensing a sound library. The GPL release of id Tech 4's source code avoided this patent by changing two lines of code.
Ive wondered why they couldnt get the permission to release that code? Surely such an old sound library wouldnt be an issue to give out now? Maybe they couldnt find the owners or something? It really sucks, because i would have rather had the DOS version of the code.
why recreate the wheel when you can import 1 library with 35 different wheel variants, 3 squares, 1 rectangle and an octogon that hasn't been completed yet so it's really a heptagon so don't use it yet because we accidentally merged that branch and don't know how to back it out yet but we'll fix it next version, just to use that one wheel you want?
Throtex ยท 7 points ยท Posted at 18:24:03 on November 14, 2018 ยท (Permalink)
Because that ridiculous library is still going to get regular updates that your reinvented wheel won't, so it should theoretically be more secure despite the complexity.
gct ยท 12 points ยท Posted at 22:52:23 on November 14, 2018 ยท (Permalink)
That makes sense to a point. Devs need to spend time writing it once, a multiplyer of that reading/maintaining it, users spend a multiple of that time downloading your code, and a multiple of that to run it.
So if you can spend a small amount of time to make code that runs millions of times per day faster, you probably should.
Frutari ยท 2 points ยท Posted at 23:40:31 on November 14, 2018 ยท (Permalink)
You're telling me that class I took about Big O and shit was important?!? Fuck....
chanpod ยท 2 points ยท Posted at 01:49:24 on November 15, 2018 ยท (Permalink)
Yes, but it really depends on the application. Most websites don't really need to take big O into account. The server might, and queries definitely do. But front end? Nah. Unless you're dealing with a very large data set, the performance gains are neglible.
Let's take a library like lodash. It's a large library ( in terms of functions, not foot print). Sure, it adds unnecessary size to the app, but let's be real. 100Kb is nothing these days. And for the gauruntee that I'm using an optimized function vs one I write that may or may not be optimal. I'll just take the pre written library. That said, there are extremes. But most libraries are pretty small.
People get in trouble when they add in similar libraries for just one or two things. Like, angular material and material-ui or any of it's variants. You are probably better off just making what exist in your library of choice than adding a duplicate library for one thing. Or just code it yourself.
I mean there's a reason why small budget websites look pretty much the same as big budget. It's not about capabilities but about capacity and efficiency when it comes to cost
2+2 is how we do addition today, if you rely on math.add for your addition logic you wouldn't need code changes when in the future the math rules change
Want to build a beautiful website that stands out. Visit squarespace.com that's square space . com it makes building a website that anyone can do it... Even yooooooooooouuuuuuuuuuuu!
Whoa there skippy. What do you think this is 1997? You need to bind that anchor with a click handler using jquery and load up all 1500 lines of the smooth scroll library.
This fuggin Guy here. Hash. Pft.
txmail ยท 3 points ยท Posted at 23:36:50 on November 14, 2018 ยท (Permalink)
And then get mad when the thing that is now automated behind a black box does not work when they could have written the code themselves and been totally in the know of how their application works and how it can be optimized...
[deleted] ยท 5 points ยท Posted at 18:35:03 on November 14, 2018 ยท (Permalink)
This. Web apps are morbidly obese for what a website should be for that reason.
When I have to dabble in web dev it angers me to no end if I ask a question and the answer, instead of some lines of code, is to "install X library". No, just no. I'll figure it out myself before I use some third party dependency.
I had a coworker who was of the mindset of "If you're writing a lot of code, you're developing wrong." No sweet summer child, you're actually developing vs copy/pasting.
People who refuse to use 3rd party libraries and people who always use 3rd party libraries are both wrong though. You have consider the merits of each situation. For example, if you have an app that needs one special icon then just add that icon as a file and reference it. If you need tons of icons then something like font awesome is totally worth it.
[deleted] ยท 2 points ยท Posted at 12:18:10 on November 15, 2018 ยท (Permalink)
The problem with web development though is that that's all people do is use third party libraries, which is why web dev is such a mess anymore. I also find people who always use libraries can't code a lot of more complex solutions on their own.
Look at stack for example, ask a Javascript question, chances are people will answer you in jQuery because it's all they know, they don't know how to do anything in Javascript because all they use is jQuery.
You're definitely right about jquery. I'm not sure some people even know it's not part of Javascript. I don't mind all of the libraries when it's some intranet app that just needs a quick bootstrap UI and the company won't give you the time to develop it right, but if it's a site that represents your company then it should be as responsive as possible which means that you should try to minimize the number of imports.
[deleted] ยท -3 points ยท Posted at 20:37:12 on November 14, 2018 ยท (Permalink)
[deleted]
[deleted] ยท 1 points ยท Posted at 22:40:42 on November 14, 2018 ยท (Permalink)
Not at all. Thereโs a reason web apps run like shit and itโs because theyโre so bloated and laden with dependencies. Good software is as lean and high performance as you can realistically make it and the less dependencies the better, especially when it comes to performance optimization, testing, and maintenance.
When I worked in a .Net shop anytime the browser updated the web devs would have to do a ton of extra work making sure their apps worked because they were riddled with dependencies. I was actually hired to rewrite their mobile apps into native code because they had so much trouble maintaining their hybrid solutions due to all the dependencies.
Kyanche ยท 1 points ยท Posted at 17:55:51 on November 14, 2018 ยท (Permalink)
And this is how you end up with a lot of websites that look the same. -_-
DasEvoli ยท 0 points ยท Posted at 21:09:23 on November 14, 2018 ยท (Permalink)
I don't think libraries are the problem. Images that are just scaled down is the main problem imo
Now add in all of the scripts used by each of the ads placed on the page, including the 4 different video players and the 7 different VPAID managers, each one loading a different analytics script, different versions of jquery, etc. Nowadays, the actual page content is a small fraction of what gets downloaded on page load.
I just loaded up Charles and fired up gizmodo.com as a test. Result is 777 different http calls in 103 seconds, pulling down over 8MB.
In the future, they are going to have animated anchorpeople walking around at the bottom of the screen presenting the news in addition to the videos, photos, and text, seeing as news orgs seem to think people want their websites to look like their TV programs.
and I have no idea how I'd go about serving as much as 2.4MB of compressed production code alone to my users
Polyfill everything from fetch over AbortController and async/await to Web Components so your ES8+ code runs in IE9+: 150KB
Have a big (React?) web app to begin with: 250KB
Have tons of badly written CSS, embed in JS because CSS-in-JS FTW: 120KB
Use a huge library like instascan (to scan QR codes in the browser): 400KB
Use 3 or 4 other medium-sized libraries, e.g. he to encode/decode HTML entities: 4 * 30KB = 120KB
Use a big component library like Kendo UI: 1.8MB gzipped for the full package, less with a custom download/tree shaking but still huge
Sprinkle in some web fonts, JSON payloads, 3rd party CSS for icons, loading spinners etc. and other stuff your app needs and you can bust through the 2.4MB gzipped without having used a single image. Takes some effort though :D
I think Redditโs initial page load contains well more than 5MB of JavaScript, at least in New Reddit? Same is true for a lot of dynamic content sites now too. Google Apps is particularly brutal on laptops.
a lot of pages have a legitimate reason to have several to dozens of HD photos on a single page
shutterstock revenue
cafk ยท 2 points ยท Posted at 23:53:37 on November 14, 2018 ยท (Permalink)
Open a new tab in your favourite browser, go to developer tools and networking tab, visit https://new.reddit.com
Check the sizes of JavaScript blobs loaded there.
Compare that to the https://old.reddit.com
While at it check also the render times for the whole page to finish the first run.
[deleted] ยท 1 points ยท Posted at 00:21:45 on November 15, 2018 ยท (Permalink)
[deleted]
cafk ยท 1 points ยท Posted at 00:23:19 on November 15, 2018 ยท (Permalink)
Strange, for me it's about 400kb on old vs. 3mb on new :D
[deleted] ยท 1 points ยท Posted at 02:29:41 on November 15, 2018 ยท (Permalink)
[deleted]
cafk ยท 2 points ยท Posted at 03:10:43 on November 15, 2018 ยท (Permalink)
uBlock origin for me with both ๐ค
And maybe the EU GDPR stuff is applicable for me, so less crap provided by the server for my AS number?
Similar to USAToday GDPR page being 500kb v classical 5mb
If your site uses jquery that's like 3mb right there.
livrem ยท 1 points ยท Posted at 20:42:06 on November 14, 2018 ยท (Permalink)
I downloaded a page a while ago and noticed it included a few MB web fonts with all kinds of strange international versions, even if everything on the page was in English. Unexpected.
livefox ยท 4 points ยท Posted at 17:30:26 on November 14, 2018 ยท (Permalink)
My husband played with Wix.com for half a day and made a website i couldn't load on my phone. He had so many high-res pngs, gifs for subtle animations, parallax banners, etc all over this thing that my phone just gave up. It lagged even on our older laptop.
When I berated him for making a banner image that was 10,000 pixels across that Wix just downsized it to fit, he said "well it worked on my computer. i dont understand what the big deal is."
peynir ยท 4 points ยท Posted at 14:40:06 on November 14, 2018 ยท (Permalink)
MehYam ยท 3 points ยท Posted at 15:33:58 on November 14, 2018 ยท (Permalink)
I was in college when Doom was released. I remember the day one CS prof walked into the room sputtering about Borland C++ requiring over 100MB to install.
I've watched some videos about coding certain menu animations with techniques that were super cutting edge at the time, but would never be used today. The problem is that in the face of so much raw processing power, all of the little nuances and restrictions that made classic games look and feel the way they did have to be manufactured purposefully as "atmosphere" where they got that effect back then by just utilizing whatever they could to make the game just work.
EDIT: Sorry guys, it was a really long time ago and my google doesn't love me enough to let me find it again... I'll keep googling around for a while.
[deleted] ยท 356 points ยท Posted at 15:10:55 on November 14, 2018 ยท (Permalink)*
There's the common belief that limitations nourish creativity and abudance has a potential to stifle it.
It makes sense, too. It's just easier to find a path through a restricted problem space, than finding the same path through a practically infinite problem space that isn't restricted by anything.
sloppycee ยท 320 points ยท Posted at 15:50:39 on November 14, 2018 ยท (Permalink)
Cream rises to the top. We're only remembering the very best games of the era, not the vast majority of crap.
To say that the limitations were important to making the games what they are diminishes the incredible artistic skill of the people who made them. Not everyone has that skill, and so obviously most games today can not compare; just like most games back then couldn't either.
To say that the limitations were important to making the games what they are diminishes the incredible artistic skill of the people who made them.
I disagree strongly. I think cleverly working around limitations is the absolute greatest form of creativity, and that the best art is made by overcoming obstacles and adversity.
It's like if a director makes a great movie while fighting all kinds of problems, and then later has a huuuuge budget and a crew of yes-men, all the power in the world, and makes a bad movie. I don't think this means the director is bad. I just really do think that hardship & limitations, and the act of overcoming hardship, is very important to enabling a great artist to make really great art.
chaos95 ยท 11 points ยท Posted at 20:24:50 on November 14, 2018 ยท (Permalink)
Both can be done. Star wars had nothing but adversity, and somehow ended up amazing because everyone stepped up and gave it their all.
Lord of the Rings was a tightly crafted masterpiece where every piece was installing put into place by a real visionary genius who had all the tools of modern filmmaking at his disposal.
I guess Jackson had some adversity getting his project off the ground, but New Line gave him an unprecedented amount of control over the project and it seemed like everyone believed in his vision.
That's a good counterexample. I guess adversity and working through difficult constraints isn't required to temper work into great art. I still think it helps, but to be fair I've got no proof and I'll accept that there are probably as many examples of total freedom & power enabling great art to be made, as there are of great art being made despite hampering obstacles, and I may be wrong in saying it matters at all.
Others are disagreeing with you, but really hitting the same topic you are.
Limitations nourishing creativity is something found in coding, game development, music production, and many other fields. In terms of music production, if we compare electronic music from 40-50 years ago, analogue machines and analogue recording means were how that music was made. Not all of the music was revolutionary, and not every song was great, but there are still incredible artists out there (Kraftwerk, Georgio Moroder, etc) that pushed those limits, defining the need for new technology. As technology then develops, new effects and sounds are then possible. Sampling without having to clip up bits of magnetic tape are suddenly possible. More people can use the technology, and new music is made. Then you hit the 80s, where synthetic drums and keyboard pads were staples in both pop music and hip hop, still being recorded on tapes/vinyls, but lending credit to earlier music that effectively created the technology they were using to record.
Nowadays, the sky is seemingly the limit in current DAWs, and you can always export a song from one program into another just to achieve a certain sound or effect. However, there is still a limit there, somewhere. The lack of a limit can produce incredible songs, and many creative minds deal best with the fact that they are virtually unlimited in the tools they can use. Entire orchestral suites can be made in one single project in Ableton. But not everyone deals well with that. Recent technology, like the Teenage Engineering OP-1 are effectively limited-channel AIOs that can synthesize, sample, and record all at once, but the means of recording only work within those channels, and they can only be cleared up once that channel is recorded through. This changes the process needed to make new music. Perhaps you record the drums first, then add a bassline and a melody. Then you go back and add some vocal chops. But once you're done with that section, it's difficult to go back and add more to it. And I've seen some incredible songs being made with just this piece of hardware alone (see Red Means Recording on YouTube).
The same goes with game development. Sure, while there were some very skilled developers and artists working on those early, limited games and consoles, not everything that came out of them were a piece of gold, but those same artists wouldn't necessarily be able to reproduce those results with newer systems because tastes and desires for creativity have changed.
It's a paradox really, but in the end, without limits on what we're creating (which we eventually hit), new technology specifically catered to pass those limits will not be developed. Having people/groups that excel in one field over the other is what makes big innovations in both the art and the technology used to make it, and sometimes those limits, whether self-imposed or an independent variable, can produce something incredible. Pure mastery of the development/production process is what makes things great in the end. A master of a highly-limited gaming console can make something equally-as-great as a master of an almost-unlimited machine, such as the NES vs modern PCs.
imo greatness usually pushes boundaries. It makes you ask "how the fuck did they do that!"...
You're not pushing boundaries by artificially limiting yourself to the standards of previous generations; you will always be compared to the greats and usually lose. The greats/visionaries know this, and so (typically!) games made in nostalgic style are not being made by visionaries today and hence "it" will never "be the same".
Not really. I remember the so-so NES games too. They weren't bad they were just unexceptional. Sometimes the difficulty was off or the mechanic wasn't that much fun but they all dealt with the limitations of the system. The publishers knew what other games were on the market and they couldn't publish total trash and expect to make their money back. This was partly because Nintendo limited the number of games each publisher could make to avoid a repeat of the 2600 crash.
[deleted] ยท 53 points ยท Posted at 16:39:57 on November 14, 2018 ยท (Permalink)
There were plenty of bad NES games.
Jazonxyz ยท 11 points ยท Posted at 17:32:11 on November 14, 2018 ยท (Permalink)
Also, Nintendo had you jump through hoops to get your game published on their system. Imagine how much worse games could have been if they let anybody publish anything! (btw, with the Atari 2600, anybody could publish anything for it, the market got flooded with bad games, and that killed the home console video game industry. Nintendo learned from this and added quality control to the NES games published. Look it up, it's an interesting story.)
I did a research project on the NES hardware architecture for a class in college. Kinda blew my mind to hear that the NES had fairly effective DRM on it all the way back then. It could be circumvented pretty easily, which allowed stuff like the game genie to work, but it's still pretty cool they had something at all.
CLaptopC ยท 1 points ยท Posted at 16:33:20 on November 23, 2018 ยท (Permalink)
I can see this happening with the Mobile Market now, and I am guessing that is why the Big 3 have you apply to have your game on their system. Interesting. Thank you for that insight.
OH YEEEAAHHHH, BABY THE CREAM OF THE CROP RISES TO THE TOP...
<3 Macho Man.
Divreus ยท 7 points ยท Posted at 16:23:59 on November 14, 2018 ยท (Permalink)
I completely agree with that. The closest I've ever come to getting off my ass and creating content for a game has been on the most hacked-together, obtuse, limited editor for an obscure indie game that I've ever seen. For some reason the solutions came as quickly and abundantly as the problems did.
Restrictions and limitations optimize toward a specific target space. So it doesn't (necessarily) optimize creativity... just optimizes effort because the space for creativity is more narrow.
I haven't quite figured out the balance. I'm sure any art directors would know more.
Jazonxyz ยท 6 points ยท Posted at 17:37:51 on November 14, 2018 ยท (Permalink)
I think limitations are good for some people. As a perfectionist, I love it when I'm forced to do something a certain way. Otherwise, I spend sooo much time weighing the options. Then theres the whole "did I make the right choice?" guilt, no matter what choice I made.
I think this was discussed in jerry Seinfeldโs Netflix show. Him and Dana Carver weโre discussing if itโs possible for a comedian to rise to the to top if they have a other financial options to fall back on if they fail.
As a musician, I couldnโt agree with this more- the more I learn how to utilize music software/the more Iโm able to potentially do, the harder it is to decide a way forward with a project.
Ghos3t ยท 1 points ยท Posted at 21:28:08 on November 14, 2018 ยท (Permalink)
The first book in the foundation series by Issac Asimov touched on this concept, where the first foundation was built purposefully on a distant small planet with limited resources, which forced them to come up with better, more efficient technologies than the more resources heavy empire.
You also have people who stick to faithful recreations. If I remember right Shovel Knight did a really good job sticking to the NES style except for a few very conscious departures like the color palette and parallax scrolling.
Same with music, you can have "8 bit" music, and then you have people who actually go and use 4 channels with arpeggiators and all the little tricks they used to wrangle music out of the NES. Even if it wasn't made on an actual NES or departs in a few ways, you can usually tell when someone has gone the extra mile and done their research on what the actual restrictions were.
Shovel Knight is interesting because each individual piece could ALMOST work on a NES.
The graphics are keeping to the NES visual style, but they added four more colors to the palette that the NES couldn't do because it'd look better that way, they decided that sprite flicker isn't something anyone actually wants, and they're assuming that the "overlay two sprites atop one another for more colors" trick that everyone except Nintendo used constantly was standard enough that they just made sprites that looked like the results of doing that. Also it's widescreen and uses true parallax scrolling, which the NES didn't do IIRC (you needed some serious hax to even pretend to do parallax, and if you did you basically had to cut the screen in half and not put any platforms above the line where the background starts.)
Sound-wise, the entire soundtrack CAN fit on an NES cartridge... but there'd be no room for the rest of the game. Also, it's using the VRC6 chip IIRC, which you could only use on Japan region units for stupid reasons.
Finally, it's an incredibly well designed platformer, but its using designs that hadn't been invented yet on the NES (dropping money when you die instead of a life counter being the big one).
[deleted] ยท -1 points ยท Posted at 19:06:32 on November 14, 2018 ยท (Permalink)
Shovel Knight is most definitely a modern 16-bit imitation, not 8-bit. It looks like a SNES game, not an NES game, whether youโre talking about palettes, resolution, character design/complexity, mechanics, level design or music. There is multi-layered parallax scrolling (as you mentioned) and sprite scaling.
No, they definitely aimed at 8-bit NES. They broke the restrictions in many ways and even described those ways, the point being that they did it consciously, not haphazardly.
axis710 ยท 6 points ยท Posted at 19:53:53 on November 14, 2018 ยท (Permalink)
Jake Kaufman even created the music in the NSF sound format, so it could be heard on an actual NES, straight from the sound hardware.
[deleted] ยท -4 points ยท Posted at 20:32:51 on November 14, 2018 ยท (Permalink)
Conscious decisions or not, that game wouldnโt have run on any 8-bit hardware of the day, and once youโve broken a half dozen or more rules that would have been the original limitations of a console and could only have been duplicated on a more advanced one it makes no difference.
Kudos to them for sticking to the music and limiting individual sprite pallets, but the game has just been augmented so much. The article doesnโt really change my mind, it only reinforces it.
Yourtime ยท 11 points ยท Posted at 14:49:54 on November 14, 2018 ยท (Permalink)
Arduboy
antaryon ยท 21 points ยท Posted at 15:24:34 on November 14, 2018 ยท (Permalink)
Meanwhile others make games with pixel graphics for modern systems and call them "retro". Whenever an indie dev can't afford proper art assets they defend themselves with "it looks like crap because it's retro". This is retro from 1994. This is retro from 1993. Real retro stuff still looks amazing.
[deleted] ยท 23 points ยท Posted at 16:44:41 on November 14, 2018 ยท (Permalink)
That's cause retro didn't look bad: it was just low resolution. A lot of games both look bad and are low resolution.
ArZeus ยท 4 points ยท Posted at 16:55:14 on November 14, 2018 ยท (Permalink)
Upvoted for jazz jackrabbit
mattsl ยท 1 points ยท Posted at 19:56:42 on November 14, 2018 ยท (Permalink)
Can you give an example of 2018 fake retro?
antaryon ยท 1 points ยท Posted at 23:29:59 on November 14, 2018 ยท (Permalink)
Most of these. Some of them aren't half bad but while I was looking at that list I found this game. That's one game done right.
One of the best YouTube channels out there. It's half magician revealing his tricks, half out of the box tricks from a veteran game programmer, and a surprise third half comedy about just how dinky consoles back then were. Even with blast processing.
edave64 ยท -3 points ยท Posted at 16:34:21 on November 14, 2018 ยท (Permalink)
I was troubleshooting a vexing problem with audio mixing software not calibrating properly with a professional DJ turntable. Tried everything under the sun for weeks.
Turns out, the XLR connector was too close to the electrical socket, which was creating RF interference.
Gornarok ยท 8 points ยท Posted at 16:30:22 on November 14, 2018 ยท (Permalink)
Yea its good read.
What is ridiculous to me is that it was happening at 1kHz. Such low frequency would need large capacitance or large inductance. Or most likely really bad grounding.
I remember reading that Shovel Knight was designed with it being limited by the SNES.
DrQuint ยท 1 points ยท Posted at 19:45:05 on November 14, 2018 ยท (Permalink)
They broke several of the rules, but they aware of which and when and did it for the sake of the game's experience. One of the biggest one being sprite count which would demand flickering on the SNES.
But it definitely helped the feeling to see stuff like Shovel Knight pass in front of the UI.
I know some of the old arcade or other computer games like Galaga and into the 90s sometimes had graphics engines based on the CPU speed. So if you try to recreate a Galaga arcade game with modern hardware it runs really fast unless you do some tweaking or something, I honestly don't remember all the details except downloading a Galaga ROM and being frustrated with how fast the game was.
echo_61 ยท 1 points ยท Posted at 18:45:06 on November 14, 2018 ยท (Permalink)
Thatโs what the turbo button was for, it slowed down the clocks.
I was a games programmer in the 1980's and we used to love finding ways to break the 'limits' supposedly imposed by the hardware. Some of the most effective were around synchronising changes via CPU "interrupts" linked to the monitor frame or line refresh rate (ie. 50th of a second, or 12000th of a second). So for example, in systems that supported 2 or more screen resolution modes (normally they'd operate in one or other mode until manually changed), you could switch the screen resolution programattically midway through the screen refresh, so that the top part of the screen might be displaying low-res/higher colour graphics, whilst the bottom part of the screen displayed hi-res/lower colour graphics. You could achieve other nice effects on systems with a set colour palette (often 16 colours at the time), by changing the active palette at screen refresh, or screen-line refresh so different palettes of colours were in operation at different positions of the screen ! Nightmare to debug though, and everything was written in assembly language so you could count how many Time-states each instruction would take to execute for precise timing !
dexter30 ยท 2 points ยท Posted at 17:52:13 on November 14, 2018 ยท (Permalink)
They say constraint creates creativity.
All I know is unity games are a bitch to optimise.
jgierer12 ยท 337 points ยท Posted at 13:37:27 on November 14, 2018 ยท (Permalink)
For what it's worth, many modern console games also use some insane technical and artistic tricks to squeeze everything they can out of the years old consoles. Sure, these techniques are different and usually more refined than in old games, but IMO not less interesting.
The YouTube channel Digital Foundry analyzes the technical design of most AAA games, and it always amazes me how every game has its own unique techniques.
jhartwell ยท 169 points ยท Posted at 14:27:59 on November 14, 2018 ยท (Permalink)
My favorite class I took in grad school was Optimized C++. It was taught by a guy who worked on the original Mortal Kombat and also worked for Midway for a period of time. Super interesting stuff to get better performance. Some of it was simple, such as avoiding calling malloc/new multiple times and just creaye a block of memory and manage it yourself for object creation. Other tricks were more complicated, such as using pointer offsets to quickly load files.
jesjimher ยท 62 points ยท Posted at 15:34:45 on November 14, 2018 ยท (Permalink)
All textures in Quake were exactly 16 KB, because that was the size of the L1 cache on a Pentium CPU.
rexpup ยท 6 points ยท Posted at 22:37:12 on November 14, 2018 ยท (Permalink)
That is truly incredible. I've never had a problem I had to account for hardware with, except just making it generally faster.
This is true for most developers but not one who actually understands compilers and optimization. There are some things compilers simply cannot optimize, and this has been talked about quite extensively. One of the lead engineers of LLVM from Google had a whole talk about this, although I don't have the link on hand unfortunately.
Basically, 90% of code compilers can't optimize. You still have to write decent code. A compiler can only do so much to rearrange your logic and data structures to produce equivalent code that somehow performs better.
Beyond that, you start affecting the IPO of a program which is a huge no-no for a lot of people.
True. I should have clarified that it only really applies to micromanaging. Don't micromanage because the compiler will probably do that better than you. You still can't be totally lazy.
Yeah. In fact, in many cases, the output of the compiler is faster than anything you would write.
There are some pretty big caveats to this. It's still up to the developer to use optimal algorithms in the first place -- the compiler isn't going to take your O(n2) Bubblesort and replace it with an O(n log n) Quicksort or Mergesort for you, and these algorithms are going to provide a much, much bigger speed improvement (in the average case) than simply applying compiler optimizations to your Bubblesort procedure.
Additionally, most compilers0 aren't going to mess around with your data structures to improve speed either. If you use inefficient data storage or ordering for your target processor, the compiler won't do anything to fix this. But fixing it can result in some pretty big gains if you know what you're doing1 -- much bigger than simple compiler optimization is going to help with.
I know you used the caveat "in many cases" and didn't claim compilers can generate faster code is every case, but felt this clarification would be useful for others who may not understand the implications quite as well.
0 -- I want to say all, but it's possible there is some compiler out there I'm not aware of that can optimize data types and packing. 1 -- One of my favourite projects I worked on as a grad Comp.Sci student was helping a friend working on his Ph.D. who was running simulations that took roughly 22 - 24 days to complete, by optimizing the data packing of his code. In a little less than an hour, I had sped up the processing time by some 45%, allowing the simulations to complete in roughly 2 weeks instead.
CLaptopC ยท 2 points ยท Posted at 15:50:13 on November 24, 2018 ยท (Permalink)
I would love to learn more about Optimization. Is there any resources you can recommend for me? Or any classes you would recommend?
It's still faster if you're doing silly things with memory, like id Tech 6's megatextures. Rage and Doom 2016 grab one hugegantic block of texture memory and treat it as a dynamic texture atlas built from uniformly-sized squares.
Panic Button's Switch port of Wolfenstein II recently improved the game's texture quality by a significant degree. I suspect they just switched to compressed textures. Tile-based methods like ASTC (which the mobile Tegra X1 hardware surely supports) can maintain a fixed bits-per-pixel ratio which would play nicely with id's reactionary texture loading.
Sounds more like avoidance of system calls and, therefore, time-consuming context switches. If you can reduce thousands of malloc calls down to one or two, this would likely be worth it.
Are you sure that malloc is a system call? I am pretty sure that when a process is created by the kernel, a giant chunk of memory is given to the process. Malloc takes from that chunk, rather than asking for more from the kernel. Same thing goes for allocating more stack. Otherwise, loading a function would also be a system call (allocating more stack).
Calkhas ยท 11 points ยท Posted at 16:35:48 on November 14, 2018 ยท (Permalink)
malloc(3) is not a syscall. However, on many architectures, the address space given to a process is not entirely under the control of the process, in the sense that, the process needs to notify the operating system somehow before it uses new parts of the address space. Otherwise, access to these memory regions will cause the memory management unit in the processor to raise a SIGSEGV, or possibly a SIGBUS, depending on the architecture.
On System V, the syscalls sbrk(2) and mmap(2) can be used for notifying the kernel that the address space should be considered in use. malloc(3) typically obtains several pages at once and keeps an internal linked list of memory locations suitable for subsequent allocations. If more space is required, a typical implementation must invoke at least one syscall to obtain access to the additional space.
sbrk(2) is now deprecated. This call raises the break boundary between usable and unusable address space. mmap(2) is more flexible and allows particular chunks of space to be marked writable (among other features such as memory-mapping files). On Linux, sbrk(2) is still used for smaller allocations, but on some operating systems, it is not implemented any longer. For instance, the macOS kernel (XNU) no longer implements the brk(2) or sbrk(2) syscalls; when XNU is compiled for macOS, sbrk is implemented as a shim around mmap. [When XNU is compiled for watchOS or iOS, sbrk is not available.]
The stack is static for a process, it's defined in compilation time. The given memory reserved for variables is in the heap, and it could and should be expanded if needed.
I agree with that it can be expanded, but it does not do that every time. So its not as expensive as doing a system call.
Kered13 ยท 2 points ยท Posted at 21:55:17 on November 14, 2018 ยท (Permalink)
Yes, but most calls to malloc will not entail a system call. You'll only have a system call when the total memory in use increases by at least a page (4kb on most OSs).
Surely you should have taken a class on operating systems that explains what a syscall and a context switch is?
Unless you're not a computer scientist who isn't teaching computer science students, in that case you're excused I'd say.
Sometimes you can write a very simple allocator for only some types of items which will be faster or more optimized in a specific case. Like a string allocator that doles our small chunks very quickly that cover 90% of your strings without the memory overhead per string of the main allocator.
When bytes matter and you notice most of your strings are twice the size they need to be due to overhead.
Henrarzz ยท 2 points ยท Posted at 15:52:59 on November 14, 2018 ยท (Permalink)
Now itโs still a thing. System calls are expensive.
Depends on how your data structures and memory allocation happen. Jonathan Blow (game developer behind Braid and The Witness) has talked about his own compiler/language Jai and certain things most languages do not optimize for at any fundamental level.
One of the lead compiler engineers for LLVM has given similar talks (although not about Jai).
If you have an application that depends on this memory structure, the compiler probably can only optimize it so much unless you write incredibly straightforward code. But things like batching, caching, etc. I mean the compiler really can only do so much there and some of that can only be done by profiling first.
It's only about 10 - 15% of code compilers can optimize. The rest, the compiler is trusting that you are expressing your desires IPO through the code. Anything beyond that is either the compiler taking a guess (which in theory could be wrong) or changing the IPO somehow (a big no-no for many developers).
Kered13 ยท 1 points ยท Posted at 22:00:18 on November 14, 2018 ยท (Permalink)
You use a custom allocator when you know what your allocation pattern is and can therefore optimize for it. For example if you know that every frame you need to allocate N objects of M size, then you can just allocate an N*M chunk of memory once and reuse it every frame.
A properly optimized game typically doesn't need an allocator. They know up front which assets are needed for a given level and put them all in memory (that's what loading screens are doing). It's like loading a sprite sheet vs. individual assets, and it's still relevant.
Things are a bit different now with open world games with 40gb of assets, but they still usually have hard load points where huge parts of memory are swapped out. It's very rare for a game to dynamically allocate individual things to the point it would need an traditional "allocator".
It can be quite a bit different for games, but Iโve done a lot of optimization, (both memory and speed) for more general consumer oriented applications/products on platforms from computer to phone to embedded, and most of the optimization is simply โtaking the dumb outโ.
Either someone inexperienced did something inappropriate for the platform, or there were ramifications to the platform that no one realized. 80% of the time these things might take a little cleverness to fix, but arenโt really rocket science. Often the hard part is having and using the tools to find the problem, which can be especially lacking in the embedded world.
An example might be seeing you have hundreds of copies of the same string in memory and realizing that your data parsing could benefit from a tweak to reuse the reference to the same string.
Noticing you have hundreds of the same data structure and tweaking the structure declaration to be more efficient or use smaller fields for data that wonโt need the entire field range.
Or finding out that someoneโs home rolled DB is writing out the entire DB when adding an item. Or that adding an item has a lot of overhead, so batching the adds.
Sometimes itโs as simple as using the API correctly, like discovering your UITableview isnโt reusing cells because of reuseidentifiers.
Sometimes it can be a bit tricker, like rewriting the compiler to generate more efficient branches so that each branch block used one less word and saves you 10K over the entire binary.
Other tricks were more complicated, such as using pointer offsets to quickly load files.
I've seen the assembly code of several GBA ROMs. It's amazing to me how pointer arithmetic is used to calculate resource addresses. I don't know if the developers did this or it's an optimization of the compiler, but it's amazing.
Kyanche ยท 1 points ยท Posted at 18:00:29 on November 14, 2018 ยท (Permalink)
:) I was taught a lot of those kinda tricks by one of my coworkers, he's probably been writing code about as long as I've been around lol.
The fact that GTA V runs quite comfortably, with decent draw distance and no loading screens past the initial one, on what was at the time 7 (PS3) and 8 (360) year old hardware with 512MB RAM (shared on 360, split 256/256 between CPU/GPU on the PS3) continues to blow my mind.
To a certain extent RDR2 does too; how great the lighting looks especially is very impressive considering itโs running on essentially mid-range PC hardware from 5-ish years ago.
MarlinMr ยท 92 points ยท Posted at 13:43:46 on November 14, 2018 ยท (Permalink)
You should try looking at the videos of GameHut. It is a developer who worked on titles such as Toy Story, Crash Bendicot, Sonic, Lego Star Wars, and more.
He talks about how they made the "impossible" possible. He also shows many prototypes that were never released.
I specified recent to indicate that it didn't include the old PC games like Lego Island and Lego Racers, but wow, I forgot how long it had been since Lego Star Wars
His Sega Saturn videos are amazing (see Sonic R). You can see how different the system was, resulting in the Saturn's premature death, and ultimately, the fall of Sega consoles.
*Crash Bandicoot, unless youโre talking about some open source copy of the original game that uses that name.
[deleted] ยท 81 points ยท Posted at 14:18:42 on November 14, 2018 ยท (Permalink)
The sheer amount of real time self-modifying code I wrote for the PS2 still blows my mind when I think about it. When the average PC was about 1.3GHz with 128MB ram the PS2 was 222MHz with three processing units you could run with manual bus arbitration and 8MB DRAM, 32k SRAM, and ... the third memory bank was for ... something I forget. But you could access all three independently AND it was real-mode memory. So write to the wrong address with shitty pointer math didn't mean a default every time, it meant you wrote to the wrong address. Could be the video buffer, MediaEngine (sound chip), etc.
./memories
The Xbox was amazing from a coding standpoint. It was just a DirectX Box thus the name.
The sheer amount of real time self-modifying code I wrote
But why? Or do you mean by accident?
pesmmmmm ยท 27 points ยท Posted at 16:49:39 on November 14, 2018 ยท (Permalink)
It was one of the more powerful techniques to squeeze more functionality into smaller resources. We also used to have multiple overlays in the code segment and mapped which routines needed which other routines resident to organize the overlays to minimize disruption when you needed to swap one out for another. Multiple well organized and optimized code segments allowed programs larger than memory to run by dynamically swapping pieces of themselves in and out of memory as needed. Also highly optimized hand written assembler helped.
Alright, but are we also actually talking about self-modifying, polymorphic code? As in, assembly line x overwrites line y and then jumps into the section containing line y, to exploit some benefit of self-modification? I'm interested because I used to reverse engineer/crack DOS-based virus scanners with trial expiry and the virus scanner in question used self-modification to throw off its own heuristic engine so that its own self-decryption routines wouldn't be flagged as suspicious. It would certainly derail passive disassemblers.
[deleted] ยท 2 points ยท Posted at 22:32:58 on November 14, 2018 ยท (Permalink)
Yes. Is there any other kind of self-modifying code?
jgalar ยท 13 points ยท Posted at 15:57:23 on November 14, 2018 ยท (Permalink)
The things devs could get out of the PS2 still impress me (MGS3, Ico, Shadow of the Colossus and others come to mind).
Can you give an example where self-modifying code paid off?
[deleted] ยท 8 points ยท Posted at 22:15:41 on November 14, 2018 ยท (Permalink)
It was one way of forcing important logic to stay in cache (there was only one level of instruction cache and it was only 16k). It was the only way to maintain 60fps in many games. We also used part of the scratchpad (a programmer-controlled 16k data-cache) as a way of cheating to preload some shit. These are 18 year old memories so it's not guaranteed to be 100% accurate. =p
But the PS2 had one magical instruction: conditional move. So instead of branching (which murders the MIPS pipeline) you could move something from one register/memory to another depending on a register's zero/nonzero state. So this allowed us to self-modify code paths instead of branching; it saved 7 clock cycles (full pipeline stall) minimum on every single branch that would have happened instead of self-modifying. It was a pain in the ass, but we did it. I personally wrote a sound mixer that could outperform the MediaEngine (the hardware mixer) using exactly that (it was the original reason I wrote it; it gave us like 16 channels for audio mixing instead of 4 at the bitrate we were streaming sounds).
uyjulian ยท 2 points ยท Posted at 04:25:38 on November 15, 2018 ยท (Permalink)
The PS2's main processor, Emotion Engine/r5900, was 294/300 MHz (depending on the model) , containing either 32MB, 64MB, or 128MB depending on the model (retail/PSX). The Graphics Synthesizer (the GPU) had 4MB of RAM, but the bandwidth between it and the EE was fast. There was two "Vector Units" in the PS2. VU0 has 4k/4k of instruction/data RAM, and was closely coupled with the EE, while VU1 has 4k/4k of instruction/data RAM, and was closely coupled with the GS.
Then there is the IOP, which handles communications with USB, controllers, memory cards, IEEE1394, SPU2 (sound processor), CDVD drive, HDD, and Ethernet. It had 2MB of RAM on the retail models.
[deleted] ยท 4 points ยท Posted at 05:06:34 on November 15, 2018 ยท (Permalink)*
Ahh man that brings back memories. Sec, I still have those giant sony books around here somewhere.
Using a strict pallette can look great if you can pull it off right, but yeah usually just picking your own colors ends up being decent to make and look at.
Personally I can enjoy games with pixel art, but when something goes full nostalgia and starts imitating that super-restricted color palette it usually looks horribly ugly.
It's kind of weird that the guy above picked that example. There are a lot of other limitations that modern games ignore (number of sprites, number of tiles), but the number of colors is one that's still very important, the pixelart community is very intense about it, and most artists keep to a limited palette
If it looks good to you, you weren't around when NES games came out. That's fine but you're showing your ignorance of what they are supposed to look like. You think they look good because they remind you of retro games like Mega Man but you don't have a clear memory of what those games look like.
It's the equivalent of saying the Kurgan sword from Highlander looks cool. I mean, I guess, if you don't know anything about swords.
I've recently discovered fantasy consoles, which are designed to scratch this itch. It looks like the most popular by far is PICO-8, which limits you to 8x8 sprites, a 64kb ROM size, 32kb RAM, and has a resolution of 128x128 with an extremely limited color palette. It also has a built-in IDE that includes sprite and music creation tools. There are others, like TIC-80 and love2d, but PICO-8 is the most restrictive (and thus the most interesting to me).
Had a whole class where we had to use PICO-8, it ended up helping me get an internship at a AAA game company. It does a good job of helping you understand limitations even though it's only Lua.
Dogeek ยท 3 points ยท Posted at 16:49:19 on November 14, 2018 ยท (Permalink)
In a game jam, I made one game with Pico-8. The only downside to it is taht the programming language has to be done in LUA, which is a terrible scripting language.
The best modern example is Shovel Knight, but even then they did cheat slightly. For the most part, though, the entirety of the game's graphics and sound adhere to the NESs hardware limitations
topdangle ยท 121 points ยท Posted at 13:40:15 on November 14, 2018 ยท (Permalink)*
Maybe in limited color palette but its definitely not trying to imitate all the other limits of the NES, especially the way the nes would start strobing/slowing down once you hit the sprite limit.
Another common complaint is that Shovel Knight uses parallax scrolling, which isn't possible on the NES. Personally, I don't care, because it's the beautiful visual aesthetic that matters to me more than nostalgic feelings.
Mostly it's that the NES didn't support it natively. There was only one background layer that games painted to. If you wanted parallax, you'd have to hack it together yourself which is admittedly pretty tough, especially given the number of cycles you had during a V blank on the NES.
SNES started supporting it natively where you could have multiple background layers.
Bucky O'Hare actually has a basic version of it where the stars scroll at a different speed than the background does
Kered13 ยท 2 points ยท Posted at 22:02:25 on November 14, 2018 ยท (Permalink)
The NES did not have hardware support for parallax scrolling, but some games were able to implement it in software.
brtt3000 ยท 83 points ยท Posted at 13:44:49 on November 14, 2018 ยท (Permalink)
Is that really essential for the aesthetic?
topdangle ยท 102 points ยท Posted at 13:48:19 on November 14, 2018 ยท (Permalink)*
No, but whats essential for an aesthetic isn't the same as whats essential for "the entirety of the game's graphics" adhering to the NES's specs.
Shovel Knight sort of breaks the aesthetic anyway with very fluid animations, heavy layered backgrounds and big multisprite bosses. The game really only looks like an NES throwback in screenshots while in motion it looks and feels way more modern.
Backstop ยท 91 points ยท Posted at 14:27:38 on November 14, 2018 ยท (Permalink)
Shovel Knight is a game that's like how you remember the NES years, but not how it actually was.
Even games that look right at first glance like Bloodstained: CotM have enormous, animated bosses, ridiculous parallax, screen shake effects, etc. Devs are way too tempted trying to make the game look better to embrace the art of real limitations.
Rogryg ยท 1 points ยท Posted at 01:05:39 on November 15, 2018 ยท (Permalink)
Keep in mind that the statement came from the Japanese developers of the game - the Japanese word "ao", which is usually translated as "blue", covers a wider range of colors than "blue", encompassing what we we would call green as well.
EatzGrass ยท 76 points ยท Posted at 13:29:20 on November 14, 2018 ยท (Permalink)
I never made a game but I remember spending a lot of time learning on how to optimize the game thread I think it was.
Something along the lines of figuring out how much time was going to be left over in each cycle and then sleeping for a dynamic number of milliseconds. I remember thinking that 20 FPS looks ok and look how much battery life I could save.
Then Candy Crush came along which turned your phone to lava and said "fuck it". Why waste my time...
People that like different things are soooo stupid, amirite fellow redditors?
Candy Crush wasn't made for you. Most of the things you don't like, are just tailored to a different target group / demographic. They are not less valid because they don't fill your definition of "worthy".
Most people truly don't care about quality in any medium - but nobody says that Candy Crush or Call of Duty is the pinnacle of gaming. People, usually young to middle-aged women in the case of Candy Crush and young males in the case of Call of Duty, play it as a time killer or because they find it entertaining. It fulfills one of their needs, and that's perfectly ok.
It's the exact same with cinema and Marvel movies - people watch them because they are great for what they are - popcorn quality entertainment. They are not great films, but that's not a bad thing.
EDIT: Pointing or challenging the hive-mind mentality of Reddit users always equals to downvotes, but that's ok. It's ok that you disagree, and that's not a bad thing. Candy game bad.
โThe taste of the masses is characterized not by their antipathy to the excellent, but by the passivity with which they enjoy equally the good, the mediocre, and the bad.
The masses do not have bad taste. They simply do not have taste.โ โNicolas Gomez Diego
It sounds like you agree with him. You're not saying that Candy Crush is good, just that people like it and they're allowed to. Well, sure, they're allowed toโbut Candy Crush still isn't good, and there are games that are good, and it would be better if people liked those games, both for their own fulfillment and so that game developers could make games they find more fulfilling to make.
[deleted] ยท 8 points ยท Posted at 14:57:37 on November 14, 2018 ยท (Permalink)*
That seems like a massive overexaggeration when talking about hobbies. In particular, that means everyone needs to care about quality in everything they consume. How exhausting that would be, if I couldn't watch a marvel movie every now and then or play a round of candy crush or read a trashy novel.
This isn't related with education. It is related to customer segments, customer problems and needs.
Someone that plays only Candy Crush, or only plays AAA games or watches only mainstream movies is simply not heavily invested in the medium and that's all there is to it.
These kind of industries have enough space for all kinds of users. Neither the medium nor society will collapse because some people don't care about the quality of the games they have on their phones.
The mobile market, in the other hand, became huge instead, and these "stupid mobile games" were the main reason. This doesn't mean there are no quality titles, or that more won't be developed in the future, for mobile.
Nerrickk ยท 5 points ยท Posted at 14:44:23 on November 14, 2018 ยท (Permalink)
You seem upset, but just so you know, I'm included in the group I was mentioning.
But since you seem like you want a flame war by the way that you paraphrased my post, I'm just going to exit the conversation now. Have a nice day!
Dobe2 ยท 1 points ยท Posted at 04:41:50 on November 15, 2018 ยท (Permalink)
"They hated Jesus because he told them the truth."
I woke up one day wanting to make a simple app and went down a 2 and a half year rabbit hole.
Something like deciding I want to eat a piece of corn then proceeding to learn all of the science of germination, the regions and composition of soils, the laws behind a real estate purchase, the how to's of gardening, the time waiting for my corn stalk to grow, how to raise and milk cows, how to make butter from milk you learned how to get from the cow, learning from scratch, the collective wisdom of fire and cooking, and finally...
Being oblivious to what your target group cares about is a major mistake. You are usually not making a game for you, but for your players - and should relocate resources appropriately.
It's neither the consumer's nor King's fault.
Candy Crush looks, feels and plays great, and is highly appealing - and addictive - to its target group.
In the other hand, whatever the game, 20fps look problematic to say the least.
Ranzera ยท 1 points ยท Posted at 20:38:30 on November 14, 2018 ยท (Permalink)
Depends on the game. I bet a card game needs fewer frames to feel smooth.
Even card games have loads of animations and particles going on - let's take Hearthstone for example. When direct movement due to user input ( the cards in our case ) is added in the equation, 60fps is almost a mandatory target, not only for aesthetics but also for enhanced usability. Sure having lower than 60fps won't be a big deal, but anything less than 30 would be extremely noticeable to the user.
"Threes!" is a famous mobile game that you just swipe cards with numbers on a grid ( basically what 2048 copied ), yet everything is smoothly animated, including the cards themselves. Threes! also offers a battery-saving mode that limits the game to a ~15fps version of itself. If you have the chance, give it a go and see for yourself how much of an impact it has on gameplay.
you couldn't have 50GB day one patches, everything had to fit on disks that shipped. Granted you could have a a dozen 3.5 inch floppies for a game, but that costs money. You had to get the size down to something profitable and it had to install on most computers when there was still a ton of variation in specs.
Anjz ยท 6 points ยท Posted at 14:41:25 on November 14, 2018 ยท (Permalink)
It comes with abstraction. With how sparse everything is, it would take longer to make it more efficient while at the same time keeping it realistic. Oftentimes it's a lot easier to just import an inefficient library that has it fully working rather than spending time making it yourself and cutting down nuances.
snarfy ยท 6 points ยท Posted at 15:53:12 on November 14, 2018 ยท (Permalink)
The Jargon File has a story about a programmer optimizing code back when drum storage was a thing, taking into account the rotation of the drum and location of the read head.
As someone else pointed out, some games use "crude" pixel art, like Undertale and Nidhogg, which make it look worse, instead of setting some limits and trying to do the best they can with that (giving the same feel and better graphics).
That was a choice so the characters could live mostly in the players minds. A pretty good one given the insane popularity and fanart. I'll take that over blurry doom sprites and 5 polygon star fox ships with distance fog.
The only reason anyone wants truely limited systems is nostalgia. Anyone looking back without rose tinted glasses knows working with more power and a good aesthetic is better.
I guess that now that I think about it, what I really want is good animation.
All these new games using 3D models don't really try to deform those rigid models to express more. In the old games, the pixels were hand-placed, so they did a really good job in the animation. Old Capcom fighting games like Darkstalkers, SFA, SF3, and the Marvel series were really beautiful. If you freeze and look at the motions when someone is hit or when they're doing a special, it's really something to behold.
Modern games like Cuphead and Skullgirls really get it, and they do the same things as those old games, and that's what I want more of.
Ah, well modern system power actually gives you a lot more flexibility with deforming models than say, the simplistic cartoon stretching of the original Jak and Daxter or Spiro. But the cartoon aesthetic just isn't as popular atm.
The nice thing about the future is that you can easily make and distribute your own games- Compared to earlier times, anyway. You could just do it yourself.
mmazing ยท 11 points ยท Posted at 14:17:59 on November 14, 2018 ยท (Permalink)
It really is lost on a lot of current developers/programmers. The current trend is โthrow more hardwareโ at it so I can have โmore easy to read, everything is an api now duhโ code and โit doesnโt need to be efficient thatโs what a cache is for.โ
Disgusting and I see it in software everywhere.
[deleted] ยท 3 points ยท Posted at 16:40:42 on November 14, 2018 ยท (Permalink)*
[deleted]
mmazing ยท 0 points ยท Posted at 22:57:22 on November 14, 2018 ยท (Permalink)
Not really, when you don't have efficiency as a primary goal you skimp on it in too many ways and end up with an inferior product.
It shouldn't be the ONLY primary goal, but it should be up there. I've seen far too many projects where the whole thing ends up a bloated mess because people don't understand that a little extra work towards making something efficient goes a long way down the road.
BiH-Kira ยท 2 points ยท Posted at 23:04:46 on November 14, 2018 ยท (Permalink)
I mean yeah, you're right. But I wasn't talking about an extreme version of no optimization. Just that it's far less important (for the company) to optimize as much as possible if you're making something for generally PC or smartphone use.
You should always optimize your code, but at some people optimization starts costing you more than just throwing more hardware at it and that's when you should stop.
mmazing ยท 1 points ยท Posted at 23:18:54 on November 14, 2018 ยท (Permalink)
Everything in moderation, of course. :)
McG_84 ยท 6 points ยท Posted at 14:25:28 on November 14, 2018 ยท (Permalink)
What I really liked is that they were the FULL GAME
As opposed to what? Day 1 patches? Old games have a ton of glitches. Downloading additional data to play? It's not 1990 anymore, it's okay to rely on the internet for large data transfers. DLC? I think you're way overblowing how often dlc is cut content and not something they started work on after development.
[deleted] ยท 3 points ยท Posted at 14:56:10 on November 14, 2018 ยท (Permalink)*
Yeah, I actually wanted to elaborate more on what my problem with new "pixel art" games was, but I didn't know how to put it into words.
"Crude" is exactly what I was looking for. Stuff like Nidhogg really bothers me.
But also more colors is also an issue, because it takes away that retro feel (which is their aim), and new games will not be forced to resort to stuff like dithering.
You are falsely assuming that these games are universally aiming for a โretro feel.โ Pixel graphics have evolved from a limited means of displaying information to a genuine art style. While many pixel artists choose to abide by the limitations of the era in which they were conceived, many freely integrate modern enhancements with the only limitation being resolutionโperhaps in the same way that their predecessors would have had the tech been available to them. Check out Pixel Joint if you want to know what Iโm talking about.
Certainly graphics seen in Fez, Hyper Light Drifter, Celeste, Eastward, Sonic Mania, Owlboy, and many many others would have been impossible in the era that inspired them. And yet, they are beautiful in their own right. Some of these games were likely made with the intent of creating a retro experience, while some chose pixel graphics due to budgetary or personnel restraints, while others still chose their art style purely out of love for the craft. Calling this art โcrudeโ is not only false in my opinion, but it is also an insult to the artists.
You're cherry-picking some of the best that retro graphics have to offer and incredibly small modern indie games. Why compare Gods to Undertale and DOTE when you could compare it to Owlboy and Octopath Traveler?
The criticism of "lazily put together ... to save money" rings hollow when indie developers genuinely do not have the money that would be necessary to make world-class pixel art. Undertale was made by one person. Toby Fox designed the game, wrote the story, composed and produced the soundtrack. A handful of people helped with the graphics, but he was working on a budget of $50,000. That is probably less than the yearly salary of a single 2D asset artist working in the industry.
[deleted] ยท -1 points ยท Posted at 16:11:05 on November 14, 2018 ยท (Permalink)*
At the time of DOTE's release, it was not published by SEGA. SEGA purchased the studio a few years later. See the last sentence: "Sega will also publish Amplitudeโs back catalog as well."
I think you're massively overestimating the impact of association and nostalgia. We're talking about a visual medium here -- people aren't buying Undertale because they were reminded of Chrono Trigger. They play the game because they either like the graphics for what they actually are, or they are indifferent to them. When a developer chooses pixel art, they probably know damn well that they make a profit on association alone. No developer is tricking anyone into buying a game with graphics that they don't like.
Even when not talking about specific titles, it is very obvious that many titles are praised nowadays due to their "retro style" graphics, even though they look worse than most older games.
I'm sorry but you can't disregard specifics and generally say that games are being praised for what you consider to be the wrong reasons. Without specific examples, I just have to take your word for it that (1) these games are being praised specifically for having retro graphics, and (2) they objectively look "worse" than "most" older games.
BTW: Games in the past were also made with low budgets and small teams.
Yes, and I'm guessing that you would not consider most of these games to be the best examples of retro graphics.
undertale might be overhyped, but i actually do think it's an incredible game. but i also had the good fortune of playing it before the fandom arose.
i think that in the case of undertale, it fits the game and looks decent enough. which, to me, just means that if you do it right, the fill tool is good enough. the game wouldn't be any better if it looked better.
buddboy ยท 1 points ยท Posted at 15:12:32 on November 14, 2018 ยท (Permalink)
well back then the hardware was more expensive than the labor so it was more cost effective to pay designers for more hours to make the games smaller.
Now the hardware is so cheap compared to the labor it's cheaper to get it done quick and dirty
fluxxis ยท 1 points ยท Posted at 15:18:15 on November 14, 2018 ยท (Permalink)
And if you didn't have enough memory you could hack your autoexec.bat and config.sys to free up some space by removing unnecessary things like the mouse driver. Today, you buy a new machine.
echo_61 ยท 1 points ยท Posted at 15:21:28 on November 14, 2018 ยท (Permalink)
There's an interview with Nobuo Uematsu where he says he requested that the FFVII music be always ready in memory, so when you entered a battle the music was already playing while everything else loaded from the disc.
There's a great game for the BBC Micro (32k RAM, 6502 processor) called Exile which pushed the machine's memory to such extremes that the save procedure involved crashing the game, soft resetting, and reloading back to the main menu. There wasn't enough memory for a HUD so you had to push F keys to get chimes that told you how much fuel/power you had left. It had a particle system, gravity, inertia, AI opponents with "hearing" as well as "sight", explosions with shockwaves, and a (for the time) huge partially-procedurally-generated map (it would never have fit in memory otherwise).
On the Acorn Electron version you had to put up with the game's sprites being displayed around the gameplay area because of memory limitations.
A good example is the old Dragon Quest games on NES. There was a limited number of colors you could render at once on the NES. When you went low on health, everything that was white turned green/orange. Everything, including beaches on the map and other stuff like that. That's because they shared a color. The pixelated games they make today do not share that restriction, and no one emulates it for that retro feel. Not sure they even know/remember it.
The new "pixelated" games really don't know how to replicate that,
That's not true at all though, it's just that instead of using sprites within a sprite engine that renders every frame of the whole screen basically as a single grid image, modern 'pixelated' games use sprites as entities on top of a background.
I know the distinction is subtle though you can see it in things like rotation.
Oldschool games had to have different sprites for each meaningful angle of rotation, each drawn separately and then kind of 'stop motioned' over each other.
Modern games take that same original pixel sprite and just rotate it around an axis.
Meaning the 'grid' illusion is lost and you realize you aren't looking at a single unified image but a background image with a bunch of image assets tweened over it.
It actually had it's own charm, each sprite was hand drawn and that captures something that just mapping a vertex character to a pixel grid just doesn't approximate.
If anything it's a lot like comparing the end-of-an-era hand drawn anime like Evangelion to a more modern 3d anime like Knights of Sidonia.
Sure both are beautiful in their own ways, though people who grew up on hand drawn anime often feel that those cells have more character and artist influence than just a posed and modeled 3d character.
There are a lot of model tweaks in Evangelion that were basically done on the fly by the animators to convey story points that in hand drawn basically boils down to drawing ten or twelve frames slightly different from the reference character design, whereas in 3d CGI it would take designing and animating a whole new model.
Just like any medium has its limitations, there are fans of those mediums can come to appreciate the techniques artists use to overcome those limitations.
I've had discussions with people on how magnificently elegant the Atari 2600's screen writing process works, it really is a work of engineering genius, yet nearly everyone tells me "Yeah but you only get like 12 pixels for the entire screen". Which is true, compared to modern day tech. That in no way reduces the wonder to me.
But then I grew up on the Atari 2600, it was my first console, and I spent just as many hours as a kid playing big blocky pixel games, and had just as much fun as kids today playing the most advanced 3D games.
And the kids of today will have to contend with whatever media limitations are exceeded by whatever comes next (probably ubiquitous VR) and when they've gotten older, will have to deal with a new generation of gamers wondering how they even could manage to play games on only a flat screen with a 2d plane mouse for input.
And those VR gamers will probably be ragged on by WireHead full immersion brain connection gamers when they get older...
Dav136 ยท 1 points ยท Posted at 16:17:13 on November 14, 2018 ยท (Permalink)
Now you have Fallout 76 with a day one 58 GB patch that is larger than the game itself
acwilan ยท 1 points ยท Posted at 16:20:41 on November 14, 2018 ยท (Permalink)
The other nice thing was that they had to focus on the plot and fun instead of relying on graphics and fan service to please the player
BiH-Kira ยท 1 points ยท Posted at 16:29:00 on November 14, 2018 ยท (Permalink)
Back in the day they created some of the animations by color pallet swapping. Looked like magic. Now we just recently got a modern tool that supported that. Doing that in engine isn't possible in any of the big engines. They will swap the colors rather than the color pickup table making all animations significantly slower. I mean, look at this. This is art. It's one single image, but the pallet is being changed.
On old Intel 8080 systems like that, doing < x -1 was actually quicker than <= x - it saved a CPU cycle as they didn't have the jge ASM code which makes them both the same cycle numbers. Whereas now we have shit like classes :(
T8ert0t ยท 1 points ยท Posted at 16:46:59 on November 14, 2018 ยท (Permalink)
There was a video explanation of one of the people who coded the original Crash Bandicoot and how they had to develop ways to ensure the memory limits of the Playstation could handle the flow of the level.
It was pretty interesting the amount of thought and execution that went into it.
Alfyboy ยท 1 points ยท Posted at 17:06:40 on November 14, 2018 ยท (Permalink)
I think some of the new pixelated games does it right. Take a look at this video. Then again, this game was made for NES and not modern PCs and consoles.
About the efficiency you might enjoy reading some Factorio Friday facts, weekly updates from the devs of the game, they really want to keep the game as efficient as possible since it's meant to simulate up to huge megabases, so you will see stuff like items on belts if fully compressed treated as one single line of items, and excitement for 6% improvements in load time.
They are awesome.
I'm the other way around. While I wait appreciate what old games had to do, I'm very aware that they're running with restricted resources and using outdated game design when I play them. There's only so long I can stare at a 64-color pallette before my eyes are tired if seeing everything rendered in such bright, saturated colors.
Modern games that use a pixelated art style, on the other hand, can step outside of those old limitations when they need to in order to make the art pop more satisfyingly or add modern QOL features that wouldn't have been present in old games.
Undertale completely breaks out of its pixel art style for the Omega Flowey boss fight, making the boss stand out even more and emphasizing his fourth-wall-breaking nature.
Enter the Gungeon has an amazing procedural generation system, an enormous amount of content, and an unlock system that allows some progress to be kept between runs. Toe Jam and Earl was a pixelated rougelike decades earlier, but it lacked the same sophistication in its procedural generation or these modern QOL features.
Hyper Light Drifter, Owlboy, and many other modern pixel art games use a lot of unsaturated colors that just weren't possible in the 80s and early 90s. These allow somber atmospheres to sit much more heavily.
To be clear, I'm not saying that the old classics are bad. I'm saying that, by sheer luck of having more resources to take advantage of and being able to stand on the shoulders of their predecessors, modern games with retro art styles have some nice things that the old classics weren't able to include.
Endblock ยท 1 points ยท Posted at 17:21:03 on November 14, 2018 ยท (Permalink)
I try to keep my pixel art pallets pretty small. I don't make it absurdly low like the NES, but I've remade some newer Pokemon into sprites and I've managed to keep all of them at or under 12 colors and they look exactly like they belong in the GBA era Pokemon games.
There's a game called Micro Mages that recently released that's only 40kb. The guys behind it made a video showing off all the tricks that old games used to use. Here's the video if anyone is interested.
I'm actually sort of doing that now with polishing my game to make it feel smoother; trying out crazy compression techniques and deleting as much unused code as possible. I've already got rid of around 100 mb of data...
You should look up micro mages! It's a new game for the nes
broo20 ยท 1 points ยท Posted at 06:24:16 on November 15, 2018 ยท (Permalink)
Modern games still do that, they're always pushing the boundary of what is possible on any given platform. It's pretty much the only place in tech that actually happens these days.
[deleted] ยท 1 points ยท Posted at 12:22:24 on November 15, 2018 ยท (Permalink)
I can't link it because I'm at work and Youtube is blocked here but 8-bitGuy on Youtube has two fantastic videos explaining these limitations.
Look at the new Morphcat games thing. They're making a 4 player coop vertical scrolling shooter that runs on the NES, using just one memory bank. It looks amazing, and they've done a great job with memory efficency.
[deleted] ยท 1 points ยท Posted at 13:45:00 on November 14, 2018 ยท (Permalink)
Rain World doesn't seem to want to look retro, aside from being 2D, mostly sprite based... and Nintendo Hard.
jabackf ยท 0 points ยท Posted at 17:13:43 on November 14, 2018 ยท (Permalink)*
It's not just efficiency in performance. The games back then just expected less dedication from you overall. They respected you much more. One thing that I've found really refreshing about the Switch is that I can hit the power button and jump right back into my game without sitting through ten minutes of splash screens and cut scenes. Fuck you and your entitled sense of importance that expects me to devote an entire evening in combination with thousands of dollars in computer equipment to experience your product. I'm 31 fucking years old. I don't have the patience for that kind of shit anymore.
Like back in the 90s, I would spend time cutting out returns and simplifying webpages in notepad to make then KB smaller and load a liiiiitle bit faster.
These days? Fuck it, 3 mb 4k image shrunk to a thumbnail, everywhere.
somanom ยท 58 points ยท Posted at 19:23:32 on November 14, 2018 ยท (Permalink)
I miss the times when I was able to watch 1080p YouTube videos. Nowadays they get stuck every second because my laptop can't handle YouTube's new player with it's 60fps.
hudsk ยท 12 points ยท Posted at 21:35:37 on November 14, 2018 ยท (Permalink)
In October I made a program that plays a 'doot' every 15-30 minutes or so. It should've been pretty basic, but it needed to run on a Windows computer without admin rights and with hardly anything installed.
I was lazy and had Electron readily installed, so I use that.
I made a 120MB program to play an 8KB audio file every 15-30 minutes.
It's on Github.
cpmpal ยท 1010 points ยท Posted at 12:19:23 on November 14, 2018 ยท (Permalink)
Save as doot.vbs. The whole thing can probably be written much easier in vbs instead of batch and powershell. This has the benefit of using three different scripting environments in Windows for solving a complex and important problem.
Batch file calling a powershell command to play the sound. Bash isn't installed by default on Windows.
cheraphy ยท 352 points ยท Posted at 13:39:41 on November 14, 2018 ยท (Permalink)
Could have actually gotten away with a powershell script, if execution-policy on the machine allowed running unsigned scripts. actually, you could do it directly in the prompt without a script so execution policy is irrelevant
Once, a horrible storm managed to knock out the internet for the entire complex my office is in. We joked about how the tech who had to work in that hellish weather was all of our personal hero. So I whipped up a powershell script that constantly pinged an arbitrary website until it got a response, and then played "My Hero" by Foo Fighters
genij1234 ยท 87 points ยท Posted at 14:55:04 on November 14, 2018 ยท (Permalink)
I would have to Google first on how to do that because I always forget basic stuff for languages I rarely use
Good luck getting any service inside our building. I am sitting next to a window and I only get 1 to 2 bars. And that is when I am lucky. Don't ask what the building is made of, but I assume in a war it would be the last standing castle
Almost every building in my city has metal bars in the walls to strengthen them against earthquakes. It makes wifi and cellular a mess in some of them, but every few years we appreciate it.
cheraphy ยท 1 points ยท Posted at 18:45:43 on November 14, 2018 ยท (Permalink)
Required .NET framework interop, so a bit above basic stuff. I googled shit on my cell phone
Scratch that, was mixing up instances in my head. I simply launched media player pointing the the MP3 for the song here, but in a completely separate instance I had a similar script play a tone when connection was made. That one used .NET
DrQuint ยท 1 points ยท Posted at 19:49:40 on November 14, 2018 ยท (Permalink)
[deleted] ยท 1 points ยท Posted at 15:58:42 on November 14, 2018 ยท (Permalink)
[deleted]
Mas281 ยท 10 points ยท Posted at 16:41:12 on November 14, 2018 ยท (Permalink)
They mean that it kept pinging a website until any response was received back, since obviously without internet you won't be able to get a response from any website.
A ping response. It was not attempting web traffic, just seeing if it would traverse the path from home to the Internet and back.
cheraphy ยท 1 points ยท Posted at 18:40:57 on November 14, 2018 ยท (Permalink)
Look up the docs for the powershell commandlet Test-NetConnection
I can't recall off the top of my head what I was looking for in the output, but that should point you towards it.
Yeah, I'm currently using Electron for a few small projects and I feel guilty about the filesize...but I feel less guilty about being able to use apps with a decently professional look and feel with extremely fast development and lots of reusable components.
Because the scale is so far different. It's like using a bagger 288 rather than the hand drill when a power drill is also an option. And then the hole (user experience) is actually worse than the one with the hand drill or the power drill.
L3tum ยท 3 points ยท Posted at 17:22:09 on November 14, 2018 ยท (Permalink)
In October I made a program that plays a 'doot' every 15-30 minutes or so. It should've been pretty basic, but it needed to run on a Windows computer without admin rights and with hardly anything installed.
Did this change or what?
Also should've used /s apparently, too many people get butthurt apparently
Nope, but I'm not a Windows user and you can't compile all C# code on Linux easily (maybe it could've been done with Mono, but I didn't want to download and install that much stuff for a joke) and dotnet core only works in command prompts.
So dev'ing on Linux and running the code on Windows was the challenge.
L3tum ยท 1 points ยท Posted at 22:16:27 on November 14, 2018 ยท (Permalink)
It depends how far ago this was, but with .NET core you could actually do that quite easily and even make it a windows service haha.
But I understand the problem now. Cross compilation is still a bitch for anything that doesn't use a full blown game engine or scripting language.
It's Javascript community. Remember, the same community that made the cancer called Electron so they can make freezy slow programs with their horrible scripting language?
The same community that made the emberassing ecosystem called NPM that has tons of stupid and silly one-line packages to check if the input is a number or not, 13 or not, even or not?
The same community that thought Javascript for backend is a great idea?
Names like lazy for easy stuff is not a surprise when you're a Javascript developer, and I'm saying as one too.
The current state of Javascript is reminiscent of the horrible COBOL layers infrastructure. Sure, just encapsulate your shitty script in a super bloated library to make it look like you developed a stand-alone executable! Yeah!
EnkiiMuto ยท 94 points ยท Posted at 14:37:11 on November 14, 2018 ยท (Permalink)
Seriously, it frustrates me how having 13 pages of mostly text make firefox eat up almost 3GB of RAM.
Jazehiah ยท -10 points ยท Posted at 18:01:35 on November 14, 2018 ยท (Permalink)
Part of it is that Firefox like to put all the sites you previously visited in the cache. Then you've got ads. Ads suck memory because they're basically web browsers embedded in the web page.
Oh, and cookies. Did we mention those? Cookies (not the kind you eat, those are amazing) connect to, download from and send stuff to however many websites they want. I wouldn't be surprised if tracking cookies were turning on my webcam and logging my keystrokes.
Let's say you turn on night mode. The site will be able to see the cookies that it put on your computer (and no one else's), and see that you have night mode on.
Also, if you're camera is on the light is on. That's how camera's work. You also need to give permission.
And sites can only see you're key presses when you're on their webpage.
Jazehiah ยท -10 points ยท Posted at 20:11:10 on November 14, 2018 ยท (Permalink)
What is creepy, is how it all adds up. Data collection services track mouse movements, the websites the same computer visits, IP address, etc. Depending on how long you hesitate before clicking something, they can figure out your gender. Based on how you interact with a webpage, they can tell how much you use the Internet and your computer literacy. They build this huge profile so they know exactly what ads to show you.
That's the loading icon. You may have JS disabled? It shows the data that can be collected about you from only mouse movements (and a few other things).
why tf you being downvoted you accepted his point and didn't get salty
Jazehiah ยท 2 points ยท Posted at 17:34:33 on November 15, 2018 ยท (Permalink)
Most likely because I gave a one-word reply, instead of editing my original answer to include an apology. I wasn't technically rude, but I could have been more polite.
I would calk it a /r/lewronggeneration but web devs really make it like this. The browser doesn't help either, every update just makes it load a lot of stuff you don't use making it consume more memory. They are pretty bad handling memory too. The result is a page that has more leaks than an old car with a broken engine.
MrGreggle ยท 125 points ยท Posted at 15:16:10 on November 14, 2018 ยท (Permalink)
The fucking product people and their god damn trackers too.
Or even crazier, something like Optimizely. We have code being executed on production with virtually no oversight, no engineer in our company touched or looked at it, and it just willy-nilly breaks stuff sometimes and we, the engineers, have to track it down. :/
right? Largest thing on our website is 3 analytics trackers. Our sales don't know how to use they ones they already have and get talked into more, by apparently a better salesperson.
Valmond ยท 1 points ยท Posted at 07:12:06 on November 15, 2018 ยท (Permalink)
I have one and only one tracker, and I optimized everything except the last page which have a video and some big images. I think it's loading okay www.mindoki.com
That's not what he's talking about. Tracker scripts are used to track users across all their travels on multiple sites to build profiles of their interests. They are ubiquitous on any sure that relies on user data and ads for profit.
If so, that's an extra 50k on every page of every site you visit that doesn't need to be there. Even if you only get 1 piece of junk mail every day, everyone gets that 1 piece. That's a lot of worthless paper being shoved around, and the people who are receiving it don't want it.
Avamander ยท 151 points ยท Posted at 15:00:53 on November 14, 2018 ยท (Permalink)
Part of the issue is that web dev requires abstraction or massively increased dev time because firefox/IE/Edge/Chrome/Safari/Opera/Chrome on Android can't agree on a single uniform feature set. It's horrible clusterfuck of what's supported and what isn't.
Dont worry guys any day now web assembly will save us all. It will be mainstream right around the corner. Any minute now.
Anyone want to book my talk on how Web Assembly is the future? Please? Here is a link to my medium account, I will talk about anything you want. Please, I need this.
nerga ยท 15 points ยท Posted at 17:47:22 on November 14, 2018 ยท (Permalink)
I love web assembly from what I've used. But I think the issue will inevitably become big corps need to support older browsers that don't have it, so that will take a long time. And the other is that while I can code C and I love Rust, a lot of web devs can barely code JavaScript. Do we really expect some contractors or offshore India devs to do better in webassembly?
Jazonxyz ยท 18 points ยท Posted at 17:58:06 on November 14, 2018 ยท (Permalink)
I work as a web-dev. Basically, optimizing code takes lower priority to implementing new features. A ton of the performance cost comes from loading large assets (HD images) and a bunch of 3rd party analytics scripts, and there's not much we can do about that. Making requests to the backend services can also be quite expensive. I can make a page that is pretty god damn performant, but it would be hard to do it at a large scale, with all the analytics scripts, a bunch of hd images/videos, and within a pretty limited amount of time.
I just want to know the break even point for web assembly.
I want to say the greatest cost for loading and running most pages is actually downloading javascript and not really the overhead of an interpreted language.
Wasm binaries are still a cost to download but as binaries there are all kinds of efficiency gains over transmitting plain text javascript
However, you still need to send that javascript in order to call any of your wasm hotness.
In addition, I believe that engines like V8 can make up some of the download cost by starting to run the javascript immediatly as it comes in, I believe a wasm binary has to wait. Dont quote me though.
Its just hard to see in what common situations it's a significant improvement. I mean, there are tech demos of absurd nonsense but where have you found the best use in day to day?
nerga ยท 2 points ยท Posted at 21:19:23 on November 14, 2018 ยท (Permalink)
I don't think we'll ever see webassembly websites replace banking, e-commerce, etc. But what I do think we might get is higher quality multimedia, games, and nativelike applications in the browser. I think webassembly and canvas will replace electron apps, which should be huge, where the binary is already downloaded, and the browser is acting like a VM.
Hmm if we could make system calls directly from wasm (assuming an electron-style generalized V8 interpreter) we could at the very least do the CEF thing but drop node.js for desktop apps.
My understanding of wasm is that to the browser, it just looks like the final pass of the most optimized javascript. So can wasm access dom api? Because that would be crazy.
Can we do away with all javascript but enough to call the wasm binary?
nerga ยท 1 points ยท Posted at 13:38:48 on November 15, 2018 ยท (Permalink)
Wasm doesn't access the Dom directly, but you can call JavaScript functions that interact with it. Webgl and canvas mean you don't need to use the Dom though, so it might not be an issue at all.
I've fallen to just developing for Firefox and Chrome and putting a note at the bottom of the page that says if it looks fugly you need a better browser
DrQuint ยท 3 points ยท Posted at 19:55:03 on November 14, 2018 ยท (Permalink)
I know of a website that did this ("Better on firefox!") but they did it while putting a cute anime foxgirl saying it, so they're now immune to flak.
Talbooth ยท 6 points ยท Posted at 18:06:02 on November 14, 2018 ยท (Permalink)
I think html5 has a <video> tag, so it supports playing videos (in certain formats anyway) natively. Tho I'm mainly a desktop guy so don't take my words for granted.
EDIT: also, html is not entirely uniform as W3S and WHATWG can't agree on everything.
Avamander ยท 1 points ยท Posted at 18:07:53 on November 14, 2018 ยท (Permalink)*
I guess I should've clarified, playing videos is easy, video player isn't easy. You can't build something like YouTube's player with just HTML.
Actually supported formats vary across browsers, OSs and browser configurations, so it's extra fun to first make sure what you can use to play a video, what audio and video format it can play and then pick the one that's say HW accelerated to save your user's battery. It's super hard to make something that works across browsers.
LeComm ยท 1 points ยท Posted at 18:55:58 on November 14, 2018 ยท (Permalink)
You can play videos, case closed, dont need some shitass javajizz video player that everyone will hate. Considering the <video> tag has been around for quite some time, browser support can't be that bad. W3S says p much all browsers support H264/MP4, even in older versions. If it IS that bad, use PHP to deliver a different video depending on the browser.
Different browsers display the same element differently. That's what CSS and JS fix.
silent5am ยท 72 points ยท Posted at 15:42:18 on November 14, 2018 ยท (Permalink)
It's not just web devs though, it's a problem everywhere: games, software, operating systems.
Limited hardware performance sure is a bottleneck, but it also forced developers to deal with this limit and use resources more efficiently. These days, everything can be upgraded. If something is not optimized at release "oh well, next year's GPU will handle it".
Everything is so bloated now and I understand this is a result of complexity, but that doesn't mean that there is no need for efficiency and optimization (imho).
Its not only complexity, it's money. Optimizing is hard, and hard is time consuming, and time is money. Devs don't usually have the luxury to spend their time optimizing or debugging as much as they should. If the budget is limited optimizing will be at the bottom of the barrel of priorities.
Urgh, unoptimized operating systems is a dark future. Please no.
I can understand everything else. But your base should be optimized. So much waste. There is also less competition in this software area than other software areas, so... It would be super easy/without consequence to bloat and fuck hardware and increase so much waste and inefficiency.
Have... have you used the latest 3 Windows versions? Try running anything after 7 with a 5400rpm hard drive. After a month of use your disk usage will become a bottleneck and the thing will slow down to a crawl.
Do you remember 1990? Do you remember how limited those programs were? How poorly they worked together? It's all nostalgia and rose-coloured glasses now, but I wouldn't want to go back to how we did things then. When text editors had no undo feature, for example.
gp57 ยท 29 points ยท Posted at 16:25:12 on November 14, 2018 ยท (Permalink)
I don't want to go back for sure, I already get headaches when I need to maintain 5~10 years old apps
[deleted] ยท 18 points ยท Posted at 19:46:44 on November 14, 2018 ยท (Permalink)
I can't find it but I'm almost sure that I read that they simply didn't have the source code because that particular part of Office was outsourced and the company that made it no longer existed.
drdibi ยท 2 points ยท Posted at 21:21:23 on November 14, 2018 ยท (Permalink)
Programs don't work together better nowadays. Nearly everything lags, is full of bugs and is unmaintainable. Many things are better but now laziness is king.
The ASM or C programs will only work on one specific OS, one specific architecture, maybe even one specific model of computer. JVM code can run on basically every device including your microwave. Javascript framework ravioli will work on your souped up windows gaming battlestation, the macbook pros in that trendy coffee shop, and the affordable smartphone which is someone's first computing device in Nigeria or Pakistan.
We trade efficiency above all for developer ease and universal accessibility, and that seems like a decent trade-off to me
Thing is, JVM and other interpreted languages don't even need to be compiled for any platform. You only need to make whatever runs them once. That's the beauty of it.
And yet, building once is still much easier and cheaper. I really don't get the Java hate here. While the JVM may be slow to start up, it's not too bad when it's running. Both languages have strengths and weaknesses.
It's good for what it's good at. Should it be running on embedded systems? No. Should it be used for web-apps? No. Should it be used for mobile development? Maybe, but in my opinion, no. It should be used for business applications. It should be used for GUI front ends. And yet for every records management application I see using JVM, I see 20 running in my car, in large industrial control devices, and in other devices that would be cheaper and faster if they ran off of something else. You will also notice that Java written for these systems is NOT PORTABLE.
Also, I just really hate writing in Java. It almost wants you to write ravioli code. Development in C/C++ is pretty slow, but at least I know that all that time will translate into speed.
GreyRobe ยท 2 points ยท Posted at 17:44:15 on November 15, 2018 ยท (Permalink)
Then what, in your opinion would be the choice for back-end of web applications?
Back-end is a pretty fuzzy term, but I would say that C#'s ASP.NET would be a start. Java could be used for back-end development if it makes sense to do so: for instance, if it supports your infrastructure in a way that is not supported yet/ever by newer frameworks. But since back-end is a catch all term for anything not forward facing the user, I would say literally anything else. Especially now with cloud computing, where you could deploy just about any application written in almost any language you can think of. Azure and its ilk have really changed the landscape.
GreyRobe ยท 1 points ยท Posted at 01:02:01 on November 16, 2018 ยท (Permalink)
isn't Microsoft licensing very expensive? I've always heard once you want to scale your service with a Microsoft shop it becomes very lucrative for Microsoft, but not your company. Same with cloud services, though maybe not to the same extent.
It makes sense if you're large enough to need real cloud computing. Also, Amazon has their own thing as well. For large corporations, azure is very appealing.
I (as a developer myself) didn't give a flying fuck about how easy stuff I used in 1992 was to develop, and on that subject I remain clean out of fucks to this very day. Sure it's impressive that Elite or RCT were coded entirely in asm, but beyond that I'm not convinced that many others give a shiny shite either.
Well code that's easy for the developer is less likely to have bugs, can be built to be more complex/functional, and may be easier to have plugins and upgraded features later. If every code change required some bullshit hacking in assembly, the software would be less maintainable and more difficult to improve over time.
[deleted] ยท 6 points ยท Posted at 17:52:46 on November 14, 2018 ยท (Permalink)
I'm absolutely terrified of a microwave with a jvm. A coffee maker would make a lot more sense.
I have a reasonable (out of the market) experience with C++, therefore, I end up looking a little bit into C too, but not too much.
So, correct me if I'm wrong, since I'm not very experienced on that language, but wasn't C developed specifically to work in different computer architectures? Which were the glass of languages before it, I imagine.
Also, this one relates more personally, since I intend to work mostly in C++ when I get out of college.
If the answer is no, does C++ carry this same problem?
Which means that you have to compile to each system, right?
If that's true, I still can't completely grapple how can so many games (mostly C++ in the engines) can have only one SETUP program that works in almost any machine with that specific OS running, since I'd imagine they would need multiple.
The code is just a small part of the game. They could fit millions of copies of code in the same space as a few audio or video files from the game. The setup program figures out which system it is working on, and picks the correct version to install.*
*It's really more complicated than that but that is a good start.
Oh for sure but the question was whether C was designed for portability in mind, which it explicitly was not. It was just something that happened to it early in it's life.
I'm just pointing out the fact that you don't need JVM or an interpreter to run portable code in 2018.
YouRik97 ยท 3 points ยท Posted at 19:19:40 on November 14, 2018 ยท (Permalink)
Before programming languages (like C), you had to program in assembly which directly maps to machine code (it's quite interesting to have a look at how it works just to get an understanding of how computers do things) and thus is very specific to the actual machine you are programming on.
C abstracts away a lot of details about the specific machine (the instruction set basically. Also you have to manage the stack and registers manually in asm) and a compiler (like GCC, Clang, etc.) translates your C code into the machine code for the machine you compile on (or compile to in case of cross compiling). So you need to compile for different architectures if you want the program to run on them.
This is the same for C++ and very similar for other compiled languages.
Then there are languages like Java, C# that don't compile to machine code but instead to a language that is then interpreted by a virtual machine, allowing stuff like garbage collection and a compiled program to run on different architectures if there is a VM for it.
Then there are interpreted languages that are only compiled at run time.
Only a rough (probably too long) overview, but research ASM vs compiled vs JIT vs interpreted languages if you want more info.
I would like to point out that C is often denoted as "universal assembly". Since C is basically ubiquitous nowadays, any low level stuff is done on C/C++ (though the old guard might scoff at you for using C++ without a good reason). There are newcomers like rust and go, which try to regulate what the programmer can and cannot do to improve security.
Saying that Java runs on anything is cheating. Java bytecode will only run on the JVM. The JVM just happens to be ported to everything and have a bootable version
The trade off though is security issues. I've never met a computer problem or virus that wasn't somehow tied to fucking Java. It's a hippy's pipe dream "wouldn't it be great if we all worked together! We just need to.. Uh.. Get rid of a few things and unlock a few doors. Easy peasey!"
> I've never met a computer problem or virus that wasn't somehow tied to fucking Java
Is this a joke? The **vast** majority of major security flaws are due to problems in C like buffer overflows and other issues related to bounds checking. It's more than a meme at this point.
This is coming from someone who loves C and loathes Java - Java has its issues, but if you want to start talking about security flaws you can't just glance over C/C++ upon which the entire security industry remains afloat.
My roommate is a penetration tester, and you're absolutely incorrect if you think that C is any more secure than any modern language. It is so much easier to write unsafe code in C than it is in Java for example.
flavionm ยท 3 points ยท Posted at 21:24:48 on November 14, 2018 ยท (Permalink)
More abstraction = more security unless you're a security specialist, generally.
LeComm ยท -4 points ยท Posted at 19:10:32 on November 14, 2018 ยท (Permalink)
JVM barely ran in a shitty way on early mobile phones. Non-portable java code with architecture-dependent binaries: "Allow us to introduce ourselves". Meanwhile C will most definitely run on your microwave if it has a CPU, and very likely already does. It is "write once, compile everywhere" by concept.
You trade efficiency for a circlejek, mostly. And consumer marketing. And probably a little bit for the web phenomenon.
Multiple JARs were mostly used for different screen sizes because you can't exactly download megabytes of stuff on GPRS or EDGE and they had to split the assets. If the code was written correctly and didn't use some proprietary APIs, it was very portable.
I used to program for Java ME myself until Android took over, and I had no problems with making the midlets run on different devices. By the way, Android uses the exact same approach as Java ME, except it also allows you to use native libraries (but not standalone binaries and with very limited API access).
[deleted] ยท 6 points ยท Posted at 19:50:58 on November 14, 2018 ยท (Permalink)
I laugh when I see web devs call themselves hardcore programmers. They have not been through the hell of writing assembly on a microcontroller with limited registers or writing C when you had to write your garbage collection and understand how references and pointers work.
I still don't understand where sticky headers that take up 50% of the screen come into play however... Looking at you Medium and literally every news website.
4S4T0R ยท 308 points ยท Posted at 13:17:17 on November 14, 2018 ยท (Permalink)
Complexity is like water, it will fill any container it is put into
CMMCQ ยท 142 points ยท Posted at 14:37:29 on November 14, 2018 ยท (Permalink)
I think you were meant to say gas, but otherwise good analogy
The waiter gestures to their empty water glass, "Would you like me to fill your glass?"
/u/CMMCQ scoffs, sweeping chicken tender crumbs from their beard as they lean back in their seat and smile, "Well you see, you couldn't fill that glass if you wanted to."
zeelandia ยท 28 points ยท Posted at 14:56:14 on November 14, 2018 ยท (Permalink)
It works for water as well. I mean it'd be pretty weird to have square water in a hexagon cup.
7up478 ยท 32 points ยท Posted at 14:59:41 on November 14, 2018 ยท (Permalink)
Water only fills part of the container though. It fills it 2-dimensionally and has some depth, but does not completely fill it in 3 dimensions.
Elisvayn ยท 2 points ยท Posted at 17:56:29 on November 14, 2018 ยท (Permalink)
You can say the same about air, get a large bag, breathe in to it a bit, it isn't going to be full of air
7up478 ยท 3 points ยท Posted at 18:31:06 on November 14, 2018 ยท (Permalink)
That's true, they're still not equivalent though.
A liquid will fill the 2 dimensional surface, and once that is filled it will increase in depth, whereas the gas will fill all 3 dimensions simultaneously.
Elisvayn ยท 2 points ยท Posted at 18:45:46 on November 14, 2018 ยท (Permalink)
It's only more noticeable for gasses because they are much less dense, they still behave the same way because they are both fluids
If that gas is the only thing in the container, it will fill the container.
Gas still fills the whole room in your analogy, it's just that the gas separates because some atoms in gaseous state happen to be significantly heavier than other atoms also in a gaseous state.
You're agreeing with me. They don't expand. They fill up to the volume they already had.
CMMCQ ยท 1 points ยท Posted at 15:03:40 on November 14, 2018 ยท (Permalink)
I was thinking if you have a ten gallon container and you have one gallon of water it ain't gonna fill it. But you can put any amount of gas in it, as long as the container can physically hold it, the gas wil fill the entire volume.
Wait would this still work in really high gravity?
Yes. Gasses will conform to any volume, but they will also FILL any volume. All squares are rectangles but not all rectangles are squares. All gasses are fluids and therefore conform to their containing volume. But not all fluids are gasses. Gasses are compressible, and therefore expand to fill any volume, while most other fluids are not compressible, and so will not expand to fill a volume.
Wait so the tendency for gases to disperse is a product of gravity? I did not know this, I thought the particles just bounced off each other or something. Thanks
Evalelynn ยท 14 points ยท Posted at 15:57:09 on November 14, 2018 ยท (Permalink)
No the reason they stay together-ish in nebulae is a product of gravity.
As a .NET dev, I've totally come full circle. 20 years ago my code was a mess of datasets, data adapters, very little in the way of OOP, etc. then I started learning about design patterns and "proper" OOP construction and went down that whole rabbit hole for a decade. So about 5-ish years ago I was all about using an ORM to mutate relational data into objects, often using DTOs to then translate the models into something I can serialize into something that can then be mutated into json (or whatever) objects in case someone was using a browser or something, using IOC containers to get rid of the pesky "new" command, programming literally everything to an interface so I can readily swap out objects, adhering to the SOLID principals, etc etc.
Then recently I realized - this shit just takes WAY too god damn long and it's overly-complicated for most small/medium (sub 250K-ish SLOC) projects. Half the problem is all the fuckery that goes on between the DAL and higher level business/service tiers. We're forcing a square peg through a round hole because DB data is relational but we want "real world-like" objects.
Why not just say fuck it and keep it relational? You can still wrap things up into easy to use APIs to keep things pretty clean. Anymore for me it's back to datasets (I'm talking about the .NET DataSet object) and table adapters. My tiers are super damn clean - I still separate my DAL, service layer, business layer and UI layers, but I don't stress over "proper" OOP constructs. I'm much more diligent and disciplined than I was in my early stages, so the code is clean and organized.
The DataSet is the true god. Interaction between the services/DAL layer is lightning fast and super efficient because there's no ORM fuckery going on. I can easily serialize the results for transmission across the wire. It has built-in change tracking so I know which records have been modified, added, and deleted - but I don't even really need to care about that because table adapters will do the right thing for me.
I still pepper around some OOP here and there, but I'm far less an OOP weenie now than I was a decade ago, and it has saved me SO MUCH time. I can crank out projects in no time and am not constantly stressing about "the perfect OOP architecture". I'm glad I went through the OOP phase though because so many existing projects utilize all that fuckery so I'm familiar with it, but anymore when I'm in charge it's all about keeping it simple af, and delivering to the customer as fast as possible.
[deleted] ยท 0 points ยท Posted at 17:13:55 on November 14, 2018 ยท (Permalink)*
trex005 ยท 3 points ยท Posted at 14:17:04 on November 14, 2018 ยท (Permalink)
They are a fun concept, but I have never found one that stands up to the needs of enterprise level software.
So, no.
akcrono ยท -1 points ยท Posted at 14:20:59 on November 14, 2018 ยท (Permalink)
ActiveRecord certainly does
jek39 ยท 2 points ยท Posted at 15:29:36 on November 14, 2018 ยท (Permalink)
not in my experience.... it's really not much different from any of the others
akcrono ยท -1 points ยท Posted at 17:30:16 on November 14, 2018 ยท (Permalink)
I've worked at two enterprise level rails shops, and ActiveRecord works fine. Every once and awhile you need to go around it to optimize a query, but that's not very common.
I may have used the wrong term, it's asp.net so I end up doing both usually. No front end SQL though...yet.
Keele0 ยท 3 points ยท Posted at 19:00:57 on November 14, 2018 ยท (Permalink)
Maybe just desc tablename.
Or select * from tablename where rownum <2 if you need to see actual sample data
[deleted] ยท 10 points ยท Posted at 13:51:04 on November 14, 2018 ยท (Permalink)
[deleted]
akcrono ยท 22 points ยท Posted at 14:16:20 on November 14, 2018 ยท (Permalink)*
Well, I wanted to scream when my pkeys rolled over, so...
orahsolo ยท 4 points ยท Posted at 14:44:54 on November 14, 2018 ยท (Permalink)
found the rails guy
[deleted] ยท 1 points ยท Posted at 17:49:45 on November 14, 2018 ยท (Permalink)
[deleted]
akcrono ยท 1 points ยท Posted at 18:20:52 on November 14, 2018 ยท (Permalink)
I agree in a perfect world, but imo the problem of larger tables is several orders of magnitude less than a pkey rollover. Then again, in a developer, not a dba
For small apps, prototypes, and apps with small numbers of users, the performance/disk usage hit of bigint is practically zero.
As your tables grow, "no downtime but marginally-higher disk usage" is a strictly better outcome than than "sudden downtime but marginally-smaller tables until that downtime"
We're talking about a maximum difference of 4 bytes per ID column. (Possibly even less because of data alignment.)
I checked a couple of our tables in production. A typical table of ours uses 600 bytes per row. Adding 8 bytes (say, for a bigint primary key and an additional 4 bytes for say a foreign key) is a 1% increase in usage. The cost of that is nothing compared to a potential eventual downtime. (As we experienced once because of this!)
[deleted] ยท 3 points ยท Posted at 18:59:34 on November 14, 2018 ยท (Permalink)
it would do its normal parallax movement on the Y axis, but then it would zoom toward or away from you on the Z while also shifting left or right on the X and when you were done watching it you'd have a sense of deja vu because it actually went back in time to and parallaxed on you and now your two divergent selves' memories are combining again
No comparison of the developer time spent on each though
celvro ยท 29 points ยท Posted at 14:20:40 on November 14, 2018 ยท (Permalink)
I remember in high school spending a ton of time fixing some small personal site to work in chrome Firefox and IE. Now you just include Babel and you're 99% there for a larger range of browsers
Borland really did nail ui design with Delphi. Pity you had to code in Pascal. At least it wasn't java, I guess. I don't remember the ide being that slow in 5 or 6.
The typical game development team used to be A Guy.
That guy would spend a couple months doing witchcraft in assembly so effects would occur microseconds ahead of the television's electron beam.
By the 1990s, the team for Doom fit in an elevator. It took them nine months to code an engine from scratch, optimize it to run on 33 MHz 386s, develop all their own mapping tools, and release the game via mail-order. A similar-sized team then coded another engine and toolchain from scratch to do proper 3D on 66 MHz Pentiums and released that three years later.
Yeah. Running games at 4k requires high res textures for it to look good.
Fineus ยท 112 points ยท Posted at 15:11:35 on November 14, 2018 ยท (Permalink)
Reckon it would be wrong to dream of a distant future where you specify your intended resolution before you download?
The server could then pass up the relevant engine and art assets designed for your needs, rather than downloading 4k art to a machine only intending to run at 1080p.
buck7131 ยท 97 points ยท Posted at 15:28:47 on November 14, 2018 ยท (Permalink)
Some games do this by having a 4k dlc for free
Fineus ยท 28 points ยท Posted at 15:33:30 on November 14, 2018 ยท (Permalink)
Sounds good to me, I think it's great to cater to that level even if it's not the most popular yet, but it's a strain at both ends to have to download all that extra data!
[deleted] ยท 35 points ยท Posted at 15:38:51 on November 14, 2018 ยท (Permalink)*
The 4K textures still affect the game even if you play at 1080p, because the textures are often scaled on the surfaces of the polygons to be larger than the screen.
Fineus ยท 1 points ยท Posted at 16:17:15 on November 14, 2018 ยท (Permalink)
Can those be separated out from those that aren't scaled? (Or do more engines tend to use 4K textures and scale them on the fly or at first launch then cache them) now?
The way the textures work on 3D models is that the modeler creates a set of connected surfaces called polygons and then they unwrap those surfaces onto a 2D plane. Think of a map of the Earth, itโs unwrapped version of a sphere. That unwrapped version is then used to map the pixels from an image (texture) onto the surface. The image has to be large enough in resolution to not look pixelated so for large objects you need bigger textures. The texture can also be scaled down and repeated to make the details smaller, but then the surface will look repetitive. You might notice this on the ground and walls in many games.
When you move the camera closer to the surface, you will see the pixels larger on your screen.
bastix2 ยท 2 points ยท Posted at 10:42:19 on November 17, 2018 ยท (Permalink)
I recently downloaded Destiny 2 which is a whopping 80gb.
Just over 23gb were voice files in 6 different languages. You could reduce the download size by almost 20gb if you would just download the language you want.
Which is a thing blizzard usually does, but not fucking bungie.
I'd rather have even larger downloads as long as the install runs quickly. I game mostly on the PS4, and even though PSN download speeds are crap most of the time, actually installing the patches is even slower than downloading them. Yesterday's BO4 patch was about 9-10 GB, took 10 minutes to download, and another 20-30 to actually install. There is no excuse for that kind of tomfoolery. Bandwidth is cheap.* There's no point in min-maxing for download speeds. But as long as overly aggressive compression isn't a part of your distant future utopia, it sounds nice.
*In Europe.
Fineus ยท 2 points ยท Posted at 16:08:26 on November 14, 2018 ยท (Permalink)
Fair point, I'm probably a bit biased as my internet provider says it doesn't throttle internet but I'm very sure it does (I just downloaded Battlefield V for instance and my internet speed since it finished has been terrible!)
But yeah, if your system is slow to install I can see how you'd want to just get it done ASAP...
As long as you have the option for both, I mean that's the utopia...
If you're going the utopian route, might as well throw in ubiquitous gigabit internet and not worry about bandwidth. Throw in bittorrent-based content delivery to keep up the speeds, and call it a day. Honestly, people with shitty internet would probably be a bit disappointed with the real deal, since so many services are made for people with shitty connections.
Enverex ยท 1 points ยท Posted at 17:58:06 on November 14, 2018 ยท (Permalink)
The two aren't really related unless you're running below 720p. Even at lower resolutions you'll still see benefits from higher resolution textures.
Talbooth ยท 1 points ยท Posted at 18:16:04 on November 14, 2018 ยท (Permalink)
Meanwhile I'm here waiting for the day when assets are specified as vectors, preferably with some fractal-ish behaviour to reduce size and when you are done downloading your few gigabytes it just throws a window on the screen
What resolution do you want to render the assets in?
Yes, I know that vector formats still take up space and that some things can't be effectively represented as vectors. But a man can dream.
Actually it's generally sound. Art is reused a lot and compresses super well. It's also because it needs to be entirely in memory to be used where as sounds are streamed in on demand. For that reason loading times are critical. Plus you needed all languages on their.
I remember the GeForce conference. And I mean GeForce 256 with 64mb. This was the first time you had to fit textures and polygons on the card at the same time. Which was horrendous because you couldn't really stream to card without killing it. At least with the ps2 we could and we had better options for compression. What took 128mb on a PC would happily fit in 28mb on a ps2.
I know this all too well. IIRC, the game Medieval Total War was about 6GB, and it was released a long time ago when 6GB was unimaginably massive.
I liked the music, so I managed to find the songs in the file system. A 57 second sound file was 109 MB. They hadn't compressed the audio at all, and there were dozens of these. The majority of the game was the sound files because they simply didn't bother to compress them. They printed multiple extra CDs per box (which was the only way to buy the game) because they hadn't bothered to compress the background audio. And those 4-CD cases can't be cheap.
So to answer this. The first total war came out right at the time that games started transitioning to compressed audio like mp3, or more likely ogg because it had no licence fees.
The problem is that at the time decoding these took a lot of cpu time. We rejected it for one game because even on our work stations it was around 5%. This means upwards of 20% for the target pc's. So games just used wav files because plaguing them was free near enough.
yonka2 ยท 4 points ยท Posted at 15:04:33 on November 14, 2018 ยท (Permalink)
But it looks pretty as fuck
Fineus ยท 1 points ยท Posted at 15:12:44 on November 14, 2018 ยท (Permalink)
This is Bethesda we're talking about... Skyrim... Fallout... they looked dated and don't run brilliantly vs. more modern games / engines.
Not a slight against the games but at least a comment on how much effort they've gone in to.
yonka2 ยท 7 points ยท Posted at 15:14:03 on November 14, 2018 ยท (Permalink)
I think Skyrim without mods, while a little washed, looks amazing still. So does Fallout 3. They're just kinda dark.
Fineus ยท 0 points ยท Posted at 15:29:12 on November 14, 2018 ยท (Permalink)
Fair enough, personally I think there are far more slick, diverse and modern engines out there. The Skyrim (Creation) Engine came out about 7 years ago now!
yonka2 ยท 1 points ยท Posted at 15:34:18 on November 14, 2018 ยท (Permalink)
Damn, really?
I guess it does come down to personal preference tho.
Fineus ยท 0 points ยท Posted at 16:14:22 on November 14, 2018 ยท (Permalink)
TBF back when it first launched I was blown away, it was impressive. I think what worries me is that while they updated it for Fallout 4 (and maybe Fallout 78/76(?) I can't help but feel the whole thing needs a ground up rework to keep it competitive going forward. I don't think it aged very gracefully in terms of performance.
yonka2 ยท 1 points ยท Posted at 16:44:06 on November 14, 2018 ยท (Permalink)
Performance wise, yeah it's laggy in a lot of spots but that's more a result of the limitations they had rather than efficiency. I could be wrong.
This is why I do (and encourage others to do) scientific computing work using unix tools from the '70's and '80's when practical. These things were written to be as fast as possible on really slow hardware; all of the modern speed increases actually work as speed increases. Most of them are streaming tools as well, which means that you never run out of memory.
Dojan5 ยท 13 points ยท Posted at 14:42:12 on November 14, 2018 ยท (Permalink)
I misread that as "screaming tools" and spent a good three minutes chuckling at the idea of a screaming computer. Actually that reminds me of this old TFTS post.
Rawr_8 ยท 2 points ยท Posted at 19:22:13 on November 14, 2018 ยท (Permalink)
I am a physica undergrad and C and FORTRAN are the ones we use , aside from plotting stuff on MATLAB/Octave
Depending on if you have various restrictions (read: people's opinions) on what you can use, it might be worth looking into xmgrace (or, grace). It's old, but makes nice looking plots and is 100% scriptable. It's very easy to write a script that does analysis all the way through plotting the data at the end.
I will admit that sometimes finding the correct command to pass it is tricky though; the documentation on some parts is kinda sparse.
For example, I have a script that takes a set of .txt trajectories (in t<tab>x<tab>y form), scales them to fit at the same scale as an input image that corresponds to their environment, plots them, and then overlays that onto the background.
(The aspect ratio calculation, and compositing with imagemagic omitted)
Rawr_8 ยท 2 points ยท Posted at 01:17:17 on November 15, 2018 ยท (Permalink)
I'll look into it. I am taking a Computational physics class this semester and our guy is really into ROOT and gnuplot but it seems neat. Thanks for telling me
Gnuplot is also pretty nice -- I personally prefer Grace (except for heatmaps, which it can't do, so I use gnuplot), but they both have advantages and disadvantages.
One of the things that's nice about grace is that its save files just consist of the commands required to recreate it, so you can just do the changes you would want in the GUI, and then either send those commands, or just do the text changes with sed or the like, on other plots.
CXgamer ยท 2 points ยท Posted at 17:44:09 on November 14, 2018 ยท (Permalink)
If you write out your analysis pipeline as a set of Makefile recipes, you can then just make -j <lots> your entire analysis.
E: This is primarily appropriate to people that do repeated trials across parameter sweeps. It's dubiously useful if you have a couple extremely intensive things to do, but if you're looking at a directory tree that looks like project/x23_y43_z3.4_a0_b6/replica-150/raw_data.dat, having a set of pattern rules that processes and collapses each one is extremely effective.
knaekce ยท 114 points ยท Posted at 13:40:32 on November 14, 2018 ยท (Permalink)
Not necessarily. There are free abstractions, there are cheap abstractions and there are costly abstractions. That's 5 layers of costly abstractions for you.
C++ is the other extreme: it embraces zero-cost and cheap abstractions.
zeelandia ยท 36 points ยท Posted at 14:58:01 on November 14, 2018 ยท (Permalink)
Gotta stick Rust in here for zero-cost abstractions.
knaekce ยท 29 points ยท Posted at 15:04:41 on November 14, 2018 ยท (Permalink)*
I omitted it to give fellow Rust-Enthusiasts the opportunity to mention it ;)
Talbooth ยท 5 points ยท Posted at 18:22:49 on November 14, 2018 ยท (Permalink)
Or when things jump around as the page loads. PUT AN EMPTY BOX THERE WHILE IT'S LOADING, IT'S NOT THAT HARD, PEOPLE.
EDIT: who am I kidding. Of course it's hard, it won't work on some obscure browser from 2007 that the company still supports for some reason, or the framework they use doesn't support it.
somanom ยท 4 points ยท Posted at 19:26:44 on November 14, 2018 ยท (Permalink)
Website:Loads
Me: Clicking on link I want to follow
Website: Proceeds loading as I click, so I miss the link and open some random ad.
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
As someone that grew up programming in Turbo Pascal 2.0, that text made me feel very bad about some things we do now. And it is far from obvious that the added layers of abstractions makes it that much faster to code (or results in more stable applications) or that useful end-user features are that much better.
Hello, iโm a newbie in programming. Can you tell me why math is needed? Thanks a lot!
Talbooth ยท 19 points ยท Posted at 18:38:33 on November 14, 2018 ยท (Permalink)
Basically it enables you to figure our how to do stuff efficiently. Dumb example, but if you sketch up some calculation that requires you to calculate the square root of something, that's very expensive in terms of CPU usage, if you can make a formula that performs the same operation without the need for sqrt, it's much faster.
Also, math isn't just algebra. You could for example use your knowledge of graph theory to use certain guarantees given by a graph's mathematical properties to omit (potentially expensive) checks, or use your knowledge of functions (in the mathematical sense) to draw trigonometric, logarithmic, etc. functions as their polynomial approximations (which are waaaaaay faster to calculate).
Btw, for a newbie intro that's short and sweet, pick up "Introduction to the theory of computation" by Michael Sipser.
CLaptopC ยท 3 points ยท Posted at 08:31:22 on November 24, 2018 ยท (Permalink)
To expand on /u/Talbooth, /u/NoNameRequiredxD, You can approximate things and get close enough without having to go as many digits. Taylor Series expansion, is what most calculators are doing.
At the very least, if there's one thing every programmer should (but they usually don't) always do is optimize his/her code so that it runs as fast as possible and requires as little resources as possible. This is a math problem and you need to know calculus for that (and it's not just the calculus you learn in highschool, it's a lot more complicated). Now of course, you can still learn all about a programming language without ever using "advanced" math and learn just what you should avoid in general with a basic introduction to big O, but you're probably never gonna be able to fully optimize your code. Also, if you want to do anything, other than a mobile application, a website, a videogame or some basic IoT, you're probably gonna need math (the level of complexity of things escalates pretty quickly).
InterBore ยท 11 points ยท Posted at 14:29:48 on November 14, 2018 ยท (Permalink)
Twitch and Youtube, but mostly Twitch, are so heavy to run when playing 1080p 60 fps while VLC or mpv have no difficulties playing 4K 60 fps. Why are they so different?
Sosseres ยท 12 points ยท Posted at 16:59:57 on November 14, 2018 ยท (Permalink)
Probably since one can use your CPU and GPU features without a browser blocking access to stop viruses and other malware.
Wow, that seemed so promising. I can't view 8k60 videos on my pc and thought maybe I could watch it without the browser overhead, but it turns out that streamlink is incapable of the only thing that would make it useful to me.
Also, I used someone else's pre-compiled version of it because it's one of those programs that says "just write "pip install program" and it'll work!". Every instance of my using a program telling me that ends up with me having to ruin my anus by forcing my head into it repeatedly to work out which obscure library whoever made it decided to use will solve a non-descriptive error that happens when I try to do literally the one thing the program is supposed to do. This is of course after typing 17 different, strange, and usually barely documented commands into a command line that could have just been one button and a settings menu.
128KB of RAM is firmly 1980s territory. Sure, some 80s designs were still being manufactured in the early 90s, but they weren't running anything with fully polygonal texture-mapped graphics (at least not outside some very limited examples in the demoscene).
If you're going to make memes citing history, at least get the history correct...
Sasakura ยท 73 points ยท Posted at 12:33:51 on November 14, 2018 ยท (Permalink)
The image in the background appears to be of the Sony/Nintendo which would indicate it's a SNES and boasting a 3.58Mhz CPU and 128kb of general purpose RAM.
And the best 3D graphics the SNES managed were mostly flat-shaded polygons with the help of an additional accelerator chip and extra RAM on the cartridge... Pretty sure that image is just being used as a stock photo of some circuitry.
The Sega Saturn and the Playstation (both with 2MB of general-purpose RAM) were the first (mainstream) consoles to have passable 3D capabilities.
In the PC world, you're looking at roughly a 50Mhz 80486 with 8MB RAM (~1995) as a minimum spec for decent-for-the-time 3D.
[deleted] ยท 10 points ยท Posted at 13:24:36 on November 14, 2018 ยท (Permalink)
[deleted]
x3avier ยท -4 points ยท Posted at 13:31:35 on November 14, 2018 ยท (Permalink)
Doesn't matter that it wasn't 3D, it was a great game. Played it again recently and forgot how hard it was. Completed the whole game back in the day and surprised how much of the maps I still remember.
bloqs ยท 3 points ยท Posted at 15:08:20 on November 14, 2018 ยท (Permalink)
It's not either of those things but go off I guess
bloqs ยท 2 points ยท Posted at 18:59:03 on November 14, 2018 ยท (Permalink)
on review that was harsh
rndrn ยท 3 points ยท Posted at 12:58:00 on November 14, 2018 ยท (Permalink)
Although fully polygonal is a bit of a stretch for SNES games, as the polygon count was in the hundred, and the 3D coprocessor had twice the ram of the snes itself.
Still impressive of course.
lleti ยท 2 points ยท Posted at 16:15:37 on November 14, 2018 ยท (Permalink)
What you're seeing on that is the sound chip for the SNES.
The SNES itself was not capable of texture-mapped polygonal 3D, save for when it's being rendered through the SuperFX chip inboard a cartridge. When run through the SuperFX chip, this afforded a 21mhz clock speed, alongside additional pin connectors to expand both ROM, and RAM addresses if made available. Even then though, flat-shaded polygons were generally used, rather than anything that's texture mapped.
This was made available in 1993 with Star Fox, but it wasn't until the second revision in 1995 which saw the SuperFX chip actually be able to reach 21mhz clock speeds. In prior releases, an internal clock divider caused it to be halved to 10.5 or so.
As a fun fact though, the SuperFX chip temporarily became the world's fastest selling RISC processor, due to it being contained within the Starfox cart.
fb39ca4 ยท 1 points ยท Posted at 20:30:26 on November 14, 2018 ยท (Permalink)
I think this is referring to the SNES, which had 128 KiB RAM and cartridges around 1 MB. For polygonal graphics, the Super FX chip was used which ran at about 20 MHz.
[deleted] ยท 9 points ยท Posted at 15:01:36 on November 14, 2018 ยท (Permalink)
I work in the IT industry, my job mostly deals with specing out hardware and systems.
One thing I've noticed: we are able to get more space into smaller packages (i.e. 5 TB 2.5 inch SSD) but there has been no progress in trying to make the actual data more efficient in terms of size. It's a little ass backwards.
anselme16 ยท 63 points ยท Posted at 11:48:19 on November 14, 2018 ยท (Permalink)
Cypher121 ยท 138 points ยท Posted at 13:37:45 on November 14, 2018 ยท (Permalink)
Modern text editors have higher latency than 42-year-old Emacs. Text editors! What can be simpler? On each keystroke, all you have to do is update tiny rectangular region
Use fucking notepad then. "Modern txt editors" need to compare what you're typing to the indices of your entire 10-100k line project every time you enter a letter, find the option that best matches the current context (which it needs to analyze as well) and suggest it to you, and if they don't do that, idiots like that will complain that autocomplete is slow instead.
[deleted] ยท 42 points ยท Posted at 14:11:16 on November 14, 2018 ยท (Permalink)
[deleted]
Akaino ยท 32 points ยท Posted at 14:21:17 on November 14, 2018 ยท (Permalink)
Yeah itโs widely adopted and there are packages for everything. It isnโt the most beginner friendly thing in the world (the best way to install packages is first to install a package manger for example) but itโs not too bad with some googling. And in use I think itโs fantastic.
There is nothing wrong with Atom for most uses though, and if the person who recommended it to you is more likely to give you help when using it, then you might prefer it for that reason.
Fair enough, but I'm not sure how far their capabilities extend. The golden standard for me right now are the IntelliJ IDEs. A rather commonly occurring subtle feature is their ability to alter suggestions based on types in the context. So if I type something like new FileReader(someObject., it's gonna first suggest methods of that object that return File or String, since those are the most contextually applicable options. I'm not sure how far those vim/emacs plugins can go on code analysis is what I'm saying.
Avamander ยท 13 points ยท Posted at 14:57:46 on November 14, 2018 ยท (Permalink)
"Use something that will crash when you try to open a 100000 line file"
Yeah, fair, it's not just a list of all functions that they iterate on, but my point was it's not just "draw a character, yay you have a text editor".
Also, as I mentioned in another comment, it doesn't just autocomplete the word; many IDEs are also aware of the context you're typing in, so they suggest functions/variables with best-fitting types, names, etc., so it's very likely not just "use this data structure and it's done" either.
escozzia ยท 6 points ยท Posted at 15:22:16 on November 14, 2018 ยท (Permalink)
I mean vim with deoplete handles this pretty well and performs infinitely better than opening up an ide, so it's not like autocomplete is the reason so many editors are shit
The thing is, that doesn't need to be done synchronously, it can do that scanning and analyzing in the background and show the results when they become available...
Xelynega ยท 2 points ยท Posted at 20:03:04 on November 14, 2018 ยท (Permalink)
You know that the older text editors could do the same thing too, right? Of course it would be slower than they are without autocomplete plugins, but they're still more memory efficient and faster than their modern electron counterparts.
Sasakura ยท 33 points ยท Posted at 12:42:50 on November 14, 2018 ยท (Permalink)
You'll get disenchanted if you only ever look at the positives of the past and negatives of today.
I agree with the general point, but it's undermined a bit when he says things like:
16Gb Android phone was perfectly fine 3 years ago. Today with Android 8.1 itโs barely usable because each app has become at least twice as big for no apparent reason. There are no additional functions. They are not faster or more optimized. They donโt look different. They justโฆgrow?
No additional functions?
They don't look different?
WTF?
iOS 11 dropped support for 32-bit apps. That means if the developer isnโt around at the time of iOS 11 release or isnโt willing to go back and update a once-perfectly-fine app, chances are you wonโt be seeing their app ever again.
... now he's complaining about dropping legacy features.
And build times? Nobody thinks compiler that works minutes or even hours is a problem.
...
jamany ยท 94 points ยท Posted at 13:23:50 on November 14, 2018 ยท (Permalink)
I genuinely can't think of any additional functions my phone has gained in the last 3 years, but now it hardly works.
Can you give example of any useful features added to the essential Android apps in last few years? I can't think of any. And resources needed were increased dramatically. Heck I could use my old Android 2.1 device nowadays if I wanted and if it was supported (Android Market and YouTube no longer works, but it's only matter of supporting newer APIs).
The only app that is more resource heavy and it makes sense is web browser, because it needs to do more stuff and reder heavy websites.
RubenGM ยท 27 points ยท Posted at 14:38:27 on November 14, 2018 ยท (Permalink)
New stuff since Eclair that you could use for an app:
Animated gif support
Webviews can upload files
Apps can use multiple camera modules
The media framework has changed
Added support for multiple video formats (VP8, WebM...)
NFC support added and then improved
Multicore support
Added support for live streaming (HTTP Live Streaming, RTP and I guess others)
ActionBar added, deprecated and replaced with Toolbar
Fragments added, deprecated and replaced with Support Library Fragments
Hardware acceleration support for 2D graphics
Renderscript
High performance animation framework
Bluetooth and BLE improvements (but it still sucks, as a dev)
VPN API
System UI configurable from the app (status bar visibility and color, navigation bar visibility and color)
Notifications have been completely modified, with a lot more info available and channels to manually select what you want to allow and what you want to block
Wifi scanning API
SMS management API
Printing framework
Storage access framework
Full screen immersive mode
IR blaster API
Fingerprint auth support
Detailed permissions
Custom Chrome tabs
Multi window mode
Shortcut manager API
Vulkan API
Daydream
PIP support
Instant apps
Neural network API
Autofill framework
To this you could add everything in the Support library (AndroidX) or the Google Play Services, both adding functionality to an App and both continuously updated (and growing).
You can create an app that only shows a webview, with targetsdk and minsdk = 28, not add any kind of library at all and it would create a tiny APK. The problem comes when people are using old as fuck phones (your 2.1 example is from eight years ago) and expect the app to 1) install, 2) look fine and 3) work just like on the latest version of Android.
Also, apps don't magically send data to Google. You would have to add that funcionality yourself.
jamany ยท 5 points ยท Posted at 15:16:09 on November 14, 2018 ยท (Permalink)
It's amazing that people are being paid good money to do all that stuff.
If you're using an old device there will be all sorts of shortcuts that are being taken to make the experience smooth, but that doesn't mean it's equivalent
jamany ยท 1 points ยท Posted at 15:14:31 on November 14, 2018 ยท (Permalink)
I'm grateful for these every day. Per App SELinux Sandboxes have changed my life. All it cost was the use of my phone.
What are you talking about? They now have to get your data and send it to lord Google every second. And not talk about those that have to know your location and open the microphone, that's extra analysis that it has to do. Those are huge improvements in apps <features>
[deleted] ยท 6 points ยท Posted at 14:11:41 on November 14, 2018 ยท (Permalink)
That doesn't explain why the app is bloating. If anything it should be slimming since the Dark Lord Google is going all the heavy lifting remotely.
Even if you move the goal posts from "No additional functions at all" to "no features I personally consider useful in a limited set of apps" I can still think of a few off the top of my head. I like the way the Inbox app lets you mark emails as done and hides them from the main email list. And the phone app automatically showing "suspected spam caller" based on the incoming phone number is definitely useful.
As I said, I agree with the general premise, it's just some of the specific points he made were far too extreme absolutes. Claiming they don't look different is 100% pants on head retarded.
So what new functions do you expect to have that much of an performance impact?
And build times? Nobody thinks compiler that works minutes or even hours is a problem.
...
fun thing if you go around and compare, say typical Java-stuff with golang-projects. One of those platforms made an effort to get compile times down.
And no, it's not even a problem of the java-things beeing slow - they "do so much things" like using half a dozen XLM-dialects to generate a single resulting file that is later thrown away because it'd only show warnings in the IDE.
The one that got me was the complaint about requiring user intervention to resolve a synchronization conflict.
This is hardly new -- it's been a core issue with optimistic synchronization conflicts since the beginning of time. You could run into problems like this back in the 90's with a PalmPilot and HotSync if you made conflicting modifications for a single record on both the handheld and the PC. As the computer has no semantic knowledge of the data fields (nor any real way to determine which changes are correct), the only way to resolve the conflict is to ask the user.
It's either that or implement a pessimistic system that involves reservations and locking to ensure only serial modifications to data. I'm not sure how you'd enforce something like this in a decentralized system like file cloud sync, and I doubt he'd be terribly impressed with how annoying such a system would be ("Sorry, you can't edit this file because there are unsynchronized modifications on the server that need to be applied first"; which requires network access, otherwise "Sorry, you can't edit this file because you're not online for us to confirm you have the ability to claim the file lock").
[deleted] ยท 1 points ยท Posted at 14:35:20 on November 14, 2018 ยท (Permalink)*
... now he's complaining about dropping legacy features.
So when phones started dropping the aux port I was one of the ardent naysayers.
But honestly, they are dropping a legacy feature. It is a useful feature but so were 8 track players in cars before cassets, and cassets before CDs, and CDs before streaming. In hindsight I was being just like my grandma. Afraid of change.
H_Psi ยท 4 points ยท Posted at 14:56:44 on November 14, 2018 ยท (Permalink)
Except cassettes and CDs were objectively better: they had more storage capacity, were smaller, and had better sound quality.
Going to bluetooth headphones just makes it so there's one more device you have to remember to charge, and God help you if you want to play something on a device without bluetooth (when everything already has Aux). It barely even changes the form factor of the phone.
Dropping 32 bit support is fine because 64 bit is basically a direct upgrade.
The same can not be said about dropping the aux port. I've had Bluetooth headphones before and even if you ignore the cost, audio quality, latency, connection issues, etc. it's just a hassle having yet another device to charge. That alone is enough for me to be using wires again with my Bluetooth ones gathering dust in a drawer.
The aux port is not a legacy feature. Having to charge your headphones every other day is not the future. Bluetooth and aux port can coexist in a phone and it costs next to nothing for the manufacturers to add. The vast majority of good headphones still use the aux port because it's the best we have in terms of latency and overall performance. Bluetooth is still far from perfect.
Aleyla ยท 15 points ยท Posted at 15:33:18 on November 14, 2018 ยท (Permalink)
Optimization isnโt just a lost art - itโs a word that is no longer in the vocabulary of most programmers.
livrem ยท 4 points ยท Posted at 21:09:07 on November 14, 2018 ยท (Permalink)
But it is. Almost everyone seem to be able to say "premature optimization is the root of all evil". As an excuse to not optimize anything ever. "Hey, hardware is cheap, developer time is expensive!".
CLaptopC ยท 1 points ยท Posted at 08:38:07 on November 24, 2018 ยท (Permalink)
I really want to learn how to Optimize.
arnavb11 ยท 21 points ยท Posted at 11:42:37 on November 14, 2018 ยท (Permalink)
Oppai420 ยท 6 points ยท Posted at 15:56:31 on November 14, 2018 ยท (Permalink)*
WELCOME TO ELECTRON, FOLKS.
Edit: I use Signal and Discord. Both use Electron. Discord is not awful. Signal is abysmal. It takes forever to load. "Loading Messages". Fuck this guy.
Zmodem ยท 6 points ยท Posted at 17:52:06 on November 14, 2018 ยท (Permalink)
The crappy part is that design direction and logic has taken a backseat to simplistic implementation (I'm looking at you, fucking WiX!). You've got "designers" now that are making money quickly because they load up a new site in WiX, drag and drop whatever, wherever, manually adjust each and every element's size, and add fadeIn/Out/Up/Down/Parallax animations to every goddamn thing. What happens when you have all this crap on a dedicated front-end/framework that supports this ease of implementation? A shit ton of unnecessary libraries are loaded to compensate for one thing. And, the more easily something can be implemented by someone with a lack of fundamental coding knowledge, the crappier the user experience.
The biggest culprit to crap page loads are landing pages that support responsive design. But, instead of hard coding simple responsive collapses, they use Wordpress, or another framework (Bootstrap). These aren't a bad idea when you're in a hurry, or can't afford to hire a developer. Most businesses don't even care, as long as the site runs. But, anyone who takes that shit seriously knows that responsive designs, especially on just a simple landing page/one-page-site, are accomplished with relative ease (um, flex?).
The ease of use shit has made competitively edging out a bid more difficult. Out of 20 clients, only one or two actually give a fuck about site performance. Johnny McWebTools over there can outbid a project by a lot, and deliver in a (possibly) shorter window because he's using drag & drop with WiX and firing off a site in less than a week. Running identical sites through Google Page Analytics results in significant, unparalleled performance advantages with a hard coded site. Selling that point is where things get complicated and tricky. But, it is the client's money after all, and I tell them that they are more than welcome to go with the cheaper, faster option, but if they ever need a better option and solution to their problem, they are more than welcome to contact me in the future. Never burn the bridges, always leave the hand open for shaking.
Itโs bloat to you, but every piece of it is a function that someone somewhere relies on to do their job. Itโs the cost of trying to be all things to all people.
I'd describe it as HTML for text documents. It's a markup language, which handles maths formulae and symbols really really nicely. You have to use all the tags yourself though so it's definitely less simple than opening Word and typing away. It does give you a lot of control over the document, but can be frustrating when you spend a while figuring out how to format how you want to when a word processor could do it in two clicks
That being said, all you need is a text editor and compiler to write in LaTeX, which makes it super lightweight compared to anything other than plain text writing.
It's basically a text editor but you code your document instead of just typing characters. Incredibly useful for writing equations and it has quick shorthand for almost any symbol you can think of.
livrem ยท 1 points ยท Posted at 21:16:11 on November 14, 2018 ยท (Permalink)
I like LaTeX and prefer it over something like Word, but it is not particularly lightweight or fast? Compared to Office maybe.
Well yeah compared to Office it definitely is. I use it for equations where it is unbelievably faster than Word.
I also have all my stuff hosted on a website for Overleaf that compiles it all online so you don't need an install. I have to use a few devices to access all my stuff and in college I don't need to keep anything confidential, so it's very handy to just log on anywhere and write through a browser.
If you are feeling nostalgic - try programming in embedded C, or better yet, ASM. I find it much more relaxing than javascript or any other higher level langauge.
livrem ยท 1 points ยท Posted at 21:46:44 on November 14, 2018 ยท (Permalink)
See /r/retrogamedev if you can not find any other good reason to do it.
Gigabab3 ยท 4 points ยท Posted at 16:23:08 on November 14, 2018 ยท (Permalink)
Also "I'm a VP here so I need a octa-core i7, 32GB RAM and a 1TB SSD for email, word and solitare"
NoradIV ยท 21 points ยท Posted at 13:37:20 on November 14, 2018 ยท (Permalink)
Why is forza 7 100GB? Forza 4 did fit in a single dvd.
Wat?
Why adobe reader lag on a quad core when it ran fine on my pentium 3 back in the days?
Sasakura ยท 53 points ยท Posted at 13:59:18 on November 14, 2018 ยท (Permalink)
Why is forza 7 100GB? Forza 4 did fit in a single dvd.
Textures don't compress well. More things are fully textured and those textures are saved at higher resolutions. The vast majority of game size is taken up by textures.
Angelin01 ยท 22 points ยท Posted at 14:34:05 on November 14, 2018 ยท (Permalink)
And audio, don't forget the bloody audio, that takes up quite a big chunk too.
Textures compress fantastically. Lossy compression of can look transparent if you're careful. The highest-quality JPGs you see online are still an order of magnitude smaller than uncompressed RGB.
And why doesn't anyone use procedural generation? You don't need a gigabyte for asphalt. You just don't. It's a noisy pattern that's trivial to generate in endless subtle variety at arbitrary resolution. Red Dead Redemption 2 is the worst for this, because it's all wood and snow and dirt. The textures for everything besides people should fit on a floppy disk.
Sunius ยท 3 points ยท Posted at 18:36:02 on November 14, 2018 ยท (Permalink)
JPEG is a horrible, horrible format for textures, both performance and quality wise. Textures usually use BC6H/BC7.
JPEG is not a texture format, period. I'm using it as a point of reference: even this creaky old standard whose artifacts are familiar to all can manage 10:1 compression with good results.
We are ridiculously good at compressing textures. Some formats go below one bit per pixel. Compression and pixel quality are not at fault for a fucking car game spanning two Blu-Ray discs. The cars could be untextured and still look jawdroppingly good thanks to metallic and clear-coat shaders. The road is an ideal case for noise textures, detail textures, fractal textures, or any other clever idea from twenty years ago. Everything else is supposed to blow past you at 90 MPH.
Dobe2 ยท 1 points ยท Posted at 05:25:51 on November 15, 2018 ยท (Permalink)
Do you know just how slow the processors RDR2 had run on are?
Procedurally generating that much content, at such a high resolution, would be incredibly difficult to do on the current gen consoles CPUs. And while the game is running? 100% impossible.
My pc has a far more powerful processor than the current gen consoles, yet when I use Substance Designer to generate even simple 2-4k textures it takes a few seconds to finish.
Now try doing that at the same time a highly demanding game is running on a CPU that's far weaker.
If it's happening on the processor then somebody fucked up.
Substance Designer is an offline authoring tool. If you measured video encoding speeds based on Sony Vegas then you'd conclude live streaming is impossible.
And even if each texture took a second to finish, at the highest resolution - how is that different from taking a second to retrieve the texture from disk? Doom 2016 has thirty gigs of textures and you still get to see the potato-quality versions when you enter a room.
indigo121 ยท 19 points ยท Posted at 14:13:05 on November 14, 2018 ยท (Permalink)
Games have skyrocketed because they mostly don't compress the audio files anymore. Not compressing the audio means not having to spend processing power decompressing it aat runtime which h meansore processing power available for the graphics and gameplay.
[deleted] ยท 17 points ยท Posted at 14:40:00 on November 14, 2018 ยท (Permalink)*
H_Psi ยท 2 points ยท Posted at 16:16:50 on November 14, 2018 ยท (Permalink)
Thanks!
NoradIV ยท 2 points ยท Posted at 17:07:59 on November 14, 2018 ยท (Permalink)
Audio files? 100gb? I don't think so. Also, with hardware acceleration, compression takes next to no ressources. Unless you mean putting an .mp3 into a .zip, which is pointless.
In fairness, I did first hear about this with Titanfall, and have assumed it extends to other games as well, which is very possibly incorrect, but here's a quote:
โ[Respawn] made the choice toย store them on disk uncompressedย because low-end computers couldnโt decompress that audio on the fly without killing the framerate,โ Barth explained. โThis wasnโt a problem [on consoles] because they tend to have dedicated hardware for decompressing audio.โ
The other big culprit is of course textures. But saying "yeah we use higher resolution art so it takes more space" isn't really as interesting a factoid as "developers conciously made the choice to trade space for performance so that lower end machines can still play the game"
NoradIV ยท 1 points ยท Posted at 17:33:54 on November 14, 2018 ยท (Permalink)
Forza 7 stated that the game is big because of 4k textures.
I am fairly certain computers capable of running 4k should be capable of decompressing and cashing big textures before the race start.
No one talks about this. Adobe PDF viewer is laggy AF! Every time I open a PDF I sit in amazement that it won't scroll at first. Gotta wait... For what? re-render the text it just rendered?
NoradIV ยท 4 points ยท Posted at 17:06:54 on November 14, 2018 ยท (Permalink)
I am seriously curious how adobe manage to make product so unstable and slow. Photoshop takes like over 2gb, and open sources alternatives usually take less than 80mb.
Just to nitpick, Forza 4 took up two DVDs, there was an install disc and a game disc (and Forza 4 was tiny compared to Gran Turismo 4 which was 20GB, and even that wasn't considered very big for a PS3 game).
VR is a joke because of this. Back in the 90s when people did 3DOF sensing with a glorified keychain compass, any integrated GPU from 2008 would've blown their fucking minds. They would've made that magical future technology crank out a thousand frames per second - in glorious flat-shaded 640x480. Now we have people doubt that a 1080 Ti is strong enough to hit 90 FPS because they can't imagine life before physically-based rendering with 4K textures.
processor with the highest IPC on earth overclocked to shit and back and a GPU used to calculate billions of things per second in a amazing detail and huge resolutions? lmao 40 fps in a smoke sucker
Vortico ยท 3 points ยท Posted at 14:17:02 on November 14, 2018 ยท (Permalink)
FWIW, the result of this difference is that software is a lot cheaper to develop, which of course increases the competition of developing software...
livrem ยท 1 points ยท Posted at 21:26:37 on November 14, 2018 ยท (Permalink)
Citation needed. I think the gains in productivity seem pretty insignificant really? Much of that probably comes from using large teams of cheaper developers though, rather than smaller expensive teams?
Setup times can definitely be short now, but time to actually complete anything non-trivial and fix weird bugs and design your logic seems pretty much as hard as always, if not harder with all the dependencies and layers of abstractions obfuscsting things.
Vortico ยท 2 points ยท Posted at 21:45:02 on November 14, 2018 ยท (Permalink)
From experience, Ruby on Rails completely shifted the backend industry. Prior to RoR-like frameworks, a pizza franchise would hire a company at $250k to develop an online ordering system in a mess of Perl scripts and C CGI. After the RoR epoch, everyone uses high level and really well tested Node packages for e-commerce that is hard to find bidders at $12k. The code is easier to develop now, with much fewer bugs, and solves even more problems properly, like proper user authentication instead of home-grown databases. But because of the force of the market, easier things drop in salary as more competitors can complete the same task in two months. The reason can be summarized by micro-packages written in 2016 from this era's explosion of good programming habits, rather than monolithic systems from 1999.
livrem ยท 1 points ยท Posted at 22:26:20 on November 14, 2018 ยท (Permalink)
OK, but then you are essentially taking software development out of the picture, and I must admit I was not thinking of that kind of work. Managed to stay away from that kind of web work so far.
But for general programming, actually implementing some algorithm to solve some problem I think the ease of doing that has scaled up miserably with the scale of our hardware. I have hardware a million time more powerful now than what I had when I wrote my first programs, but do not experience a million-time increase in productivity. Maybe x2 or x3 at most, but any serious problem is still going to require so much overhead in actually designing and figuring out what to do (not to mention all the meetings...) that the gains are barely noticeable over the noise level?
mwc501 ยท 3 points ยท Posted at 14:20:03 on November 14, 2018 ยท (Permalink)
In 1990 u should have at least 4 mb ram but u could survive with 640k just fine if u wanted 16 colors or more.
BiH-Kira ยท 3 points ยท Posted at 16:25:34 on November 14, 2018 ยท (Permalink)
The bottom image is new reddit. Shit looks awful and runs awful. The award for most incompetent redesign since the dawn of time goes to whoever designed that shit.
Back in the day programmers were much more constrained by hardware, so great care was placed on efficiency and resource management. Nowadays optimization is an afterthought (if it's even a thought at all.)
lank3y ยท 3 points ยท Posted at 17:04:22 on November 14, 2018 ยท (Permalink)
Never have truer words been spoken. I can tell you that I have been in projects where middle management had a fit because I was working twenty hours to sort out a small inaccuracy in a computation subroutine. No one wants that! Just get it done good enough and ship it! I kid you not. I was told bluntly that calculations that are 98% or 99% accurate are just fine inside the depths of a finance organization. Ultimately add on fees and service fees would cover any possible losses long term so no one gives a damn about things being done "right" or "correct" or even with financial accuracy for interest rate computations.
Yep, it's all about pushing a minimum viable product out the door then moving on to the next thing, management forgetting that that's a starting point, not an ending point.
Yeah well gaming isn't the only hobby my money goes to, I like to save up. My laptop works perfectly well and I've only got a semester left so there's not much of a point.
Loses a shitload of nuances though, takes the best of past and worst of present. Noone who was alive last century would say they'd want to use PCs made back then, a lot of stuff was horrible, ugly, slow, buggy, finicky - pick any combination of the previous at best.
Henrarzz ยท 4 points ยท Posted at 16:06:54 on November 14, 2018 ยท (Permalink)
Nowadays a lot of software is buggy, horrible, slow, finicky and ugly, too.
Didn't claim otherwise, I only said it's unfair to make comparisons in the style of "Trucks suck because they take 25l/100km" totally ignoring trucks can carry tons of goods.
I'd like today's machines with software of 10-20 years ago. The lagfest would be reduced so much.
livrem ยท 1 points ยท Posted at 21:18:47 on November 14, 2018 ยท (Permalink)
Ugly is pretty accurate for most old (non-games) software. The other things are not really true at all. And if you take some of the old software and run on modern hardware, like boot up FreeDOS, it gives you some perspective on just how slow modern software is.
Mhm, now play a 1080p H265 video and tell me again how much faster FreeDOS is.
livrem ยท 2 points ยท Posted at 22:05:25 on November 14, 2018 ยท (Permalink)
Yes, unfortunately hardware support has not kept up since obviously no hardware producers are making drivers for MSDOS anymore. There are definitely limits to what you can do in FreeDOS. But it is nice to launch an application and it is up and running the same instant you press the ENTER key to launch it. No delays anywhere.
Must admit though that I think a big part of that is just things running without silly animations anywhere. My Android phone feels much faster when battery is almost empty so it switches to power-saving mode, essentially turning off all animations, and that makes it feel several times faster than otherwise, even if I am pretty sure it actually clocks down the CPU and runs slower. So difficult to compare FreeDOS applications to similar applications on a modern OS where everything is delayed by things having to fade in and out and fly around the screen instead of just being rendered.
But it is nice to launch an application and it is up and running the same instant you press the ENTER key to launch it.
After I've set KDE's animations tad faster most things I use do load that fast on my hardware (and my PCs hardware is horribly out of date), but also display on two 1080p monitors and establishes connections sub ms with cryptography that would take minutes on old hardware.
What I'm trying to say is that the overall user experience, feature count and security has gone up, speed has remained roughly the same (because humans are slow, diminishing returns and all that). I wouldn't worry though, we're just now replacing a lot of old and slow protocols for things that are faster, we're getting compilers that are better than ever before running on a wider array of different hardware than ever before. If things get really slow there's always an alternative.
livrem ยท 1 points ยท Posted at 22:55:14 on November 14, 2018 ยท (Permalink)
Yes, a modern computer can do more things, and that is great. I have a problem with things that did work well even on much older hardware, that really does not.
One thing for instance, that it can be nice with multi-tasking, or at least to be able to switch quickly between applications, but with almost every application behaving as if it owned the CPU and all of the RAM for itself that almost always becomes painful, even on my reasonably fast Windows PC bought less than 1 year ago (not to mention the 8 years old iMac I type this on... everything other than running command-line stuff in a terminal is painfully slow).
If you're not afraid, you could try running Ubuntu with xfce, you should get back quite a bit of resources for actual multitasking.
If you have a lot of tabs, chrome has tab suspender that could help with conserving ram.
livrem ยท 2 points ยท Posted at 23:11:05 on November 14, 2018 ยท (Permalink)
I actually run Debian with xfce on my 2 years old laptop. :) Runs pretty well I must admit, but still not as snappy as FreeDOS on the 10 years old laptop.
[deleted] ยท 4 points ยท Posted at 16:04:13 on November 14, 2018 ยท (Permalink)
[deleted]
livrem ยท 1 points ยท Posted at 21:22:02 on November 14, 2018 ยท (Permalink)
Unlimited as in something like 8192 stars, each with a single planet. Still pretty impressive.
(I would look it up, but on mobile chrome and every time I switch tabs to look something up chrome unloads the reddit tab. Thanks bloat. A few pages of text in two tabs should not cause an issue for a device with gigabytes of RAM, but it does.)
sites really seem so fucking slow to load these days. reddit for instance is a good example of something that seems like it should be basic light code but takes ages to load.
That has to be the worst thing. When they first started doing that, I would have to uninstall it after using some lazily coded program that required it because I would get micro-lag spikes in games.
kandoras ยท 2 points ยท Posted at 15:51:21 on November 14, 2018 ยท (Permalink)
I consider it a worthwhile trade to not have to reconfigure extended and expanded memory every time I wanted to play a different game.
livrem ยท 1 points ยท Posted at 21:30:58 on November 14, 2018 ยท (Permalink)
That was solved by and 32-bit DOS extenders though, and to be honest it was never a huge problem before that, just a few lines in your CONFIG.SYS to get a menu of some useful alternatives.
3tt07kjt ยท 2 points ยท Posted at 16:27:06 on November 14, 2018 ยท (Permalink)
Thatโs misleading at best. The game from the 1990s is Star Fox, which was made in 1993 and shipped with a graphics chip in the cartridge itself. When you bought a copy of Star Fox, it wasnโt just some software on a cartridgeโฆ it was an entire expansion card which happened to run Star Fox.
Notice how these cartridges are "Shipped with chips in the cartridge themself"
3tt07kjt ยท 2 points ยท Posted at 18:21:42 on November 14, 2018 ยท (Permalink)
Cartridges contain different amounts of functionality. The Legend of Zelda is not much more than some memory and a battery. Star Fox is very different, it has its own processor (the Super FX) and a significant amount of RAM (256 KiB, which is more than the SNES has in the first place).
The Legend of Zelda is not much more than some memory and a battery.
Correct, it's an "expansion card".
it has its own processor
an additional "computers chip" on an "expansion card"
3tt07kjt ยท 2 points ยท Posted at 18:31:10 on November 14, 2018 ยท (Permalink)
Responding to the edit... Duck Hunt is a good example of a cartridge which is only software. The cartridge for Duck Hunt is as simple as it gets... nothing more than two mask ROMs and a CIC. The mask ROMs contain data, and the CIC authenticates the cartridge as a valid NES game.
Duck Hunt is a good example of a cartridge which is only software.
the ROM stored instructions can be thought of as software, yes, much like the Starfox rom stored instructions.
My major point argument is such that there didn't have to be an industry standard prohibiting CPUs/ GPUs/ RAM/ROM/ any aspect of chip could be wired onto a cartridge and that's not "cheating" as it "serves the purpose of an expansion board" (complete with multi-pin connector).
Manufacturing cartridges weren't greater nor lesser for doing this, and this whole game manufacturing 1980s-now is based around chips working together. Whether or not the 6502 had only one accumulator. (or a limited amount of memory to draw upon).
Back to the "original" point, which includes the pic, the SNES game "Out of this World" does fit the graphic.:
The Apple IIGS and Super NES versions were programmed by Rebecca Heineman, who said: "Since Interplay wouldn't pay for a Super FX chip, I found a way to do it with static RAM on the cart and DMA which got me a great frame rate. Interplay wouldn't pay for the static RAM either, so I ended up using Fast ROM instruction. Interplay wouldn't pay for a 3.6 MHz ROM either. So, frustrated, I shoved my block move code into the DMA registers and use it as RAM running at 3.6 MHz. It worked. I got fast block moves on slow cartridges and made a game using polygons working on a 65816 with pure software rendering."[19] Another World is the only game directly ported from the Super NES to the Apple IIGS, which has the same 65C816 microprocessor.
3tt07kjt ยท 2 points ยท Posted at 19:17:53 on November 14, 2018 ยท (Permalink)
It looks like you're arguing but from what I can tell we don't actually disagree on any major point. So either I don't understand what you're saying, or you don't understand what I'm saying.
Some games have nothing more than mask ROM and supporting circuitry. To me, that's just a medium for delivering software. It sounds like you might disagree with this point.
3tt07kjt ยท 2 points ยท Posted at 19:21:48 on November 14, 2018 ยท (Permalink)
Another World looks 3D but it's definitely not 3D. It just looks 3D. It uses a lot of rotoscoped animations from video footage. All of those polygons you see are just 2D polygons. Some of the original video footage was uploaded to YouTube. This should clear any misconceptions that Another World is 3D. https://www.youtube.com/watch?v=VhGtYfpmxyY
People who complain about phones being updated every year clearly haven't tried browsing the web on an outdated phone. Sure, my iPhone 6 still looks and feels like a modern phone, but internally it's like comparing a Core Duo to a Kaby Lake i5 in the X. Even simple mobile sites can slow the phone to a crawl if not make it downright unresponsive.
Nomikos ยท 2 points ยท Posted at 17:05:16 on November 14, 2018 ยท (Permalink)
That's what frameworks do. Add a relatively predictable and stable overhead so that you can use decades of advancements in programming and design without spending years on a simple program.
It's amusing reading all these comments, everyone talking about "long ago" in the "classic" era of NES and the like, how limited it all was.
The first computer I owned at home had a whopping 2K RAM. I wrote a program to look up movie showtimes on Long Island by hand-entering the movie data from our local newspaper and having a simple lookup interface to it. All the data didn't all fit, so I wound up inventing a compression scheme based on tokens to get it all in memory (I had zero CS knowledge at that point, it was just the obvious and logical way to solve the problem to my roughly 6-year old mind). Then I had to hope all my work wasn't lost due to the cassette it was saved on being eaten. But, if it wasn't, then I was treated to a text-only UI, on my black and white TV, where I could look up movie times rather than having to open the paper like some kind of heathen!
And then I realize how old I am and I'm depressed.
I blame education. My college had professors that exclaimed that optimization is a wasted effort because compilers are so good at it. So we should just make full use of all the resources(CPU power, RAM and other stuff) available to us and leave it to the compiler makers to make things fast and spiffy.
Embedded developer here. At my job, I have a max of 48 MHz CPU and 64 kB of RAM. Then the program needs to fit in 128 kB of ROM.
These have made me learn to appreciate my computing resources and to not be wasteful with them. Many embedded developers have similar experiences as this.
Actually by the '90s it seemed to me that they were really squandering resources. There was a playable ZX81 chess in 1K and that needed to fit the display in too. I've seen a whole game implemented in one line of Applesoft BASIC, i.e. a single page of 6502 memory - 256 bytes.
up48 ยท 2 points ยท Posted at 19:41:43 on November 14, 2018 ยท (Permalink)
Yeah itโs annoyingly that my laptop canโt even browse the web anymore.
This really bothers me with mobile devices and mobile apps. Damn phone manufacturers are being stingy with RAM so they can milk us for stupid amounts of money every year. Devs are happy to just keep pumping out bloatware that all sucks more RAM. Even if we could get a phone with 8 GB RAM fucking devs would just gobble it up in a year. I feel cheated ... I buy a quality phone instead of leasing one, I take care of it so it doesn't get broken or lost but it still won't last me more than 2 years because the fucking minimum system requirements to not be frustrated while using a mobile device keep skyrocketing.
To top it off every fucking business has a stupid app now. Every time I turn around "oh you need our app for that"... "just install our app!" NO NOOOOOOOOOOOOOOOOOO I don't want your shitty, bloated, app that just slows down my phone even more and notifies my all the time about shit I DON'T CARE ABOUT!
huzaa ยท 2 points ยท Posted at 22:57:07 on November 14, 2018 ยท (Permalink)
Yeah, but it runs in a Javascript-based WebAssembly polyfill, on a Java-based browser, running on a Docker container in a Linux VM on VirtualBox with a Windows hosts which runs on a XEN hypervisor.
Hey there u/Minenik ! Glad you liked my image enough to repost it, and it does feel nice to see it making the rounds online, but I would have preferred if you'd crossposted from my original post instead.
1990s - this game is being developed for one target hardware, which we own.
2018 - this web page has to render perfectly in five different browsers, as well as desktop, phone, and tablets. And we donโt even control all the source code.
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
Flampup ยท 1 points ยท Posted at 13:39:09 on November 14, 2018 ยท (Permalink)
See this is what I call a logical progression. smh
col786 ยท 1 points ยท Posted at 13:47:09 on November 14, 2018 ยท (Permalink)
Yes, my computer is 4 years old. Yes, it's due an upgrade but when Black Ops 1 looks and runs better than Black Ops 4 (Multiplayer & Zombies, Blackout makes sense) it ruffles my jimmies.
Alxndr27 ยท 1 points ยท Posted at 16:40:55 on November 14, 2018 ยท (Permalink)
Colvoid ยท 1 points ยท Posted at 17:11:42 on November 14, 2018 ยท (Permalink)
It's like how the Discord app takes up hundreds of megabytes of memory when all it should really need is 5% of that but nobody seems to care enough to fix it. My 16GB of memory is almost half full when I'm not really even running anything, I think it's ridiculous. I wish somebody would make a more efficient browser too as having several windows open somehow takes up a gigabyte of space
I was just talking to my coworker about this subject the other day:
Code optimization is largely taking a back seat to bloat caused by nice-to-haves for developers.
Frameworks require more and more overhead, and the functionality of the code itself isn't chiefly benefitting from that increase in speed.
It's an interesting topic, albeit a bit of a generalization, given the vast amount of languages and applications out there.
Whenever i see something like this, i can't help it but feel that it is an EXTREEEME oversimplification.
I mean, you have to parse HTML, CSS and Javascript, and is not only parse it, is now interpret it and apply it. And then apply all the changes that the user is doing in the page.
I wrote once a 3d viewer of a model and it ran flawlessly using webgl, but it is because it has less layers, less manipulation to do, it is a very specialized API and direct access to a GPU.
The problem is that phone companies are not adjusting their price per gig charges to accomodate for this. 5 years ago I would barely use 2gig of data, 3 years ago I regularly hit 5gig data and now I'm lucky if I stay under my 12gig plan.
ontariu ยท 1 points ยท Posted at 19:54:09 on November 14, 2018 ยท (Permalink)
8gb? Tell that to YouTube...
[deleted] ยท 1 points ยท Posted at 20:19:29 on November 14, 2018 ยท (Permalink)
Yeah but the top one was running one program at a time.
livrem ยท 1 points ยท Posted at 22:00:32 on November 14, 2018 ยท (Permalink)
It would sometimes be pretty nice to have a switch to run a modern OS in single-application mode somehow, but unfortunately I am pretty sure very many modern desktop applications would die instantly without being able to rely on all sorts of heavy background-processes.
It used to be possible to have a pretty good idea what a computer was doing, even when multi-tasking, like in earlier Linux distributions, but I had to give up on that a long time ago. Lists of processes constantly running, often actually running and not just existing in virtual memory, are just insanely long now.
I have a laptop with an i5 4xxx-something, and pages with a big scrolling slideshow (basically every WordPress site) require upwards of 50% of the CPU; it's dual core with 4 threads.
It's probably because the laptop has discrete graphics so the CPU has pathetic graphics processing onboard. But still, a simple website makes the fan spin up.
I remember going to a tech convention in the early 2000s where in one session a rep from Intel was basically encouraging developers to write more complex applications, something along the lines of "focusing on capability over efficiency" in order to encourage the adoption of faster processors.
That, and the huge LCD screens that were on display but not available for sale anywhere because "the market was not ready for it"
Remember, "do less with more"! Make sure your coders actually take advantage of those i9 machines with 32GB of ram. If you make sites less than a megabyte, you're wasting thousands of dollars in unused hardware!
But don't even think about having a JPG background or a color icon. Those are totally just distractions that users hate, unlike waiting five minutes for a page to load, which gives them some quality time to really appreciate the fan noise of their CPU running at full.
tyrazR ยท 1 points ยท Posted at 09:53:39 on November 20, 2018 ยท (Permalink)
The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry.
Henry Petroski
2bevo ยท 1 points ยท Posted at 04:03:31 on November 28, 2018 ยท (Permalink)
i dont think much has changed in that everything is still the same concept except it has gotten way more advanced and regularly avaluable
That's why my virtual machine with Windows 2000 crashes and gives blue screen of death for opening current websites.
aki821 ยท 1 points ยท Posted at 12:44:25 on November 14, 2018 ยท (Permalink)
Anyone cares to chime in with an ELI5 (assuming Iโm not using Chrome)?
[deleted] ยท 18 points ยท Posted at 14:14:17 on November 14, 2018 ยท (Permalink)
Machine code is really hard, so they invented assembly language, to make programming easier.
Assembly language is really hard, so they invented high-level languages, like FORTRAN, Pascal, and C, to make programming easier.
C et al. are hard, so they invented a higher-level languages.
Those languages are hard, so they invented even higher-level languages.
Those languages are hard, so they invented libraries and frameworks.
Libraries and frameworks are hard, so they invented libraries on top of libraries and frameworks on top of frameworks.
As time goes on, more libraries and more frameworks are used on top of each other, but the problem is that the CPU has to spend part of its time just navigating between libraries and frameworks. The end result of this is that, even though CPUs are getting faster all the time, they can't do any more real work than before because of the tower of libraries.
As an example, I am working on a web application that uses the Laravel framework. Laravel is built on so many libraries upon libraries that it needs a special program, called Composer, to make sure all of the libraries are there. Laravel and all of its libraries are written in PHP. The PHP interpreter is written in C, and the C is compiled to machine code.
/u/ach9nk7E did a great job covering the race for higher level language abstraction away from the bare-metal. However I should add that it's not impossible to make a modern web application that performs well.
How well? ... I suppose the true comparison would be to have a native application written in, say C/C++, vs a web page that both present the same UI and feature-set. The benefits to the web application in the browser is added portability; in theory that web app should render on any supported browser on any Operating System and any form-factors device (so Windows 7 with IE 10 vs Safari on a Mac, vs Chrome on Ubuntu vs Chrome on an Android phone). Achieving this with a lower-level language like C/C++ as a stand-alone program is possible, however it needs to be written with each of them in mind and compiled for each different platform, each of which may require specific optimizations.
By contrast, the web was supposed to alleviate these issues by creating some abstraction at a higher level to enable portability (the same code should be able to run on any platform, any browser, the same way by using a shared set of standards). Problem is the standards are not always agreed upon nor adopted by each browser at the same pace resulting in fragmentation. Now we need to write code that works on all of them.
Of course in a true Apples to Apples comparison, the lower level languages will just always perform better. It's a question of how much better and whether that difference is a requirement for the given project in context. Alas a modern web application can be written to perform extremely well to the point where the difference in performance is not an issue under many circumstances, but more often then not there are extreme failures by the developing team to optimize every aspect of it for all use-case scenarios.
[deleted] ยท 1 points ยท Posted at 00:10:43 on November 15, 2018 ยท (Permalink)
I glossed over every advantage of high-level languages except for ease of use by programmers, but as you say, they can be safer and more portable than anything compiled directly to machine code. And you can alleviate many of the performance problems inherent in the language itself using techniques such as JIT compilation.
However, the more layers of abstraction you add, the easier it becomes for programmers to lose sight of how much the CPU needs to do behind the scenes of those abstract operations, leading to programmers writing simple-to-understand but unoptimized code. And nobody does optimization until the unoptimized code is executed enough that the drop in performance is more than perceptible. The result is software bloat.
A good deal of modern web application performance issues can be attributed to the nature of modern web development. There are plenty of web applications made by companies who push deadlines that don't allow for proper testing and planning - whether these are made by professional development teams who know better or by free-lance, junior devs who fit the lowest bid for the job and maybe don't know better.
I've encountered web apps created in Ember, Backbone, AngularJs, on up to bleeding-edge ReactJS - many of which I've seen suffer from performance issues. A lot of these can be attributed to misuse of the frameworks themselves (e.g. enabling far too many concurrent scope binding watchers in AngularJS, misusing events) to relying on existing 3rd party libraries that don't perform or scale well (e.g. large data tables libraries).
Simply relying on libraries because they are at the top of Google search results, or have a lot of stars on GitHub, etc - are not reason enough to expect it is a quality library. A few years ago SailsJS+Waterline was all the rage and being promoted left-and-right by the budding NodeJS community. It had a huge following, large numbers of commits, plenty of stars, and high adoption rate. And yet it was riddled with issues. Big issues. Security vulnerabilities that allowed bypassing route authorization/authentication and even SQL-Injection.
Which brings me back to my point - a small team of highly experienced front-end devs can create an optimized, highly-performant modern web app. Modern web development just tends to move ahead at a pace that doesn't lend to the absolute best practices at every turn (sadly). By the time you've done so, the underlying libraries and technologies you've used are near outdated at this pace.
[deleted] ยท 1 points ยท Posted at 13:51:03 on November 14, 2018 ยท (Permalink)*
[deleted]
aki821 ยท 0 points ยท Posted at 13:51:36 on November 14, 2018 ยท (Permalink)
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
That is a major improvement. Much cheaper to pay a developer and artist to implement with few limitations and it makes products much faster. Human time is much more expensive than computer time :)
1990's computing was also super risky in terms of cybersecurity. Most of the programming methods conducted during that time are now deprecated and are not used anymore. Of course we are not completely protected from cyberattacks currently, but we are a lot better off then we were before.
notocar ยท -2 points ยท Posted at 14:41:59 on November 14, 2018 ยท (Permalink)
Saved comment
XXAligatorXx ยท 1 points ยท Posted at 12:42:00 on November 14, 2018 ยท (Permalink)
Guys pls go make a logo/banner or we'll be stuck with php. here
Cobaltjedi117 ยท 171 points ยท Posted at 13:33:15 on November 14, 2018 ยท (Permalink)
Oh, this is serious
ilikesaucy ยท 14 points ยท Posted at 17:53:35 on November 14, 2018 ยท (Permalink)
Least it's not JavaScript!
iPhoenix_on_Reddit ยท 23 points ยท Posted at 16:47:47 on November 14, 2018 ยท (Permalink)
DEFCON 1
13steinj ยท 77 points ยท Posted at 14:37:09 on November 14, 2018 ยท (Permalink)
You asked a bunch of programmers to design a logo-- what did you expect?
TinMayn ยท 50 points ยท Posted at 16:09:01 on November 14, 2018 ยท (Permalink)
Can't we just use bootstrap?
[deleted] ยท 20 points ยท Posted at 16:21:28 on November 14, 2018 ยท (Permalink)
Can we just use mongodb?
Scorpius289 ยท 15 points ยท Posted at 16:28:53 on November 14, 2018 ยท (Permalink)
It is webscale after all...
iPhoenix_on_Reddit ยท 13 points ยท Posted at 16:48:07 on November 14, 2018 ยท (Permalink)
needs more jQuery.
[deleted] ยท 3 points ยท Posted at 21:19:28 on November 14, 2018 ยท (Permalink)
Weโll just convert the database to Ruby on Rails in access then use the rest of the money to snort blow off hookers
mcampo84 ยท 44 points ยท Posted at 13:41:19 on November 14, 2018 ยท (Permalink)
As a PHP engineer I relish this thought. mwahahahaha!
[deleted] ยท 59 points ยท Posted at 14:11:17 on November 14, 2018 ยท (Permalink)
plasmasprings ยท 64 points ยท Posted at 14:25:49 on November 14, 2018 ยท (Permalink)
"PHP engineer" sounds like "cake athlete"
Neckbeard_Prime ยท 24 points ยท Posted at 14:32:50 on November 14, 2018 ยท (Permalink)
The kicker is that CakePHP is an actual framework. S/he is probably more of a Symfony/Laravel wage slave, though.
xenomachina ยท 13 points ยท Posted at 16:29:27 on November 14, 2018 ยท (Permalink)
laughs in CSS
AcousticDan ยท 6 points ยท Posted at 17:02:10 on November 14, 2018 ยท (Permalink)
https://media.giphy.com/media/94EQmVHkveNck/giphy.gif
wallefan01 ยท 3 points ยท Posted at 23:20:47 on November 14, 2018 ยท (Permalink)
This made me laugh far more than it probably should
Dojan5 ยท 15 points ยท Posted at 14:46:37 on November 14, 2018 ยท (Permalink)
My deepest condolences.
-bryden- ยท 4 points ยท Posted at 15:34:54 on November 14, 2018 ยท (Permalink)
Hey! I'm also thinking about becoming a programmer.
IndividualCow ยท 6 points ยท Posted at 20:36:05 on November 14, 2018 ยท (Permalink)*
As any programmer would tell you, HTML is the best programming language.
Just to make sure you know, this is satire. People often mistakenly think HTML is a programming language when it is not. It is used solely to format how data is displayed.
Rudey24 ยท 1 points ยท Posted at 21:38:30 on November 14, 2018 ยท (Permalink)
Well, not really, that's what CSS is for, right?
IndividualCow ยท 4 points ยท Posted at 21:40:05 on November 14, 2018 ยท (Permalink)
You're right CSS does that, but i can't think of a way to use HTML that isn't to format content.
-bryden- ยท 4 points ยท Posted at 00:06:41 on November 15, 2018 ยท (Permalink)
I believe they call it a markup language
IndividualCow ยท 2 points ยท Posted at 00:08:27 on November 15, 2018 ยท (Permalink)
Yes. It is called Hyper Text Markup Language and it is improved upon by the use of Cascading Style Sheets (CSS).
iamsooldithurts ยท 11 points ยท Posted at 16:04:00 on November 14, 2018 ยท (Permalink)*
Itโs just what you asked for, but not what you wanted...
Itโs perfect!
ETA: had to dig it up: http://www.utdallas.edu/~john.cole/NightBeforeImplementation.htm
SergioEduP ยท 18 points ยท Posted at 13:51:20 on November 14, 2018 ยท (Permalink)
"What's wrong with PHP"
Xelopheris ยท 46 points ยท Posted at 14:25:21 on November 14, 2018 ยท (Permalink)
This is a list that would legitimately take a 3.0 GHz processor with 8 GB of RAM to render.
Dr_Azrael_Tod ยท 12 points ยท Posted at 14:43:15 on November 14, 2018 ยท (Permalink)
with or without having the generator for that list written in Java?
WiseassWolfOfYoitsu ยท 1 points ยท Posted at 21:36:23 on November 14, 2018 ยท (Permalink)
This is just to render the bare HTML page in the browser. NASA is currently working on the technology required to process and generate that HTML page, with current estimates being having enough computing power sometime around 2022.
preseto ยท 10 points ยท Posted at 14:27:35 on November 14, 2018 ยท (Permalink)
PHP
JayInslee2020 ยท 4 points ยท Posted at 20:34:49 on November 14, 2018 ยท (Permalink)
I disable the custom CSS in my preferences due to the abilities to abuse it by using ridiculous colors, removing buttons, adding distracting overlays. I would rather reddit look more like a newsgroup than a 12 year old's myspace page. Just my two cents.
Sullinator07 ยท 2 points ยท Posted at 19:51:30 on November 14, 2018 ยท (Permalink)
Yeah... it looks like we're stuck with it
KiNgOfSpEEdOJaCK ยท 5 points ยท Posted at 14:53:50 on November 14, 2018 ยท (Permalink)
To be honest, PHP logo looks really suitable for this subreddit's name so I don't see any problem with it even if PHP is a horrible lannguage.
GoguGeorgescu ยท 19 points ยท Posted at 17:31:59 on November 14, 2018 ยท (Permalink)
PHP isn't a terrible language at all, just your typical herd brain programmers that are still stuck in 2000 and write bad, inefficient, unoptimized code like it's 2018 and have never used PHP that just vomit their opinions based on rumors think it's bad language.
It's just like the real world, 90% of the population use a sledge hammer because they heard 10 people say the regular hammer is horrible so they'll never actually use the regular hammer but will perpetuate the idea just because they heard it from someone else...oh wait is this religion?
To me the funny thing is that this is an artificially created meme, because you people can't/won't/don't care about writting efficient/optimized/well written code, either because you don't know how or don't care, if it's the latter GTFO of this industry.
Yeah, I know this isn't the subreddit to blow off steam, but this thing has 600 comments, at least 200 people will see this one I'm sure.
WiseassWolfOfYoitsu ยท 4 points ยท Posted at 21:37:59 on November 14, 2018 ยท (Permalink)
For some of us, it's PTSD from having had to work on PHP in the 4.x and early 5.x days. I swore never to touch it again after that.
GoguGeorgescu ยท 0 points ยท Posted at 21:46:40 on November 14, 2018 ยท (Permalink)
Yeah, I know, php4 wasn't the best, neither was the early 5 but it got and getting a lot better, and if you swore not to touch then do it, just don't become a preacher yelling it's a bad language if you didn't touch it for so many years. That's all I'm saying.
WcDeckel ยท 4 points ยท Posted at 18:43:19 on November 14, 2018 ยท (Permalink)
Also bashing php is just boring now. I don't know why people are still upvoting these jokes...
Dr_Azrael_Tod ยท 1 points ยท Posted at 09:11:52 on November 15, 2018 ยท (Permalink)
because bashing PHP is easy
I mean, yes - it's a bit like making fun of disabled children - but people using PHP do it by choice!
GoguGeorgescu ยท 0 points ยท Posted at 18:59:58 on November 14, 2018 ยท (Permalink)
Ikr? They're upvoting mostly because they don't realize it's actually their code that it's made fun of. The guys in the 90s were real engineers, the gods of this industry, not today's mortal programmers that try to make a blockchain with CSS right after they finish a course on code academy or whathaveyou...
Dr_Azrael_Tod ยท 2 points ยท Posted at 08:24:43 on November 15, 2018 ยท (Permalink)
uh.. but it kinda really is?
no, really... I had to use it most of my professional career - it is crappy. More crappy than most languages.
Funny how you compare PHP to a hammer... it's fitting.
you.. what?
GoguGeorgescu ยท 0 points ยท Posted at 08:58:50 on November 15, 2018 ยท (Permalink)
Now I know who I'm talking to, you completed some free courses online and you think you know everything about programming, let me enlighten you. Programming languages, and anything related to them, i.e. frameworks, libraries, packages etc. are in fact tools that enable you to get a job done, so yes, any programming language and its adjacent suppoting stuff can be compared with physical tool, hammer, screwdriver, pliers etc. You're just didn't catch my metaphor.
A couple of months isn't really a career nor is it long enough to make you an authority and allow you to spit out wrongly formed opinions, if you write crappy code, it's not the language that is to blame, you just do.
Not even gonna go into the last one.
Peace!
Dr_Azrael_Tod ยท 0 points ยท Posted at 09:08:48 on November 15, 2018 ยท (Permalink)
you are cute.
and totally wrong - but that was expected after your claims that PHP would be ok.
yeah right...
but if the language comes with a huge bunch of crap (like pretty much all build in functions of PHP - just take a look at array_merge!) then the language is generally crap.
Yes you can work around such stuff. You could use the PHP-hammer to remove nails and use it sideways to hammer nails - that just doesn't make it a good language/tool.
and it's funny how you have to resort to ad hominem - because everybody who claims PHP is crap must be somebody who doesn't know what he's talking about.
It just doesn't work that way.
GoguGeorgescu ยท 1 points ยท Posted at 09:23:15 on November 15, 2018 ยท (Permalink)*
Yeah I was right, I deffinitly know who I'm talking to. I have no clue what array_merge has that bothers you, it does what it says on the tin. JS has Array.concat, jquery has a PHP similar implementation with $.merge and in python you can concatenate with the + operator. You rather do it with a loop like in C++ since I doubt you know how to work with
<vector>or like in Java withListandArrayListandaddAllto another array?Edit: rather than have the JS concat that technically means to "glue" 2 things together and not specifically only a list, I'll take the explicit array_merge function which is self explanatory in what it does and I don't even need to google anything to figure out what I have to do.
Make me understand what makes you the authority to tell other people how bad X language is? Other than the fact that you don't know how to write proper code?
Dr_Azrael_Tod ยท 1 points ยท Posted at 09:29:00 on November 15, 2018 ยท (Permalink)
you really don't? That thing you have going there is worse than I thought.
GoguGeorgescu ยท 0 points ยท Posted at 09:50:12 on November 15, 2018 ยท (Permalink)
I think you should read the docs better, both docs actually.
All fixed
Like I said, a couple of months of programming doesn't mean a career, and it just makes you look stupid because you are too ignorant to actually read and understand the documentation of a language.
Dr_Azrael_Tod ยท 0 points ยท Posted at 09:56:53 on November 15, 2018 ยท (Permalink)
so you really think I didn't?
Uh? No? It's not fixed? array_merge still does the same broken thing it ever did?
Are you claiming I just shouldn't use it?
Because if that's so, then why is it still there?
array_merge_recursive is even kind of worse, because it only half-fixes the original version into something even less usefull. And "+" is possibly the worst option ever, because it just silently dropps stuff when numeric index based things are encountered.
This exactly my point. PHP comes with huge piles of old, broken bullshit that nobody should use. You now have 3-4 versions of how to merge two arrays and none of them is actually consistent and intuitively usable.
In fact in most cases people who use any of this would actually expect something like
accomplishes. And that's something that none of these functions/operators do.
Now tell me again how usefull this PHP-Hammer is!
[Edith:] how often did you switch your "all fixed" comment between array_merge_recursive and + now? Could you please decide what of those broken versions you actually prefer? Not that any of them would be actually good.
GoguGeorgescu ยท 0 points ยท Posted at 10:04:32 on November 15, 2018 ยท (Permalink)
You really are ignorant, using your example I did `array_diff_key($foo, $foo) + $foo` just to prove a point, it does the same thing as `$foo + $foo`
learn to code dude, learn to code, oh and read the documentation carefully next time.
Also, show us how array_merge should work in your preferred language.
Peace
Dr_Azrael_Tod ยท 0 points ยท Posted at 10:17:20 on November 15, 2018 ยท (Permalink)
did you now? It does the same thing?
Well, to start with, any sane language wouldn't silently convert array indices between string and int, then doing different things depending on weather its one or the other.
Heck, most languages do discern between arrays and dictionaries - the whole problem couldn't apply there.
handling "01", "1", "a" and 1 different is just stupid and will lead to people making errors - even PHP could check if what type it is before just doing such stuff.
And even if you do need to do such horrible things, then at least throw a warning when somebody merges "arrays" that contain both numeric and string indices!
"Principle of least surprise" doesn't just apply to GUIs.
GoguGeorgescu ยท 0 points ยท Posted at 10:50:25 on November 15, 2018 ยท (Permalink)
Well excuse me, but your example was
array_merge($foo, $foo)so naturally I solved that problem, you change the problem I'll need to update my answer based on the new context, don't jump from one bad example to another.Now you're comparing apples with oranges, every language has its application domain the only language at that moment in time that could handle only web and wasn't designed as a general purpose language (Rasmus himself said/says that he didn't design the language for what it is used today, but he's still working on/updating it) so you can't expect it to behave like you think it should, if you really don't like it, ask to be changed/updated. That's how most of today's programming languages work, see github. How would you update a language that powers 78.9% of the web, production and all and still be backwards compatible so you don't break more than half the web?
Or did you forget this
So no, PHP doesn't discern between dicts and lists (languages that have dicts and lists tend not to use arrays in its nomenclature, it's just a legacy term for a list from C/C++, that's why you have multidimensional arrays instead of dictionaries, just like mathematics treats lists, vectors for ordered lists and arrays for unordered lists, there is no mention of a dictionary in math)
But coming back to your problem, you still didn't show us your solution to the problem in another language, or you couldn't actually find a language that does what you want it to do the way you want it?
You made me curious now!
GoguGeorgescu ยท 0 points ยท Posted at 11:12:36 on November 15, 2018 ยท (Permalink)*
Ok, so I'm not really interested in your answers anymore, today you have a dozen languages to do webdev in, that work exactly how you like it to work, no one is carrying a floppy with a self made toolbox.js, ie6.js and ie7.js, because jQuery wasn't released yet, anymore. Pick whatever languages you want.
What bothers me is that you and the rest of the hipsters, that learned how to code less than 5 (no, make it 3) years ago, spew shit about stuff you barely used no more than 12 months (not even, I bet) especially when the languages about you speak are older than you.
You don't spew shit about C++ being a bad language, because you don't know it and you never used it and probably never will, because you're afraid, you're lazy, or just I don't know... And the quirks you will never look up on Stackoverflow like you do with PHP.
So yeah, I'm calling it a day, I don't have time for this anymore, enjoy!
Edit: I just remembered you said:
Tell me how Python and JS works for you, and I'll leave you with this to ponder on as my final words: https://www.ics.uci.edu/~lopes/teaching/inf212W12/readings/rdl04meijer.pdf
AcousticDan ยท -9 points ยท Posted at 17:02:58 on November 14, 2018 ยท (Permalink)
ahh yes, now I remember why I unsubbed on my other reddit account.
Dr_Azrael_Tod ยท 1441 points ยท Posted at 13:10:30 on November 14, 2018 ยท (Permalink)
a fun thing was noticing that the SNES-version of chrono trigger in an emulator runs way better than the native android port.
and that's not even looking at how now the game is no longer playable offline or how it wants to download "content" by "chapters" that weren't there in the original.
vozmozno ยท 527 points ยท Posted at 14:44:32 on November 14, 2018 ยท (Permalink)
Not playable offline? That is some bs.
well___duh ยท 404 points ยท Posted at 16:11:08 on November 14, 2018 ยท (Permalink)
DRM is a hell of a drug
FatFunkey ยท 213 points ยท Posted at 16:36:36 on November 14, 2018 ยท (Permalink)
Why would I put an online only DRM on a game that's single player from the 90's that anyone can download an emulator and ROM for free on the internet? Come on I got a little more sense than that................Yeah I remember putting an online only DRM on a game that's single player from the 90's that anyone can download an emulator and ROM for free of the internet.
CakeAccomplice12 ยท 62 points ยท Posted at 16:58:49 on November 14, 2018 ยท (Permalink)
$$$$$$$$$,that's why
Scipio11 ยท 70 points ยท Posted at 17:57:45 on November 14, 2018 ยท (Permalink)
They only lost money though. No one's going to waste time breaking the super awesome DRM you made if they can just click "download" on a ROM site.
It's like adding super strict laws for buying blueberries, but then everyone just goes to their neighbor that has a blueberry bush since it's way faster, easier, and free.
Dontheman23 ยท 15 points ยท Posted at 18:35:37 on November 14, 2018 ยท (Permalink)
Reddit isn't most people. Most people don't break copyright laws to get around DRM. Most people simply put up with DRM if they even know what it is. DRM has been shown to create more profit.
ICallItWork ยท 9 points ยท Posted at 20:34:51 on November 14, 2018 ยท (Permalink)
I would argue that most people aren't downloading a port of a 23-year-old, either, but I don't have the evidence to support or deny that.
Dontheman23 ยท 2 points ยท Posted at 20:43:14 on November 14, 2018 ยท (Permalink)
I do. It's made over a million so far.
beetard ยท 3 points ยท Posted at 22:08:52 on November 14, 2018 ยท (Permalink)
How many rom downloads in the past however many years since the port was released?
ICallItWork ยท 2 points ยท Posted at 22:23:41 on November 14, 2018 ยท (Permalink)
We were comparing the pros/cons of DRM. Would need the amount the game would sell with DRM and the amount it would sell without DRM, and the amount the DRM usage rights/implementation development cost. And compare the two to see which is greater.
Scipio11 ยท 8 points ยท Posted at 20:58:55 on November 14, 2018 ยท (Permalink)
I'm not saying most people. I'm saying people that pirate the game will avoid DRM entirely and the people that legally pay for the game won't trigger the DRM.
So why waste money developing DRM when literally no one is going to trigger it? Expecialy if it has an impact on performance on paying consumers.
It's almost the same argument as the Sim City DRM where the pirates were having a better overall experience than the paying customers
beetard ยท -2 points ยท Posted at 23:16:48 on November 14, 2018 ยท (Permalink)
And gog and cdpr is evidence anti drm games will sell! I mean, when was the last time valve released a game?
Crystality ยท 2 points ยท Posted at 16:47:04 on November 15, 2018 ยท (Permalink)
Just fyi valve is about to release artifact
EthosPathosLegos ยท 7 points ยท Posted at 19:25:55 on November 14, 2018 ยท (Permalink)
Sad.
nimieties ยท 4 points ยท Posted at 19:27:33 on November 14, 2018 ยท (Permalink)
Yeah they'll make money off the huge majority of mobile gamers that see a game in the app store and just want to play it without hassle.
The group that knows how to/has the desire to hunt down an emulator and a rom is very much the minority.
wallefan01 ยท 5 points ยท Posted at 23:26:13 on November 14, 2018 ยท (Permalink)
Yeah. The same reason people will pay $29.95 for a telnet client.
Gathorall ยท 3 points ยท Posted at 09:32:57 on November 15, 2018 ยท (Permalink)
But if the majority will pay anyway, isn't the DRM just wasted money?
LoneCookie ยท 2 points ยท Posted at 22:25:58 on November 14, 2018 ยท (Permalink)
It's not like they advertise their assery or consumers are informed
SayBeaverjuiceX3 ยท -1 points ยท Posted at 19:49:37 on November 14, 2018 ยท (Permalink)
From what I've seen, most ROM sites are bogus and don't provide a download, and if they do have any ROMs they're ones you don't care about. You gotta torrent them nowadays, I think.
Scipio11 ยท 5 points ยท Posted at 21:01:16 on November 14, 2018 ยท (Permalink)
I can't link them here, but if we're talking strictly Nintendo there are huge dumps on legit rom sites, public google drive folders, and just straight up hosting websites (no torrenting or TOR browser needed)
Dr_Azrael_Tod ยท 3 points ยท Posted at 08:53:53 on November 15, 2018 ยท (Permalink)
that SNES-roms are tiny by modern standards does help
Chrono Trigger was one of the bigger ones and is still only 4MB (uncompressed)
Afaik there's not a single one bigger than 6M and the average was more like 1-2M (i.e. Zelda 3 was 1M, SMW only 512K)
YOU CAN FIT EVERY SNES ROM IN ALL RELEASED VERSIONS ONTO A SINGLE DVD!
It's easier/cheaper to share all relevant SNES-roms than it is to share a single movie or the released albums of most bands.
dtfinch ยท 2 points ยท Posted at 21:11:20 on November 14, 2018 ยท (Permalink)
Why would they want to lose money? I really enjoyed their old games, but they killed my incentive to buy any of their rereleases.
CakeAccomplice12 ยท 2 points ยท Posted at 21:16:39 on November 14, 2018 ยท (Permalink)
You are an outlier in the business model
wallefan01 ยท 2 points ยท Posted at 23:28:32 on November 14, 2018 ยท (Permalink)
And yet there's nothing we can do to tell people that's BS and you can just get it for free.
Politics make me sad.
cwew ยท 11 points ยท Posted at 17:00:54 on November 14, 2018 ยท (Permalink)
Cocaine is a hell of a drug
Inglorious-Infamy ยท 3 points ยท Posted at 17:22:30 on November 14, 2018 ยท (Permalink)
TIL Rick James made video games
DBerwick ยท 3 points ยท Posted at 17:24:15 on November 14, 2018 ยท (Permalink)
"Who cares what you want?"
Stranex ยท 2 points ยท Posted at 18:22:03 on November 14, 2018 ยท (Permalink)
solid 10/10 comment.
MadnessMethod ยท 2 points ยท Posted at 00:53:23 on November 15, 2018 ยท (Permalink)
โSee ah neva did things just to do โem...โ
kimrari ยท 2 points ยท Posted at 01:14:24 on November 15, 2018 ยท (Permalink)
Totally read that in rick Jane's voice
[deleted] ยท -2 points ยท Posted at 18:16:21 on November 14, 2018 ยท (Permalink)
[deleted]
Dr_Azrael_Tod ยท 0 points ยท Posted at 19:19:11 on November 14, 2018 ยท (Permalink)
but then it's not theft by any stretch of the definition.
you don't take the game - it's not gone
curiousdan ยท 6 points ยท Posted at 16:34:25 on November 14, 2018 ยท (Permalink)
Nintendo: "hold my beer".
FBML ยท 3 points ยท Posted at 21:15:11 on November 14, 2018 ยท (Permalink)
Get a raspberry pi and emulate all the games. Then put it in a drawer and never play any. But know that you could if you wanted to. Offline.
Dr_Azrael_Tod ยท 2 points ยท Posted at 09:22:26 on November 15, 2018 ยท (Permalink)
But I put the emulator on my phone instead and still play some of them once every X years. (i.e. when I'm at my in-laws, far away from any internet connection)
I can and I do.
SaftigMo ยท 92 points ยท Posted at 16:40:57 on November 14, 2018 ยท (Permalink)
That's because they're using emulators themselves. Sony admitted to using the RPCS1 emulator that everybody has been using up till now for their mini PS1. I'd imagine Nintendo does the same.
the1975 ยท 71 points ยท Posted at 17:00:04 on November 14, 2018 ยท (Permalink)
Nintendo wrote their own
jeffesaurusrex ยท 25 points ยท Posted at 17:50:42 on November 14, 2018 ยท (Permalink)
And it's really good too
ComputerMystic ยท 10 points ยท Posted at 20:59:23 on November 14, 2018 ยท (Permalink)
Its okay, but I dislike that it has visible emulation glitches in a certain SuperFX title (Yoshi's Island is one of the best looking games on the system and you fucked it up by making the BG disappear when you touch fuzzy.)
Beyond that, the main thing I dislike is that they handle audio in every game that isn't Star Fox 2 by blanking the section of the ROM that held the audio samples and storing the samples in (as far as I can tell) the Wii sound format. Your emulator should NEVER ask for an altered ROM, especially given that Star Fox 2 demonstrates it doesn't need them, but I guess they just reused the Virtual Console versions for most of the titles since that's how they did it on the Wii.
Dr_Azrael_Tod ยท 4 points ยท Posted at 09:23:37 on November 15, 2018 ยท (Permalink)
tbf this seems one of the harder titles to emulate - I've seen this glitch on many different emulators over the years.
Midnight_Rising ยท 16 points ยท Posted at 17:56:29 on November 14, 2018 ยท (Permalink)
Well... It's alright. Higan is still more accurate.
[deleted] ยท 15 points ยท Posted at 19:01:44 on November 14, 2018 ยท (Permalink)
It would also run like crap on the kind of low end hardware theyโre stuffing into SNES minis.
jeffesaurusrex ยท 7 points ยท Posted at 18:57:00 on November 14, 2018 ยท (Permalink)
I've been impressed with compatibility considering it was written with 30 games or so in mind. It works with almost everything.
Not just their SNES classic emulator but also the VC ones on the 3DS are great. Higan is obviously better but it takes a lot more juice to run it, too.
itsaworkalt ยท 5 points ยท Posted at 19:24:42 on November 14, 2018 ยท (Permalink)
Well of course, accuracy comes at the price of speed and the SNES mini doesn't nearly have the hardware to run Higan (or their own similarly accurate emulator).
vanderZwan ยท 2 points ยท Posted at 22:46:10 on November 15, 2018 ยท (Permalink)
It would have brought great dishonor to the legacy of Satoru Iwata if they hadn't
Shiz0id01 ยท 21 points ยท Posted at 17:14:00 on November 14, 2018 ยท (Permalink)
RPCS1 isn't an emulator, you're thinking of PCXReArmed
damian001 ยท 32 points ยท Posted at 17:28:31 on November 14, 2018 ยท (Permalink)
I bought SimCity 2000 on Origin for nostalgia purposes, but mostly because I was expecting it to be the Windows version that had extra tilesets to change the look of the city. But nope, it simply installed DOSBox and the DOS version of SC2K.
refunded that shit immediately.
ProgMM ยท 22 points ยท Posted at 19:43:44 on November 14, 2018 ยท (Permalink)
Fun fact: the Windows version still works. The biggest issues are that it seems to bring up a save dialog which is no longer supported (someone patched this) and animated tiles seem to freeze since 256 color palettes needed to be enabled manually (change settings pre-XP, compatibility mode thereafter) and aren't actually supported by Windows 8+. Also, the installer doesn't work on its own in 64-bit but that's easily worked around.
https://pcgamingwiki.com/wiki/SimCity_2000
GOG and EA use the DOS version because it appears to be more stable, because it's cross-platform, to prevent the above issues, and to future-proof since DOS emulation will outlast native support for the Win32 API and versions of DirectX from 1995.
If you think getting the old Windows version to run is a pain, lord help anyone who wants to run the original version for 68k/PPC Macs running OS 7-9... *shudders*...
tmlnz ยท 2 points ยท Posted at 22:10:06 on November 14, 2018 ยท (Permalink)
The original version runs perfectly on Mac OS 9 in SheepShaver.
http://macintoshgarden.org/games/simcity-2000-collection
ProgMM ยท 1 points ยท Posted at 00:33:23 on November 15, 2018 ยท (Permalink)
Still a pain in the ass to get working imo.
Reihar ยท 1 points ยท Posted at 12:35:08 on November 15, 2018 ยท (Permalink)
Or you'll have to use wine on windows (<troll>or on something better like GNU/Linux</troll>).
scriptmonkey420 ยท 3 points ยท Posted at 20:11:02 on November 14, 2018 ยท (Permalink)
Run it on android. I did.
Enverex ยท 10 points ยท Posted at 17:49:53 on November 14, 2018 ยท (Permalink)
Did you actually make this name up? Haha.
SaftigMo ยท 3 points ยท Posted at 18:34:15 on November 14, 2018 ยท (Permalink)
I just assumed the naming scheme was the same as for the lster emulators, because I didn't bother to check on mobile.
ComputerMystic ยท 3 points ยท Posted at 21:03:29 on November 14, 2018 ยท (Permalink)
What's funny is you would've been right if you'd based it on the PS2 emulator, PCSX2, instead of the PS3 emulator, RPCS3.
Because IIRC Sony used PCSX-R
GameKyuubi ยท 6 points ยท Posted at 18:25:50 on November 14, 2018 ยท (Permalink)
You'd be surprised how much Japan hates open source software. They'd rather sink their own company than use someone else's code.
ComputerMystic ยท 3 points ยท Posted at 21:05:17 on November 14, 2018 ยท (Permalink)
Good ol' Not Invented Here syndrome. Gotta love it.
Why can't companies just think in terms of Proudly Found Elsewhere instead?
CAPSLOCK_USERNAME ยท 9 points ยท Posted at 17:21:40 on November 14, 2018 ยท (Permalink)
Hell, Microsoft's whole "backwards compatibility" system that let you play original xbox games in the xbox 360 was just an emulator.
PM_ME_M4SSIVE_TITS ยท 2 points ยท Posted at 22:09:23 on November 14, 2018 ยท (Permalink)
I love your username
[deleted] ยท 0 points ยท Posted at 19:48:32 on November 14, 2018 ยท (Permalink)
Probably makes it a little easier since they've used a common API across the different consoles
RolandTheJabberwocky ยท 3 points ยท Posted at 17:26:43 on November 14, 2018 ยท (Permalink)
Nintendo made their own, and it was found to be better iirc.
Enverex ยท 6 points ยท Posted at 17:50:49 on November 14, 2018 ยท (Permalink)
Are you referring to the Virtual Console or the NES/SNES mini? Because none of those were better than the current PC emulators for the same platforms (BSNES, Snes9x, etc).
reallynotvegan ยท 27 points ยท Posted at 14:34:03 on November 14, 2018 ยท (Permalink)
I need to know more about this
Dr_Azrael_Tod ยท 50 points ยท Posted at 14:53:28 on November 14, 2018 ยท (Permalink)
trust me, you really don't
anonymocities ยท 5 points ยท Posted at 16:52:48 on November 14, 2018 ยท (Permalink)
here you go... sort of
Dr_Azrael_Tod ยท 3 points ยท Posted at 19:38:27 on November 14, 2018 ยท (Permalink)
no, that's about the steam-version
it's shitty too
skygz ยท 9 points ยท Posted at 16:50:19 on November 14, 2018 ยท (Permalink)
the DS version in an emulator is IMO the best way to play it
DrVladimir ยท 5 points ยท Posted at 17:23:45 on November 14, 2018 ยท (Permalink)
I beat SNES Chrono Trigger on a 486 with zsnes. Couldn't have sound or texture transparency, but it was amazing to see a SNES emulator running full speed on such a slow computer
Kyanche ยท 6 points ยท Posted at 17:53:35 on November 14, 2018 ยท (Permalink)
The emulator engines themselves are usually about as impressive as the games are. I had a similar experience with Ocarina of Time on an old desktop back in the day lol.
RolandTheJabberwocky ยท 3 points ยท Posted at 17:26:04 on November 14, 2018 ยท (Permalink)
Yeah no that port is fucking garbage, I feel bad for anyone whose first experience with Chrono Trigger is with that port.
SilasX ยท 3 points ยท Posted at 19:12:59 on November 14, 2018 ยท (Permalink)
No offline mode? More bloat than a naive[sic] emulator? Download content by chapter?
I hate life.
WhiteKnightC ยท 1 points ยท Posted at 21:14:34 on November 14, 2018 ยท (Permalink)
I heard that the Steam version also is bad, I've played the DS one which has anime scenes.
shifu_shifu ยท 1 points ยท Posted at 22:49:15 on November 14, 2018 ยท (Permalink)
Thanks for telling me, was about to buy itm FuckDRM
SplendidPunkinButter ยท 1087 points ยท Posted at 13:22:06 on November 14, 2018 ยท (Permalink)
There was an article a couple years ago (in Wired maybe?) about how the average website is now larger than the original install of Doom.
ThePendulum ยท 415 points ยท Posted at 14:20:10 on November 14, 2018 ยท (Permalink)*
I do wonder if this takes into account assets like photos, because in my opinion that's an unfair comparison when a lot of pages have a legitimate reason to have several to dozens of HD photos on a single page (which tally up to a few MB quickly even if you compress them).
I'm deeply embedded into the whole npm library framework shebang, and I have no idea how I'd go about serving as much as 2.4MB of compressed production code alone to my users. I'd have to turn off compression and tree-shaking, and include the sourcemaps.
boon4376 ยท 294 points ยท Posted at 14:25:59 on November 14, 2018 ยท (Permalink)
Because people world rather install huge libraries for every little thing than write 10 lines of code.
[deleted] ยท 131 points ยท Posted at 14:54:12 on November 14, 2018 ยท (Permalink)
[deleted]
mindbleach ยท 88 points ยท Posted at 15:23:31 on November 14, 2018 ยท (Permalink)
... until Doom 3, where a software patent for shadow volumes was resolved by licensing a sound library. The GPL release of id Tech 4's source code avoided this patent by changing two lines of code.
Kok_Nikol ยท 4 points ยท Posted at 22:28:06 on November 14, 2018 ยท (Permalink)
Sauce pls!
mindbleach ยท 11 points ยท Posted at 22:46:39 on November 14, 2018 ยท (Permalink)
https://www.theverge.com/gaming/2011/11/17/2569394/john-carmack-doom-3-patent
Kok_Nikol ยท 3 points ยท Posted at 23:04:40 on November 14, 2018 ยท (Permalink)
Thank you!
SeanRamey ยท 7 points ยท Posted at 16:10:06 on November 14, 2018 ยท (Permalink)
Ive wondered why they couldnt get the permission to release that code? Surely such an old sound library wouldnt be an issue to give out now? Maybe they couldnt find the owners or something? It really sucks, because i would have rather had the DOS version of the code.
user93849384 ยท 20 points ยท Posted at 17:35:28 on November 14, 2018 ยท (Permalink)
The Doom Source Code was released in 1997 so the sound library wasn't that old. Also, it's possible the sound library had licensed code.
SeanRamey ยท 7 points ยท Posted at 18:41:50 on November 14, 2018 ยท (Permalink)
Ah, well that makes sense. Maybe they should look into releasing the DOS code now?
[deleted] ยท 161 points ยท Posted at 14:54:06 on November 14, 2018 ยท (Permalink)*
[deleted]
altcodeinterrobang ยท 251 points ยท Posted at 15:48:27 on November 14, 2018 ยท (Permalink)
why recreate the wheel when you can import 1 library with 35 different wheel variants, 3 squares, 1 rectangle and an octogon that hasn't been completed yet so it's really a heptagon so don't use it yet because we accidentally merged that branch and don't know how to back it out yet but we'll fix it next version, just to use that one wheel you want?
Bobby_Bonsaimind ยท 73 points ยท Posted at 16:45:45 on November 14, 2018 ยท (Permalink)
And most of the time you don't even need the whole wheel, you just need a spoke.
grenzionky ยท 31 points ยท Posted at 16:50:12 on November 14, 2018 ยท (Permalink)
๐
Throtex ยท 7 points ยท Posted at 18:24:03 on November 14, 2018 ยท (Permalink)
Because that ridiculous library is still going to get regular updates that your reinvented wheel won't, so it should theoretically be more secure despite the complexity.
gct ยท 12 points ยท Posted at 22:52:23 on November 14, 2018 ยท (Permalink)
You sweet sweet summer child
cheesegoat ยท 14 points ยท Posted at 16:04:13 on November 14, 2018 ยท (Permalink)
That makes sense to a point. Devs need to spend time writing it once, a multiplyer of that reading/maintaining it, users spend a multiple of that time downloading your code, and a multiple of that to run it.
So if you can spend a small amount of time to make code that runs millions of times per day faster, you probably should.
Frutari ยท 2 points ยท Posted at 23:40:31 on November 14, 2018 ยท (Permalink)
You're telling me that class I took about Big O and shit was important?!? Fuck....
chanpod ยท 2 points ยท Posted at 01:49:24 on November 15, 2018 ยท (Permalink)
Yes, but it really depends on the application. Most websites don't really need to take big O into account. The server might, and queries definitely do. But front end? Nah. Unless you're dealing with a very large data set, the performance gains are neglible.
Let's take a library like lodash. It's a large library ( in terms of functions, not foot print). Sure, it adds unnecessary size to the app, but let's be real. 100Kb is nothing these days. And for the gauruntee that I'm using an optimized function vs one I write that may or may not be optimal. I'll just take the pre written library. That said, there are extremes. But most libraries are pretty small.
People get in trouble when they add in similar libraries for just one or two things. Like, angular material and material-ui or any of it's variants. You are probably better off just making what exist in your library of choice than adding a duplicate library for one thing. Or just code it yourself.
HellaTrueDoe ยท 1 points ยท Posted at 19:27:09 on November 14, 2018 ยท (Permalink)
I mean there's a reason why small budget websites look pretty much the same as big budget. It's not about capabilities but about capacity and efficiency when it comes to cost
Pm_me_any_dragon ยท 28 points ยท Posted at 14:49:04 on November 14, 2018 ยท (Permalink)
See: leftpad.
house_of_kunt ยท 32 points ยท Posted at 15:37:09 on November 14, 2018 ยท (Permalink)
Don't reinvent the wheel.
Arqideus ยท 7 points ยท Posted at 15:35:36 on November 14, 2018 ยท (Permalink)
"a = math.add(2,2);" is better than "a = 2 + 2;" no?
reubenbubu ยท 15 points ยท Posted at 18:51:08 on November 14, 2018 ยท (Permalink)
2+2 is how we do addition today, if you rely on math.add for your addition logic you wouldn't need code changes when in the future the math rules change
thexavier666 ยท 3 points ยท Posted at 21:41:09 on November 14, 2018 ยท (Permalink)
But math is math! Why would they change math?
IceColdFresh ยท 1 points ยท Posted at 23:03:31 on November 15, 2018 ยท (Permalink)
If you're in R then everything is already a function so you can do `=`(a, `+`(2, 2)).
SilasX ยท 6 points ยท Posted at 19:14:00 on November 14, 2018 ยท (Permalink)
Yes. See: left-pad.
corectlyspelled ยท 2 points ยท Posted at 20:24:52 on November 14, 2018 ยท (Permalink)
Want to build a beautiful website that stands out. Visit squarespace.com that's square space . com it makes building a website that anyone can do it... Even yooooooooooouuuuuuuuuuuu!
swiftpants ยท 3 points ยท Posted at 16:04:27 on November 14, 2018 ยท (Permalink)
Nail on the head. Every now and then I will get lazy and start looking for a template.
inspect -> network -> mother of GOD! just look at all 25 javascript file calls.
Need your menu to drop down when you hover? Javascript.
Want to scroll to a position on the page when you click a button? Javascript.
hunswag ยท 10 points ยท Posted at 16:16:04 on November 14, 2018 ยท (Permalink)
<a href="#anchor">gothere</a>
There I fixed it.
swiftpants ยท 1 points ยท Posted at 01:32:33 on November 15, 2018 ยท (Permalink)
Whoa there skippy. What do you think this is 1997? You need to bind that anchor with a click handler using jquery and load up all 1500 lines of the smooth scroll library.
This fuggin Guy here. Hash. Pft.
txmail ยท 3 points ยท Posted at 23:36:50 on November 14, 2018 ยท (Permalink)
And then get mad when the thing that is now automated behind a black box does not work when they could have written the code themselves and been totally in the know of how their application works and how it can be optimized...
[deleted] ยท 5 points ยท Posted at 18:35:03 on November 14, 2018 ยท (Permalink)
This. Web apps are morbidly obese for what a website should be for that reason.
When I have to dabble in web dev it angers me to no end if I ask a question and the answer, instead of some lines of code, is to "install X library". No, just no. I'll figure it out myself before I use some third party dependency.
I had a coworker who was of the mindset of "If you're writing a lot of code, you're developing wrong." No sweet summer child, you're actually developing vs copy/pasting.
AllUrPMsAreBelong2Me ยท 6 points ยท Posted at 21:12:22 on November 14, 2018 ยท (Permalink)
People who refuse to use 3rd party libraries and people who always use 3rd party libraries are both wrong though. You have consider the merits of each situation. For example, if you have an app that needs one special icon then just add that icon as a file and reference it. If you need tons of icons then something like font awesome is totally worth it.
[deleted] ยท 2 points ยท Posted at 12:18:10 on November 15, 2018 ยท (Permalink)
The problem with web development though is that that's all people do is use third party libraries, which is why web dev is such a mess anymore. I also find people who always use libraries can't code a lot of more complex solutions on their own.
Look at stack for example, ask a Javascript question, chances are people will answer you in jQuery because it's all they know, they don't know how to do anything in Javascript because all they use is jQuery.
AllUrPMsAreBelong2Me ยท 2 points ยท Posted at 14:07:26 on November 15, 2018 ยท (Permalink)
You're definitely right about jquery. I'm not sure some people even know it's not part of Javascript. I don't mind all of the libraries when it's some intranet app that just needs a quick bootstrap UI and the company won't give you the time to develop it right, but if it's a site that represents your company then it should be as responsive as possible which means that you should try to minimize the number of imports.
[deleted] ยท -3 points ยท Posted at 20:37:12 on November 14, 2018 ยท (Permalink)
[deleted]
[deleted] ยท 1 points ยท Posted at 22:40:42 on November 14, 2018 ยท (Permalink)
Not at all. Thereโs a reason web apps run like shit and itโs because theyโre so bloated and laden with dependencies. Good software is as lean and high performance as you can realistically make it and the less dependencies the better, especially when it comes to performance optimization, testing, and maintenance.
When I worked in a .Net shop anytime the browser updated the web devs would have to do a ton of extra work making sure their apps worked because they were riddled with dependencies. I was actually hired to rewrite their mobile apps into native code because they had so much trouble maintaining their hybrid solutions due to all the dependencies.
Kyanche ยท 1 points ยท Posted at 17:55:51 on November 14, 2018 ยท (Permalink)
And this is how you end up with a lot of websites that look the same. -_-
DasEvoli ยท 0 points ยท Posted at 21:09:23 on November 14, 2018 ยท (Permalink)
I don't think libraries are the problem. Images that are just scaled down is the main problem imo
asdfsadfsdf32w ยท 17 points ยท Posted at 14:36:24 on November 14, 2018 ยท (Permalink)
Lots of websites still don't use bundlers or disable sourcemaps for prod.
kukiric ยท 3 points ยท Posted at 19:24:37 on November 14, 2018 ยท (Permalink)*
Ours still has comments from page templates renderered on the server side. Yeah.
L3tum ยท 61 points ยท Posted at 14:42:08 on November 14, 2018 ยท (Permalink)
It's pretty easy. Include JQuery, Bootstrap and voilร , I have 2 MB worth of stuff for literally just a table.
MCOfficer ยท 45 points ยท Posted at 16:29:16 on November 14, 2018 ยท (Permalink)
nope. i confess, i'm a lazy backend dev, so i did exactly that (just so i could make *one* ajax request - shame on me).
and now gzip that - the compression rate is pretty good!
GrizzledFart ยท 6 points ยท Posted at 10:27:25 on November 15, 2018 ยท (Permalink)
Now add in all of the scripts used by each of the ads placed on the page, including the 4 different video players and the 7 different VPAID managers, each one loading a different analytics script, different versions of jquery, etc. Nowadays, the actual page content is a small fraction of what gets downloaded on page load.
I just loaded up Charles and fired up gizmodo.com as a test. Result is 777 different http calls in 103 seconds, pulling down over 8MB.
MCOfficer ยท 5 points ยท Posted at 16:47:42 on November 15, 2018 ยท (Permalink)
true enough, but that's not caused by jquery or bootstrap, simply by the webdev's need to overload the website with content (and ads).
Cjbleything ยท -1 points ยท Posted at 19:00:31 on November 14, 2018 ยท (Permalink)*
But is it inside out compression?
Edit; close enough
Sohcahtoa82 ยท 6 points ยท Posted at 21:42:19 on November 14, 2018 ยท (Permalink)
*middle out
If you're going to make a reference, at least get it right.
Kyanche ยท 8 points ยท Posted at 17:54:56 on November 14, 2018 ยท (Permalink)
Yes, and no. I'm hugely against using stock photos in a place that doesn't need them LIKE EVERY NEWS ARTICLE EVER OMG.
Edit: The news websites decided stock photos weren't enough, though. Now they all have at least 1 autoplay video, too.
IceColdFresh ยท 1 points ยท Posted at 23:16:53 on November 15, 2018 ยท (Permalink)
In the future, they are going to have animated anchorpeople walking around at the bottom of the screen presenting the news in addition to the videos, photos, and text, seeing as news orgs seem to think people want their websites to look like their TV programs.
esreveReverse ยท 4 points ยท Posted at 15:48:16 on November 14, 2018 ยท (Permalink)
moment.js is 300kb so... it's doable.
AwesomeInPerson ยท 5 points ยท Posted at 21:01:04 on November 14, 2018 ยท (Permalink)
fetchoverAbortControllerandasync/awaitto Web Components so your ES8+ code runs in IE9+: 150KBheto encode/decode HTML entities: 4 * 30KB = 120KBSprinkle in some web fonts, JSON payloads, 3rd party CSS for icons, loading spinners etc. and other stuff your app needs and you can bust through the 2.4MB gzipped without having used a single image. Takes some effort though :D
upsidedown_airplane ยท 6 points ยท Posted at 16:07:57 on November 14, 2018 ยท (Permalink)
I think Redditโs initial page load contains well more than 5MB of JavaScript, at least in New Reddit? Same is true for a lot of dynamic content sites now too. Google Apps is particularly brutal on laptops.
metalliska ยท 2 points ยท Posted at 16:59:02 on November 14, 2018 ยท (Permalink)
shutterstock revenue
cafk ยท 2 points ยท Posted at 23:53:37 on November 14, 2018 ยท (Permalink)
Open a new tab in your favourite browser, go to developer tools and networking tab, visit https://new.reddit.com
Check the sizes of JavaScript blobs loaded there.
Compare that to the https://old.reddit.com
While at it check also the render times for the whole page to finish the first run.
[deleted] ยท 1 points ยท Posted at 00:21:45 on November 15, 2018 ยท (Permalink)
[deleted]
cafk ยท 1 points ยท Posted at 00:23:19 on November 15, 2018 ยท (Permalink)
Strange, for me it's about 400kb on old vs. 3mb on new :D
[deleted] ยท 1 points ยท Posted at 02:29:41 on November 15, 2018 ยท (Permalink)
[deleted]
cafk ยท 2 points ยท Posted at 03:10:43 on November 15, 2018 ยท (Permalink)
uBlock origin for me with both ๐ค
And maybe the EU GDPR stuff is applicable for me, so less crap provided by the server for my AS number?
Similar to USAToday GDPR page being 500kb v classical 5mb
ass_pubes ยท 2 points ยท Posted at 15:40:02 on November 14, 2018 ยท (Permalink)
It's probably mostly spyware.
cartechguy ยท 1 points ยท Posted at 18:28:45 on November 14, 2018 ยท (Permalink)
If your site uses jquery that's like 3mb right there.
livrem ยท 1 points ยท Posted at 20:42:06 on November 14, 2018 ยท (Permalink)
I downloaded a page a while ago and noticed it included a few MB web fonts with all kinds of strange international versions, even if everything on the page was in English. Unexpected.
Cobaltjedi117 ยท 50 points ยท Posted at 13:38:03 on November 14, 2018 ยท (Permalink)
Damn J's librarys And frameworks
PerviouslyInER ยท 12 points ยท Posted at 19:57:28 on November 14, 2018 ยท (Permalink)
And autoplaying videos, realtime mouse tracking, hundreds of 3rd party tracking scripts.
Just measured the network usage related to reading a newspaper article. 28MB.
angry_wombat ยท -1 points ยท Posted at 16:23:00 on November 14, 2018 ยท (Permalink)
time to update your 56k modem
millenniumfalconer ยท 16 points ยท Posted at 13:59:09 on November 14, 2018 ยท (Permalink)
https://www.wired.com/2016/04/average-webpage-now-size-original-doom/
livefox ยท 4 points ยท Posted at 17:30:26 on November 14, 2018 ยท (Permalink)
My husband played with Wix.com for half a day and made a website i couldn't load on my phone. He had so many high-res pngs, gifs for subtle animations, parallax banners, etc all over this thing that my phone just gave up. It lagged even on our older laptop.
When I berated him for making a banner image that was 10,000 pixels across that Wix just downsized it to fit, he said "well it worked on my computer. i dont understand what the big deal is."
peynir ยท 4 points ยท Posted at 14:40:06 on November 14, 2018 ยท (Permalink)
/r/itrunsdoom
MehYam ยท 3 points ยท Posted at 15:33:58 on November 14, 2018 ยท (Permalink)
I was in college when Doom was released. I remember the day one CS prof walked into the room sputtering about Borland C++ requiring over 100MB to install.
riskybusinesscdc ยท 3 points ยท Posted at 18:25:21 on November 14, 2018 ยท (Permalink)*
Far larger. We are rebuilding an enterprise site now whose homepage weighs 96.5MB! Resize your images, people.
[deleted] ยท 2709 points ยท Posted at 12:09:34 on November 14, 2018 ยท (Permalink)*
[deleted]
JediOfTheShire ยท 1164 points ยท Posted at 12:50:09 on November 14, 2018 ยท (Permalink)*
I've watched some videos about coding certain menu animations with techniques that were super cutting edge at the time, but would never be used today. The problem is that in the face of so much raw processing power, all of the little nuances and restrictions that made classic games look and feel the way they did have to be manufactured purposefully as "atmosphere" where they got that effect back then by just utilizing whatever they could to make the game just work.
EDIT: Sorry guys, it was a really long time ago and my google doesn't love me enough to let me find it again... I'll keep googling around for a while.
PheonixScale9094 ยท 493 points ยท Posted at 13:59:20 on November 14, 2018 ยท (Permalink)
Whatโs fascinating is watching people make games on retro systems. Micro Mages, Retro Rampage(the NES one not the modern one), etc...
Ashybuttons ยท 112 points ยท Posted at 14:49:12 on November 14, 2018 ยท (Permalink)
I own a copy of Halo 2600.
lx45803 ยท 66 points ยท Posted at 15:36:08 on November 14, 2018 ยท (Permalink)
A classic.
Con_Dinn_West ยท 29 points ยท Posted at 16:07:10 on November 14, 2018 ยท (Permalink)
HALO 26ee
mercilessmilton ยท -7 points ยท Posted at 17:19:42 on November 14, 2018 ยท (Permalink)
R26eeTARD
gl00pp ยท -2 points ยท Posted at 17:29:17 on November 14, 2018 ยท (Permalink)
How is a 2010 release a classic?
[deleted] ยท 3 points ยท Posted at 15:37:15 on November 14, 2018 ยท (Permalink)
Noice.
Pylyp23 ยท 2 points ยท Posted at 23:33:03 on November 14, 2018 ยท (Permalink)
What even is that?
Ashybuttons ยท 3 points ยท Posted at 23:46:04 on November 14, 2018 ยท (Permalink)
It's a Halo game for the Atari 2600.
[deleted] ยท 356 points ยท Posted at 15:10:55 on November 14, 2018 ยท (Permalink)*
There's the common belief that limitations nourish creativity and abudance has a potential to stifle it.
It makes sense, too. It's just easier to find a path through a restricted problem space, than finding the same path through a practically infinite problem space that isn't restricted by anything.
sloppycee ยท 320 points ยท Posted at 15:50:39 on November 14, 2018 ยท (Permalink)
Cream rises to the top. We're only remembering the very best games of the era, not the vast majority of crap.
To say that the limitations were important to making the games what they are diminishes the incredible artistic skill of the people who made them. Not everyone has that skill, and so obviously most games today can not compare; just like most games back then couldn't either.
puppetmaster2501 ยท 36 points ยท Posted at 17:23:35 on November 14, 2018 ยท (Permalink)
I disagree strongly. I think cleverly working around limitations is the absolute greatest form of creativity, and that the best art is made by overcoming obstacles and adversity.
It's like if a director makes a great movie while fighting all kinds of problems, and then later has a huuuuge budget and a crew of yes-men, all the power in the world, and makes a bad movie. I don't think this means the director is bad. I just really do think that hardship & limitations, and the act of overcoming hardship, is very important to enabling a great artist to make really great art.
chaos95 ยท 11 points ยท Posted at 20:24:50 on November 14, 2018 ยท (Permalink)
George Lucas comes to mind.
punchgroin ยท 6 points ยท Posted at 21:23:07 on November 14, 2018 ยท (Permalink)
Both can be done. Star wars had nothing but adversity, and somehow ended up amazing because everyone stepped up and gave it their all.
Lord of the Rings was a tightly crafted masterpiece where every piece was installing put into place by a real visionary genius who had all the tools of modern filmmaking at his disposal.
I guess Jackson had some adversity getting his project off the ground, but New Line gave him an unprecedented amount of control over the project and it seemed like everyone believed in his vision.
puppetmaster2501 ยท 3 points ยท Posted at 23:52:06 on November 14, 2018 ยท (Permalink)
That's a good counterexample. I guess adversity and working through difficult constraints isn't required to temper work into great art. I still think it helps, but to be fair I've got no proof and I'll accept that there are probably as many examples of total freedom & power enabling great art to be made, as there are of great art being made despite hampering obstacles, and I may be wrong in saying it matters at all.
OhGarraty ยท 4 points ยท Posted at 20:36:53 on November 14, 2018 ยท (Permalink)
*glares in Joss Whedon*
SirRevan ยท 4 points ยท Posted at 16:51:34 on November 14, 2018 ยท (Permalink)
Never forget ET on Atari
Kryten_2X4B-523P ยท 2 points ยท Posted at 17:23:36 on November 14, 2018 ยท (Permalink)
Had it; never got past the first pit which is like 5 seconds into the game.
Zoidburger_ ยท 3 points ยท Posted at 23:16:17 on November 14, 2018 ยท (Permalink)
Others are disagreeing with you, but really hitting the same topic you are.
Limitations nourishing creativity is something found in coding, game development, music production, and many other fields. In terms of music production, if we compare electronic music from 40-50 years ago, analogue machines and analogue recording means were how that music was made. Not all of the music was revolutionary, and not every song was great, but there are still incredible artists out there (Kraftwerk, Georgio Moroder, etc) that pushed those limits, defining the need for new technology. As technology then develops, new effects and sounds are then possible. Sampling without having to clip up bits of magnetic tape are suddenly possible. More people can use the technology, and new music is made. Then you hit the 80s, where synthetic drums and keyboard pads were staples in both pop music and hip hop, still being recorded on tapes/vinyls, but lending credit to earlier music that effectively created the technology they were using to record.
Nowadays, the sky is seemingly the limit in current DAWs, and you can always export a song from one program into another just to achieve a certain sound or effect. However, there is still a limit there, somewhere. The lack of a limit can produce incredible songs, and many creative minds deal best with the fact that they are virtually unlimited in the tools they can use. Entire orchestral suites can be made in one single project in Ableton. But not everyone deals well with that. Recent technology, like the Teenage Engineering OP-1 are effectively limited-channel AIOs that can synthesize, sample, and record all at once, but the means of recording only work within those channels, and they can only be cleared up once that channel is recorded through. This changes the process needed to make new music. Perhaps you record the drums first, then add a bassline and a melody. Then you go back and add some vocal chops. But once you're done with that section, it's difficult to go back and add more to it. And I've seen some incredible songs being made with just this piece of hardware alone (see Red Means Recording on YouTube).
The same goes with game development. Sure, while there were some very skilled developers and artists working on those early, limited games and consoles, not everything that came out of them were a piece of gold, but those same artists wouldn't necessarily be able to reproduce those results with newer systems because tastes and desires for creativity have changed.
It's a paradox really, but in the end, without limits on what we're creating (which we eventually hit), new technology specifically catered to pass those limits will not be developed. Having people/groups that excel in one field over the other is what makes big innovations in both the art and the technology used to make it, and sometimes those limits, whether self-imposed or an independent variable, can produce something incredible. Pure mastery of the development/production process is what makes things great in the end. A master of a highly-limited gaming console can make something equally-as-great as a master of an almost-unlimited machine, such as the NES vs modern PCs.
sloppycee ยท 3 points ยท Posted at 00:04:42 on November 15, 2018 ยท (Permalink)
imo greatness usually pushes boundaries. It makes you ask "how the fuck did they do that!"...
You're not pushing boundaries by artificially limiting yourself to the standards of previous generations; you will always be compared to the greats and usually lose. The greats/visionaries know this, and so (typically!) games made in nostalgic style are not being made by visionaries today and hence "it" will never "be the same".
ButtersCreamyGoo42 ยท 14 points ยท Posted at 16:22:19 on November 14, 2018 ยท (Permalink)
Not really. I remember the so-so NES games too. They weren't bad they were just unexceptional. Sometimes the difficulty was off or the mechanic wasn't that much fun but they all dealt with the limitations of the system. The publishers knew what other games were on the market and they couldn't publish total trash and expect to make their money back. This was partly because Nintendo limited the number of games each publisher could make to avoid a repeat of the 2600 crash.
[deleted] ยท 53 points ยท Posted at 16:39:57 on November 14, 2018 ยท (Permalink)
There were plenty of bad NES games.
Jazonxyz ยท 11 points ยท Posted at 17:32:11 on November 14, 2018 ยท (Permalink)
Also, Nintendo had you jump through hoops to get your game published on their system. Imagine how much worse games could have been if they let anybody publish anything! (btw, with the Atari 2600, anybody could publish anything for it, the market got flooded with bad games, and that killed the home console video game industry. Nintendo learned from this and added quality control to the NES games published. Look it up, it's an interesting story.)
itsaworkalt ยท 3 points ยท Posted at 19:30:37 on November 14, 2018 ยท (Permalink)
I did a research project on the NES hardware architecture for a class in college. Kinda blew my mind to hear that the NES had fairly effective DRM on it all the way back then. It could be circumvented pretty easily, which allowed stuff like the game genie to work, but it's still pretty cool they had something at all.
CLaptopC ยท 1 points ยท Posted at 16:33:20 on November 23, 2018 ยท (Permalink)
I can see this happening with the Mobile Market now, and I am guessing that is why the Big 3 have you apply to have your game on their system. Interesting. Thank you for that insight.
LOLBaltSS ยท 6 points ยท Posted at 17:27:30 on November 14, 2018 ยท (Permalink)
[LJN intensifies]
Rogryg ยท 2 points ยท Posted at 00:46:42 on November 15, 2018 ยท (Permalink)
To be fair, on this front we really benefited from the "import filter" - most of the bad 8- and 16- bit console games never left Japan.
A126453L ยท 8 points ยท Posted at 17:23:26 on November 14, 2018 ยท (Permalink)
i've seen enough AVGN episodes to know that there were some absolutely shit NES games back then.
Tillhony ยท 2 points ยท Posted at 21:04:47 on November 14, 2018 ยท (Permalink)
If you look at racing, these guys find a way to go .1 second faster with the same limiting restrictions and it makes cars very innovative.
obvious_bot ยท 1 points ยท Posted at 18:00:24 on November 14, 2018 ยท (Permalink)
https://m.imgur.com/gallery/OOg0Z6f
throwaway54195 ยท 0 points ยท Posted at 17:28:43 on November 14, 2018 ยท (Permalink)
OH YEEEAAHHHH, BABY THE CREAM OF THE CROP RISES TO THE TOP...
<3 Macho Man.
Divreus ยท 7 points ยท Posted at 16:23:59 on November 14, 2018 ยท (Permalink)
I completely agree with that. The closest I've ever come to getting off my ass and creating content for a game has been on the most hacked-together, obtuse, limited editor for an obscure indie game that I've ever seen. For some reason the solutions came as quickly and abundantly as the problems did.
TheAdventMaster ยท 8 points ยท Posted at 16:26:58 on November 14, 2018 ยท (Permalink)
Restrictions and limitations optimize toward a specific target space. So it doesn't (necessarily) optimize creativity... just optimizes effort because the space for creativity is more narrow.
I haven't quite figured out the balance. I'm sure any art directors would know more.
Jazonxyz ยท 6 points ยท Posted at 17:37:51 on November 14, 2018 ยท (Permalink)
I think limitations are good for some people. As a perfectionist, I love it when I'm forced to do something a certain way. Otherwise, I spend sooo much time weighing the options. Then theres the whole "did I make the right choice?" guilt, no matter what choice I made.
iamelroberto ยท 1 points ยท Posted at 16:47:40 on November 14, 2018 ยท (Permalink)
Very good book about this concept. Called โStretchโ by Scott Sonenshein.
TransverseMercator ยท 1 points ยท Posted at 17:30:34 on November 14, 2018 ยท (Permalink)
I think this was discussed in jerry Seinfeldโs Netflix show. Him and Dana Carver weโre discussing if itโs possible for a comedian to rise to the to top if they have a other financial options to fall back on if they fail.
CosmicSpaghetti ยท 1 points ยท Posted at 18:57:03 on November 14, 2018 ยท (Permalink)
As a musician, I couldnโt agree with this more- the more I learn how to utilize music software/the more Iโm able to potentially do, the harder it is to decide a way forward with a project.
Ghos3t ยท 1 points ยท Posted at 21:28:08 on November 14, 2018 ยท (Permalink)
The first book in the foundation series by Issac Asimov touched on this concept, where the first foundation was built purposefully on a distant small planet with limited resources, which forced them to come up with better, more efficient technologies than the more resources heavy empire.
SwayzeCrayze ยท 1 points ยท Posted at 21:37:40 on November 14, 2018 ยท (Permalink)
That's what happened with the Star Wars prequels. In the original movies, Lucas was beholden to an editor/etc and had limited materials.
In the prequels, everybody kissed his feet and he had a CGI playground.
KoboldCommando ยท 45 points ยท Posted at 15:41:05 on November 14, 2018 ยท (Permalink)
You also have people who stick to faithful recreations. If I remember right Shovel Knight did a really good job sticking to the NES style except for a few very conscious departures like the color palette and parallax scrolling.
Same with music, you can have "8 bit" music, and then you have people who actually go and use 4 channels with arpeggiators and all the little tricks they used to wrangle music out of the NES. Even if it wasn't made on an actual NES or departs in a few ways, you can usually tell when someone has gone the extra mile and done their research on what the actual restrictions were.
ComputerMystic ยท 9 points ยท Posted at 21:14:18 on November 14, 2018 ยท (Permalink)
Shovel Knight is interesting because each individual piece could ALMOST work on a NES.
The graphics are keeping to the NES visual style, but they added four more colors to the palette that the NES couldn't do because it'd look better that way, they decided that sprite flicker isn't something anyone actually wants, and they're assuming that the "overlay two sprites atop one another for more colors" trick that everyone except Nintendo used constantly was standard enough that they just made sprites that looked like the results of doing that. Also it's widescreen and uses true parallax scrolling, which the NES didn't do IIRC (you needed some serious hax to even pretend to do parallax, and if you did you basically had to cut the screen in half and not put any platforms above the line where the background starts.)
Sound-wise, the entire soundtrack CAN fit on an NES cartridge... but there'd be no room for the rest of the game. Also, it's using the VRC6 chip IIRC, which you could only use on Japan region units for stupid reasons.
Finally, it's an incredibly well designed platformer, but its using designs that hadn't been invented yet on the NES (dropping money when you die instead of a life counter being the big one).
[deleted] ยท -1 points ยท Posted at 19:06:32 on November 14, 2018 ยท (Permalink)
Shovel Knight is most definitely a modern 16-bit imitation, not 8-bit. It looks like a SNES game, not an NES game, whether youโre talking about palettes, resolution, character design/complexity, mechanics, level design or music. There is multi-layered parallax scrolling (as you mentioned) and sprite scaling.
KoboldCommando ยท 12 points ยท Posted at 19:27:58 on November 14, 2018 ยท (Permalink)
No, they definitely aimed at 8-bit NES. They broke the restrictions in many ways and even described those ways, the point being that they did it consciously, not haphazardly.
axis710 ยท 6 points ยท Posted at 19:53:53 on November 14, 2018 ยท (Permalink)
Jake Kaufman even created the music in the NSF sound format, so it could be heard on an actual NES, straight from the sound hardware.
[deleted] ยท -4 points ยท Posted at 20:32:51 on November 14, 2018 ยท (Permalink)
Conscious decisions or not, that game wouldnโt have run on any 8-bit hardware of the day, and once youโve broken a half dozen or more rules that would have been the original limitations of a console and could only have been duplicated on a more advanced one it makes no difference.
Kudos to them for sticking to the music and limiting individual sprite pallets, but the game has just been augmented so much. The article doesnโt really change my mind, it only reinforces it.
Yourtime ยท 11 points ยท Posted at 14:49:54 on November 14, 2018 ยท (Permalink)
Arduboy
antaryon ยท 21 points ยท Posted at 15:24:34 on November 14, 2018 ยท (Permalink)
Meanwhile others make games with pixel graphics for modern systems and call them "retro". Whenever an indie dev can't afford proper art assets they defend themselves with "it looks like crap because it's retro". This is retro from 1994. This is retro from 1993. Real retro stuff still looks amazing.
[deleted] ยท 23 points ยท Posted at 16:44:41 on November 14, 2018 ยท (Permalink)
That's cause retro didn't look bad: it was just low resolution. A lot of games both look bad and are low resolution.
ArZeus ยท 4 points ยท Posted at 16:55:14 on November 14, 2018 ยท (Permalink)
Upvoted for jazz jackrabbit
mattsl ยท 1 points ยท Posted at 19:56:42 on November 14, 2018 ยท (Permalink)
Can you give an example of 2018 fake retro?
antaryon ยท 1 points ยท Posted at 23:29:59 on November 14, 2018 ยท (Permalink)
Most of these. Some of them aren't half bad but while I was looking at that list I found this game. That's one game done right.
mindbleach ยท 5 points ยท Posted at 15:08:40 on November 14, 2018 ยท (Permalink)
Microm City, the SimCity clone for GBC.
Atomicbocks ยท 3 points ยท Posted at 15:35:34 on November 14, 2018 ยท (Permalink)
Planet X series.
factzor ยท 3 points ยท Posted at 15:14:38 on November 14, 2018 ยท (Permalink)
Micro Mages's video on how they got things working is amazing, totally recommend
AuldGype ยท 2 points ยท Posted at 19:48:22 on November 14, 2018 ยท (Permalink)
Not to mention the 8-Bit Guy's Planet X3.
[deleted] ยท 43 points ยท Posted at 14:13:31 on November 14, 2018 ยท (Permalink)
Yeah, GameHut does a lot of cool videos about that type of stuff.
[deleted] ยท 14 points ยท Posted at 14:46:57 on November 14, 2018 ยท (Permalink)*
[deleted]
[deleted] ยท 6 points ยท Posted at 14:48:05 on November 14, 2018 ยท (Permalink)
Tbf, I'd class it more as a programming channel.
NoNameRequiredxD ยท 5 points ยท Posted at 15:52:01 on November 14, 2018 ยท (Permalink)
Both?
ObviouslyNotAMoose ยท 0 points ยท Posted at 16:51:09 on November 14, 2018 ยท (Permalink)
To be fuck
ComputerMystic ยท 1 points ยท Posted at 21:31:22 on November 14, 2018 ยท (Permalink)
I mean, he helped make most of the games he's talking about on there, so if anyone knows how they work, it'd be him.
notanimposter ยท 5 points ยท Posted at 16:12:24 on November 14, 2018 ยท (Permalink)
One of the best YouTube channels out there. It's half magician revealing his tricks, half out of the box tricks from a veteran game programmer, and a surprise third half comedy about just how dinky consoles back then were. Even with blast processing.
edave64 ยท -3 points ยท Posted at 16:34:21 on November 14, 2018 ยท (Permalink)
You forgot the fourth half: clickbait.
notanimposter ยท 4 points ยท Posted at 16:43:21 on November 14, 2018 ยท (Permalink)
It's not clickbait if he actually puts what he promises in the videos. People seem to have forgotten what clickbait is.
ExpectoPentium ยท 4 points ยท Posted at 16:57:23 on November 14, 2018 ยท (Permalink)
His videos are great but tbf "RUNNING PUBG ON A SNES???" is kinda borderline
Rudy69 ยท 1 points ยท Posted at 00:22:26 on November 15, 2018 ยท (Permalink)
*Genesis/megadrive
fredlllll ยท 102 points ยท Posted at 13:59:58 on November 14, 2018 ยท (Permalink)
another problem is that certain techniques have to be emulated because modern hardware doesnt support it anymore
echo_61 ยท 113 points ยท Posted at 15:25:46 on November 14, 2018 ยท (Permalink)
Or weird problems go away:
http://www.gamasutra.com/blogs/DaveBaggett/20131031/203788/My_Hardest_Bug_Ever.php
Panfriedpuppies ยท 23 points ยท Posted at 15:42:32 on November 14, 2018 ยท (Permalink)
I enjoyed that, thanks for posting it lad.
tael89 ยท 42 points ยท Posted at 15:42:07 on November 14, 2018 ยท (Permalink)
That's a fun read. I'm not sure why he decided to say he debugged a quantum problem. Crosstalk as he described is due to coupling and isolation issues
Y1ff ยท 23 points ยท Posted at 16:56:07 on November 14, 2018 ยท (Permalink)
If it's smaller than what I can grab with a pair of tweezers it's quantum mechanics.
probably2high ยท 2 points ยท Posted at 20:43:04 on November 14, 2018 ยท (Permalink)
I tried not to.
Y1ff ยท 1 points ยท Posted at 22:36:49 on November 14, 2018 ยท (Permalink)
Quaaaaantuuuum peeeeniiiis! guitar lick plays
ForgotPassAgain34 ยท 24 points ยท Posted at 16:11:49 on November 14, 2018 ยท (Permalink)
he is a little fuzzy on hardware details.
electricity is black magic, quantum mechanics is black magic
tael89 ยท 11 points ยท Posted at 16:48:02 on November 14, 2018 ยท (Permalink)
I was lucky enough to take an RF and fiber optics class and do well in it. Can confirm it's all magic
teedeepee ยท 8 points ยท Posted at 17:53:03 on November 14, 2018 ยท (Permalink)
I was troubleshooting a vexing problem with audio mixing software not calibrating properly with a professional DJ turntable. Tried everything under the sun for weeks.
Turns out, the XLR connector was too close to the electrical socket, which was creating RF interference.
Gornarok ยท 8 points ยท Posted at 16:30:22 on November 14, 2018 ยท (Permalink)
Yea its good read.
What is ridiculous to me is that it was happening at 1kHz. Such low frequency would need large capacitance or large inductance. Or most likely really bad grounding.
ThereInTheTrees ยท 6 points ยท Posted at 16:32:40 on November 14, 2018 ยท (Permalink)
Lol, he did say he was fuzzy on the hardware.
TheOboeMan ยท 1 points ยท Posted at 15:26:13 on November 15, 2018 ยท (Permalink)
Yeah, it's electromagnetism, not quantum mechanics.
Still an interesting problem, and not one I would have had the patience to solve.
gabboman ยท 5 points ยท Posted at 17:39:49 on November 14, 2018 ยท (Permalink)
Oh, an article about crash bandicoot. I loved the other one about the disk controller. I knew i was for a good ride
mrmonkey3319 ยท 1 points ยท Posted at 23:33:18 on November 14, 2018 ยท (Permalink)
Link to the other article? The one I just read was fascinating
gabboman ยท 2 points ยท Posted at 23:34:44 on November 14, 2018 ยท (Permalink)
Here you go, get ready for a ride! https://www.quora.com/How-did-game-developers-pack-entire-games-into-so-little-memory-twenty-five-years-ago/answer/Dave-Baggett?srid=z9ZA&share=1
Gathorall ยท 1 points ยท Posted at 09:48:47 on November 15, 2018 ยท (Permalink)
Raise timer to 10 times over regular specifications for no particular reason.
A bug appears.
Fucking hardware not working wildly out of spec, their fault.
preseto ยท 41 points ยท Posted at 14:30:03 on November 14, 2018 ยท (Permalink)
FTFY another technique is that certain problems have to be emulated
pkkthetigerr ยท 3 points ยท Posted at 16:12:57 on November 14, 2018 ยท (Permalink)
I remember reading that Shovel Knight was designed with it being limited by the SNES.
DrQuint ยท 1 points ยท Posted at 19:45:05 on November 14, 2018 ยท (Permalink)
They broke several of the rules, but they aware of which and when and did it for the sake of the game's experience. One of the biggest one being sprite count which would demand flickering on the SNES.
But it definitely helped the feeling to see stuff like Shovel Knight pass in front of the UI.
RadioactiveBovine ยท 2 points ยท Posted at 17:08:30 on November 14, 2018 ยท (Permalink)
I know some of the old arcade or other computer games like Galaga and into the 90s sometimes had graphics engines based on the CPU speed. So if you try to recreate a Galaga arcade game with modern hardware it runs really fast unless you do some tweaking or something, I honestly don't remember all the details except downloading a Galaga ROM and being frustrated with how fast the game was.
echo_61 ยท 1 points ยท Posted at 18:45:06 on November 14, 2018 ยท (Permalink)
Thatโs what the turbo button was for, it slowed down the clocks.
Electrathescientist ยท 8 points ยท Posted at 14:34:46 on November 14, 2018 ยท (Permalink)
Here is a good example of creating soundtracks for the genesis.
https://youtu.be/WEvnZRCW_qc
DoneRedditedIt ยท 1 points ยท Posted at 17:24:04 on November 14, 2018 ยท (Permalink)
The Sega Genesis had amazing sound.
Ignisti ยท 4 points ยท Posted at 14:13:09 on November 14, 2018 ยท (Permalink)
link to the video?
EnkiiMuto ยท 3 points ยท Posted at 14:37:52 on November 14, 2018 ยท (Permalink)
link please!
jesjimher ยท 2 points ยท Posted at 15:33:07 on November 14, 2018 ยท (Permalink)
I remembered purchasing a sound card, but then switching back to pc speaker in Monkey Island because it just... wasn't the same.
cjhreddit ยท 2 points ยท Posted at 17:34:13 on November 14, 2018 ยท (Permalink)
I was a games programmer in the 1980's and we used to love finding ways to break the 'limits' supposedly imposed by the hardware. Some of the most effective were around synchronising changes via CPU "interrupts" linked to the monitor frame or line refresh rate (ie. 50th of a second, or 12000th of a second). So for example, in systems that supported 2 or more screen resolution modes (normally they'd operate in one or other mode until manually changed), you could switch the screen resolution programattically midway through the screen refresh, so that the top part of the screen might be displaying low-res/higher colour graphics, whilst the bottom part of the screen displayed hi-res/lower colour graphics. You could achieve other nice effects on systems with a set colour palette (often 16 colours at the time), by changing the active palette at screen refresh, or screen-line refresh so different palettes of colours were in operation at different positions of the screen ! Nightmare to debug though, and everything was written in assembly language so you could count how many Time-states each instruction would take to execute for precise timing !
dexter30 ยท 2 points ยท Posted at 17:52:13 on November 14, 2018 ยท (Permalink)
They say constraint creates creativity.
All I know is unity games are a bitch to optimise.
summonblood ยท 2 points ยท Posted at 23:18:07 on November 14, 2018 ยท (Permalink)
Scarcity is the best driver of innovation
nahog99 ยท 1 points ยท Posted at 15:13:28 on November 14, 2018 ยท (Permalink)
Link??
orangeFluu ยท 1 points ยท Posted at 16:05:33 on November 14, 2018 ยท (Permalink)
Could you share the link to the video? I am intrigued to see how people were coding in those days
Soobpar ยท 1 points ยท Posted at 16:25:53 on November 14, 2018 ยท (Permalink)
This is a really good video on old school 8 bit colouring, really amazing what they did with 16 colours.
flarn2006 ยท 1 points ยท Posted at 16:36:42 on November 14, 2018 ยท (Permalink)
Let me guess, Gamehut?
Sarcon5673 ยท 1 points ยท Posted at 17:03:21 on November 14, 2018 ยท (Permalink)
It was. And it was beautiful.
r4nd0m-us3r ยท 1 points ยท Posted at 16:46:18 on November 14, 2018 ยท (Permalink)
Link for videos?
The_Great_Danish ยท 1 points ยท Posted at 05:58:00 on November 15, 2018 ยท (Permalink)
May you link me to a video please?
PiotrekDG ยท 1 points ยท Posted at 12:07:29 on November 15, 2018 ยท (Permalink)*
VVVVVV was first created in Adobe Flash!
YouthfulCarrot ยท 1 points ยท Posted at 14:13:51 on November 14, 2018 ยท (Permalink)
What videos are those? They sound interesting.
jgierer12 ยท 337 points ยท Posted at 13:37:27 on November 14, 2018 ยท (Permalink)
For what it's worth, many modern console games also use some insane technical and artistic tricks to squeeze everything they can out of the years old consoles. Sure, these techniques are different and usually more refined than in old games, but IMO not less interesting.
The YouTube channel Digital Foundry analyzes the technical design of most AAA games, and it always amazes me how every game has its own unique techniques.
jhartwell ยท 169 points ยท Posted at 14:27:59 on November 14, 2018 ยท (Permalink)
My favorite class I took in grad school was Optimized C++. It was taught by a guy who worked on the original Mortal Kombat and also worked for Midway for a period of time. Super interesting stuff to get better performance. Some of it was simple, such as avoiding calling malloc/new multiple times and just creaye a block of memory and manage it yourself for object creation. Other tricks were more complicated, such as using pointer offsets to quickly load files.
jesjimher ยท 62 points ยท Posted at 15:34:45 on November 14, 2018 ยท (Permalink)
All textures in Quake were exactly 16 KB, because that was the size of the L1 cache on a Pentium CPU.
rexpup ยท 6 points ยท Posted at 22:37:12 on November 14, 2018 ยท (Permalink)
That is truly incredible. I've never had a problem I had to account for hardware with, except just making it generally faster.
Edward_Morbius ยท 81 points ยท Posted at 14:46:08 on November 14, 2018 ยท (Permalink)
That's not always a sure thing. It really depends on if you can write an allocator that's faster than the one that came with the compiler.
20 years ago, maybe. Now, not such a sure thing.
Destring ยท 83 points ยท Posted at 14:54:57 on November 14, 2018 ยท (Permalink)
Yeah people underestimate how good optimizing compilers are today. Most of the tricks you can do yourself are already being done by the compiler.
Houdiniman111 ยท 8 points ยท Posted at 15:33:30 on November 14, 2018 ยท (Permalink)
Yeah. In fact, in many cases, the output of the compiler is faster than anything you would write.
TheAdventMaster ยท 37 points ยท Posted at 16:29:22 on November 14, 2018 ยท (Permalink)
This is true for most developers but not one who actually understands compilers and optimization. There are some things compilers simply cannot optimize, and this has been talked about quite extensively. One of the lead engineers of LLVM from Google had a whole talk about this, although I don't have the link on hand unfortunately.
Basically, 90% of code compilers can't optimize. You still have to write decent code. A compiler can only do so much to rearrange your logic and data structures to produce equivalent code that somehow performs better.
Beyond that, you start affecting the IPO of a program which is a huge no-no for a lot of people.
Houdiniman111 ยท 9 points ยท Posted at 16:35:42 on November 14, 2018 ยท (Permalink)
True. I should have clarified that it only really applies to micromanaging. Don't micromanage because the compiler will probably do that better than you. You still can't be totally lazy.
YaztromoX ยท 3 points ยท Posted at 23:19:58 on November 14, 2018 ยท (Permalink)
There are some pretty big caveats to this. It's still up to the developer to use optimal algorithms in the first place -- the compiler isn't going to take your O(n2) Bubblesort and replace it with an O(n log n) Quicksort or Mergesort for you, and these algorithms are going to provide a much, much bigger speed improvement (in the average case) than simply applying compiler optimizations to your Bubblesort procedure.
Additionally, most compilers0 aren't going to mess around with your data structures to improve speed either. If you use inefficient data storage or ordering for your target processor, the compiler won't do anything to fix this. But fixing it can result in some pretty big gains if you know what you're doing1 -- much bigger than simple compiler optimization is going to help with.
I know you used the caveat "in many cases" and didn't claim compilers can generate faster code is every case, but felt this clarification would be useful for others who may not understand the implications quite as well.
0 -- I want to say all, but it's possible there is some compiler out there I'm not aware of that can optimize data types and packing.
1 -- One of my favourite projects I worked on as a grad Comp.Sci student was helping a friend working on his Ph.D. who was running simulations that took roughly 22 - 24 days to complete, by optimizing the data packing of his code. In a little less than an hour, I had sped up the processing time by some 45%, allowing the simulations to complete in roughly 2 weeks instead.
CLaptopC ยท 2 points ยท Posted at 15:50:13 on November 24, 2018 ยท (Permalink)
I would love to learn more about Optimization. Is there any resources you can recommend for me? Or any classes you would recommend?
mindbleach ยท 27 points ยท Posted at 15:17:23 on November 14, 2018 ยท (Permalink)
It's still faster if you're doing silly things with memory, like id Tech 6's megatextures. Rage and Doom 2016 grab one hugegantic block of texture memory and treat it as a dynamic texture atlas built from uniformly-sized squares.
Panic Button's Switch port of Wolfenstein II recently improved the game's texture quality by a significant degree. I suspect they just switched to compressed textures. Tile-based methods like ASTC (which the mobile Tegra X1 hardware surely supports) can maintain a fixed bits-per-pixel ratio which would play nicely with id's reactionary texture loading.
CarlChronicles ยท 17 points ยท Posted at 15:15:23 on November 14, 2018 ยท (Permalink)
Sounds more like avoidance of system calls and, therefore, time-consuming context switches. If you can reduce thousands of malloc calls down to one or two, this would likely be worth it.
OneRandomPotato ยท 5 points ยท Posted at 15:42:58 on November 14, 2018 ยท (Permalink)
Are you sure that malloc is a system call? I am pretty sure that when a process is created by the kernel, a giant chunk of memory is given to the process. Malloc takes from that chunk, rather than asking for more from the kernel. Same thing goes for allocating more stack. Otherwise, loading a function would also be a system call (allocating more stack).
Calkhas ยท 11 points ยท Posted at 16:35:48 on November 14, 2018 ยท (Permalink)
malloc(3) is not a syscall. However, on many architectures, the address space given to a process is not entirely under the control of the process, in the sense that, the process needs to notify the operating system somehow before it uses new parts of the address space. Otherwise, access to these memory regions will cause the memory management unit in the processor to raise a SIGSEGV, or possibly a SIGBUS, depending on the architecture.
On System V, the syscalls sbrk(2) and mmap(2) can be used for notifying the kernel that the address space should be considered in use. malloc(3) typically obtains several pages at once and keeps an internal linked list of memory locations suitable for subsequent allocations. If more space is required, a typical implementation must invoke at least one syscall to obtain access to the additional space.
sbrk(2) is now deprecated. This call raises the break boundary between usable and unusable address space. mmap(2) is more flexible and allows particular chunks of space to be marked writable (among other features such as memory-mapping files). On Linux, sbrk(2) is still used for smaller allocations, but on some operating systems, it is not implemented any longer. For instance, the macOS kernel (XNU) no longer implements the brk(2) or sbrk(2) syscalls; when XNU is compiled for macOS, sbrk is implemented as a shim around mmap. [When XNU is compiled for watchOS or iOS, sbrk is not available.]
TigreDeLosLlanos ยท 3 points ยท Posted at 15:48:48 on November 14, 2018 ยท (Permalink)
The stack is static for a process, it's defined in compilation time. The given memory reserved for variables is in the heap, and it could and should be expanded if needed.
OneRandomPotato ยท 3 points ยท Posted at 16:11:52 on November 14, 2018 ยท (Permalink)
I agree with that it can be expanded, but it does not do that every time. So its not as expensive as doing a system call.
Kered13 ยท 2 points ยท Posted at 21:55:17 on November 14, 2018 ยท (Permalink)
Yes, but most calls to malloc will not entail a system call. You'll only have a system call when the total memory in use increases by at least a page (4kb on most OSs).
MyPasswordIsCherry ยท 1 points ยท Posted at 16:30:11 on November 14, 2018 ยท (Permalink)
As someone teaching C++ to undergrads in the Spring...
should any of this make sense to me?
HaphStealth ยท 10 points ยท Posted at 16:45:08 on November 14, 2018 ยท (Permalink)
It probably should if you're in a position to be teaching undergrads.
MyPasswordIsCherry ยท 5 points ยท Posted at 18:10:06 on November 14, 2018 ยท (Permalink)
...it's going to be a long Christmas break
DrNightingale ยท 4 points ยท Posted at 18:01:53 on November 14, 2018 ยท (Permalink)
Surely you should have taken a class on operating systems that explains what a syscall and a context switch is? Unless you're not a computer scientist who isn't teaching computer science students, in that case you're excused I'd say.
MyPasswordIsCherry ยท 1 points ยท Posted at 18:07:16 on November 14, 2018 ยท (Permalink)
...
well I'm not a computer scientist...but I am teaching Comp Sci majors working towards their Bachelor's
ghostued ยท 1 points ยท Posted at 21:58:48 on November 14, 2018 ยท (Permalink)
LOL, then this should make sense, unless youโre teaching only the very basics
jeffbaier ยท 3 points ยท Posted at 17:17:29 on November 14, 2018 ยท (Permalink)
Some people had old bad ass game programmers teaching their University classes. Meanwhile I had instructors like you LOL.
MyPasswordIsCherry ยท 3 points ยท Posted at 18:09:42 on November 14, 2018 ยท (Permalink)
I will be the 1st to say I am underqualified, but I was the most qualified person that could be found.
Edward_Morbius ยท 2 points ยท Posted at 23:50:10 on November 14, 2018 ยท (Permalink)*
Don't sweat it.
Nobody knows if you're Donald Knuth or Donald Duck as long as you know more than they do.
Edward_Morbius ยท 1 points ยท Posted at 23:49:01 on November 14, 2018 ยท (Permalink)
Probably not.
You'll be spending most of your time trying to figure out where they copy-pasta'd their homework from.
batmansleftnut ยท 5 points ยท Posted at 15:19:30 on November 14, 2018 ยท (Permalink)
I'll bet the people who wrote those compiler optimizations took a class or two similar to what /u/jhartwell described.
somebunnny ยท 3 points ยท Posted at 16:02:06 on November 14, 2018 ยท (Permalink)
Sometimes you can write a very simple allocator for only some types of items which will be faster or more optimized in a specific case. Like a string allocator that doles our small chunks very quickly that cover 90% of your strings without the memory overhead per string of the main allocator.
When bytes matter and you notice most of your strings are twice the size they need to be due to overhead.
Henrarzz ยท 2 points ยท Posted at 15:52:59 on November 14, 2018 ยท (Permalink)
Now itโs still a thing. System calls are expensive.
TheAdventMaster ยท 2 points ยท Posted at 16:32:07 on November 14, 2018 ยท (Permalink)
Depends on how your data structures and memory allocation happen. Jonathan Blow (game developer behind Braid and The Witness) has talked about his own compiler/language Jai and certain things most languages do not optimize for at any fundamental level.
One of the lead compiler engineers for LLVM has given similar talks (although not about Jai).
If you have an application that depends on this memory structure, the compiler probably can only optimize it so much unless you write incredibly straightforward code. But things like batching, caching, etc. I mean the compiler really can only do so much there and some of that can only be done by profiling first.
It's only about 10 - 15% of code compilers can optimize. The rest, the compiler is trusting that you are expressing your desires IPO through the code. Anything beyond that is either the compiler taking a guess (which in theory could be wrong) or changing the IPO somehow (a big no-no for many developers).
Kered13 ยท 1 points ยท Posted at 22:00:18 on November 14, 2018 ยท (Permalink)
You use a custom allocator when you know what your allocation pattern is and can therefore optimize for it. For example if you know that every frame you need to allocate N objects of M size, then you can just allocate an N*M chunk of memory once and reuse it every frame.
sloppycee ยท 1 points ยท Posted at 17:17:24 on November 14, 2018 ยท (Permalink)
A properly optimized game typically doesn't need an allocator. They know up front which assets are needed for a given level and put them all in memory (that's what loading screens are doing). It's like loading a sprite sheet vs. individual assets, and it's still relevant.
Things are a bit different now with open world games with 40gb of assets, but they still usually have hard load points where huge parts of memory are swapped out. It's very rare for a game to dynamically allocate individual things to the point it would need an traditional "allocator".
somebunnny ยท 9 points ยท Posted at 15:56:28 on November 14, 2018 ยท (Permalink)
It can be quite a bit different for games, but Iโve done a lot of optimization, (both memory and speed) for more general consumer oriented applications/products on platforms from computer to phone to embedded, and most of the optimization is simply โtaking the dumb outโ.
Either someone inexperienced did something inappropriate for the platform, or there were ramifications to the platform that no one realized. 80% of the time these things might take a little cleverness to fix, but arenโt really rocket science. Often the hard part is having and using the tools to find the problem, which can be especially lacking in the embedded world.
An example might be seeing you have hundreds of copies of the same string in memory and realizing that your data parsing could benefit from a tweak to reuse the reference to the same string.
Noticing you have hundreds of the same data structure and tweaking the structure declaration to be more efficient or use smaller fields for data that wonโt need the entire field range.
Or finding out that someoneโs home rolled DB is writing out the entire DB when adding an item. Or that adding an item has a lot of overhead, so batching the adds.
Sometimes itโs as simple as using the API correctly, like discovering your UITableview isnโt reusing cells because of reuseidentifiers.
Sometimes it can be a bit tricker, like rewriting the compiler to generate more efficient branches so that each branch block used one less word and saves you 10K over the entire binary.
KinOfMany ยท 3 points ยท Posted at 15:54:45 on November 14, 2018 ยท (Permalink)
I've seen the assembly code of several GBA ROMs. It's amazing to me how pointer arithmetic is used to calculate resource addresses. I don't know if the developers did this or it's an optimization of the compiler, but it's amazing.
Kyanche ยท 1 points ยท Posted at 18:00:29 on November 14, 2018 ยท (Permalink)
:) I was taught a lot of those kinda tricks by one of my coworkers, he's probably been writing code about as long as I've been around lol.
LukeyTheKid ยท 1 points ยท Posted at 18:26:05 on November 14, 2018 ยท (Permalink)
Ha, Edโs still there, still making my life miserable ๐
loozerr ยท 44 points ยท Posted at 14:23:33 on November 14, 2018 ยท (Permalink)
If you're into that, I highly recommend this GTA V graphics study: http://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-study/
regretdeletingthat ยท 14 points ยท Posted at 18:20:35 on November 14, 2018 ยท (Permalink)
The fact that GTA V runs quite comfortably, with decent draw distance and no loading screens past the initial one, on what was at the time 7 (PS3) and 8 (360) year old hardware with 512MB RAM (shared on 360, split 256/256 between CPU/GPU on the PS3) continues to blow my mind.
To a certain extent RDR2 does too; how great the lighting looks especially is very impressive considering itโs running on essentially mid-range PC hardware from 5-ish years ago.
MarlinMr ยท 92 points ยท Posted at 13:43:46 on November 14, 2018 ยท (Permalink)
You should try looking at the videos of GameHut. It is a developer who worked on titles such as Toy Story, Crash Bendicot, Sonic, Lego Star Wars, and more.
He talks about how they made the "impossible" possible. He also shows many prototypes that were never released.
cloutier116 ยท 51 points ยท Posted at 14:13:14 on November 14, 2018 ยท (Permalink)*
In case you didn't know he's actually also the founder of Traveler's Tales, the studio behind most of the
recentLego video gamesVicisSubsisto ยท 30 points ยท Posted at 14:39:06 on November 14, 2018 ยท (Permalink)
At this point I think you can remove "recent". Lego Star Wars was over a decade ago.
cloutier116 ยท 34 points ยท Posted at 14:45:32 on November 14, 2018 ยท (Permalink)
I specified recent to indicate that it didn't include the old PC games like Lego Island and Lego Racers, but wow, I forgot how long it had been since Lego Star Wars
Houdiniman111 ยท 12 points ยท Posted at 15:35:18 on November 14, 2018 ยท (Permalink)
I was in elementary school when Lego Star Wars II was released. I'm graduating from college next month. Yeah, it's been a while.
VicisSubsisto ยท 2 points ยท Posted at 16:05:34 on November 14, 2018 ยท (Permalink)
There have been a lot of Lego [Insert License Here] games, so "most of the Lego video games" probably is accurate.
h9armando ยท 1 points ยท Posted at 22:41:45 on November 28, 2018 ยท (Permalink)
His Sega Saturn videos are amazing (see Sonic R). You can see how different the system was, resulting in the Saturn's premature death, and ultimately, the fall of Sega consoles.
BollockSnot ยท 4 points ยท Posted at 15:20:36 on November 14, 2018 ยท (Permalink)
"Bendicot"
GeronimoHero ยท 1 points ยท Posted at 16:06:23 on November 14, 2018 ยท (Permalink)
*Crash Bandicoot, unless youโre talking about some open source copy of the original game that uses that name.
[deleted] ยท 81 points ยท Posted at 14:18:42 on November 14, 2018 ยท (Permalink)
The sheer amount of real time self-modifying code I wrote for the PS2 still blows my mind when I think about it. When the average PC was about 1.3GHz with 128MB ram the PS2 was 222MHz with three processing units you could run with manual bus arbitration and 8MB DRAM, 32k SRAM, and ... the third memory bank was for ... something I forget. But you could access all three independently AND it was real-mode memory. So write to the wrong address with shitty pointer math didn't mean a default every time, it meant you wrote to the wrong address. Could be the video buffer, MediaEngine (sound chip), etc.
./memories
The Xbox was amazing from a coding standpoint. It was just a DirectX Box thus the name.
snowcrash911 ยท 16 points ยท Posted at 14:53:03 on November 14, 2018 ยท (Permalink)
But why? Or do you mean by accident?
pesmmmmm ยท 27 points ยท Posted at 16:49:39 on November 14, 2018 ยท (Permalink)
It was one of the more powerful techniques to squeeze more functionality into smaller resources. We also used to have multiple overlays in the code segment and mapped which routines needed which other routines resident to organize the overlays to minimize disruption when you needed to swap one out for another. Multiple well organized and optimized code segments allowed programs larger than memory to run by dynamically swapping pieces of themselves in and out of memory as needed. Also highly optimized hand written assembler helped.
snowcrash911 ยท 11 points ยท Posted at 16:53:26 on November 14, 2018 ยท (Permalink)
Alright, but are we also actually talking about self-modifying, polymorphic code? As in, assembly line x overwrites line y and then jumps into the section containing line y, to exploit some benefit of self-modification? I'm interested because I used to reverse engineer/crack DOS-based virus scanners with trial expiry and the virus scanner in question used self-modification to throw off its own heuristic engine so that its own self-decryption routines wouldn't be flagged as suspicious. It would certainly derail passive disassemblers.
[deleted] ยท 2 points ยท Posted at 22:32:58 on November 14, 2018 ยท (Permalink)
Yes. Is there any other kind of self-modifying code?
snowcrash911 ยท 5 points ยท Posted at 23:03:29 on November 14, 2018 ยท (Permalink)
There could have been a misunderstanding, and that is the sole reason I asked.
[deleted] ยท 2 points ยท Posted at 22:15:54 on November 14, 2018 ยท (Permalink)
https://www.reddit.com/r/ProgrammerHumor/comments/9wywve/computing_in_the_90s_vs_computing_in_2018/e9pj3ed/
snowcrash911 ยท 1 points ยท Posted at 23:03:46 on November 14, 2018 ยท (Permalink)
Yes, thank you.
jgalar ยท 13 points ยท Posted at 15:57:23 on November 14, 2018 ยท (Permalink)
The things devs could get out of the PS2 still impress me (MGS3, Ico, Shadow of the Colossus and others come to mind).
Can you give an example where self-modifying code paid off?
[deleted] ยท 8 points ยท Posted at 22:15:41 on November 14, 2018 ยท (Permalink)
It was one way of forcing important logic to stay in cache (there was only one level of instruction cache and it was only 16k). It was the only way to maintain 60fps in many games. We also used part of the scratchpad (a programmer-controlled 16k data-cache) as a way of cheating to preload some shit. These are 18 year old memories so it's not guaranteed to be 100% accurate. =p
But the PS2 had one magical instruction: conditional move. So instead of branching (which murders the MIPS pipeline) you could move something from one register/memory to another depending on a register's zero/nonzero state. So this allowed us to self-modify code paths instead of branching; it saved 7 clock cycles (full pipeline stall) minimum on every single branch that would have happened instead of self-modifying. It was a pain in the ass, but we did it. I personally wrote a sound mixer that could outperform the MediaEngine (the hardware mixer) using exactly that (it was the original reason I wrote it; it gave us like 16 channels for audio mixing instead of 4 at the bitrate we were streaming sounds).
uyjulian ยท 2 points ยท Posted at 04:25:38 on November 15, 2018 ยท (Permalink)
The PS2's main processor, Emotion Engine/r5900, was 294/300 MHz (depending on the model) , containing either 32MB, 64MB, or 128MB depending on the model (retail/PSX). The Graphics Synthesizer (the GPU) had 4MB of RAM, but the bandwidth between it and the EE was fast. There was two "Vector Units" in the PS2. VU0 has 4k/4k of instruction/data RAM, and was closely coupled with the EE, while VU1 has 4k/4k of instruction/data RAM, and was closely coupled with the GS.
Then there is the IOP, which handles communications with USB, controllers, memory cards, IEEE1394, SPU2 (sound processor), CDVD drive, HDD, and Ethernet. It had 2MB of RAM on the retail models.
[deleted] ยท 4 points ยท Posted at 05:06:34 on November 15, 2018 ยท (Permalink)*
Ahh man that brings back memories. Sec, I still have those giant sony books around here somewhere.
Here they are
Namnodorel ยท 93 points ยท Posted at 14:13:32 on November 14, 2018 ยท (Permalink)
Or they don't want to. I like pixel art, but a wider color range just looks better. Fewer pixels aren't reserved to retro games IMO. It's an artstyle.
kerohazel ยท 43 points ยท Posted at 14:50:00 on November 14, 2018 ยท (Permalink)
Yeah, it's no different than modern chiptunes that use filters and modern drum kits.
A style choice can be just that, not necessarily an exact imitation of the past.
10000_vegetables ยท 13 points ยท Posted at 15:00:10 on November 14, 2018 ยท (Permalink)
Using a strict pallette can look great if you can pull it off right, but yeah usually just picking your own colors ends up being decent to make and look at.
CAPSLOCK_USERNAME ยท 7 points ยท Posted at 17:23:39 on November 14, 2018 ยท (Permalink)
Personally I can enjoy games with pixel art, but when something goes full nostalgia and starts imitating that super-restricted color palette it usually looks horribly ugly.
PM_ME__ASIAN_BOOBS ยท 1 points ยท Posted at 02:19:16 on November 15, 2018 ยท (Permalink)
It's kind of weird that the guy above picked that example. There are a lot of other limitations that modern games ignore (number of sprites, number of tiles), but the number of colors is one that's still very important, the pixelart community is very intense about it, and most artists keep to a limited palette
ButtersCreamyGoo42 ยท -10 points ยท Posted at 16:25:37 on November 14, 2018 ยท (Permalink)
If it looks good to you, you weren't around when NES games came out. That's fine but you're showing your ignorance of what they are supposed to look like. You think they look good because they remind you of retro games like Mega Man but you don't have a clear memory of what those games look like.
It's the equivalent of saying the Kurgan sword from Highlander looks cool. I mean, I guess, if you don't know anything about swords.
Namnodorel ยท 7 points ยท Posted at 19:12:51 on November 14, 2018 ยท (Permalink)
I kinda feel like you missed my whole point about pixel art not being all about retro...
AliveThrouDeath ยท 27 points ยท Posted at 14:10:19 on November 14, 2018 ยท (Permalink)
I've recently discovered fantasy consoles, which are designed to scratch this itch. It looks like the most popular by far is PICO-8, which limits you to 8x8 sprites, a 64kb ROM size, 32kb RAM, and has a resolution of 128x128 with an extremely limited color palette. It also has a built-in IDE that includes sprite and music creation tools. There are others, like TIC-80 and love2d, but PICO-8 is the most restrictive (and thus the most interesting to me).
kamehouseorbust ยท 12 points ยท Posted at 14:40:30 on November 14, 2018 ยท (Permalink)
Had a whole class where we had to use PICO-8, it ended up helping me get an internship at a AAA game company. It does a good job of helping you understand limitations even though it's only Lua.
Dogeek ยท 3 points ยท Posted at 16:49:19 on November 14, 2018 ยท (Permalink)
In a game jam, I made one game with Pico-8. The only downside to it is taht the programming language has to be done in LUA, which is a terrible scripting language.
I uploaded the game to my website though. http://dogeek.legtux.org/pewpewmewmew/
Hurricane_32 ยท 126 points ยท Posted at 13:01:13 on November 14, 2018 ยท (Permalink)
The best modern example is Shovel Knight, but even then they did cheat slightly. For the most part, though, the entirety of the game's graphics and sound adhere to the NESs hardware limitations
topdangle ยท 121 points ยท Posted at 13:40:15 on November 14, 2018 ยท (Permalink)*
Maybe in limited color palette but its definitely not trying to imitate all the other limits of the NES, especially the way the nes would start strobing/slowing down once you hit the sprite limit.
thatwasntababyruth ยท 42 points ยท Posted at 14:12:45 on November 14, 2018 ยท (Permalink)
Another common complaint is that Shovel Knight uses parallax scrolling, which isn't possible on the NES. Personally, I don't care, because it's the beautiful visual aesthetic that matters to me more than nostalgic feelings.
KoboldCommando ยท 15 points ยท Posted at 15:44:21 on November 14, 2018 ยท (Permalink)
It was definitely possible, just not very common or pronounced, probably because it ate up a lot of resources they couldn't afford to spare.
itsaworkalt ยท 3 points ยท Posted at 19:33:46 on November 14, 2018 ยท (Permalink)
Mostly it's that the NES didn't support it natively. There was only one background layer that games painted to. If you wanted parallax, you'd have to hack it together yourself which is admittedly pretty tough, especially given the number of cycles you had during a V blank on the NES.
SNES started supporting it natively where you could have multiple background layers.
supermario182 ยท 4 points ยท Posted at 16:09:04 on November 14, 2018 ยท (Permalink)
Bucky O'Hare actually has a basic version of it where the stars scroll at a different speed than the background does
Kered13 ยท 2 points ยท Posted at 22:02:25 on November 14, 2018 ยท (Permalink)
The NES did not have hardware support for parallax scrolling, but some games were able to implement it in software.
brtt3000 ยท 83 points ยท Posted at 13:44:49 on November 14, 2018 ยท (Permalink)
Is that really essential for the aesthetic?
topdangle ยท 102 points ยท Posted at 13:48:19 on November 14, 2018 ยท (Permalink)*
No, but whats essential for an aesthetic isn't the same as whats essential for "the entirety of the game's graphics" adhering to the NES's specs.
Shovel Knight sort of breaks the aesthetic anyway with very fluid animations, heavy layered backgrounds and big multisprite bosses. The game really only looks like an NES throwback in screenshots while in motion it looks and feels way more modern.
Backstop ยท 91 points ยท Posted at 14:27:38 on November 14, 2018 ยท (Permalink)
Shovel Knight is a game that's like how you remember the NES years, but not how it actually was.
presh_frince ยท 17 points ยท Posted at 15:00:37 on November 14, 2018 ยท (Permalink)
Never played the game but that sounds ideal to me. Like how modern Bands that use 80s sounds often sound way better than the 80s bands
Dogeek ยท 3 points ยท Posted at 16:47:23 on November 14, 2018 ยท (Permalink)
You should, it's a great game.
ThePixelMouse ยท 24 points ยท Posted at 13:51:50 on November 14, 2018 ยท (Permalink)
Correction: The soundtrack could play on a Famicom from a cartridge with a VRC6 expansion chip, but wouldn't work on an NES.
Cheesemacher ยท 15 points ยท Posted at 13:51:51 on November 14, 2018 ยท (Permalink)
I'm not sure but I think some of the fancy parallax backgrounds might be too advanced for the NES
Skitz-Scarekrow ยท 18 points ยท Posted at 14:02:23 on November 14, 2018 ยท (Permalink)
Typically, but late NES games from the early 90s had parallax. Kirby's Adventure, Return of the Joker, Metal Storm, Ninja Gaiden 3
PheonixScale9094 ยท 9 points ยท Posted at 14:02:41 on November 14, 2018 ยท (Permalink)
They are, only the most basic parallax effects could be achieved with scrolling different background rows of tiles at different speeds
DefaultGen ยท 3 points ยท Posted at 16:02:12 on November 14, 2018 ยท (Permalink)
Shovel Knight isn't even close to real NES limitations. The developers have a great blog post on it:
https://yachtclubgames.com/2014/07/breaking-the-nes/
Even games that look right at first glance like Bloodstained: CotM have enormous, animated bosses, ridiculous parallax, screen shake effects, etc. Devs are way too tempted trying to make the game look better to embrace the art of real limitations.
10000_vegetables ยท 2 points ยท Posted at 14:57:33 on November 14, 2018 ยท (Permalink)
Yeah, Shovel Knight did it right. They only added the extra that they needed.
tomius ยท 1 points ยท Posted at 15:16:43 on November 14, 2018 ยท (Permalink)
Maybe Thimbleweed Park.
Ron Gilbert pointed out that he "cheated" here and there to make it feel better, but the game captures the feel of an old LucasArts game quite nicely.
mikiex ยท 1 points ยท Posted at 16:26:02 on November 14, 2018 ยท (Permalink)
But with a wacking great big CPU ;)
Khvostov_7g-02 ยท 1 points ยท Posted at 16:30:08 on November 14, 2018 ยท (Permalink)
The Messenger is closer IMO, enemies even respawn when they scroll offscreen
AnonRetro ยท 1 points ยท Posted at 21:21:57 on November 14, 2018 ยท (Permalink)
The best modern example, is Eskimo Bob. A new game written for the NES, and is now sold on Steam
Came out about a year ago.
Cobaltjedi117 ยท 34 points ยท Posted at 13:34:45 on November 14, 2018 ยท (Permalink)*
Megaman
Bombermanis blue because the NES had a "wide" range of blue to useiizdat1n00b ยท 16 points ยท Posted at 13:42:09 on November 14, 2018 ยท (Permalink)
I thought that was Megaman
Cobaltjedi117 ยท 4 points ยท Posted at 13:46:07 on November 14, 2018 ยท (Permalink)
You're right
Sarcon5673 ยท 2 points ยท Posted at 13:39:34 on November 14, 2018 ยท (Permalink)
Are you using "wide" sarcastically? Isn't it only 3 shades of blue (plus black)?
Cobaltjedi117 ยท 25 points ยท Posted at 13:45:44 on November 14, 2018 ยท (Permalink)
I mean, it was the widest selection of colors on the NES.
geltoupee ยท 3 points ยท Posted at 15:41:43 on November 14, 2018 ยท (Permalink)
There are 54 colours (64 but 9 are duplicates and 1 is outside the NTSC colour range), and none of them was a good yellow.
MrGreggle ยท 3 points ยท Posted at 15:09:33 on November 14, 2018 ยท (Permalink)
Blue is very wide relative to the NES color palette. http://www.thealmightyguru.com/Games/Hacking/Wiki/images/e/e8/Palette_NTSC.png
Rogryg ยท 1 points ยท Posted at 01:05:39 on November 15, 2018 ยท (Permalink)
Keep in mind that the statement came from the Japanese developers of the game - the Japanese word "ao", which is usually translated as "blue", covers a wider range of colors than "blue", encompassing what we we would call green as well.
EatzGrass ยท 76 points ยท Posted at 13:29:20 on November 14, 2018 ยท (Permalink)
I never made a game but I remember spending a lot of time learning on how to optimize the game thread I think it was.
Something along the lines of figuring out how much time was going to be left over in each cycle and then sleeping for a dynamic number of milliseconds. I remember thinking that 20 FPS looks ok and look how much battery life I could save.
Then Candy Crush came along which turned your phone to lava and said "fuck it". Why waste my time...
kowdermesiter ยท 18 points ยท Posted at 13:55:27 on November 14, 2018 ยท (Permalink)
what did that make you quit?
Nerrickk ยท 47 points ยท Posted at 14:06:34 on November 14, 2018 ยท (Permalink)
Because the general population doesn't give a shit. They eat shovelware and micro transactions like its the greatest thing ever.
kowdermesiter ยท 2 points ยท Posted at 15:31:56 on November 14, 2018 ยท (Permalink)
If you are a software developer, writing shoveware with microtransactions is the best thing ever :)
nickpreveza ยท -9 points ยท Posted at 14:39:37 on November 14, 2018 ยท (Permalink)*
Candy Crush wasn't made for you. Most of the things you don't like, are just tailored to a different target group / demographic. They are not less valid because they don't fill your definition of "worthy".
Most people truly don't care about quality in any medium - but nobody says that Candy Crush or Call of Duty is the pinnacle of gaming. People, usually young to middle-aged women in the case of Candy Crush and young males in the case of Call of Duty, play it as a time killer or because they find it entertaining. It fulfills one of their needs, and that's perfectly ok.
It's the exact same with cinema and Marvel movies - people watch them because they are great for what they are - popcorn quality entertainment. They are not great films, but that's not a bad thing.
EDIT: Pointing or challenging the hive-mind mentality of Reddit users always equals to downvotes, but that's ok. It's ok that you disagree, and that's not a bad thing. Candy game bad.
TheRealJohnAdams ยท 2 points ยท Posted at 13:50:49 on December 4, 2018 ยท (Permalink)
โThe taste of the masses is characterized not by their antipathy to the excellent, but by the passivity with which they enjoy equally the good, the mediocre, and the bad. The masses do not have bad taste. They simply do not have taste.โ โNicolas Gomez Diego
It sounds like you agree with him. You're not saying that Candy Crush is good, just that people like it and they're allowed to. Well, sure, they're allowed toโbut Candy Crush still isn't good, and there are games that are good, and it would be better if people liked those games, both for their own fulfillment and so that game developers could make games they find more fulfilling to make.
[deleted] ยท 8 points ยท Posted at 14:57:37 on November 14, 2018 ยท (Permalink)*
[deleted]
strangeglyph ยท 11 points ยท Posted at 15:09:51 on November 14, 2018 ยท (Permalink)
That seems like a massive overexaggeration when talking about hobbies. In particular, that means everyone needs to care about quality in everything they consume. How exhausting that would be, if I couldn't watch a marvel movie every now and then or play a round of candy crush or read a trashy novel.
nickpreveza ยท 5 points ยท Posted at 15:21:01 on November 14, 2018 ยท (Permalink)
This isn't related with education. It is related to customer segments, customer problems and needs.
Someone that plays only Candy Crush, or only plays AAA games or watches only mainstream movies is simply not heavily invested in the medium and that's all there is to it.
These kind of industries have enough space for all kinds of users. Neither the medium nor society will collapse because some people don't care about the quality of the games they have on their phones.
The mobile market, in the other hand, became huge instead, and these "stupid mobile games" were the main reason. This doesn't mean there are no quality titles, or that more won't be developed in the future, for mobile.
Nerrickk ยท 5 points ยท Posted at 14:44:23 on November 14, 2018 ยท (Permalink)
You seem upset, but just so you know, I'm included in the group I was mentioning.
But since you seem like you want a flame war by the way that you paraphrased my post, I'm just going to exit the conversation now. Have a nice day!
Dobe2 ยท 1 points ยท Posted at 04:41:50 on November 15, 2018 ยท (Permalink)
"They hated Jesus because he told them the truth."
EatzGrass ยท 3 points ยท Posted at 19:03:22 on November 14, 2018 ยท (Permalink)
Something like that.
I woke up one day wanting to make a simple app and went down a 2 and a half year rabbit hole.
Something like deciding I want to eat a piece of corn then proceeding to learn all of the science of germination, the regions and composition of soils, the laws behind a real estate purchase, the how to's of gardening, the time waiting for my corn stalk to grow, how to raise and milk cows, how to make butter from milk you learned how to get from the cow, learning from scratch, the collective wisdom of fire and cooking, and finally...
Enjoying that sweet piece of corn
Loved every minute of it though.
kowdermesiter ยท 1 points ยท Posted at 02:25:16 on November 15, 2018 ยท (Permalink)
You just made me remember this classic rabbit hole digging post
https://www.reddit.com/r/WeAreTheMusicMakers/comments/26bf7b/using_loops_is_cheating/
As a fellow builder, I can only suggest to keep building and "cheat" sometimes.
nickpreveza ยท 22 points ยท Posted at 14:30:13 on November 14, 2018 ยท (Permalink)
Being oblivious to what your target group cares about is a major mistake. You are usually not making a game for you, but for your players - and should relocate resources appropriately.
It's neither the consumer's nor King's fault.
Candy Crush looks, feels and plays great, and is highly appealing - and addictive - to its target group.
In the other hand, whatever the game, 20fps look problematic to say the least.
Ranzera ยท 1 points ยท Posted at 20:38:30 on November 14, 2018 ยท (Permalink)
Depends on the game. I bet a card game needs fewer frames to feel smooth.
nickpreveza ยท 2 points ยท Posted at 21:26:29 on November 14, 2018 ยท (Permalink)
You'd be surprised!
Even card games have loads of animations and particles going on - let's take Hearthstone for example. When direct movement due to user input ( the cards in our case ) is added in the equation, 60fps is almost a mandatory target, not only for aesthetics but also for enhanced usability. Sure having lower than 60fps won't be a big deal, but anything less than 30 would be extremely noticeable to the user.
"Threes!" is a famous mobile game that you just swipe cards with numbers on a grid ( basically what 2048 copied ), yet everything is smoothly animated, including the cards themselves. Threes! also offers a battery-saving mode that limits the game to a ~15fps version of itself. If you have the chance, give it a go and see for yourself how much of an impact it has on gameplay.
SasparillaTango ยท 23 points ยท Posted at 14:00:35 on November 14, 2018 ยท (Permalink)
you couldn't have 50GB day one patches, everything had to fit on disks that shipped. Granted you could have a a dozen 3.5 inch floppies for a game, but that costs money. You had to get the size down to something profitable and it had to install on most computers when there was still a ton of variation in specs.
Anjz ยท 6 points ยท Posted at 14:41:25 on November 14, 2018 ยท (Permalink)
It comes with abstraction. With how sparse everything is, it would take longer to make it more efficient while at the same time keeping it realistic. Oftentimes it's a lot easier to just import an inefficient library that has it fully working rather than spending time making it yourself and cutting down nuances.
snarfy ยท 6 points ยท Posted at 15:53:12 on November 14, 2018 ยท (Permalink)
This is a pretty good read on why pixel art is dead.
Sarcon5673 ยท 2 points ยท Posted at 16:22:41 on November 14, 2018 ยท (Permalink)
Thank you! It was a really good read.
CivilServiced ยท 3 points ยท Posted at 14:59:17 on November 14, 2018 ยท (Permalink)
The Jargon File has a story about a programmer optimizing code back when drum storage was a thing, taking into account the rotation of the drum and location of the read head.
Hell, instead of trying to explain: http://www.catb.org/jargon/html/story-of-mel.html
[...]
It gets even better.
PornCartel ยท 3 points ยท Posted at 15:23:38 on November 14, 2018 ยท (Permalink)
It isn't the same because it's generally better. Old games typically look ugly, speaking as someone who was born after that time.
Sarcon5673 ยท 0 points ยท Posted at 15:47:28 on November 14, 2018 ยท (Permalink)
As someone else pointed out, some games use "crude" pixel art, like Undertale and Nidhogg, which make it look worse, instead of setting some limits and trying to do the best they can with that (giving the same feel and better graphics).
PornCartel ยท 2 points ยท Posted at 16:04:44 on November 14, 2018 ยท (Permalink)*
That was a choice so the characters could live mostly in the players minds. A pretty good one given the insane popularity and fanart. I'll take that over blurry doom sprites and 5 polygon star fox ships with distance fog.
The only reason anyone wants truely limited systems is nostalgia. Anyone looking back without rose tinted glasses knows working with more power and a good aesthetic is better.
Sarcon5673 ยท 1 points ยท Posted at 16:30:38 on November 14, 2018 ยท (Permalink)
I guess that now that I think about it, what I really want is good animation.
All these new games using 3D models don't really try to deform those rigid models to express more. In the old games, the pixels were hand-placed, so they did a really good job in the animation. Old Capcom fighting games like Darkstalkers, SFA, SF3, and the Marvel series were really beautiful. If you freeze and look at the motions when someone is hit or when they're doing a special, it's really something to behold.
Modern games like Cuphead and Skullgirls really get it, and they do the same things as those old games, and that's what I want more of.
PornCartel ยท 1 points ยท Posted at 22:04:40 on November 14, 2018 ยท (Permalink)
Ah, well modern system power actually gives you a lot more flexibility with deforming models than say, the simplistic cartoon stretching of the original Jak and Daxter or Spiro. But the cartoon aesthetic just isn't as popular atm.
The nice thing about the future is that you can easily make and distribute your own games- Compared to earlier times, anyway. You could just do it yourself.
mmazing ยท 11 points ยท Posted at 14:17:59 on November 14, 2018 ยท (Permalink)
It really is lost on a lot of current developers/programmers. The current trend is โthrow more hardwareโ at it so I can have โmore easy to read, everything is an api now duhโ code and โit doesnโt need to be efficient thatโs what a cache is for.โ
Disgusting and I see it in software everywhere.
[deleted] ยท 3 points ยท Posted at 16:40:42 on November 14, 2018 ยท (Permalink)*
[deleted]
mmazing ยท 0 points ยท Posted at 22:57:22 on November 14, 2018 ยท (Permalink)
Not really, when you don't have efficiency as a primary goal you skimp on it in too many ways and end up with an inferior product.
It shouldn't be the ONLY primary goal, but it should be up there. I've seen far too many projects where the whole thing ends up a bloated mess because people don't understand that a little extra work towards making something efficient goes a long way down the road.
BiH-Kira ยท 2 points ยท Posted at 23:04:46 on November 14, 2018 ยท (Permalink)
I mean yeah, you're right. But I wasn't talking about an extreme version of no optimization. Just that it's far less important (for the company) to optimize as much as possible if you're making something for generally PC or smartphone use.
You should always optimize your code, but at some people optimization starts costing you more than just throwing more hardware at it and that's when you should stop.
mmazing ยท 1 points ยท Posted at 23:18:54 on November 14, 2018 ยท (Permalink)
Everything in moderation, of course. :)
McG_84 ยท 6 points ยท Posted at 14:25:28 on November 14, 2018 ยท (Permalink)
What I really liked is that they were the FULL GAME
ImmutableInscrutable ยท 2 points ยท Posted at 14:59:09 on November 14, 2018 ยท (Permalink)
As opposed to what? Day 1 patches? Old games have a ton of glitches. Downloading additional data to play? It's not 1990 anymore, it's okay to rely on the internet for large data transfers. DLC? I think you're way overblowing how often dlc is cut content and not something they started work on after development.
[deleted] ยท 3 points ยท Posted at 14:56:10 on November 14, 2018 ยท (Permalink)*
[deleted]
Sarcon5673 ยท 3 points ยท Posted at 15:05:08 on November 14, 2018 ยท (Permalink)
Yeah, I actually wanted to elaborate more on what my problem with new "pixel art" games was, but I didn't know how to put it into words.
"Crude" is exactly what I was looking for. Stuff like Nidhogg really bothers me.
But also more colors is also an issue, because it takes away that retro feel (which is their aim), and new games will not be forced to resort to stuff like dithering.
lelieldirac ยท 4 points ยท Posted at 15:28:22 on November 14, 2018 ยท (Permalink)*
You are falsely assuming that these games are universally aiming for a โretro feel.โ Pixel graphics have evolved from a limited means of displaying information to a genuine art style. While many pixel artists choose to abide by the limitations of the era in which they were conceived, many freely integrate modern enhancements with the only limitation being resolutionโperhaps in the same way that their predecessors would have had the tech been available to them. Check out Pixel Joint if you want to know what Iโm talking about.
Certainly graphics seen in Fez, Hyper Light Drifter, Celeste, Eastward, Sonic Mania, Owlboy, and many many others would have been impossible in the era that inspired them. And yet, they are beautiful in their own right. Some of these games were likely made with the intent of creating a retro experience, while some chose pixel graphics due to budgetary or personnel restraints, while others still chose their art style purely out of love for the craft. Calling this art โcrudeโ is not only false in my opinion, but it is also an insult to the artists.
mysticrudnin ยท 1 points ยท Posted at 16:35:35 on November 14, 2018 ยท (Permalink)
nidhogg has better and smoother animations than like any game from those eras
lelieldirac ยท 2 points ยท Posted at 15:46:29 on November 14, 2018 ยท (Permalink)
You're cherry-picking some of the best that retro graphics have to offer and incredibly small modern indie games. Why compare Gods to Undertale and DOTE when you could compare it to Owlboy and Octopath Traveler?
The criticism of "lazily put together ... to save money" rings hollow when indie developers genuinely do not have the money that would be necessary to make world-class pixel art. Undertale was made by one person. Toby Fox designed the game, wrote the story, composed and produced the soundtrack. A handful of people helped with the graphics, but he was working on a budget of $50,000. That is probably less than the yearly salary of a single 2D asset artist working in the industry.
[deleted] ยท -1 points ยท Posted at 16:11:05 on November 14, 2018 ยท (Permalink)*
[deleted]
lelieldirac ยท 1 points ยท Posted at 16:28:02 on November 14, 2018 ยท (Permalink)*
At the time of DOTE's release, it was not published by SEGA. SEGA purchased the studio a few years later. See the last sentence: "Sega will also publish Amplitudeโs back catalog as well."
I think you're massively overestimating the impact of association and nostalgia. We're talking about a visual medium here -- people aren't buying Undertale because they were reminded of Chrono Trigger. They play the game because they either like the graphics for what they actually are, or they are indifferent to them. When a developer chooses pixel art, they probably know damn well that they make a profit on association alone. No developer is tricking anyone into buying a game with graphics that they don't like.
I'm sorry but you can't disregard specifics and generally say that games are being praised for what you consider to be the wrong reasons. Without specific examples, I just have to take your word for it that (1) these games are being praised specifically for having retro graphics, and (2) they objectively look "worse" than "most" older games.
Yes, and I'm guessing that you would not consider most of these games to be the best examples of retro graphics.
mysticrudnin ยท 1 points ยท Posted at 16:35:09 on November 14, 2018 ยท (Permalink)
most of undertale is programmer art put into the game
i'm sure if it could look better, it would have
it's a case of don't let the perfect be the enemy of the good. it's a case of gameplay over graphics
[deleted] ยท 1 points ยท Posted at 17:21:05 on November 14, 2018 ยท (Permalink)*
[deleted]
mysticrudnin ยท 1 points ยท Posted at 23:44:23 on November 14, 2018 ยท (Permalink)
undertale might be overhyped, but i actually do think it's an incredible game. but i also had the good fortune of playing it before the fandom arose.
i think that in the case of undertale, it fits the game and looks decent enough. which, to me, just means that if you do it right, the fill tool is good enough. the game wouldn't be any better if it looked better.
tinydonuts ยท 1 points ยท Posted at 14:40:10 on November 14, 2018 ยท (Permalink)
So you're saying that me, with very limited art capabilities (MS Paint level really), has the opportunity to shine?
Sarcon5673 ยท 1 points ยท Posted at 14:50:35 on November 14, 2018 ยท (Permalink)
Have you ever heard of JonComics?
tinydonuts ยท 1 points ยท Posted at 15:02:25 on November 14, 2018 ยท (Permalink)
Nope. Will have to check it out.
CJGeringer ยท 1 points ยท Posted at 14:46:53 on November 14, 2018 ยท (Permalink)
Are you familiar with odallus? I think they did a good job of it..
Sarcon5673 ยท 1 points ยท Posted at 14:52:29 on November 14, 2018 ยท (Permalink)
I took a look at some screenshots, and it really looks perfect.
[deleted] ยท 1 points ยท Posted at 15:04:07 on November 14, 2018 ยท (Permalink)
[deleted]
Sarcon5673 ยท 1 points ยท Posted at 15:08:41 on November 14, 2018 ยท (Permalink)
What's that?
simwil96 ยท 1 points ยท Posted at 15:07:50 on November 14, 2018 ยท (Permalink)
If you are interested in this stuff I would definitely check out Game Huts "Coding Secrets" series on YouTube. I think it's fascinating.
Sarcon5673 ยท 1 points ยท Posted at 15:09:11 on November 14, 2018 ยท (Permalink)
Someone else mentioned them and I subbed.
buddboy ยท 1 points ยท Posted at 15:12:32 on November 14, 2018 ยท (Permalink)
well back then the hardware was more expensive than the labor so it was more cost effective to pay designers for more hours to make the games smaller.
Now the hardware is so cheap compared to the labor it's cheaper to get it done quick and dirty
fluxxis ยท 1 points ยท Posted at 15:18:15 on November 14, 2018 ยท (Permalink)
And if you didn't have enough memory you could hack your autoexec.bat and config.sys to free up some space by removing unnecessary things like the mouse driver. Today, you buy a new machine.
echo_61 ยท 1 points ยท Posted at 15:21:28 on November 14, 2018 ยท (Permalink)
Youโll enjoy this:
https://www.quora.com/How-did-game-developers-pack-entire-games-into-so-little-memory-twenty-five-years-ago/answer/Dave-Baggett?srid=z9ZA&share=1
NelsonBelmont ยท 1 points ยท Posted at 15:23:36 on November 14, 2018 ยท (Permalink)*
There's an interview with Nobuo Uematsu where he says he requested that the FFVII music be always ready in memory, so when you entered a battle the music was already playing while everything else loaded from the disc.
Here's the full video.
wonkey_monkey ยท 1 points ยท Posted at 15:31:34 on November 14, 2018 ยท (Permalink)
There's a great game for the BBC Micro (32k RAM, 6502 processor) called Exile which pushed the machine's memory to such extremes that the save procedure involved crashing the game, soft resetting, and reloading back to the main menu. There wasn't enough memory for a HUD so you had to push F keys to get chimes that told you how much fuel/power you had left. It had a particle system, gravity, inertia, AI opponents with "hearing" as well as "sight", explosions with shockwaves, and a (for the time) huge partially-procedurally-generated map (it would never have fit in memory otherwise).
On the Acorn Electron version you had to put up with the game's sprites being displayed around the gameplay area because of memory limitations.
Polantaris ยท 1 points ยท Posted at 15:57:29 on November 14, 2018 ยท (Permalink)
A good example is the old Dragon Quest games on NES. There was a limited number of colors you could render at once on the NES. When you went low on health, everything that was white turned green/orange. Everything, including beaches on the map and other stuff like that. That's because they shared a color. The pixelated games they make today do not share that restriction, and no one emulates it for that retro feel. Not sure they even know/remember it.
Grumpy_Kong ยท 1 points ยท Posted at 15:58:09 on November 14, 2018 ยท (Permalink)
That's not true at all though, it's just that instead of using sprites within a sprite engine that renders every frame of the whole screen basically as a single grid image, modern 'pixelated' games use sprites as entities on top of a background.
I know the distinction is subtle though you can see it in things like rotation.
Oldschool games had to have different sprites for each meaningful angle of rotation, each drawn separately and then kind of 'stop motioned' over each other.
Modern games take that same original pixel sprite and just rotate it around an axis.
Meaning the 'grid' illusion is lost and you realize you aren't looking at a single unified image but a background image with a bunch of image assets tweened over it.
Sarcon5673 ยท 1 points ยท Posted at 16:23:55 on November 14, 2018 ยท (Permalink)
That sounds awful
Grumpy_Kong ยท 1 points ยท Posted at 16:40:57 on November 14, 2018 ยท (Permalink)
It actually had it's own charm, each sprite was hand drawn and that captures something that just mapping a vertex character to a pixel grid just doesn't approximate.
If anything it's a lot like comparing the end-of-an-era hand drawn anime like Evangelion to a more modern 3d anime like Knights of Sidonia.
Sure both are beautiful in their own ways, though people who grew up on hand drawn anime often feel that those cells have more character and artist influence than just a posed and modeled 3d character.
There are a lot of model tweaks in Evangelion that were basically done on the fly by the animators to convey story points that in hand drawn basically boils down to drawing ten or twelve frames slightly different from the reference character design, whereas in 3d CGI it would take designing and animating a whole new model.
Just like any medium has its limitations, there are fans of those mediums can come to appreciate the techniques artists use to overcome those limitations.
I've had discussions with people on how magnificently elegant the Atari 2600's screen writing process works, it really is a work of engineering genius, yet nearly everyone tells me "Yeah but you only get like 12 pixels for the entire screen". Which is true, compared to modern day tech. That in no way reduces the wonder to me.
But then I grew up on the Atari 2600, it was my first console, and I spent just as many hours as a kid playing big blocky pixel games, and had just as much fun as kids today playing the most advanced 3D games.
And the kids of today will have to contend with whatever media limitations are exceeded by whatever comes next (probably ubiquitous VR) and when they've gotten older, will have to deal with a new generation of gamers wondering how they even could manage to play games on only a flat screen with a 2d plane mouse for input.
And those VR gamers will probably be ragged on by WireHead full immersion brain connection gamers when they get older...
UlyssesThirtyOne ยท 1 points ยท Posted at 16:12:05 on November 14, 2018 ยท (Permalink)
Hence osrs port to mobile being so data friendly.
Dav136 ยท 1 points ยท Posted at 16:17:13 on November 14, 2018 ยท (Permalink)
Now you have Fallout 76 with a day one 58 GB patch that is larger than the game itself
acwilan ยท 1 points ยท Posted at 16:20:41 on November 14, 2018 ยท (Permalink)
The other nice thing was that they had to focus on the plot and fun instead of relying on graphics and fan service to please the player
BiH-Kira ยท 1 points ยท Posted at 16:29:00 on November 14, 2018 ยท (Permalink)
Back in the day they created some of the animations by color pallet swapping. Looked like magic. Now we just recently got a modern tool that supported that. Doing that in engine isn't possible in any of the big engines. They will swap the colors rather than the color pickup table making all animations significantly slower. I mean, look at this. This is art. It's one single image, but the pallet is being changed.
Springthespring ยท 1 points ยท Posted at 16:36:49 on November 14, 2018 ยท (Permalink)
On old Intel 8080 systems like that, doing
< x -1was actually quicker than<= x- it saved a CPU cycle as they didn't have thejgeASM code which makes them both the same cycle numbers. Whereas now we have shit like classes :(T8ert0t ยท 1 points ยท Posted at 16:46:59 on November 14, 2018 ยท (Permalink)
There was a video explanation of one of the people who coded the original Crash Bandicoot and how they had to develop ways to ensure the memory limits of the Playstation could handle the flow of the level.
It was pretty interesting the amount of thought and execution that went into it.
Alfyboy ยท 1 points ยท Posted at 17:06:40 on November 14, 2018 ยท (Permalink)
I think some of the new pixelated games does it right. Take a look at this video. Then again, this game was made for NES and not modern PCs and consoles.
Sarcon5673 ยท 1 points ยท Posted at 17:29:54 on November 14, 2018 ยท (Permalink)
Nice.
Cacho_Tognax ยท 1 points ยท Posted at 17:11:20 on November 14, 2018 ยท (Permalink)
About the efficiency you might enjoy reading some Factorio Friday facts, weekly updates from the devs of the game, they really want to keep the game as efficient as possible since it's meant to simulate up to huge megabases, so you will see stuff like items on belts if fully compressed treated as one single line of items, and excitement for 6% improvements in load time.
They are awesome.
Audiblade ยท 1 points ยท Posted at 17:12:50 on November 14, 2018 ยท (Permalink)
I'm the other way around. While I wait appreciate what old games had to do, I'm very aware that they're running with restricted resources and using outdated game design when I play them. There's only so long I can stare at a 64-color pallette before my eyes are tired if seeing everything rendered in such bright, saturated colors.
Modern games that use a pixelated art style, on the other hand, can step outside of those old limitations when they need to in order to make the art pop more satisfyingly or add modern QOL features that wouldn't have been present in old games.
Here's The Gamemaker's Toolkit taking about it on YouTube.
To be clear, I'm not saying that the old classics are bad. I'm saying that, by sheer luck of having more resources to take advantage of and being able to stand on the shoulders of their predecessors, modern games with retro art styles have some nice things that the old classics weren't able to include.
Endblock ยท 1 points ยท Posted at 17:21:03 on November 14, 2018 ยท (Permalink)
I try to keep my pixel art pallets pretty small. I don't make it absurdly low like the NES, but I've remade some newer Pokemon into sprites and I've managed to keep all of them at or under 12 colors and they look exactly like they belong in the GBA era Pokemon games.
RolandTheJabberwocky ยท 1 points ยท Posted at 17:25:03 on November 14, 2018 ยท (Permalink)
Curse of the Moon did a solid job of that, save for the bosses which was done of purpose to make them more menacing looking.
zilti ยท 1 points ยท Posted at 17:28:10 on November 14, 2018 ยท (Permalink)
Some do, though, get rather close. I'm currently playing The Messenger, and the devs did a great job!
TonyLaRocca ยท 1 points ยท Posted at 17:30:35 on November 14, 2018 ยท (Permalink)
They used all kinds of tricks to push the limits of the Atari 2600 to make the "open world" of Adventure so large.
wataha ยท 1 points ยท Posted at 17:41:02 on November 14, 2018 ยท (Permalink)
That's what good coders were famous for back in the day.
iRemjeyX ยท 1 points ยท Posted at 18:40:28 on November 14, 2018 ยท (Permalink)
Reminds me of Phoenix Wright AA, Trials and Tribulations.
King_Oriax ยท 1 points ยท Posted at 23:09:54 on November 14, 2018 ยท (Permalink)
There's a game called Micro Mages that recently released that's only 40kb. The guys behind it made a video showing off all the tricks that old games used to use. Here's the video if anyone is interested.
https://youtu.be/ZWQ0591PAxM
yitzilitt ยท 1 points ยท Posted at 23:30:56 on November 14, 2018 ยท (Permalink)
I'm actually sort of doing that now with polishing my game to make it feel smoother; trying out crazy compression techniques and deleting as much unused code as possible. I've already got rid of around 100 mb of data...
Penaelskyy ยท 1 points ยท Posted at 02:50:13 on November 15, 2018 ยท (Permalink)
You should look up micro mages! It's a new game for the nes
broo20 ยท 1 points ยท Posted at 06:24:16 on November 15, 2018 ยท (Permalink)
Modern games still do that, they're always pushing the boundary of what is possible on any given platform. It's pretty much the only place in tech that actually happens these days.
[deleted] ยท 1 points ยท Posted at 12:22:24 on November 15, 2018 ยท (Permalink)
I can't link it because I'm at work and Youtube is blocked here but 8-bitGuy on Youtube has two fantastic videos explaining these limitations.
niallasherlambda ยท 1 points ยท Posted at 15:21:35 on November 15, 2018 ยท (Permalink)
Look at the new Morphcat games thing. They're making a 4 player coop vertical scrolling shooter that runs on the NES, using just one memory bank. It looks amazing, and they've done a great job with memory efficency.
[deleted] ยท 1 points ยท Posted at 13:45:00 on November 14, 2018 ยท (Permalink)
[deleted]
VicisSubsisto ยท 1 points ยท Posted at 14:44:24 on November 14, 2018 ยท (Permalink)
Rain World doesn't seem to want to look retro, aside from being 2D, mostly sprite based... and Nintendo Hard.
jabackf ยท 0 points ยท Posted at 17:13:43 on November 14, 2018 ยท (Permalink)*
It's not just efficiency in performance. The games back then just expected less dedication from you overall. They respected you much more. One thing that I've found really refreshing about the Switch is that I can hit the power button and jump right back into my game without sitting through ten minutes of splash screens and cut scenes. Fuck you and your entitled sense of importance that expects me to devote an entire evening in combination with thousands of dollars in computer equipment to experience your product. I'm 31 fucking years old. I don't have the patience for that kind of shit anymore.
RamenJunkie ยท 149 points ยท Posted at 14:23:42 on November 14, 2018 ยท (Permalink)*
That drives me nuts on the web stuff too.
Like back in the 90s, I would spend time cutting out returns and simplifying webpages in notepad to make then KB smaller and load a liiiiitle bit faster.
These days? Fuck it, 3 mb 4k image shrunk to a thumbnail, everywhere.
somanom ยท 58 points ยท Posted at 19:23:32 on November 14, 2018 ยท (Permalink)
I miss the times when I was able to watch 1080p YouTube videos. Nowadays they get stuck every second because my laptop can't handle YouTube's new player with it's 60fps.
hudsk ยท 12 points ยท Posted at 21:35:37 on November 14, 2018 ยท (Permalink)
60fps is just too satisifying to watch tho
VerbNounPair ยท 2 points ยท Posted at 00:36:35 on November 15, 2018 ยท (Permalink)
YouTube Plus for Greasemonkey can disable that and more on the old layout
DreadLord64 ยท 4 points ยท Posted at 20:48:54 on November 14, 2018 ยท (Permalink)
Firefox
Chrome
DrDalenQuaice ยท 2 points ยท Posted at 00:33:46 on November 15, 2018 ยท (Permalink)
For some nostalgia, check out the source code of the Google home page.
SirQuackTheDuck ยท 1464 points ยท Posted at 12:09:38 on November 14, 2018 ยท (Permalink)
In October I made a program that plays a 'doot' every 15-30 minutes or so. It should've been pretty basic, but it needed to run on a Windows computer without admin rights and with hardly anything installed.
I was lazy and had Electron readily installed, so I use that.
I made a 120MB program to play an 8KB audio file every 15-30 minutes. It's on Github.
cpmpal ยท 1010 points ยท Posted at 12:19:23 on November 14, 2018 ยท (Permalink)
clicks on readme
I don't know what I expected
PheonixScale9094 ยท 155 points ยท Posted at 14:05:41 on November 14, 2018 ยท (Permalink)
Something helpful perhaps?
marcosdumay ยท 115 points ยท Posted at 16:02:36 on November 14, 2018 ยท (Permalink)
That readme displays all the program's functionality, with precision instructions for each use case.
What more did you expect?
anders987 ยท 143 points ยท Posted at 15:01:14 on November 14, 2018 ยท (Permalink)
No admin rights or anything installed necessary.
Elusive2000 ยท 48 points ยท Posted at 15:29:41 on November 14, 2018 ยท (Permalink)
How does one stop this command, before I attempt to use it?
[deleted] ยท 61 points ยท Posted at 15:33:34 on November 14, 2018 ยท (Permalink)
Reboot
onnion ยท 66 points ยท Posted at 18:00:37 on November 14, 2018 ยท (Permalink)
Redoot.
Exce ยท 3 points ยท Posted at 22:11:22 on November 14, 2018 ยท (Permalink)
Every once in a long while, someone on reddit makes me laugh. Congratulations.
anders987 ยท 89 points ยท Posted at 16:02:46 on November 14, 2018 ยท (Permalink)
Why would you want to?
Press Ctrl+C
Klausvd1 ยท 9 points ยท Posted at 16:15:50 on November 14, 2018 ยท (Permalink)
Just send the command 'top' in console, find the process PID, kill using 'kill' command
sp46 ยท 2 points ยท Posted at 23:39:41 on November 14, 2018 ยท (Permalink)
is that sarcasm, Windows doesn't have any of theseLevelSevenLaserLotus ยท 2 points ยท Posted at 00:30:53 on November 15, 2018 ยท (Permalink)
scroll to name of process to see PID
or
IWasGregInTokyo ยท 2 points ยท Posted at 16:23:52 on November 14, 2018 ยท (Permalink)
As long as executing Powershell isn't restricted on your machine.
I'm crippled.
SirQuackTheDuck ยท 2 points ยท Posted at 15:55:18 on November 14, 2018 ยท (Permalink)
Looks like this runs in a command prompt, which was not an option (it needed to be 'invisible'.
anders987 ยท 18 points ยท Posted at 16:12:05 on November 14, 2018 ยท (Permalink)
Save as doot.vbs. The whole thing can probably be written much easier in vbs instead of batch and powershell. This has the benefit of using three different scripting environments in Windows for solving a complex and important problem.
https://superuser.com/questions/140047/how-to-run-a-batch-file-without-launching-a-command-window
SirQuackTheDuck ยท 7 points ยท Posted at 17:08:30 on November 14, 2018 ยท (Permalink)
Well now you're making it way too easy.
Gotta doot some RAM away too
justanotherkenny ยท 1 points ยท Posted at 17:31:39 on November 14, 2018 ยท (Permalink)
Powershell or bash?
anders987 ยท 2 points ยท Posted at 17:46:21 on November 14, 2018 ยท (Permalink)
Batch file calling a powershell command to play the sound. Bash isn't installed by default on Windows.
cheraphy ยท 352 points ยท Posted at 13:39:41 on November 14, 2018 ยท (Permalink)
Could have actually gotten away with a powershell script,
if execution-policy on the machine allowed running unsigned scripts.actually, you could do it directly in the prompt without a script so execution policy is irrelevant
Once, a horrible storm managed to knock out the internet for the entire complex my office is in. We joked about how the tech who had to work in that hellish weather was all of our personal hero. So I whipped up a powershell script that constantly pinged an arbitrary website until it got a response, and then played "My Hero" by Foo Fighters
genij1234 ยท 87 points ยท Posted at 14:55:04 on November 14, 2018 ยท (Permalink)
I would have to Google first on how to do that because I always forget basic stuff for languages I rarely use
Baldazar666 ยท 9 points ยท Posted at 17:23:24 on November 14, 2018 ยท (Permalink)
And you would fail considering the internet was down.
keylogthis ยท 20 points ยท Posted at 17:59:06 on November 14, 2018 ยท (Permalink)
Cellular data...
cheraphy ยท 4 points ยท Posted at 18:43:12 on November 14, 2018 ยท (Permalink)
bingo
genij1234 ยท 1 points ยท Posted at 23:23:42 on November 14, 2018 ยท (Permalink)
Good luck getting any service inside our building. I am sitting next to a window and I only get 1 to 2 bars. And that is when I am lucky. Don't ask what the building is made of, but I assume in a war it would be the last standing castle
Midvikudagur ยท 2 points ยท Posted at 23:42:38 on November 14, 2018 ยท (Permalink)
Almost every building in my city has metal bars in the walls to strengthen them against earthquakes. It makes wifi and cellular a mess in some of them, but every few years we appreciate it.
cheraphy ยท 1 points ยท Posted at 18:45:43 on November 14, 2018 ยท (Permalink)
Required .NET framework interop, so a bit above basic stuff. I googled shit on my cell phone
Scratch that, was mixing up instances in my head. I simply launched media player pointing the the MP3 for the song here, but in a completely separate instance I had a similar script play a tone when connection was made. That one used .NET
DrQuint ยท 1 points ยท Posted at 19:49:40 on November 14, 2018 ยท (Permalink)
And then realize the internet is down.
geek_on_two_wheels ยท 141 points ยท Posted at 13:45:57 on November 14, 2018 ยท (Permalink)
This is such a perfect use of PowerShell. You're my hero.
antillian ยท 4 points ยท Posted at 21:09:30 on November 14, 2018 ยท (Permalink)
"There goes my hero / Watch him as he codes!"
[deleted] ยท 1 points ยท Posted at 15:58:42 on November 14, 2018 ยท (Permalink)
[deleted]
Mas281 ยท 10 points ยท Posted at 16:41:12 on November 14, 2018 ยท (Permalink)
They mean that it kept pinging a website until any response was received back, since obviously without internet you won't be able to get a response from any website.
PM_ME_YOUR_DIFF_EQS ยท 4 points ยท Posted at 16:57:54 on November 14, 2018 ยท (Permalink)
A ping response. It was not attempting web traffic, just seeing if it would traverse the path from home to the Internet and back.
cheraphy ยท 1 points ยท Posted at 18:40:57 on November 14, 2018 ยท (Permalink)
Look up the docs for the powershell commandlet Test-NetConnection I can't recall off the top of my head what I was looking for in the output, but that should point you towards it.
zeelandia ยท 1 points ยท Posted at 14:55:11 on November 14, 2018 ยท (Permalink)
DDoS?
cheraphy ยท 2 points ยท Posted at 18:41:45 on November 14, 2018 ยท (Permalink)
Not really an issue because it should only have actually hit the website once. When our connection to the internet was restored
Trout_Tickler ยท 58 points ยท Posted at 13:37:03 on November 14, 2018 ยท (Permalink)
You also included the library with an exe to solve your problem :l
SirQuackTheDuck ยท 26 points ยท Posted at 14:52:18 on November 14, 2018 ยท (Permalink)
Yeah, but it's not that spoopy if there's a command prompt opening all the time.
Trout_Tickler ยท 13 points ยท Posted at 15:08:04 on November 14, 2018 ยท (Permalink)
Scheduled task to run the command directly.
Burr1t0 ยท 109 points ยท Posted at 13:41:36 on November 14, 2018 ยท (Permalink)
console.warn('Failed to doot: %O', err)
sad doot
romple ยท 23 points ยท Posted at 14:21:08 on November 14, 2018 ยท (Permalink)
Better documented and commented than the shit I have to use at work. Nice job.
echo_61 ยท 7 points ยท Posted at 15:48:14 on November 14, 2018 ยท (Permalink)
Holy crap. You arenโt kidding.
No job security in the doot commander field now though. ;)
mindonshuffle ยท 4 points ยท Posted at 15:17:46 on November 14, 2018 ยท (Permalink)
Yeah, I'm currently using Electron for a few small projects and I feel guilty about the filesize...but I feel less guilty about being able to use apps with a decently professional look and feel with extremely fast development and lots of reusable components.
Deconimus ยท 4 points ยท Posted at 16:21:30 on November 14, 2018 ยท (Permalink)
Java"modern" microservices in a nutshellCasinoMagic ยท 6 points ยท Posted at 17:32:33 on November 14, 2018 ยท (Permalink)
Electron is part of the problem.
It actually is quite symptomatic of the problem.
SirQuackTheDuck ยท 2 points ยท Posted at 18:01:14 on November 14, 2018 ยท (Permalink)
Solving the problem with another problem. Sounds like a regular day on the job.
Y1ff ยท 3 points ยท Posted at 17:03:05 on November 14, 2018 ยท (Permalink)
Electron: for when you want to make a webapp, but don't want anyone to know it's a webapp
CasinoMagic ยท 1 points ยท Posted at 17:34:08 on November 14, 2018 ยท (Permalink)
For when you want to make an app, but only know web languages.
keylogthis ยท 3 points ยท Posted at 18:04:47 on November 14, 2018 ยท (Permalink)
That's just awful... could have used powershell, AutoIt, AutoHotKey... I mean damn, this just infuriates me for some reason.
motioncuty ยท 2 points ยท Posted at 16:39:44 on November 14, 2018 ยท (Permalink)
Dev time is more important that processing power.
LoneCookie ยท 1 points ยท Posted at 22:30:48 on November 14, 2018 ยท (Permalink)
Price of a few megabytes vs price of an hour of dev time
Dukes159 ยท 1 points ยท Posted at 14:44:49 on November 14, 2018 ยท (Permalink)
"Tell Mr. Skeletor we're ready" I love it
[deleted] ยท 1 points ยท Posted at 15:00:42 on November 14, 2018 ยท (Permalink)
Yeah it might be inefficient but Mr. Skeltal thanks you.
Mwakay ยท 1 points ยท Posted at 15:26:29 on November 14, 2018 ยท (Permalink)
What did you use this for?
SirQuackTheDuck ยท 1 points ยท Posted at 15:54:16 on November 14, 2018 ยท (Permalink)
A dumb joke
Mwakay ยท 1 points ยท Posted at 18:00:59 on November 14, 2018 ยท (Permalink)
Sounds awesome, count me in !
Blou_Aap ยท 1 points ยท Posted at 16:01:50 on November 14, 2018 ยท (Permalink)
Are you from SA perhaps?
fnur24 ยท 1 points ยท Posted at 17:28:01 on November 14, 2018 ยท (Permalink)
Netherlands I think
SirQuackTheDuck ยท 1 points ยท Posted at 17:55:27 on November 14, 2018 ยท (Permalink)
Nope, not me. But Netherlands indeed.
Relevant_Monstrosity ยท 1 points ยท Posted at 18:22:28 on November 14, 2018 ยท (Permalink)
You could do that in .NET Core in like 10mb. Or C in like .1
SirQuackTheDuck ยท 1 points ยท Posted at 18:51:35 on November 14, 2018 ยท (Permalink)
Don't know C (yet) and dotnet core opens a shell, which is not what I wanted.
[deleted] ยท 1 points ยท Posted at 21:19:12 on November 14, 2018 ยท (Permalink)
[deleted]
SchroedingersHat ยท 1 points ยท Posted at 21:27:08 on November 14, 2018 ยท (Permalink)
Because the scale is so far different. It's like using a bagger 288 rather than the hand drill when a power drill is also an option. And then the hole (user experience) is actually worse than the one with the hand drill or the power drill.
pm_me_ur_happy_traiI ยท 1 points ยท Posted at 22:53:43 on November 14, 2018 ยท (Permalink)
You could have done it in a few lines of JS and just run it in a browser.
niallasherlambda ยท 1 points ยท Posted at 15:26:47 on November 15, 2018 ยท (Permalink)
you monster
L3tum ยท -4 points ยท Posted at 14:40:10 on November 14, 2018 ยท (Permalink)
"Lazy" because 5 lines of C# are hard^
SirQuackTheDuck ยท 7 points ยท Posted at 14:48:43 on November 14, 2018 ยท (Permalink)
Can't compile C# for systray on Linux
L3tum ยท 3 points ยท Posted at 17:22:09 on November 14, 2018 ยท (Permalink)
Did this change or what?
Also should've used /s apparently, too many people get butthurt apparently
SirQuackTheDuck ยท 2 points ยท Posted at 18:00:33 on November 14, 2018 ยท (Permalink)
Nope, but I'm not a Windows user and you can't compile all C# code on Linux easily (maybe it could've been done with Mono, but I didn't want to download and install that much stuff for a joke) and dotnet core only works in command prompts.
So dev'ing on Linux and running the code on Windows was the challenge.
L3tum ยท 1 points ยท Posted at 22:16:27 on November 14, 2018 ยท (Permalink)
It depends how far ago this was, but with .NET core you could actually do that quite easily and even make it a windows service haha.
But I understand the problem now. Cross compilation is still a bitch for anything that doesn't use a full blown game engine or scripting language.
SirQuackTheDuck ยท 1 points ยท Posted at 03:58:09 on November 15, 2018 ยท (Permalink)
Hmm, this might be an idea for next year...
jtvjan ยท 1 points ยท Posted at 18:23:37 on November 14, 2018 ยท (Permalink)
Isnโt there that Mono thing?
SirQuackTheDuck ยท 1 points ยท Posted at 18:50:32 on November 14, 2018 ยท (Permalink)
Yeah, I could've tried that, but didn't want to install mono only to have a chance that it might work.
And this was something new to do. Gotta keep on learning.
KiNgOfSpEEdOJaCK ยท 0 points ยท Posted at 15:04:33 on November 14, 2018 ยท (Permalink)
What did you expect to be honest?
It's Javascript community. Remember, the same community that made the cancer called Electron so they can make freezy slow programs with their horrible scripting language?
The same community that made the emberassing ecosystem called NPM that has tons of stupid and silly one-line packages to check if the input is a number or not, 13 or not, even or not?
The same community that thought Javascript for backend is a great idea?
Names like lazy for easy stuff is not a surprise when you're a Javascript developer, and I'm saying as one too.
CasinoMagic ยท 1 points ยท Posted at 17:36:04 on November 14, 2018 ยท (Permalink)
This.
A million times this.
The current state of Javascript is reminiscent of the horrible COBOL layers infrastructure. Sure, just encapsulate your shitty script in a super bloated library to make it look like you developed a stand-alone executable! Yeah!
EnkiiMuto ยท 94 points ยท Posted at 14:37:11 on November 14, 2018 ยท (Permalink)
Seriously, it frustrates me how having 13 pages of mostly text make firefox eat up almost 3GB of RAM.
Jazehiah ยท -10 points ยท Posted at 18:01:35 on November 14, 2018 ยท (Permalink)
Part of it is that Firefox like to put all the sites you previously visited in the cache. Then you've got ads. Ads suck memory because they're basically web browsers embedded in the web page.
Oh, and cookies. Did we mention those? Cookies (not the kind you eat, those are amazing) connect to, download from and send stuff to however many websites they want. I wouldn't be surprised if tracking cookies were turning on my webcam and logging my keystrokes.
PresentlyInThePast ยท 17 points ยท Posted at 20:00:15 on November 14, 2018 ยท (Permalink)
No. Cookies store data in the browser. That's it.
Let's say you log in. It keeps you logged in.
Let's say you turn on night mode. The site will be able to see the cookies that it put on your computer (and no one else's), and see that you have night mode on.
Also, if you're camera is on the light is on. That's how camera's work. You also need to give permission.
And sites can only see you're key presses when you're on their webpage.
Jazehiah ยท -10 points ยท Posted at 20:11:10 on November 14, 2018 ยท (Permalink)
ok
PresentlyInThePast ยท 9 points ยท Posted at 20:28:39 on November 14, 2018 ยท (Permalink)
What is creepy, is how it all adds up. Data collection services track mouse movements, the websites the same computer visits, IP address, etc. Depending on how long you hesitate before clicking something, they can figure out your gender. Based on how you interact with a webpage, they can tell how much you use the Internet and your computer literacy. They build this huge profile so they know exactly what ads to show you.
Look at https://clickclickclick.click
JayInslee2020 ยท 7 points ยท Posted at 20:48:23 on November 14, 2018 ยท (Permalink)
Wow, interesting and creepy. It said I did a few things I didn't do, so still, a bit strange.
PresentlyInThePast ยท 4 points ยท Posted at 21:01:56 on November 14, 2018 ยท (Permalink)
It's not perfect, just a demonstration. Plus it's a bit outdated I think.
DreadLord64 ยท 1 points ยท Posted at 20:56:26 on November 14, 2018 ยท (Permalink)
What is that? I only see a backslash, a pipe, a forwardslash, and a dash.
PresentlyInThePast ยท 2 points ยท Posted at 21:01:22 on November 14, 2018 ยท (Permalink)
That's the loading icon. You may have JS disabled? It shows the data that can be collected about you from only mouse movements (and a few other things).
DreadLord64 ยท 1 points ยท Posted at 21:03:05 on November 14, 2018 ยท (Permalink)
I got it to work. I restarted in safe mode.
niallasherlambda ยท 1 points ยท Posted at 15:27:56 on November 15, 2018 ยท (Permalink)
why tf you being downvoted you accepted his point and didn't get salty
Jazehiah ยท 2 points ยท Posted at 17:34:33 on November 15, 2018 ยท (Permalink)
Most likely because I gave a one-word reply, instead of editing my original answer to include an apology. I wasn't technically rude, but I could have been more polite.
TigreDeLosLlanos ยท 262 points ยท Posted at 13:57:54 on November 14, 2018 ยท (Permalink)
I would calk it a /r/lewronggeneration but web devs really make it like this. The browser doesn't help either, every update just makes it load a lot of stuff you don't use making it consume more memory. They are pretty bad handling memory too. The result is a page that has more leaks than an old car with a broken engine.
MrGreggle ยท 125 points ยท Posted at 15:16:10 on November 14, 2018 ยท (Permalink)
The fucking product people and their god damn trackers too.
patrickfatrick ยท 43 points ยท Posted at 15:55:56 on November 14, 2018 ยท (Permalink)
Or even crazier, something like Optimizely. We have code being executed on production with virtually no oversight, no engineer in our company touched or looked at it, and it just willy-nilly breaks stuff sometimes and we, the engineers, have to track it down. :/
angry_wombat ยท 30 points ยท Posted at 16:25:28 on November 14, 2018 ยท (Permalink)
right? Largest thing on our website is 3 analytics trackers. Our sales don't know how to use they ones they already have and get talked into more, by apparently a better salesperson.
Valmond ยท 1 points ยท Posted at 07:12:06 on November 15, 2018 ยท (Permalink)
I have one and only one tracker, and I optimized everything except the last page which have a video and some big images. I think it's loading okay www.mindoki.com
MrGreggle ยท 1 points ยท Posted at 14:05:27 on November 15, 2018 ยท (Permalink)
0 is the max trackers I approve of.
__hgx80 ยท -11 points ยท Posted at 16:11:11 on November 14, 2018 ยท (Permalink)
warning warning this commentor has no idea what they are talking about.
for example google analytics script is less than 50k.
onthefence928 ยท 10 points ยท Posted at 16:23:50 on November 14, 2018 ยท (Permalink)
That's not what he's talking about. Tracker scripts are used to track users across all their travels on multiple sites to build profiles of their interests. They are ubiquitous on any sure that relies on user data and ads for profit.
theRailisGone ยท 3 points ยท Posted at 18:29:10 on November 14, 2018 ยท (Permalink)
If so, that's an extra 50k on every page of every site you visit that doesn't need to be there. Even if you only get 1 piece of junk mail every day, everyone gets that 1 piece. That's a lot of worthless paper being shoved around, and the people who are receiving it don't want it.
Avamander ยท 151 points ยท Posted at 15:00:53 on November 14, 2018 ยท (Permalink)
Part of the issue is that web dev requires abstraction or massively increased dev time because firefox/IE/Edge/Chrome/Safari/Opera/Chrome on Android can't agree on a single uniform feature set. It's horrible clusterfuck of what's supported and what isn't.
originalaks ยท 70 points ยท Posted at 16:41:40 on November 14, 2018 ยท (Permalink)
Dont worry guys any day now web assembly will save us all. It will be mainstream right around the corner. Any minute now.
Anyone want to book my talk on how Web Assembly is the future? Please? Here is a link to my medium account, I will talk about anything you want. Please, I need this.
nerga ยท 15 points ยท Posted at 17:47:22 on November 14, 2018 ยท (Permalink)
I love web assembly from what I've used. But I think the issue will inevitably become big corps need to support older browsers that don't have it, so that will take a long time. And the other is that while I can code C and I love Rust, a lot of web devs can barely code JavaScript. Do we really expect some contractors or offshore India devs to do better in webassembly?
Jazonxyz ยท 18 points ยท Posted at 17:58:06 on November 14, 2018 ยท (Permalink)
I work as a web-dev. Basically, optimizing code takes lower priority to implementing new features. A ton of the performance cost comes from loading large assets (HD images) and a bunch of 3rd party analytics scripts, and there's not much we can do about that. Making requests to the backend services can also be quite expensive. I can make a page that is pretty god damn performant, but it would be hard to do it at a large scale, with all the analytics scripts, a bunch of hd images/videos, and within a pretty limited amount of time.
originalaks ยท 1 points ยท Posted at 20:46:37 on November 14, 2018 ยท (Permalink)
I just want to know the break even point for web assembly.
I want to say the greatest cost for loading and running most pages is actually downloading javascript and not really the overhead of an interpreted language.
Wasm binaries are still a cost to download but as binaries there are all kinds of efficiency gains over transmitting plain text javascript
However, you still need to send that javascript in order to call any of your wasm hotness.
In addition, I believe that engines like V8 can make up some of the download cost by starting to run the javascript immediatly as it comes in, I believe a wasm binary has to wait. Dont quote me though.
Its just hard to see in what common situations it's a significant improvement. I mean, there are tech demos of absurd nonsense but where have you found the best use in day to day?
nerga ยท 2 points ยท Posted at 21:19:23 on November 14, 2018 ยท (Permalink)
I don't think we'll ever see webassembly websites replace banking, e-commerce, etc. But what I do think we might get is higher quality multimedia, games, and nativelike applications in the browser. I think webassembly and canvas will replace electron apps, which should be huge, where the binary is already downloaded, and the browser is acting like a VM.
originalaks ยท 1 points ยท Posted at 05:08:04 on November 15, 2018 ยท (Permalink)
Hmm if we could make system calls directly from wasm (assuming an electron-style generalized V8 interpreter) we could at the very least do the CEF thing but drop node.js for desktop apps.
My understanding of wasm is that to the browser, it just looks like the final pass of the most optimized javascript. So can wasm access dom api? Because that would be crazy.
Can we do away with all javascript but enough to call the wasm binary?
nerga ยท 1 points ยท Posted at 13:38:48 on November 15, 2018 ยท (Permalink)
Wasm doesn't access the Dom directly, but you can call JavaScript functions that interact with it. Webgl and canvas mean you don't need to use the Dom though, so it might not be an issue at all.
Avamander ยท 1 points ยท Posted at 18:08:19 on November 14, 2018 ยท (Permalink)
Well, DOM API is not what WASM aims to replace, is it?
motioncuty ยท 30 points ยท Posted at 16:45:33 on November 14, 2018 ยท (Permalink)*
And that HTML is a spec for documents and we are instead building single page apps, that interact in ways that are not very documenty.
Y1ff ยท 13 points ยท Posted at 17:09:13 on November 14, 2018 ยท (Permalink)
BRB registering document.ly domain name
makkkarana ยท 3 points ยท Posted at 18:33:11 on November 14, 2018 ยท (Permalink)
I've fallen to just developing for Firefox and Chrome and putting a note at the bottom of the page that says if it looks fugly you need a better browser
DrQuint ยท 3 points ยท Posted at 19:55:03 on November 14, 2018 ยท (Permalink)
I know of a website that did this ("Better on firefox!") but they did it while putting a cute anime foxgirl saying it, so they're now immune to flak.
PresentlyInThePast ยท 2 points ยท Posted at 19:53:15 on November 14, 2018 ยท (Permalink)
Chrome, Firefox, degrades gracefully to anything Opera is missing.
Everything else is just a redirect to Chrome download page.
makkkarana ยท 1 points ยท Posted at 20:41:08 on November 14, 2018 ยท (Permalink)
Is opera actually both popular and broken? I've never used it but saw some screenshots that made me think it was just reskinned chrome
metalliska ยท 3 points ยท Posted at 17:03:12 on November 14, 2018 ยท (Permalink)
there's this thing called "Html".
<HTML>
<HEAD>
THIS IS ALL YOU NEED FOR A WEBPAGE
</HEAD>
<BODY>
<FORM action="" method="POST"> <button name="SEND CREDIT CARD INFORMATION TO NIGERIAN PRINCE" value="totallyLegit">Secure DarkWeb Scan Now!!!!!</button> </FORM> </BODY>
</HTML>
Avamander ยท 3 points ยท Posted at 17:53:33 on November 14, 2018 ยท (Permalink)
Okay, gimme video player in only HTML.
metalliska ยท 9 points ยท Posted at 18:03:51 on November 14, 2018 ยท (Permalink)
hit refresh 30 times a second
Talbooth ยท 6 points ยท Posted at 18:06:02 on November 14, 2018 ยท (Permalink)
I think html5 has a <video> tag, so it supports playing videos (in certain formats anyway) natively. Tho I'm mainly a desktop guy so don't take my words for granted.
EDIT: also, html is not entirely uniform as W3S and WHATWG can't agree on everything.
Avamander ยท 1 points ยท Posted at 18:07:53 on November 14, 2018 ยท (Permalink)*
I guess I should've clarified, playing videos is easy, video player isn't easy. You can't build something like YouTube's player with just HTML.
Actually supported formats vary across browsers, OSs and browser configurations, so it's extra fun to first make sure what you can use to play a video, what audio and video format it can play and then pick the one that's say HW accelerated to save your user's battery. It's super hard to make something that works across browsers.
LeComm ยท 1 points ยท Posted at 18:55:58 on November 14, 2018 ยท (Permalink)
You can play videos, case closed, dont need some shitass javajizz video player that everyone will hate. Considering the <video> tag has been around for quite some time, browser support can't be that bad. W3S says p much all browsers support H264/MP4, even in older versions. If it IS that bad, use PHP to deliver a different video depending on the browser.
auto-xkcd37 ยท 0 points ยท Posted at 18:56:02 on November 14, 2018 ยท (Permalink)
Bleep-bloop, I'm a bot. This comment was inspired by xkcd#37
Avamander ยท 0 points ยท Posted at 19:58:41 on November 14, 2018 ยท (Permalink)*
lmao, I'd rather not get started on audio format and quality support.
HAAAAAAAAAAAAAAAAAAAAAAHAHAHAHAHAHAHAHAHAHAHHA
Clearly you have no idea what the fuck you are spouting.
auto-xkcd37 ยท 0 points ยท Posted at 19:58:46 on November 14, 2018 ยท (Permalink)
Bleep-bloop, I'm a bot. This comment was inspired by xkcd#37
Avamander ยท 0 points ยท Posted at 20:05:56 on November 14, 2018 ยท (Permalink)
good bot
PresentlyInThePast ยท 2 points ยท Posted at 19:52:07 on November 14, 2018 ยท (Permalink)
Ok, now do that except make everything look exactly the same on every browser.
And while you're at it, make your webpage look exactly like an app so you're users don't have to download a shitty app for every website they visit.
metalliska ยท 1 points ยท Posted at 20:16:41 on November 14, 2018 ยท (Permalink)
html does that, particularly with simply buttons and text. Why inject plugin-containers all the time?
PresentlyInThePast ยท 2 points ยท Posted at 20:37:28 on November 14, 2018 ยท (Permalink)
To my first or second request?
metalliska ยท 2 points ยท Posted at 20:48:05 on November 14, 2018 ยท (Permalink)
"keep everything looking the same" part.
With simple buttons and text, the aspect of rendering and <table></table> can use the <center></center> tagging to stay in the middle of the page.
PresentlyInThePast ยท 2 points ยท Posted at 23:34:45 on November 14, 2018 ยท (Permalink)
Different browsers display the same element differently. That's what CSS and JS fix.
silent5am ยท 72 points ยท Posted at 15:42:18 on November 14, 2018 ยท (Permalink)
It's not just web devs though, it's a problem everywhere: games, software, operating systems.
Limited hardware performance sure is a bottleneck, but it also forced developers to deal with this limit and use resources more efficiently. These days, everything can be upgraded. If something is not optimized at release "oh well, next year's GPU will handle it".
Everything is so bloated now and I understand this is a result of complexity, but that doesn't mean that there is no need for efficiency and optimization (imho).
Astrophobia42 ยท 32 points ยท Posted at 18:16:58 on November 14, 2018 ยท (Permalink)
Its not only complexity, it's money. Optimizing is hard, and hard is time consuming, and time is money. Devs don't usually have the luxury to spend their time optimizing or debugging as much as they should. If the budget is limited optimizing will be at the bottom of the barrel of priorities.
LoneCookie ยท 6 points ยท Posted at 22:33:57 on November 14, 2018 ยท (Permalink)
Urgh, unoptimized operating systems is a dark future. Please no.
I can understand everything else. But your base should be optimized. So much waste. There is also less competition in this software area than other software areas, so... It would be super easy/without consequence to bloat and fuck hardware and increase so much waste and inefficiency.
ingeniousHax0r ยท 3 points ยท Posted at 09:06:32 on November 15, 2018 ยท (Permalink)
Have... have you used the latest 3 Windows versions? Try running anything after 7 with a 5400rpm hard drive. After a month of use your disk usage will become a bottleneck and the thing will slow down to a crawl.
LoneCookie ยท 2 points ยท Posted at 16:23:16 on November 15, 2018 ยท (Permalink)
Yeah I've avoided those. Dark future.
stealthgerbil ยท 11 points ยท Posted at 16:26:41 on November 14, 2018 ยท (Permalink)
90% of web devs dont know shit and if it wasnt for wysiwyg editors then they wouldn't have a job
ComputerMystic ยท 3 points ยท Posted at 23:48:19 on November 14, 2018 ยท (Permalink)
Also, fuck Electron. A chat app should not idle at 120 Megs of RAM, DISCORD!
Especially given that the one actually written to use the desktop libs idles uses 40 Megs when it's active.
gp57 ยท 224 points ยท Posted at 14:26:13 on November 14, 2018 ยท (Permalink)
1990 : Programs coded in ASM or C, memory efficient.
2018 : JVM, ravioli code, microservices, Frameworks... *taps on head* No need to be memory efficient if PCs have 16GB of RAM
FoundOnTheRoadDead ยท 51 points ยท Posted at 18:31:08 on November 14, 2018 ยท (Permalink)
Iโve been programming since 1979, and TIL about โRavioli codeโ.
spihlman ยท 6 points ยท Posted at 02:51:16 on November 15, 2018 ยท (Permalink)
Itโs like spaghetti code, but filled with cheese
boulderdrop ยท 4 points ยท Posted at 22:21:47 on November 14, 2018 ยท (Permalink)
I had to Google, been a professional dev since 1992.
I'm not exactly sure why it needs to be a term, but ok.
gp57 ยท 3 points ยท Posted at 09:21:52 on November 16, 2018 ยท (Permalink)
Spaghetti code : Code with a lot of Copy/Paste
Lasagna code : Code with many layers
Ravioli code : Code separated in blocks (MVC...)
rally_call ยท 121 points ยท Posted at 16:13:23 on November 14, 2018 ยท (Permalink)
Do you remember 1990? Do you remember how limited those programs were? How poorly they worked together? It's all nostalgia and rose-coloured glasses now, but I wouldn't want to go back to how we did things then. When text editors had no undo feature, for example.
gp57 ยท 29 points ยท Posted at 16:25:12 on November 14, 2018 ยท (Permalink)
I don't want to go back for sure, I already get headaches when I need to maintain 5~10 years old apps
[deleted] ยท 18 points ยท Posted at 19:46:44 on November 14, 2018 ยท (Permalink)
[deleted]
Kid_Adult ยท 4 points ยท Posted at 23:33:38 on November 14, 2018 ยท (Permalink)
What's the bet that they found the source code the day after finishing that project.
muffinheart ยท 1 points ยท Posted at 01:57:26 on November 15, 2018 ยท (Permalink)
I can't find it but I'm almost sure that I read that they simply didn't have the source code because that particular part of Office was outsourced and the company that made it no longer existed.
LevelSevenLaserLotus ยท 3 points ยท Posted at 00:35:59 on November 15, 2018 ยท (Permalink)
Sure they did. You just had to exit whatever file you were working on and reopen Copy_of_Copy_of_source_final_v4_final_no_really.c.
rally_call ยท 1 points ยท Posted at 01:41:09 on November 15, 2018 ยท (Permalink)
::core dumps::
drdibi ยท 2 points ยท Posted at 21:21:23 on November 14, 2018 ยท (Permalink)
Programs don't work together better nowadays. Nearly everything lags, is full of bugs and is unmaintainable. Many things are better but now laziness is king.
taeratrin ยท 1 points ยท Posted at 19:06:01 on November 14, 2018 ยท (Permalink)
When you go back and play the original Doom and realize you can't even look up or down.
crawly_the_demon ยท 24 points ยท Posted at 16:28:47 on November 14, 2018 ยท (Permalink)
The ASM or C programs will only work on one specific OS, one specific architecture, maybe even one specific model of computer. JVM code can run on basically every device including your microwave. Javascript framework ravioli will work on your souped up windows gaming battlestation, the macbook pros in that trendy coffee shop, and the affordable smartphone which is someone's first computing device in Nigeria or Pakistan.
We trade efficiency above all for developer ease and universal accessibility, and that seems like a decent trade-off to me
makeshift8 ยท 9 points ยท Posted at 20:41:05 on November 14, 2018 ยท (Permalink)
Avoid OS specific APIs and you can compile C to just about anything.
Cakeofdestiny ยท 2 points ยท Posted at 20:52:44 on November 14, 2018 ยท (Permalink)
Thing is, JVM and other interpreted languages don't even need to be compiled for any platform. You only need to make whatever runs them once. That's the beauty of it.
makeshift8 ยท 2 points ยท Posted at 21:53:00 on November 14, 2018 ยท (Permalink)
JVM has performance problems. Also, building to a specific platform is easy nowadays with the ability to spin up a VM on demand.
Cakeofdestiny ยท 3 points ยท Posted at 05:14:12 on November 15, 2018 ยท (Permalink)
And yet, building once is still much easier and cheaper. I really don't get the Java hate here. While the JVM may be slow to start up, it's not too bad when it's running. Both languages have strengths and weaknesses.
makeshift8 ยท 0 points ยท Posted at 16:09:47 on November 15, 2018 ยท (Permalink)
It's good for what it's good at. Should it be running on embedded systems? No. Should it be used for web-apps? No. Should it be used for mobile development? Maybe, but in my opinion, no. It should be used for business applications. It should be used for GUI front ends. And yet for every records management application I see using JVM, I see 20 running in my car, in large industrial control devices, and in other devices that would be cheaper and faster if they ran off of something else. You will also notice that Java written for these systems is NOT PORTABLE.
Also, I just really hate writing in Java. It almost wants you to write ravioli code. Development in C/C++ is pretty slow, but at least I know that all that time will translate into speed.
GreyRobe ยท 2 points ยท Posted at 17:44:15 on November 15, 2018 ยท (Permalink)
Then what, in your opinion would be the choice for back-end of web applications?
makeshift8 ยท 0 points ยท Posted at 19:54:03 on November 15, 2018 ยท (Permalink)
Back-end is a pretty fuzzy term, but I would say that C#'s ASP.NET would be a start. Java could be used for back-end development if it makes sense to do so: for instance, if it supports your infrastructure in a way that is not supported yet/ever by newer frameworks. But since back-end is a catch all term for anything not forward facing the user, I would say literally anything else. Especially now with cloud computing, where you could deploy just about any application written in almost any language you can think of. Azure and its ilk have really changed the landscape.
GreyRobe ยท 1 points ยท Posted at 01:02:01 on November 16, 2018 ยท (Permalink)
isn't Microsoft licensing very expensive? I've always heard once you want to scale your service with a Microsoft shop it becomes very lucrative for Microsoft, but not your company. Same with cloud services, though maybe not to the same extent.
makeshift8 ยท 1 points ยท Posted at 04:28:23 on November 16, 2018 ยท (Permalink)
It makes sense if you're large enough to need real cloud computing. Also, Amazon has their own thing as well. For large corporations, azure is very appealing.
Superbead ยท 9 points ยท Posted at 17:13:52 on November 14, 2018 ยท (Permalink)
I (as a developer myself) didn't give a flying fuck about how easy stuff I used in 1992 was to develop, and on that subject I remain clean out of fucks to this very day. Sure it's impressive that Elite or RCT were coded entirely in asm, but beyond that I'm not convinced that many others give a shiny shite either.
NutDestroyer ยท 0 points ยท Posted at 18:53:03 on November 14, 2018 ยท (Permalink)
Well code that's easy for the developer is less likely to have bugs, can be built to be more complex/functional, and may be easier to have plugins and upgraded features later. If every code change required some bullshit hacking in assembly, the software would be less maintainable and more difficult to improve over time.
[deleted] ยท 6 points ยท Posted at 17:52:46 on November 14, 2018 ยท (Permalink)
I'm absolutely terrified of a microwave with a jvm. A coffee maker would make a lot more sense.
luiz00estilo ยท 5 points ยท Posted at 18:33:39 on November 14, 2018 ยท (Permalink)
I have a reasonable (out of the market) experience with C++, therefore, I end up looking a little bit into C too, but not too much.
So, correct me if I'm wrong, since I'm not very experienced on that language, but wasn't C developed specifically to work in different computer architectures? Which were the glass of languages before it, I imagine.
Also, this one relates more personally, since I intend to work mostly in C++ when I get out of college.
If the answer is no, does C++ carry this same problem?
Edit: Bold
thenuge26 ยท 4 points ยท Posted at 20:17:35 on November 14, 2018 ยท (Permalink)
Actually C wasn't designed with portability in mind, but compilers for different systems were written for it.
luiz00estilo ยท 3 points ยท Posted at 20:26:03 on November 14, 2018 ยท (Permalink)
Which means that you have to compile to each system, right? If that's true, I still can't completely grapple how can so many games (mostly C++ in the engines) can have only one SETUP program that works in almost any machine with that specific OS running, since I'd imagine they would need multiple.
thenuge26 ยท 3 points ยท Posted at 20:40:43 on November 14, 2018 ยท (Permalink)
The code is just a small part of the game. They could fit millions of copies of code in the same space as a few audio or video files from the game. The setup program figures out which system it is working on, and picks the correct version to install.*
*It's really more complicated than that but that is a good start.
luiz00estilo ยท 2 points ยท Posted at 21:16:19 on November 14, 2018 ยท (Permalink)
Thanks for explaining, and also... F**k, that sounds like a hassle to do.
thenuge26 ยท 2 points ยท Posted at 21:20:19 on November 14, 2018 ยท (Permalink)
Haha if you think that's bad you should try Linux. Instead if the installer you get a bunch of source code and have to figure it out yourself!
(It's not really that bad, and you learn a lot along the way)
luiz00estilo ยท 1 points ยท Posted at 23:58:29 on November 14, 2018 ยท (Permalink)
Holy ๐. But it sounds interesting. Might get into it some day.
makeshift8 ยท 2 points ยท Posted at 16:15:52 on November 15, 2018 ยท (Permalink)
They have compilation instructions in the readme usually. With CMake it is actually really simple.
luiz00estilo ยท 1 points ยท Posted at 18:25:17 on November 15, 2018 ยท (Permalink)
Yeah, I've heard that the community also helps a lot if you have any problems
makeshift8 ยท 2 points ยท Posted at 20:42:20 on November 14, 2018 ยท (Permalink)
Pretty much every system that can fit a compiler has a C compiler for it.
thenuge26 ยท 1 points ยท Posted at 20:52:42 on November 14, 2018 ยท (Permalink)
Oh for sure but the question was whether C was designed for portability in mind, which it explicitly was not. It was just something that happened to it early in it's life.
makeshift8 ยท 1 points ยท Posted at 21:49:10 on November 14, 2018 ยท (Permalink)
I'm just pointing out the fact that you don't need JVM or an interpreter to run portable code in 2018.
YouRik97 ยท 3 points ยท Posted at 19:19:40 on November 14, 2018 ยท (Permalink)
Before programming languages (like C), you had to program in assembly which directly maps to machine code (it's quite interesting to have a look at how it works just to get an understanding of how computers do things) and thus is very specific to the actual machine you are programming on.
C abstracts away a lot of details about the specific machine (the instruction set basically. Also you have to manage the stack and registers manually in asm) and a compiler (like GCC, Clang, etc.) translates your C code into the machine code for the machine you compile on (or compile to in case of cross compiling). So you need to compile for different architectures if you want the program to run on them.
This is the same for C++ and very similar for other compiled languages.
Then there are languages like Java, C# that don't compile to machine code but instead to a language that is then interpreted by a virtual machine, allowing stuff like garbage collection and a compiled program to run on different architectures if there is a VM for it.
Then there are interpreted languages that are only compiled at run time.
Only a rough (probably too long) overview, but research ASM vs compiled vs JIT vs interpreted languages if you want more info.
luiz00estilo ยท 1 points ยท Posted at 20:21:50 on November 14, 2018 ยท (Permalink)
Thanks a lot for the info ๐
makeshift8 ยท 3 points ยท Posted at 16:19:16 on November 15, 2018 ยท (Permalink)
I would like to point out that C is often denoted as "universal assembly". Since C is basically ubiquitous nowadays, any low level stuff is done on C/C++ (though the old guard might scoff at you for using C++ without a good reason). There are newcomers like rust and go, which try to regulate what the programmer can and cannot do to improve security.
luiz00estilo ยท 2 points ยท Posted at 18:24:30 on November 15, 2018 ยท (Permalink)
Yeah, Go seems really interesting, but it seems too young for me to jump in right now.
makeshift8 ยท 2 points ยท Posted at 19:38:41 on November 15, 2018 ยท (Permalink)
I agree.
CraigslistAxeKiller ยท 1 points ยท Posted at 21:18:25 on November 14, 2018 ยท (Permalink)
Saying that Java runs on anything is cheating. Java bytecode will only run on the JVM. The JVM just happens to be ported to everything and have a bootable version
makeshift8 ยท 1 points ยท Posted at 16:20:11 on November 15, 2018 ยท (Permalink)
Dont know why you are being downvoted. There are plenty of devices which don't support JVM and never will.
EchoRadius ยท -4 points ยท Posted at 19:51:20 on November 14, 2018 ยท (Permalink)
The trade off though is security issues. I've never met a computer problem or virus that wasn't somehow tied to fucking Java. It's a hippy's pipe dream "wouldn't it be great if we all worked together! We just need to.. Uh.. Get rid of a few things and unlock a few doors. Easy peasey!"
johns_throwaway_2702 ยท 4 points ยท Posted at 20:14:31 on November 14, 2018 ยท (Permalink)
> I've never met a computer problem or virus that wasn't somehow tied to fucking Java
Is this a joke? The **vast** majority of major security flaws are due to problems in C like buffer overflows and other issues related to bounds checking. It's more than a meme at this point.
This is coming from someone who loves C and loathes Java - Java has its issues, but if you want to start talking about security flaws you can't just glance over C/C++ upon which the entire security industry remains afloat.
crawly_the_demon ยท 3 points ยท Posted at 20:08:47 on November 14, 2018 ยท (Permalink)
My roommate is a penetration tester, and you're absolutely incorrect if you think that C is any more secure than any modern language. It is so much easier to write unsafe code in C than it is in Java for example.
flavionm ยท 3 points ยท Posted at 21:24:48 on November 14, 2018 ยท (Permalink)
Pick one
makeshift8 ยท 2 points ยท Posted at 16:20:51 on November 15, 2018 ยท (Permalink)
I'l pick std::string
thenuge26 ยท 2 points ยท Posted at 20:15:36 on November 14, 2018 ยท (Permalink)
More abstraction = more security unless you're a security specialist, generally.
LeComm ยท -4 points ยท Posted at 19:10:32 on November 14, 2018 ยท (Permalink)
JVM barely ran in a shitty way on early mobile phones. Non-portable java code with architecture-dependent binaries: "Allow us to introduce ourselves". Meanwhile C will most definitely run on your microwave if it has a CPU, and very likely already does. It is "write once, compile everywhere" by concept.
You trade efficiency for a circlejek, mostly. And consumer marketing. And probably a little bit for the web phenomenon.
Dr-Metallius ยท 2 points ยท Posted at 20:25:44 on November 14, 2018 ยท (Permalink)
Multiple JARs were mostly used for different screen sizes because you can't exactly download megabytes of stuff on GPRS or EDGE and they had to split the assets. If the code was written correctly and didn't use some proprietary APIs, it was very portable.
I used to program for Java ME myself until Android took over, and I had no problems with making the midlets run on different devices. By the way, Android uses the exact same approach as Java ME, except it also allows you to use native libraries (but not standalone binaries and with very limited API access).
[deleted] ยท 6 points ยท Posted at 19:50:58 on November 14, 2018 ยท (Permalink)
I laugh when I see web devs call themselves hardcore programmers. They have not been through the hell of writing assembly on a microcontroller with limited registers or writing C when you had to write your garbage collection and understand how references and pointers work.
8bitslime ยท 2 points ยท Posted at 20:04:47 on November 14, 2018 ยท (Permalink)
I still don't understand where sticky headers that take up 50% of the screen come into play however... Looking at you Medium and literally every news website.
4S4T0R ยท 308 points ยท Posted at 13:17:17 on November 14, 2018 ยท (Permalink)
Complexity is like water, it will fill any container it is put into
CMMCQ ยท 142 points ยท Posted at 14:37:29 on November 14, 2018 ยท (Permalink)
I think you were meant to say gas, but otherwise good analogy
Suta--Purachina ยท 152 points ยท Posted at 15:02:38 on November 14, 2018 ยท (Permalink)
/u/CMMCQ at dinner at a restaurant
The waiter gestures to their empty water glass, "Would you like me to fill your glass?"
/u/CMMCQ scoffs, sweeping chicken tender crumbs from their beard as they lean back in their seat and smile, "Well you see, you couldn't fill that glass if you wanted to."
TheOboeMan ยท 3 points ยท Posted at 15:35:07 on November 15, 2018 ยท (Permalink)
That goodboy's name? /u/CMMCQ
zeelandia ยท 28 points ยท Posted at 14:56:14 on November 14, 2018 ยท (Permalink)
It works for water as well. I mean it'd be pretty weird to have square water in a hexagon cup.
7up478 ยท 32 points ยท Posted at 14:59:41 on November 14, 2018 ยท (Permalink)
Water only fills part of the container though. It fills it 2-dimensionally and has some depth, but does not completely fill it in 3 dimensions.
Elisvayn ยท 2 points ยท Posted at 17:56:29 on November 14, 2018 ยท (Permalink)
You can say the same about air, get a large bag, breathe in to it a bit, it isn't going to be full of air
7up478 ยท 3 points ยท Posted at 18:31:06 on November 14, 2018 ยท (Permalink)
That's true, they're still not equivalent though.
A liquid will fill the 2 dimensional surface, and once that is filled it will increase in depth, whereas the gas will fill all 3 dimensions simultaneously.
Elisvayn ยท 2 points ยท Posted at 18:45:46 on November 14, 2018 ยท (Permalink)
It's only more noticeable for gasses because they are much less dense, they still behave the same way because they are both fluids
moon__lander ยท 11 points ยท Posted at 15:00:57 on November 14, 2018 ยท (Permalink)
But gas fills all of the volume of the container when water fills only the volume of water??
Striker654 ยท 0 points ยท Posted at 22:23:20 on November 14, 2018 ยท (Permalink)
Not always, you can "pour" a heavier gas into an open container and it won't spread out to the rest of the room
TheOboeMan ยท 1 points ยท Posted at 20:30:03 on November 15, 2018 ยท (Permalink)
If that gas is the only thing in the container, it will fill the container.
Gas still fills the whole room in your analogy, it's just that the gas separates because some atoms in gaseous state happen to be significantly heavier than other atoms also in a gaseous state.
SingleSurfaceCleaner ยท 6 points ยท Posted at 16:39:49 on November 14, 2018 ยท (Permalink)
I think that's called an ice-cube
zeelandia ยท 1 points ยท Posted at 13:59:51 on November 15, 2018 ยท (Permalink)
You deserve an updoot, fellow human.
Dr_Freudberg ยท 5 points ยท Posted at 15:06:28 on November 14, 2018 ยท (Permalink)
Water doesn't change it's volume, just shape. Gas changes volume
Pajamawolf ยท 5 points ยท Posted at 15:00:15 on November 14, 2018 ยท (Permalink)
Only in a gravity field, and then only fills from bottom up. Gases always fill the container they're in.
pmmeyourpussyjuice ยท 2 points ยท Posted at 15:04:35 on November 14, 2018 ยท (Permalink)
Liquids don't expand to fill a container.
zeelandia ยท 1 points ยท Posted at 13:53:07 on November 15, 2018 ยท (Permalink)
Yea they do. They don't expand but they do fill (in a naive sense).
pmmeyourpussyjuice ยท 1 points ยท Posted at 14:28:56 on November 15, 2018 ยท (Permalink)
You're agreeing with me. They don't expand. They fill up to the volume they already had.
CMMCQ ยท 1 points ยท Posted at 15:03:40 on November 14, 2018 ยท (Permalink)
I was thinking if you have a ten gallon container and you have one gallon of water it ain't gonna fill it. But you can put any amount of gas in it, as long as the container can physically hold it, the gas wil fill the entire volume.
Wait would this still work in really high gravity?
Edit: I just looked this up and it would
zeelandia ยท 1 points ยท Posted at 13:51:41 on November 15, 2018 ยท (Permalink)
Lol I was thinking in a general sense in that it would "fill" the container just not fit it.
frankaislife ยท 38 points ยท Posted at 14:57:57 on November 14, 2018 ยท (Permalink)
People being pedantic in here. Fluids conform to any volume and gasses fill any volume.
rmlrmlchess ยท 2 points ยท Posted at 19:43:44 on November 14, 2018 ยท (Permalink)
What about heavy gases that sink?
Renson ยท 3 points ยท Posted at 03:36:44 on November 15, 2018 ยท (Permalink)
Then the room/container is still filled with gas, just not one gas. Air would be the other.
Put that heavy gas in a vacuum container and it will fill the entire volume
rmlrmlchess ยท 1 points ยท Posted at 03:37:16 on November 15, 2018 ยท (Permalink)
Oh right thank you
Saevarion ยท 1 points ยท Posted at 22:01:48 on November 27, 2018 ยท (Permalink)
Being pedantic here. Arenโt gases fluids?
frankaislife ยท 1 points ยท Posted at 22:11:31 on November 27, 2018 ยท (Permalink)
Yes. Gasses will conform to any volume, but they will also FILL any volume. All squares are rectangles but not all rectangles are squares. All gasses are fluids and therefore conform to their containing volume. But not all fluids are gasses. Gasses are compressible, and therefore expand to fill any volume, while most other fluids are not compressible, and so will not expand to fill a volume.
yourmans51 ยท 0 points ยท Posted at 15:08:13 on November 14, 2018 ยท (Permalink)
Then why are there clouds of gas in space? Wouldn't it all disperse to fill the universe?
Evalelynn ยท 13 points ยท Posted at 15:29:03 on November 14, 2018 ยท (Permalink)
Because they have and are effected by gravity. Otherwise yes they would.
yourmans51 ยท 0 points ยท Posted at 15:40:43 on November 14, 2018 ยท (Permalink)
Wait so the tendency for gases to disperse is a product of gravity? I did not know this, I thought the particles just bounced off each other or something. Thanks
Evalelynn ยท 14 points ยท Posted at 15:57:09 on November 14, 2018 ยท (Permalink)
No the reason they stay together-ish in nebulae is a product of gravity.
yourmans51 ยท 2 points ยท Posted at 16:37:55 on November 14, 2018 ยท (Permalink)
Ahh that makes sense, thank you
Verizer ยท 7 points ยท Posted at 16:30:37 on November 14, 2018 ยท (Permalink)
Many clouds of gas in space ARE dispersing. The question is "how fast" and "how big is it?"
Space be huge.
SingleSurfaceCleaner ยท 1 points ยท Posted at 16:41:12 on November 14, 2018 ยท (Permalink)
Aside from the fact that space itself is expanding faster than the speed of light? ๐ธโ
yourmans51 ยท 3 points ยท Posted at 16:42:19 on November 14, 2018 ยท (Permalink)
Your mom is expanding faster than the speed of li
TheOboeMan ยท 1 points ยท Posted at 20:31:30 on November 15, 2018 ยท (Permalink)
Actually a solid yo mama joke.
AnAverageFreak ยท 22 points ยท Posted at 14:40:14 on November 14, 2018 ยท (Permalink)
That's how a gas behaves.
[deleted] ยท 264 points ยท Posted at 10:27:08 on November 14, 2018 ยท (Permalink)
Man though, in the 90s the dba would kill you for using 'select *' and not specifying columns. Now it's the norm.
trex005 ยท 190 points ยท Posted at 11:19:43 on November 14, 2018 ยท (Permalink)
DBE here...
You'd better specify columns if you work for me!
[deleted] ยท 51 points ยท Posted at 11:24:09 on November 14, 2018 ยท (Permalink)
Exactly, what if there are columns you don't want!
mortiphago ยท 83 points ยท Posted at 14:01:25 on November 14, 2018 ยท (Permalink)
GYVร รLL CรLUMNS
DarkJarris ยท 32 points ยท Posted at 15:05:17 on November 14, 2018 ยท (Permalink)
brรถther
Vaderic ยท 13 points ยท Posted at 15:30:14 on November 14, 2018 ยท (Permalink)
oอฌอฆฬฏฬฬ อฬฬธฬงฬดอnฬฬฬฬงฬจฬจlอฆฬพอฅฬธอyฬฬฬอฬฬฌอ ฬอฏอฬปฬญออeอฆฬฬฬฎฬอฬฬตgฬองอฆฬฬซฬฑอฬดฬถาgฬ ฬฉฬบออsฬฬพอฬด ฬฬฌออcอญฬอ อฬอฬจาออaอซอฉอฬอออฬขอขอnฬอคฬฬทออฬ ฬฬฅฬออออฬขอsอญฬฬพฬฬกuอฬฬฬฅฬฎฬฬออฬงฬฬขsอฃฬฃฬบฬตอขอฬขtฬคฬดอฬธอฬจaอฎอฏอฎฬอฬiอฉออออ ฬnอจอฬออฬ ฬฒอฬอข ฬองอฬฬฬฑฬฬนฬดอmฬฬฬ อฬฬณอฬจeฬฬฬฬฬฬอออขออฬขอ
knaekce ยท 1 points ยท Posted at 15:36:58 on November 14, 2018 ยท (Permalink)
Meh, my ORM already does queries that require complex joins for each element in a list, so...
justanotherkenny ยท 1 points ยท Posted at 19:27:24 on November 14, 2018 ยท (Permalink)
What if there are columns you didnโt know you needed?
[deleted] ยท 1 points ยท Posted at 21:09:00 on November 14, 2018 ยท (Permalink)
Then add them to the select
I prefer whitelisting over blacklisting
justanotherkenny ยท 2 points ยท Posted at 22:18:32 on November 14, 2018 ยท (Permalink)
Donโt bring race into this..
JamesWjRose ยท 13 points ยท Posted at 13:36:09 on November 14, 2018 ยท (Permalink)
Good! You are right. Get only the data you need.
akcrono ยท 7 points ยท Posted at 14:15:04 on November 14, 2018 ยท (Permalink)
Someone doesn't like ORMs
the_one_true_bool ยท 14 points ยท Posted at 16:07:26 on November 14, 2018 ยท (Permalink)
As a .NET dev, I've totally come full circle. 20 years ago my code was a mess of datasets, data adapters, very little in the way of OOP, etc. then I started learning about design patterns and "proper" OOP construction and went down that whole rabbit hole for a decade. So about 5-ish years ago I was all about using an ORM to mutate relational data into objects, often using DTOs to then translate the models into something I can serialize into something that can then be mutated into json (or whatever) objects in case someone was using a browser or something, using IOC containers to get rid of the pesky "new" command, programming literally everything to an interface so I can readily swap out objects, adhering to the SOLID principals, etc etc.
Then recently I realized - this shit just takes WAY too god damn long and it's overly-complicated for most small/medium (sub 250K-ish SLOC) projects. Half the problem is all the fuckery that goes on between the DAL and higher level business/service tiers. We're forcing a square peg through a round hole because DB data is relational but we want "real world-like" objects.
Why not just say fuck it and keep it relational? You can still wrap things up into easy to use APIs to keep things pretty clean. Anymore for me it's back to datasets (I'm talking about the .NET DataSet object) and table adapters. My tiers are super damn clean - I still separate my DAL, service layer, business layer and UI layers, but I don't stress over "proper" OOP constructs. I'm much more diligent and disciplined than I was in my early stages, so the code is clean and organized.
The DataSet is the true god. Interaction between the services/DAL layer is lightning fast and super efficient because there's no ORM fuckery going on. I can easily serialize the results for transmission across the wire. It has built-in change tracking so I know which records have been modified, added, and deleted - but I don't even really need to care about that because table adapters will do the right thing for me.
I still pepper around some OOP here and there, but I'm far less an OOP weenie now than I was a decade ago, and it has saved me SO MUCH time. I can crank out projects in no time and am not constantly stressing about "the perfect OOP architecture". I'm glad I went through the OOP phase though because so many existing projects utilize all that fuckery so I'm familiar with it, but anymore when I'm in charge it's all about keeping it simple af, and delivering to the customer as fast as possible.
[deleted] ยท 0 points ยท Posted at 17:13:55 on November 14, 2018 ยท (Permalink)*
[deleted]
batmansleftnut ยท 3 points ยท Posted at 15:23:48 on November 14, 2018 ยท (Permalink)
Me.
trex005 ยท 3 points ยท Posted at 14:17:04 on November 14, 2018 ยท (Permalink)
They are a fun concept, but I have never found one that stands up to the needs of enterprise level software.
So, no.
akcrono ยท -1 points ยท Posted at 14:20:59 on November 14, 2018 ยท (Permalink)
ActiveRecord certainly does
jek39 ยท 2 points ยท Posted at 15:29:36 on November 14, 2018 ยท (Permalink)
not in my experience.... it's really not much different from any of the others
akcrono ยท -1 points ยท Posted at 17:30:16 on November 14, 2018 ยท (Permalink)
I've worked at two enterprise level rails shops, and ActiveRecord works fine. Every once and awhile you need to go around it to optimize a query, but that's not very common.
IWasGregInTokyo ยท 2 points ยท Posted at 16:26:21 on November 14, 2018 ยท (Permalink)
Our environment makes it easy. SELECT * just isn't possible.
d65865 ยท 119 points ยท Posted at 12:16:45 on November 14, 2018 ยท (Permalink)
DBE Here,
If you work for me, you can select * all day, cuz we have shit to do.
wllmsaccnt ยท 12 points ยท Posted at 13:38:01 on November 14, 2018 ยท (Permalink)
But what if I also want a covering idex for it?
lhatemyjob1 ยท 38 points ยท Posted at 13:44:46 on November 14, 2018 ยท (Permalink)
select * from (select * ...)
say_no_to_camel_case ยท 5 points ยท Posted at 16:01:00 on November 14, 2018 ยท (Permalink)
You madman!
PeacefulDays ยท 28 points ยท Posted at 14:57:57 on November 14, 2018 ยท (Permalink)
Web dev here, select * is how I figure out what columns I need.
Talbooth ยท 5 points ยท Posted at 18:12:44 on November 14, 2018 ยท (Permalink)
I really hope you are a backend dev. It would be terrifying if you could execute that on client side.
PeacefulDays ยท 3 points ยท Posted at 18:24:18 on November 14, 2018 ยท (Permalink)
I may have used the wrong term, it's asp.net so I end up doing both usually. No front end SQL though...yet.
Keele0 ยท 3 points ยท Posted at 19:00:57 on November 14, 2018 ยท (Permalink)
Maybe just desc tablename.
Or select * from tablename where rownum <2 if you need to see actual sample data
[deleted] ยท 10 points ยท Posted at 13:51:04 on November 14, 2018 ยท (Permalink)
[deleted]
akcrono ยท 22 points ยท Posted at 14:16:20 on November 14, 2018 ยท (Permalink)*
Well, I wanted to scream when my pkeys rolled over, so...
orahsolo ยท 4 points ยท Posted at 14:44:54 on November 14, 2018 ยท (Permalink)
found the rails guy
[deleted] ยท 1 points ยท Posted at 17:49:45 on November 14, 2018 ยท (Permalink)
[deleted]
akcrono ยท 1 points ยท Posted at 18:20:52 on November 14, 2018 ยท (Permalink)
I agree in a perfect world, but imo the problem of larger tables is several orders of magnitude less than a pkey rollover. Then again, in a developer, not a dba
HelloAnnyong ยท 1 points ยท Posted at 16:50:49 on November 14, 2018 ยท (Permalink)
Do you enjoy dealing with 5-hour outages to migrate a table when you run out of primary keys?
Defaulting to bigint is absolutely the correct behaviour.
[deleted] ยท 5 points ยท Posted at 17:34:52 on November 14, 2018 ยท (Permalink)
[deleted]
HelloAnnyong ยท 4 points ยท Posted at 18:08:06 on November 14, 2018 ยท (Permalink)
It is the correct default.
For small apps, prototypes, and apps with small numbers of users, the performance/disk usage hit of bigint is practically zero.
As your tables grow, "no downtime but marginally-higher disk usage" is a strictly better outcome than than "sudden downtime but marginally-smaller tables until that downtime"
We're talking about a maximum difference of 4 bytes per ID column. (Possibly even less because of data alignment.)
I checked a couple of our tables in production. A typical table of ours uses 600 bytes per row. Adding 8 bytes (say, for a bigint primary key and an additional 4 bytes for say a foreign key) is a 1% increase in usage. The cost of that is nothing compared to a potential eventual downtime. (As we experienced once because of this!)
[deleted] ยท 3 points ยท Posted at 18:59:34 on November 14, 2018 ยท (Permalink)
[deleted]
HelloAnnyong ยท 3 points ยท Posted at 19:07:41 on November 14, 2018 ยท (Permalink)
Let's be super clear: it increases the disk usage requirements by approximately 1% for typical usage, at least based on my usage.
In return you avoid sudden downtimes that, by the time your tables are that big, will possibly cost your company thousands of dollars.
Worth it. Great decision by the Rails team. You can always override it if you need to save those 4 bytes.
doglitbug ยท 0 points ยท Posted at 21:27:11 on November 14, 2018 ยท (Permalink)
Umm y2k bug Anyone?
thatwasntababyruth ยท 9 points ยท Posted at 14:16:37 on November 14, 2018 ยท (Permalink)
You should see the ridiculous join queries that Hibernate generates.
konaaa ยท 5 points ยท Posted at 13:57:51 on November 14, 2018 ยท (Permalink)
You mean my prof lied to me?!
CraigslistAxeKiller ยท 2 points ยท Posted at 21:13:40 on November 14, 2018 ยท (Permalink)
*its the norm at places with shitty dev practices
swiftpants ยท 0 points ยท Posted at 16:09:25 on November 14, 2018 ยท (Permalink)
When I started I use to select explicit columns but now use *
Most of the time my tables are minimal in column count and I need almost all of them when I use *
If I am joining I will specify columns obviously. Except for that one time tableA.*, tableB.*... Ah good times.
hellbenthorse ยท 0 points ยท Posted at 19:29:10 on November 14, 2018 ยท (Permalink)
In comes bobby tables
raymond8505 ยท 44 points ยท Posted at 14:00:25 on November 14, 2018 ยท (Permalink)
probably because the gif is 60fps and 2 minutes long and somehow parallax scrolls in all 4 dimensions
Faithwarlock ยท 9 points ยท Posted at 17:56:46 on November 14, 2018 ยท (Permalink)
That's justa a 3D movie
raymond8505 ยท 4 points ยท Posted at 21:24:24 on November 14, 2018 ยท (Permalink)
No wonder it's such a resource hog
ComputerMystic ยท 3 points ยท Posted at 23:51:56 on November 14, 2018 ยท (Permalink)
Excuse me, what the fuck? I think this broke my brain because I can't even figure out what a 3D parallax scroll would look like.
raymond8505 ยท 4 points ยท Posted at 00:21:57 on November 15, 2018 ยท (Permalink)
it would do its normal parallax movement on the Y axis, but then it would zoom toward or away from you on the Z while also shifting left or right on the X and when you were done watching it you'd have a sense of deja vu because it actually went back in time to and parallaxed on you and now your two divergent selves' memories are combining again
It's my favourite jQuery plugin right now.
ComputerMystic ยท 2 points ยท Posted at 00:26:12 on November 15, 2018 ยท (Permalink)
Okay, so now I understand; the third dimension is simulating the increasing distance from the background objects as you climb higher.
Thanks.
littlejohnnynomad ยท 111 points ยท Posted at 13:04:41 on November 14, 2018 ยท (Permalink)
No comparison of the developer time spent on each though
celvro ยท 29 points ยท Posted at 14:20:40 on November 14, 2018 ยท (Permalink)
I remember in high school spending a ton of time fixing some small personal site to work in chrome Firefox and IE. Now you just include Babel and you're 99% there for a larger range of browsers
Dr_Azrael_Tod ยท 65 points ยท Posted at 13:26:33 on November 14, 2018 ยท (Permalink)
I'm pretty sure creating a GUI in 2000s Delphi wasn't slower than it's in current XCode/Android-Studio.
The IDE even felt pretty much as slow back then as the current ones do now, features weren't that dissimilar either.
What changed? Oh, I don't know? I'm no longer using it on a Cyrix M2 300 for one.
StrayanThought ยท 17 points ยท Posted at 14:09:56 on November 14, 2018 ยท (Permalink)
Borland really did nail ui design with Delphi. Pity you had to code in Pascal. At least it wasn't java, I guess. I don't remember the ide being that slow in 5 or 6.
Dr_Azrael_Tod ยท 10 points ยท Posted at 14:16:30 on November 14, 2018 ยท (Permalink)
..or Typescript, C++, ObjectiveC
we got to face it: Coding sucks and we just use these languages because we have not a single really good one
[deleted] ยท 19 points ยท Posted at 14:37:59 on November 14, 2018 ยท (Permalink)
Hey, Python just called and said..
Never mind.
strangeglyph ยท 6 points ยท Posted at 15:13:22 on November 14, 2018 ยท (Permalink)
Kotlin, tho
StrayanThought ยท 3 points ยท Posted at 19:05:05 on November 14, 2018 ยท (Permalink)
Or,
IndentationError: unexpected indent
And that's why I use perl5 where you whipper snappers would use python.
[deleted] ยท 3 points ยท Posted at 19:14:52 on November 14, 2018 ยท (Permalink)
When's perl 6 coming out lol
I've been using perl for 20 years and I love it--until I have to read someone else's code.
StrayanThought ยท 2 points ยท Posted at 22:14:12 on November 14, 2018 ยท (Permalink)
Perl 6 was released in December 2015, and nobody uses it.
[deleted] ยท 3 points ยท Posted at 01:09:44 on November 15, 2018 ยท (Permalink)
I never thought it would see the light of day with all the contention in the community.
That's so perl.
segv ยท 2 points ยท Posted at 15:48:32 on November 14, 2018 ยท (Permalink)
UI code is always terrible, no matter the language, such is the nature of the beast
IoanToma ยท 1 points ยท Posted at 17:08:06 on November 14, 2018 ยท (Permalink)
In Delphi you just draw and "link" the actual code in a pretty visual, intuitive way. No need to "describe" it.
StrayanThought ยท 1 points ยท Posted at 19:21:00 on November 14, 2018 ยท (Permalink)
To be fair, it still sucked when you didn't want to use the default widget look/behavior, I spent way too many hours in OnDraw, OnPaint etc events.
Dr_Azrael_Tod ยท 0 points ยท Posted at 16:19:20 on November 14, 2018 ยท (Permalink)
uhh... no?
the_Madman ยท 3 points ยท Posted at 14:38:53 on November 14, 2018 ยท (Permalink)
Writing UIs in XML? Where have I heard that one before...?
LoneCookie ยท 1 points ยท Posted at 22:39:48 on November 14, 2018 ยท (Permalink)
HTML, haha
Inb4 AML
mindbleach ยท 12 points ยท Posted at 15:38:03 on November 14, 2018 ยท (Permalink)
The typical game development team used to be A Guy.
That guy would spend a couple months doing witchcraft in assembly so effects would occur microseconds ahead of the television's electron beam.
By the 1990s, the team for Doom fit in an elevator. It took them nine months to code an engine from scratch, optimize it to run on 33 MHz 386s, develop all their own mapping tools, and release the game via mail-order. A similar-sized team then coded another engine and toolchain from scratch to do proper 3D on 66 MHz Pentiums and released that three years later.
makeshift8 ยท 1 points ยท Posted at 16:23:29 on November 15, 2018 ยท (Permalink)
Now it's easy to steal code off GitHub, which has drastically reduced development time for C/C++.
Jmcgee1125 ยท 535 points ยท Posted at 12:48:45 on November 14, 2018 ยท (Permalink)
Bethesda: Makes a 99 GB broken game
Mercysh ยท 279 points ยท Posted at 14:35:45 on November 14, 2018 ยท (Permalink)
Alot of filesize in video games comes from art assets like animations, models and sound files. Code usually makes up the minority of a game afaik.
MissingFucks ยท 148 points ยท Posted at 14:48:10 on November 14, 2018 ยท (Permalink)
Yeah. Running games at 4k requires high res textures for it to look good.
Fineus ยท 112 points ยท Posted at 15:11:35 on November 14, 2018 ยท (Permalink)
Reckon it would be wrong to dream of a distant future where you specify your intended resolution before you download?
The server could then pass up the relevant engine and art assets designed for your needs, rather than downloading 4k art to a machine only intending to run at 1080p.
buck7131 ยท 97 points ยท Posted at 15:28:47 on November 14, 2018 ยท (Permalink)
Some games do this by having a 4k dlc for free
Fineus ยท 28 points ยท Posted at 15:33:30 on November 14, 2018 ยท (Permalink)
Sounds good to me, I think it's great to cater to that level even if it's not the most popular yet, but it's a strain at both ends to have to download all that extra data!
[deleted] ยท 35 points ยท Posted at 15:38:51 on November 14, 2018 ยท (Permalink)*
[deleted]
Hackerpcs ยท 2 points ยท Posted at 17:15:46 on November 14, 2018 ยท (Permalink)
Display res != textures res
It's not an overkill to have 2K or even 4K textures on 1080 or even 720
ThatDrSteak ยท 7 points ยท Posted at 16:15:45 on November 14, 2018 ยท (Permalink)
The 4K textures still affect the game even if you play at 1080p, because the textures are often scaled on the surfaces of the polygons to be larger than the screen.
Fineus ยท 1 points ยท Posted at 16:17:15 on November 14, 2018 ยท (Permalink)
Can those be separated out from those that aren't scaled? (Or do more engines tend to use 4K textures and scale them on the fly or at first launch then cache them) now?
ThatDrSteak ยท 4 points ยท Posted at 16:36:17 on November 14, 2018 ยท (Permalink)
The way the textures work on 3D models is that the modeler creates a set of connected surfaces called polygons and then they unwrap those surfaces onto a 2D plane. Think of a map of the Earth, itโs unwrapped version of a sphere. That unwrapped version is then used to map the pixels from an image (texture) onto the surface. The image has to be large enough in resolution to not look pixelated so for large objects you need bigger textures. The texture can also be scaled down and repeated to make the details smaller, but then the surface will look repetitive. You might notice this on the ground and walls in many games.
When you move the camera closer to the surface, you will see the pixels larger on your screen.
bastix2 ยท 2 points ยท Posted at 10:42:19 on November 17, 2018 ยท (Permalink)
I recently downloaded Destiny 2 which is a whopping 80gb.
Just over 23gb were voice files in 6 different languages. You could reduce the download size by almost 20gb if you would just download the language you want.
Which is a thing blizzard usually does, but not fucking bungie.
ComprehensiveSector4 ยท 2 points ยท Posted at 16:02:36 on November 14, 2018 ยท (Permalink)
I'd rather have even larger downloads as long as the install runs quickly. I game mostly on the PS4, and even though PSN download speeds are crap most of the time, actually installing the patches is even slower than downloading them. Yesterday's BO4 patch was about 9-10 GB, took 10 minutes to download, and another 20-30 to actually install. There is no excuse for that kind of tomfoolery. Bandwidth is cheap.* There's no point in min-maxing for download speeds. But as long as overly aggressive compression isn't a part of your distant future utopia, it sounds nice.
*In Europe.
Fineus ยท 2 points ยท Posted at 16:08:26 on November 14, 2018 ยท (Permalink)
Fair point, I'm probably a bit biased as my internet provider says it doesn't throttle internet but I'm very sure it does (I just downloaded Battlefield V for instance and my internet speed since it finished has been terrible!)
But yeah, if your system is slow to install I can see how you'd want to just get it done ASAP...
As long as you have the option for both, I mean that's the utopia...
ComprehensiveSector4 ยท 1 points ยท Posted at 17:32:28 on November 14, 2018 ยท (Permalink)
If you're going the utopian route, might as well throw in ubiquitous gigabit internet and not worry about bandwidth. Throw in bittorrent-based content delivery to keep up the speeds, and call it a day. Honestly, people with shitty internet would probably be a bit disappointed with the real deal, since so many services are made for people with shitty connections.
Enverex ยท 1 points ยท Posted at 17:58:06 on November 14, 2018 ยท (Permalink)
The two aren't really related unless you're running below 720p. Even at lower resolutions you'll still see benefits from higher resolution textures.
Talbooth ยท 1 points ยท Posted at 18:16:04 on November 14, 2018 ยท (Permalink)
Meanwhile I'm here waiting for the day when assets are specified as vectors, preferably with some fractal-ish behaviour to reduce size and when you are done downloading your few gigabytes it just throws a window on the screen
Yes, I know that vector formats still take up space and that some things can't be effectively represented as vectors. But a man can dream.
Jmcgee1125 ยท 1 points ยท Posted at 16:11:29 on November 14, 2018 ยท (Permalink)
Which is why they should all follow games like Rainbow 6 Siege, where high quality "ultra" textures are an extra download
Tapeworm1979 ยท 41 points ยท Posted at 15:03:19 on November 14, 2018 ยท (Permalink)
Actually it's generally sound. Art is reused a lot and compresses super well. It's also because it needs to be entirely in memory to be used where as sounds are streamed in on demand. For that reason loading times are critical. Plus you needed all languages on their.
I remember the GeForce conference. And I mean GeForce 256 with 64mb. This was the first time you had to fit textures and polygons on the card at the same time. Which was horrendous because you couldn't really stream to card without killing it. At least with the ps2 we could and we had better options for compression. What took 128mb on a PC would happily fit in 28mb on a ps2.
NabiscoLobstrosity ยท 1 points ยท Posted at 02:07:38 on November 15, 2018 ยท (Permalink)
I know this all too well. IIRC, the game Medieval Total War was about 6GB, and it was released a long time ago when 6GB was unimaginably massive.
I liked the music, so I managed to find the songs in the file system. A 57 second sound file was 109 MB. They hadn't compressed the audio at all, and there were dozens of these. The majority of the game was the sound files because they simply didn't bother to compress them. They printed multiple extra CDs per box (which was the only way to buy the game) because they hadn't bothered to compress the background audio. And those 4-CD cases can't be cheap.
Tapeworm1979 ยท 2 points ยท Posted at 07:41:51 on November 15, 2018 ยท (Permalink)
So to answer this. The first total war came out right at the time that games started transitioning to compressed audio like mp3, or more likely ogg because it had no licence fees.
The problem is that at the time decoding these took a lot of cpu time. We rejected it for one game because even on our work stations it was around 5%. This means upwards of 20% for the target pc's. So games just used wav files because plaguing them was free near enough.
makeshift8 ยท 2 points ยท Posted at 16:24:48 on November 15, 2018 ยท (Permalink)
Also, people complain about load times,so it's better to just not compress assets.
Aegi ยท 1 points ยท Posted at 21:07:54 on November 14, 2018 ยท (Permalink)
Can you explain why the PS4 and Xbox One versions of games are always larger than when I have the exact same game on my computer?
EchoRadius ยท -1 points ยท Posted at 19:46:04 on November 14, 2018 ยท (Permalink)
I'll accept that excuse when a 99g game actually looks good.
ItsYaBoyChipsAhoy ยท -3 points ยท Posted at 15:58:49 on November 14, 2018 ยท (Permalink)
doesn't explain the 50gb updates
Mercysh ยท 3 points ยท Posted at 16:31:40 on November 14, 2018 ยท (Permalink)
The bigger the update the more content added generally. Or maybe just modified or fixed assets. Code rarely sees the gb mark
__MrFahrenheit ยท 12 points ยท Posted at 14:37:41 on November 14, 2018 ยท (Permalink)
It just works
HuaRong ยท 1 points ยท Posted at 19:30:53 on November 14, 2018 ยท (Permalink)
Is that a JoJo reference?
redzilla500 ยท 1 points ยท Posted at 20:17:32 on November 14, 2018 ยท (Permalink)
It's a tod Howard reference
MyNameIsRay ยท 6 points ยท Posted at 15:11:01 on November 14, 2018 ยท (Permalink)
99 gig broken game
40 gig day-one patch
Still broken.
ProWaterboarder ยท 2 points ยท Posted at 17:24:05 on November 14, 2018 ยท (Permalink)
Uh what? Skyrim was like a 9GB install
yonka2 ยท 4 points ยท Posted at 15:04:33 on November 14, 2018 ยท (Permalink)
But it looks pretty as fuck
Fineus ยท 1 points ยท Posted at 15:12:44 on November 14, 2018 ยท (Permalink)
This is Bethesda we're talking about... Skyrim... Fallout... they looked dated and don't run brilliantly vs. more modern games / engines.
Not a slight against the games but at least a comment on how much effort they've gone in to.
yonka2 ยท 7 points ยท Posted at 15:14:03 on November 14, 2018 ยท (Permalink)
I think Skyrim without mods, while a little washed, looks amazing still. So does Fallout 3. They're just kinda dark.
Fineus ยท 0 points ยท Posted at 15:29:12 on November 14, 2018 ยท (Permalink)
Fair enough, personally I think there are far more slick, diverse and modern engines out there. The Skyrim (Creation) Engine came out about 7 years ago now!
yonka2 ยท 1 points ยท Posted at 15:34:18 on November 14, 2018 ยท (Permalink)
Damn, really?
I guess it does come down to personal preference tho.
Fineus ยท 0 points ยท Posted at 16:14:22 on November 14, 2018 ยท (Permalink)
TBF back when it first launched I was blown away, it was impressive. I think what worries me is that while they updated it for Fallout 4 (and maybe Fallout 78/76(?) I can't help but feel the whole thing needs a ground up rework to keep it competitive going forward. I don't think it aged very gracefully in terms of performance.
yonka2 ยท 1 points ยท Posted at 16:44:06 on November 14, 2018 ยท (Permalink)
Performance wise, yeah it's laggy in a lot of spots but that's more a result of the limitations they had rather than efficiency. I could be wrong.
fourchickensandacoke ยท 1 points ยท Posted at 17:24:46 on November 14, 2018 ยท (Permalink)
At least it deletes itself
PheonixScale9094 ยท -19 points ยท Posted at 14:04:48 on November 14, 2018 ยท (Permalink)
Compression has nothing to do with quality
zebediah49 ยท 34 points ยท Posted at 14:33:57 on November 14, 2018 ยท (Permalink)
This is why I do (and encourage others to do) scientific computing work using unix tools from the '70's and '80's when practical. These things were written to be as fast as possible on really slow hardware; all of the modern speed increases actually work as speed increases. Most of them are streaming tools as well, which means that you never run out of memory.
Dojan5 ยท 13 points ยท Posted at 14:42:12 on November 14, 2018 ยท (Permalink)
I misread that as "screaming tools" and spent a good three minutes chuckling at the idea of a screaming computer. Actually that reminds me of this old TFTS post.
Rawr_8 ยท 2 points ยท Posted at 19:22:13 on November 14, 2018 ยท (Permalink)
I am a physica undergrad and C and FORTRAN are the ones we use , aside from plotting stuff on MATLAB/Octave
zebediah49 ยท 2 points ยท Posted at 22:31:51 on November 14, 2018 ยท (Permalink)
Depending on if you have various restrictions (read: people's opinions) on what you can use, it might be worth looking into
xmgrace(or, grace). It's old, but makes nice looking plots and is 100% scriptable. It's very easy to write a script that does analysis all the way through plotting the data at the end.I will admit that sometimes finding the correct command to pass it is tricky though; the documentation on some parts is kinda sparse.
For example, I have a script that takes a set of
.txttrajectories (int<tab>x<tab>yform), scales them to fit at the same scale as an input image that corresponds to their environment, plots them, and then overlays that onto the background.(The aspect ratio calculation, and compositing with imagemagic omitted)
Rawr_8 ยท 2 points ยท Posted at 01:17:17 on November 15, 2018 ยท (Permalink)
I'll look into it. I am taking a Computational physics class this semester and our guy is really into ROOT and gnuplot but it seems neat. Thanks for telling me
zebediah49 ยท 2 points ยท Posted at 02:17:08 on November 15, 2018 ยท (Permalink)
Gnuplot is also pretty nice -- I personally prefer Grace (except for heatmaps, which it can't do, so I use gnuplot), but they both have advantages and disadvantages.
One of the things that's nice about grace is that its save files just consist of the commands required to recreate it, so you can just do the changes you would want in the GUI, and then either send those commands, or just do the text changes with
sedor the like, on other plots.CXgamer ยท 2 points ยท Posted at 17:44:09 on November 14, 2018 ยท (Permalink)
This man does not thread multi.
zebediah49 ยท 2 points ยท Posted at 22:20:02 on November 14, 2018 ยท (Permalink)*
Ah... but that's what
makeis for :DIf you write out your analysis pipeline as a set of Makefile recipes, you can then just
make -j <lots>your entire analysis.E: This is primarily appropriate to people that do repeated trials across parameter sweeps. It's dubiously useful if you have a couple extremely intensive things to do, but if you're looking at a directory tree that looks like
project/x23_y43_z3.4_a0_b6/replica-150/raw_data.dat, having a set of pattern rules that processes and collapses each one is extremely effective.Nuclear_Nova ยท 31 points ยท Posted at 14:50:23 on November 14, 2018 ยท (Permalink)
Limitation breeds innovation
LoneCookie ยท 1 points ยท Posted at 22:42:38 on November 14, 2018 ยท (Permalink)
I mean, innovation happens due to a set of factors
It could've been funneled into a new skill system, instead the team spent 6 months min maxing the game engine to pretend to be 3d
[deleted] ยท 75 points ยท Posted at 14:05:21 on November 14, 2018 ยท (Permalink)*
[deleted]
spartanreborn ยท 32 points ยท Posted at 14:29:02 on November 14, 2018 ยท (Permalink)
:'(
H_Psi ยท 23 points ยท Posted at 14:57:40 on November 14, 2018 ยท (Permalink)
spartanreborn ยท 16 points ยท Posted at 15:02:36 on November 14, 2018 ยท (Permalink)
Oh the horror
ComputerMystic ยท 1 points ยท Posted at 23:53:26 on November 14, 2018 ยท (Permalink)
Let's make this worse:
makeshift8 ยท 1 points ยท Posted at 16:26:31 on November 15, 2018 ยท (Permalink)
3tt07kjt ยท 8 points ยท Posted at 16:18:14 on November 14, 2018 ยท (Permalink)
Games in the 1990s had big chunks of assembler. Many were written entirely in assembler (most SNES, Genesis games).
killersquirel11 ยท 7 points ยท Posted at 16:31:08 on November 14, 2018 ยท (Permalink)
no๐ ฑ๏ธe_mo๐ ฑ๏ธules
bloqs ยท 5 points ยท Posted at 15:09:51 on November 14, 2018 ยท (Permalink)
this is the most laconic answer. The software stack
MyNameIsRichardCS54 ยท 122 points ยท Posted at 11:49:24 on November 14, 2018 ยท (Permalink)
That's abstraction for you.
knaekce ยท 114 points ยท Posted at 13:40:32 on November 14, 2018 ยท (Permalink)
Not necessarily. There are free abstractions, there are cheap abstractions and there are costly abstractions. That's 5 layers of costly abstractions for you.
C++ is the other extreme: it embraces zero-cost and cheap abstractions.
zeelandia ยท 36 points ยท Posted at 14:58:01 on November 14, 2018 ยท (Permalink)
Gotta stick Rust in here for zero-cost abstractions.
knaekce ยท 29 points ยท Posted at 15:04:41 on November 14, 2018 ยท (Permalink)*
I omitted it to give fellow Rust-Enthusiasts the opportunity to mention it ;)
zeelandia ยท 1 points ยท Posted at 14:04:38 on November 15, 2018 ยท (Permalink)
Ah I see.
Mwakay ยท 11 points ยท Posted at 15:34:28 on November 14, 2018 ยท (Permalink)
I really,really need to learn Rust.
[deleted] ยท 4 points ยท Posted at 18:15:03 on November 14, 2018 ยท (Permalink)*
[deleted]
zeelandia ยท 1 points ยท Posted at 13:59:04 on November 15, 2018 ยท (Permalink)
that's contradictory of why it's one of the most liked programming languages at the moment.
radome9 ยท 26 points ยท Posted at 13:06:01 on November 14, 2018 ยท (Permalink)
That's <feature> for you.
TigreDeLosLlanos ยท 21 points ยท Posted at 14:02:29 on November 14, 2018 ยท (Permalink)
Did you mean sleep(20)?
TheSilverDagger ยท 19 points ยท Posted at 14:18:56 on November 14, 2018 ยท (Permalink)
Challenging constraints create good designers.
internetvandal ยท 1 points ยท Posted at 21:10:11 on November 14, 2018 ยท (Permalink)
or in general : hard time create strong men
lx45803 ยท 1 points ยท Posted at 10:37:58 on November 15, 2018 ยท (Permalink)
No, challenging constraints filter out bad designers.
[deleted] ยท 16 points ยท Posted at 13:51:03 on November 14, 2018 ยท (Permalink)
[deleted]
NoNameRequiredxD ยท 5 points ยท Posted at 15:59:42 on November 14, 2018 ยท (Permalink)
There should be a switch for this tbh
Talbooth ยท 5 points ยท Posted at 18:22:49 on November 14, 2018 ยท (Permalink)
Or when things jump around as the page loads. PUT AN EMPTY BOX THERE WHILE IT'S LOADING, IT'S NOT THAT HARD, PEOPLE.
EDIT: who am I kidding. Of course it's hard, it won't work on some obscure browser from 2007 that the company still supports for some reason, or the framework they use doesn't support it.
somanom ยท 4 points ยท Posted at 19:26:44 on November 14, 2018 ยท (Permalink)
Website:Loads Me: Clicking on link I want to follow Website: Proceeds loading as I click, so I miss the link and open some random ad.
Every damn time.
regretdeletingthat ยท 2 points ยท Posted at 19:00:46 on November 14, 2018 ยท (Permalink)
Well thereโs your problem, JavaScript is single-threaded ๐
I joke of course. Some software just makes you wonder if anyone actually stopped to think about user experience for even a second.
Firebelias ยท 13 points ยท Posted at 17:47:56 on November 14, 2018 ยท (Permalink)
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
ilinamorato ยท 80 points ยท Posted at 14:18:03 on November 14, 2018 ยท (Permalink)
Video games in the 90s weren't hijacking your computer cycles to mine for Bitcoin.
StudentHwale ยท 13 points ยท Posted at 19:35:51 on November 14, 2018 ยท (Permalink)
And they still aren't.
glow2hi ยท 8 points ยท Posted at 20:13:15 on November 14, 2018 ยท (Permalink)
There was one on steam that did a month or two ago
hatmantop2 ยท 12 points ยท Posted at 21:49:16 on November 14, 2018 ยท (Permalink)
So... one?
VerbNounPair ยท 13 points ยท Posted at 00:40:06 on November 15, 2018 ยท (Permalink)
wake up sheeple
EchoRadius ยท 9 points ยท Posted at 19:52:16 on November 14, 2018 ยท (Permalink)
Citation needed.
SheolCodeMonkey ยท 11 points ยท Posted at 17:55:14 on November 14, 2018 ยท (Permalink)
2030
"I now have enough RAM to run Slack"
livrem ยท 24 points ยท Posted at 13:38:06 on November 14, 2018 ยท (Permalink)
Things That Turbo Pascal is Smaller Than.
As someone that grew up programming in Turbo Pascal 2.0, that text made me feel very bad about some things we do now. And it is far from obvious that the added layers of abstractions makes it that much faster to code (or results in more stable applications) or that useful end-user features are that much better.
PostExistentialism ยท 6 points ยท Posted at 18:56:04 on November 14, 2018 ยท (Permalink)
In 2011:
In 2018:
yahoo.com (nobody logs in anyway): 250 requests, 1.6 MB, 1 console error, 21 console warnings, 2 console log messages for debug purposes, 1 console log error message.
google.com (logged out): 20 requests, 417 KB
facebook.com (logged out): 88 requests, 4.8 MB
aol.com (more like lol, amirite?): 220 requests (320 requests a few seconds later), 2.6 MB
They're all disgusting, but Facebook is definitely the worst of all. How in God's name can that login page need close to 100 requests and 5 MB?
_a_random_dude_ ยท 5 points ยท Posted at 15:18:16 on November 14, 2018 ยท (Permalink)
The touch command... :/
ComputerMystic ยท 2 points ยท Posted at 23:56:35 on November 14, 2018 ยท (Permalink)
I came here to post that too. HOW DO YOU MAKE
touchLARGE?I just checked, on my Linux machine it's even bigger at about 96k
Arktuos ยท 2 points ยท Posted at 23:57:05 on November 14, 2018 ยท (Permalink)
Typescript and C# are both designed by the same guy who designed Turbo Pascal.
blooespook ยท 23 points ยท Posted at 14:51:04 on November 14, 2018 ยท (Permalink)
"You don't need math to become a programmer" "Self-taught programmers are better than computer scientists" "Big O is useless".... Do I have to go on?
bloqs ยท 7 points ยท Posted at 15:15:17 on November 14, 2018 ยท (Permalink)
even as one of those people i still actually agree with you.
NoNameRequiredxD ยท 6 points ยท Posted at 16:05:06 on November 14, 2018 ยท (Permalink)
Hello, iโm a newbie in programming. Can you tell me why math is needed? Thanks a lot!
Talbooth ยท 19 points ยท Posted at 18:38:33 on November 14, 2018 ยท (Permalink)
Basically it enables you to figure our how to do stuff efficiently. Dumb example, but if you sketch up some calculation that requires you to calculate the square root of something, that's very expensive in terms of CPU usage, if you can make a formula that performs the same operation without the need for sqrt, it's much faster.
Also, math isn't just algebra. You could for example use your knowledge of graph theory to use certain guarantees given by a graph's mathematical properties to omit (potentially expensive) checks, or use your knowledge of functions (in the mathematical sense) to draw trigonometric, logarithmic, etc. functions as their polynomial approximations (which are waaaaaay faster to calculate).
NoNameRequiredxD ยท 3 points ยท Posted at 18:40:24 on November 14, 2018 ยท (Permalink)
Yea thanks, well no escaping from math then :/
makeshift8 ยท 3 points ยท Posted at 16:29:29 on November 15, 2018 ยท (Permalink)
Btw, for a newbie intro that's short and sweet, pick up "Introduction to the theory of computation" by Michael Sipser.
CLaptopC ยท 3 points ยท Posted at 08:31:22 on November 24, 2018 ยท (Permalink)
To expand on /u/Talbooth, /u/NoNameRequiredxD, You can approximate things and get close enough without having to go as many digits. Taylor Series expansion, is what most calculators are doing.
blooespook ยท 5 points ยท Posted at 18:42:53 on November 14, 2018 ยท (Permalink)
At the very least, if there's one thing every programmer should (but they usually don't) always do is optimize his/her code so that it runs as fast as possible and requires as little resources as possible. This is a math problem and you need to know calculus for that (and it's not just the calculus you learn in highschool, it's a lot more complicated). Now of course, you can still learn all about a programming language without ever using "advanced" math and learn just what you should avoid in general with a basic introduction to big O, but you're probably never gonna be able to fully optimize your code. Also, if you want to do anything, other than a mobile application, a website, a videogame or some basic IoT, you're probably gonna need math (the level of complexity of things escalates pretty quickly).
InterBore ยท 11 points ยท Posted at 14:29:48 on November 14, 2018 ยท (Permalink)
Twitch and Youtube, but mostly Twitch, are so heavy to run when playing 1080p 60 fps while VLC or mpv have no difficulties playing 4K 60 fps. Why are they so different?
Sosseres ยท 12 points ยท Posted at 16:59:57 on November 14, 2018 ยท (Permalink)
Probably since one can use your CPU and GPU features without a browser blocking access to stop viruses and other malware.
Gangster301 ยท 8 points ยท Posted at 14:37:09 on November 14, 2018 ยท (Permalink)
You can use a program like streamlink to watch any online video or live stream in vlc or mpc-hc.
Helpmetoo ยท 2 points ยท Posted at 18:14:00 on November 14, 2018 ยท (Permalink)
Wow, that seemed so promising. I can't view 8k60 videos on my pc and thought maybe I could watch it without the browser overhead, but it turns out that streamlink is incapable of the only thing that would make it useful to me.
Also, I used someone else's pre-compiled version of it because it's one of those programs that says "just write "pip install program" and it'll work!". Every instance of my using a program telling me that ends up with me having to ruin my anus by forcing my head into it repeatedly to work out which obscure library whoever made it decided to use will solve a non-descriptive error that happens when I try to do literally the one thing the program is supposed to do. This is of course after typing 17 different, strange, and usually barely documented commands into a command line that could have just been one button and a settings menu.
ComputerMystic ยท 0 points ยท Posted at 00:00:27 on November 15, 2018 ยท (Permalink)
Bruh, I just typed
sudo apt install streamlinkto install it, and thenstreamlink twitch.tv/whoever bestto watch whoever's stream.Did you not check the little "how to install for Windows" link below the
pipcommand?Because I remember it being very easy to use on Windows as well, I recorded the better part of E3 using it at one point to watch later.
MaximooseMine ยท 11 points ยท Posted at 15:12:21 on November 14, 2018 ยท (Permalink)
This is the thing I hate the most about modern day software: bloated websites.
mallardtheduck ยท 73 points ยท Posted at 12:08:44 on November 14, 2018 ยท (Permalink)
128KB of RAM is firmly 1980s territory. Sure, some 80s designs were still being manufactured in the early 90s, but they weren't running anything with fully polygonal texture-mapped graphics (at least not outside some very limited examples in the demoscene).
If you're going to make memes citing history, at least get the history correct...
Sasakura ยท 73 points ยท Posted at 12:33:51 on November 14, 2018 ยท (Permalink)
The image in the background appears to be of the Sony/Nintendo which would indicate it's a SNES and boasting a 3.58Mhz CPU and 128kb of general purpose RAM.
Introduced in 1990.
mallardtheduck ยท 32 points ยท Posted at 12:53:40 on November 14, 2018 ยท (Permalink)
And the best 3D graphics the SNES managed were mostly flat-shaded polygons with the help of an additional accelerator chip and extra RAM on the cartridge... Pretty sure that image is just being used as a stock photo of some circuitry.
The Sega Saturn and the Playstation (both with 2MB of general-purpose RAM) were the first (mainstream) consoles to have passable 3D capabilities.
In the PC world, you're looking at roughly a 50Mhz 80486 with 8MB RAM (~1995) as a minimum spec for decent-for-the-time 3D.
[deleted] ยท 10 points ยท Posted at 13:24:36 on November 14, 2018 ยท (Permalink)
[deleted]
x3avier ยท -4 points ยท Posted at 13:31:35 on November 14, 2018 ยท (Permalink)
Doesn't matter that it wasn't 3D, it was a great game. Played it again recently and forgot how hard it was. Completed the whole game back in the day and surprised how much of the maps I still remember.
bloqs ยท 3 points ยท Posted at 15:08:20 on November 14, 2018 ยท (Permalink)
this comment is both idiotic and oddly narcissist
TheNessLink ยท 1 points ยท Posted at 18:48:06 on November 14, 2018 ยท (Permalink)
It's not either of those things but go off I guess
bloqs ยท 2 points ยท Posted at 18:59:03 on November 14, 2018 ยท (Permalink)
on review that was harsh
rndrn ยท 3 points ยท Posted at 12:58:00 on November 14, 2018 ยท (Permalink)
Although fully polygonal is a bit of a stretch for SNES games, as the polygon count was in the hundred, and the 3D coprocessor had twice the ram of the snes itself.
Still impressive of course.
lleti ยท 2 points ยท Posted at 16:15:37 on November 14, 2018 ยท (Permalink)
What you're seeing on that is the sound chip for the SNES.
The SNES itself was not capable of texture-mapped polygonal 3D, save for when it's being rendered through the SuperFX chip inboard a cartridge. When run through the SuperFX chip, this afforded a 21mhz clock speed, alongside additional pin connectors to expand both ROM, and RAM addresses if made available. Even then though, flat-shaded polygons were generally used, rather than anything that's texture mapped.
This was made available in 1993 with Star Fox, but it wasn't until the second revision in 1995 which saw the SuperFX chip actually be able to reach 21mhz clock speeds. In prior releases, an internal clock divider caused it to be halved to 10.5 or so.
As a fun fact though, the SuperFX chip temporarily became the world's fastest selling RISC processor, due to it being contained within the Starfox cart.
fb39ca4 ยท 1 points ยท Posted at 20:30:26 on November 14, 2018 ยท (Permalink)
I think this is referring to the SNES, which had 128 KiB RAM and cartridges around 1 MB. For polygonal graphics, the Super FX chip was used which ran at about 20 MHz.
[deleted] ยท 9 points ยท Posted at 15:01:36 on November 14, 2018 ยท (Permalink)
I work in the IT industry, my job mostly deals with specing out hardware and systems.
One thing I've noticed: we are able to get more space into smaller packages (i.e. 5 TB 2.5 inch SSD) but there has been no progress in trying to make the actual data more efficient in terms of size. It's a little ass backwards.
anselme16 ยท 63 points ยท Posted at 11:48:19 on November 14, 2018 ยท (Permalink)
Relevant : http://tonsky.me/blog/disenchantment/
[1][1]
Software disenchantment
Cypher121 ยท 138 points ยท Posted at 13:37:45 on November 14, 2018 ยท (Permalink)
Use fucking notepad then. "Modern txt editors" need to compare what you're typing to the indices of your entire 10-100k line project every time you enter a letter, find the option that best matches the current context (which it needs to analyze as well) and suggest it to you, and if they don't do that, idiots like that will complain that autocomplete is slow instead.
[deleted] ยท 42 points ยท Posted at 14:11:16 on November 14, 2018 ยท (Permalink)
[deleted]
Akaino ยท 32 points ยท Posted at 14:21:17 on November 14, 2018 ยท (Permalink)
Upvote for Sublime>Atom.
armin22222 ยท 3 points ยท Posted at 14:15:41 on November 14, 2018 ยท (Permalink)
Sorry not familiar with either but which is the better performing one?
Titanlegions ยท 10 points ยท Posted at 14:22:39 on November 14, 2018 ยท (Permalink)
Sublime by a long way
Cryosia ยท 1 points ยท Posted at 17:04:03 on November 14, 2018 ยท (Permalink)
Does it have a million packages like Atom? I'm new to programming and was recommended Atom.
Titanlegions ยท 2 points ยท Posted at 17:09:28 on November 14, 2018 ยท (Permalink)
Yeah itโs widely adopted and there are packages for everything. It isnโt the most beginner friendly thing in the world (the best way to install packages is first to install a package manger for example) but itโs not too bad with some googling. And in use I think itโs fantastic.
There is nothing wrong with Atom for most uses though, and if the person who recommended it to you is more likely to give you help when using it, then you might prefer it for that reason.
Molozonide ยท 31 points ยท Posted at 13:43:19 on November 14, 2018 ยท (Permalink)
Or use gVim or XEmacs. They still exist.
justanotherkenny ยท 2 points ยท Posted at 21:07:10 on November 14, 2018 ยท (Permalink)
Vim will be nice once they add an option to exit.
Cypher121 ยท 2 points ยท Posted at 15:37:39 on November 14, 2018 ยท (Permalink)
Fair enough, but I'm not sure how far their capabilities extend. The golden standard for me right now are the IntelliJ IDEs. A rather commonly occurring subtle feature is their ability to alter suggestions based on types in the context. So if I type something like
new FileReader(someObject., it's gonna first suggest methods of that object that return File or String, since those are the most contextually applicable options. I'm not sure how far those vim/emacs plugins can go on code analysis is what I'm saying.Avamander ยท 13 points ยท Posted at 14:57:46 on November 14, 2018 ยท (Permalink)
"Use something that will crash when you try to open a 100000 line file"
crashspringfield ยท 7 points ยท Posted at 15:26:31 on November 14, 2018 ยท (Permalink)
or accidentally click the node_modules directory
D_Legare ยท 10 points ยท Posted at 14:24:33 on November 14, 2018 ยท (Permalink)
That would be the freshman year programming project version. They typically use tries:
https://www.cs.bu.edu/teaching/c/tree/trie/
Cypher121 ยท 3 points ยท Posted at 15:40:32 on November 14, 2018 ยท (Permalink)
Yeah, fair, it's not just a list of all functions that they iterate on, but my point was it's not just "draw a character, yay you have a text editor".
Also, as I mentioned in another comment, it doesn't just autocomplete the word; many IDEs are also aware of the context you're typing in, so they suggest functions/variables with best-fitting types, names, etc., so it's very likely not just "use this data structure and it's done" either.
escozzia ยท 6 points ยท Posted at 15:22:16 on November 14, 2018 ยท (Permalink)
I mean vim with deoplete handles this pretty well and performs infinitely better than opening up an ide, so it's not like autocomplete is the reason so many editors are shit
_Ashleigh ยท 2 points ยท Posted at 17:51:29 on November 14, 2018 ยท (Permalink)
The thing is, that doesn't need to be done synchronously, it can do that scanning and analyzing in the background and show the results when they become available...
Xelynega ยท 2 points ยท Posted at 20:03:04 on November 14, 2018 ยท (Permalink)
You know that the older text editors could do the same thing too, right? Of course it would be slower than they are without autocomplete plugins, but they're still more memory efficient and faster than their modern electron counterparts.
Sasakura ยท 33 points ยท Posted at 12:42:50 on November 14, 2018 ยท (Permalink)
You'll get disenchanted if you only ever look at the positives of the past and negatives of today.
SilentSin26 ยท 78 points ยท Posted at 12:38:45 on November 14, 2018 ยท (Permalink)
I agree with the general point, but it's undermined a bit when he says things like:
No additional functions?
They don't look different?
WTF?
... now he's complaining about dropping legacy features.
...
jamany ยท 94 points ยท Posted at 13:23:50 on November 14, 2018 ยท (Permalink)
I genuinely can't think of any additional functions my phone has gained in the last 3 years, but now it hardly works.
NotJustSomebody ยท 26 points ยท Posted at 13:51:50 on November 14, 2018 ยท (Permalink)
It's all that google shit that's running in the backround which wasn't as prominent 3 years ago
DarkJarris ยท 10 points ยท Posted at 15:32:48 on November 14, 2018 ยท (Permalink)
yet what does it actually do for us? i mean... we can still get apps from the play store, same as 3 years ago.
exploding_cat_wizard ยท 2 points ยท Posted at 17:43:43 on November 14, 2018 ยท (Permalink)
They already said, google. It's tracking and creating profiles advertisers are sold access to.
MrGreggle ยท 4 points ยท Posted at 15:17:44 on November 14, 2018 ยท (Permalink)
Phones in general haven't improved aside from greater specs since the Droid 4.
metalliska ยท 1 points ยท Posted at 17:09:14 on November 14, 2018 ยท (Permalink)
Droid 2 Global baby
Frekavichk ยท -1 points ยท Posted at 18:14:39 on November 14, 2018 ยท (Permalink)
Well the problem is you are updating it.
Updating pretty much anything now a days is really a bad idea.(phones, graphic drivers, operating systems)
D_Legare ยท 1 points ยท Posted at 18:00:17 on November 15, 2018 ยท (Permalink)
That's the point. The last 3 iOS versions added nothing of value to me yet now my phone struggles to open fucking iMessage sometimes.
lapishelper ยท 43 points ยท Posted at 13:30:06 on November 14, 2018 ยท (Permalink)
Can you give example of any useful features added to the essential Android apps in last few years? I can't think of any. And resources needed were increased dramatically. Heck I could use my old Android 2.1 device nowadays if I wanted and if it was supported (Android Market and YouTube no longer works, but it's only matter of supporting newer APIs).
The only app that is more resource heavy and it makes sense is web browser, because it needs to do more stuff and reder heavy websites.
RubenGM ยท 27 points ยท Posted at 14:38:27 on November 14, 2018 ยท (Permalink)
New stuff since Eclair that you could use for an app:
To this you could add everything in the Support library (AndroidX) or the Google Play Services, both adding functionality to an App and both continuously updated (and growing).
You can create an app that only shows a webview, with targetsdk and minsdk = 28, not add any kind of library at all and it would create a tiny APK. The problem comes when people are using old as fuck phones (your 2.1 example is from eight years ago) and expect the app to 1) install, 2) look fine and 3) work just like on the latest version of Android.
Also, apps don't magically send data to Google. You would have to add that funcionality yourself.
jamany ยท 5 points ยท Posted at 15:16:09 on November 14, 2018 ยท (Permalink)
It's amazing that people are being paid good money to do all that stuff.
troglo-dyke ยท 35 points ยท Posted at 14:20:38 on November 14, 2018 ยท (Permalink)
That's just the changes for Android 9
If you're using an old device there will be all sorts of shortcuts that are being taken to make the experience smooth, but that doesn't mean it's equivalent
jamany ยท 1 points ยท Posted at 15:14:31 on November 14, 2018 ยท (Permalink)
I'm grateful for these every day. Per App SELinux Sandboxes have changed my life. All it cost was the use of my phone.
TigreDeLosLlanos ยท 6 points ยท Posted at 14:07:11 on November 14, 2018 ยท (Permalink)
What are you talking about? They now have to get your data and send it to lord Google every second. And not talk about those that have to know your location and open the microphone, that's extra analysis that it has to do. Those are huge improvements in apps <features>
[deleted] ยท 6 points ยท Posted at 14:11:41 on November 14, 2018 ยท (Permalink)
That doesn't explain why the app is bloating. If anything it should be slimming since the Dark Lord Google is going all the heavy lifting remotely.
SilentSin26 ยท 3 points ยท Posted at 14:51:35 on November 14, 2018 ยท (Permalink)
Even if you move the goal posts from "No additional functions at all" to "no features I personally consider useful in a limited set of apps" I can still think of a few off the top of my head. I like the way the Inbox app lets you mark emails as done and hides them from the main email list. And the phone app automatically showing "suspected spam caller" based on the incoming phone number is definitely useful.
As I said, I agree with the general premise, it's just some of the specific points he made were far too extreme absolutes. Claiming they don't look different is 100% pants on head retarded.
Avamander ยท 5 points ยท Posted at 14:58:40 on November 14, 2018 ยท (Permalink)
As a dev I know a shitload of things you can not do on old shit Android. Android has gotten a lot of new features.
Dr_Azrael_Tod ยท 13 points ยท Posted at 13:21:24 on November 14, 2018 ยท (Permalink)*
So what new functions do you expect to have that much of an performance impact?
fun thing if you go around and compare, say typical Java-stuff with golang-projects. One of those platforms made an effort to get compile times down.
And no, it's not even a problem of the java-things beeing slow - they "do so much things" like using half a dozen XLM-dialects to generate a single resulting file that is later thrown away because it'd only show warnings in the IDE.
People just don't care about performance.
SilentSin26 ยท 3 points ยท Posted at 14:59:55 on November 14, 2018 ยท (Permalink)
As I said, I agree with the general premise, just not with the claim that there are No additional functions.
ElCthuluIncognito ยท -7 points ยท Posted at 13:38:11 on November 14, 2018 ยท (Permalink)
Why should they?
larsdragl ยท 14 points ยท Posted at 13:47:30 on November 14, 2018 ยท (Permalink)
because shit laggs
H_Psi ยท 1 points ยท Posted at 14:54:58 on November 14, 2018 ยท (Permalink)
Because you shouldn't need a $700 phone just to load a calculator app.
ElCthuluIncognito ยท 0 points ยท Posted at 15:01:47 on November 14, 2018 ยท (Permalink)
Is that really what's happening to you? Honestly?
metalliska ยท 2 points ยท Posted at 17:08:56 on November 14, 2018 ยท (Permalink)
correct. Google play wants to update its fucking map that hasn't changed.
YaztromoX ยท 2 points ยท Posted at 00:53:39 on November 15, 2018 ยท (Permalink)
The one that got me was the complaint about requiring user intervention to resolve a synchronization conflict.
This is hardly new -- it's been a core issue with optimistic synchronization conflicts since the beginning of time. You could run into problems like this back in the 90's with a PalmPilot and HotSync if you made conflicting modifications for a single record on both the handheld and the PC. As the computer has no semantic knowledge of the data fields (nor any real way to determine which changes are correct), the only way to resolve the conflict is to ask the user.
It's either that or implement a pessimistic system that involves reservations and locking to ensure only serial modifications to data. I'm not sure how you'd enforce something like this in a decentralized system like file cloud sync, and I doubt he'd be terribly impressed with how annoying such a system would be ("Sorry, you can't edit this file because there are unsynchronized modifications on the server that need to be applied first"; which requires network access, otherwise "Sorry, you can't edit this file because you're not online for us to confirm you have the ability to claim the file lock").
[deleted] ยท 1 points ยท Posted at 14:35:20 on November 14, 2018 ยท (Permalink)*
[deleted]
SilentSin26 ยท 1 points ยท Posted at 14:44:10 on November 14, 2018 ยท (Permalink)
I'm still on my Nexus 5. Best phone ever.
AlwaysHopelesslyLost ยท -5 points ยท Posted at 13:29:09 on November 14, 2018 ยท (Permalink)
So when phones started dropping the aux port I was one of the ardent naysayers.
But honestly, they are dropping a legacy feature. It is a useful feature but so were 8 track players in cars before cassets, and cassets before CDs, and CDs before streaming. In hindsight I was being just like my grandma. Afraid of change.
H_Psi ยท 4 points ยท Posted at 14:56:44 on November 14, 2018 ยท (Permalink)
Except cassettes and CDs were objectively better: they had more storage capacity, were smaller, and had better sound quality.
Going to bluetooth headphones just makes it so there's one more device you have to remember to charge, and God help you if you want to play something on a device without bluetooth (when everything already has Aux). It barely even changes the form factor of the phone.
SilentSin26 ยท 2 points ยท Posted at 14:58:10 on November 14, 2018 ยท (Permalink)
Dropping 32 bit support is fine because 64 bit is basically a direct upgrade.
The same can not be said about dropping the aux port. I've had Bluetooth headphones before and even if you ignore the cost, audio quality, latency, connection issues, etc. it's just a hassle having yet another device to charge. That alone is enough for me to be using wires again with my Bluetooth ones gathering dust in a drawer.
Cola_and_Cigarettes ยท 2 points ยท Posted at 15:04:53 on November 14, 2018 ยท (Permalink)
Bluetooth is objectively worse quality now tho
IceSentry ยท 1 points ยท Posted at 16:44:31 on November 14, 2018 ยท (Permalink)
The aux port is not a legacy feature. Having to charge your headphones every other day is not the future. Bluetooth and aux port can coexist in a phone and it costs next to nothing for the manufacturers to add. The vast majority of good headphones still use the aux port because it's the best we have in terms of latency and overall performance. Bluetooth is still far from perfect.
Aleyla ยท 15 points ยท Posted at 15:33:18 on November 14, 2018 ยท (Permalink)
Optimization isnโt just a lost art - itโs a word that is no longer in the vocabulary of most programmers.
livrem ยท 4 points ยท Posted at 21:09:07 on November 14, 2018 ยท (Permalink)
But it is. Almost everyone seem to be able to say "premature optimization is the root of all evil". As an excuse to not optimize anything ever. "Hey, hardware is cheap, developer time is expensive!".
CLaptopC ยท 1 points ยท Posted at 08:38:07 on November 24, 2018 ยท (Permalink)
I really want to learn how to Optimize.
arnavb11 ยท 21 points ยท Posted at 11:42:37 on November 14, 2018 ยท (Permalink)
Ha! Reminds me of this tweet.
Armond436 ยท 7 points ยท Posted at 15:32:37 on November 14, 2018 ยท (Permalink)
I came here to laugh, not to cry.
Oppai420 ยท 6 points ยท Posted at 15:56:31 on November 14, 2018 ยท (Permalink)*
WELCOME TO ELECTRON, FOLKS.
Edit: I use Signal and Discord. Both use Electron. Discord is not awful. Signal is abysmal. It takes forever to load. "Loading Messages". Fuck this guy.
psycho_driver ยท 5 points ยท Posted at 14:55:51 on November 14, 2018 ยท (Permalink)
All thanks to javascript and indian engineering prowess.
digliciousdoggy ยท 6 points ยท Posted at 15:46:35 on November 14, 2018 ยท (Permalink)
Did some work for a guy who's mantra was, "Servers are cheaper than developers so write big queries that are readable instead of efficient"
Obviously that dude has never ran a high traffic site.
SeriouslyGetOverIt ยท 5 points ยท Posted at 15:49:44 on November 14, 2018 ยท (Permalink)
2018: this PDF reader needs half a gigabyte storage space
grizlisid2 ยท 5 points ยท Posted at 15:54:59 on November 14, 2018 ยท (Permalink)
Just add a couple JS libruaries. It will help
Zmodem ยท 6 points ยท Posted at 17:52:06 on November 14, 2018 ยท (Permalink)
The crappy part is that design direction and logic has taken a backseat to simplistic implementation (I'm looking at you, fucking WiX!). You've got "designers" now that are making money quickly because they load up a new site in WiX, drag and drop whatever, wherever, manually adjust each and every element's size, and add fadeIn/Out/Up/Down/Parallax animations to every goddamn thing. What happens when you have all this crap on a dedicated front-end/framework that supports this ease of implementation? A shit ton of unnecessary libraries are loaded to compensate for one thing. And, the more easily something can be implemented by someone with a lack of fundamental coding knowledge, the crappier the user experience.
The biggest culprit to crap page loads are landing pages that support responsive design. But, instead of hard coding simple responsive collapses, they use Wordpress, or another framework (Bootstrap). These aren't a bad idea when you're in a hurry, or can't afford to hire a developer. Most businesses don't even care, as long as the site runs. But, anyone who takes that shit seriously knows that responsive designs, especially on just a simple landing page/one-page-site, are accomplished with relative ease (um, flex?).
The ease of use shit has made competitively edging out a bid more difficult. Out of 20 clients, only one or two actually give a fuck about site performance. Johnny McWebTools over there can outbid a project by a lot, and deliver in a (possibly) shorter window because he's using drag & drop with WiX and firing off a site in less than a week. Running identical sites through Google Page Analytics results in significant, unparalleled performance advantages with a hard coded site. Selling that point is where things get complicated and tricky. But, it is the client's money after all, and I tell them that they are more than welcome to go with the cheaper, faster option, but if they ever need a better option and solution to their problem, they are more than welcome to contact me in the future. Never burn the bridges, always leave the hand open for shaking.
KaiSimple ยท 6 points ยท Posted at 17:55:55 on November 14, 2018 ยท (Permalink)
I've always felt it was ass backwards.
Coding should be more efficient vs upgrading the hardware to keep up with inefficient code.
DoWhileGeek ยท 5 points ยท Posted at 18:25:28 on November 14, 2018 ยท (Permalink)
Those solder joints on c12 & c13 are downright criminal.
muttonwow ยท 11 points ยท Posted at 14:17:30 on November 14, 2018 ยท (Permalink)
Yup, the amount of bloat on Microsoft office is disgusting. One of my big reasons for using LaTeX.
regretdeletingthat ยท 4 points ยท Posted at 19:02:04 on November 14, 2018 ยท (Permalink)
Itโs bloat to you, but every piece of it is a function that someone somewhere relies on to do their job. Itโs the cost of trying to be all things to all people.
JayInslee2020 ยท 1 points ยท Posted at 21:04:10 on November 14, 2018 ยท (Permalink)
Nah, it's just sloppy programming.
Manlet ยท 3 points ยท Posted at 17:29:19 on November 14, 2018 ยท (Permalink)
What is that
banter_claus_69 ยท 8 points ยท Posted at 18:19:21 on November 14, 2018 ยท (Permalink)
I'd describe it as HTML for text documents. It's a markup language, which handles maths formulae and symbols really really nicely. You have to use all the tags yourself though so it's definitely less simple than opening Word and typing away. It does give you a lot of control over the document, but can be frustrating when you spend a while figuring out how to format how you want to when a word processor could do it in two clicks
That being said, all you need is a text editor and compiler to write in LaTeX, which makes it super lightweight compared to anything other than plain text writing.
themixedupstuff ยท 4 points ยท Posted at 19:03:38 on November 14, 2018 ยท (Permalink)
And git-able
muttonwow ยท 7 points ยท Posted at 18:07:35 on November 14, 2018 ยท (Permalink)
It's basically a text editor but you code your document instead of just typing characters. Incredibly useful for writing equations and it has quick shorthand for almost any symbol you can think of.
livrem ยท 1 points ยท Posted at 21:16:11 on November 14, 2018 ยท (Permalink)
I like LaTeX and prefer it over something like Word, but it is not particularly lightweight or fast? Compared to Office maybe.
muttonwow ยท 2 points ยท Posted at 21:21:12 on November 14, 2018 ยท (Permalink)
Well yeah compared to Office it definitely is. I use it for equations where it is unbelievably faster than Word.
I also have all my stuff hosted on a website for Overleaf that compiles it all online so you don't need an install. I have to use a few devices to access all my stuff and in college I don't need to keep anything confidential, so it's very handy to just log on anywhere and write through a browser.
DeathByChainsaw ยท 1 points ยท Posted at 22:09:43 on November 14, 2018 ยท (Permalink)
LaTeX is supported by office!
Varelze ยท 4 points ยท Posted at 13:23:56 on November 14, 2018 ยท (Permalink)
https://youtu.be/kZRE7HIO3vk
โ
SkrittleRL ยท 5 points ยท Posted at 14:09:50 on November 14, 2018 ยท (Permalink)
Rockstar: "Hold my beer."
m3ltph4ce ยท 4 points ยท Posted at 14:11:19 on November 14, 2018 ยท (Permalink)
I thought it has to do with the ratio of the cost to produce code vs the cost of a MB of RAM, or something
dizam ยท 5 points ยท Posted at 14:13:52 on November 14, 2018 ยท (Permalink)
Original IBM PC plays 30FPS color video with sound
https://youtu.be/H1p1im_2uf4
STEPaudio ยท 5 points ยท Posted at 16:14:14 on November 14, 2018 ยท (Permalink)
If you are feeling nostalgic - try programming in embedded C, or better yet, ASM. I find it much more relaxing than javascript or any other higher level langauge.
livrem ยท 1 points ยท Posted at 21:46:44 on November 14, 2018 ยท (Permalink)
See /r/retrogamedev if you can not find any other good reason to do it.
Gigabab3 ยท 4 points ยท Posted at 16:23:08 on November 14, 2018 ยท (Permalink)
Also "I'm a VP here so I need a octa-core i7, 32GB RAM and a 1TB SSD for email, word and solitare"
Blizardio ยท 6 points ยท Posted at 18:00:32 on November 14, 2018 ยท (Permalink)
lookin at you google chrome
NoradIV ยท 21 points ยท Posted at 13:37:20 on November 14, 2018 ยท (Permalink)
Why is forza 7 100GB? Forza 4 did fit in a single dvd.
Wat?
Why adobe reader lag on a quad core when it ran fine on my pentium 3 back in the days?
Sasakura ยท 53 points ยท Posted at 13:59:18 on November 14, 2018 ยท (Permalink)
Textures don't compress well. More things are fully textured and those textures are saved at higher resolutions. The vast majority of game size is taken up by textures.
Angelin01 ยท 22 points ยท Posted at 14:34:05 on November 14, 2018 ยท (Permalink)
And audio, don't forget the bloody audio, that takes up quite a big chunk too.
AllOfYouAreFake ยท 9 points ยท Posted at 15:04:51 on November 14, 2018 ยท (Permalink)
Lots of torrents have separate links for each language for this very reason. A lot smaller when you only have one language.
preseto ยท 3 points ยท Posted at 14:35:27 on November 14, 2018 ยท (Permalink)
What can we infer about our universe from this?
strangeglyph ยท 3 points ยท Posted at 15:16:35 on November 14, 2018 ยท (Permalink)
Raytracing is the way to go?
Sasakura ยท 7 points ยท Posted at 15:27:31 on November 14, 2018 ยท (Permalink)
Raytracing still needs textures, you want procedural generation.
StudentHwale ยท 1 points ยท Posted at 20:06:21 on November 14, 2018 ยท (Permalink)
Well tell us?
preseto ยท 3 points ยท Posted at 20:19:38 on November 14, 2018 ยท (Permalink)
Ever expanding dark energy which makes up most of the universe is textures? Idk.
mindbleach ยท 4 points ยท Posted at 15:53:58 on November 14, 2018 ยท (Permalink)
Textures compress fantastically. Lossy compression of can look transparent if you're careful. The highest-quality JPGs you see online are still an order of magnitude smaller than uncompressed RGB.
And why doesn't anyone use procedural generation? You don't need a gigabyte for asphalt. You just don't. It's a noisy pattern that's trivial to generate in endless subtle variety at arbitrary resolution. Red Dead Redemption 2 is the worst for this, because it's all wood and snow and dirt. The textures for everything besides people should fit on a floppy disk.
Sunius ยท 3 points ยท Posted at 18:36:02 on November 14, 2018 ยท (Permalink)
JPEG is a horrible, horrible format for textures, both performance and quality wise. Textures usually use BC6H/BC7.
mindbleach ยท 1 points ยท Posted at 19:25:03 on November 14, 2018 ยท (Permalink)
JPEG is not a texture format, period. I'm using it as a point of reference: even this creaky old standard whose artifacts are familiar to all can manage 10:1 compression with good results.
We are ridiculously good at compressing textures. Some formats go below one bit per pixel. Compression and pixel quality are not at fault for a fucking car game spanning two Blu-Ray discs. The cars could be untextured and still look jawdroppingly good thanks to metallic and clear-coat shaders. The road is an ideal case for noise textures, detail textures, fractal textures, or any other clever idea from twenty years ago. Everything else is supposed to blow past you at 90 MPH.
Dobe2 ยท 1 points ยท Posted at 05:25:51 on November 15, 2018 ยท (Permalink)
Do you know just how slow the processors RDR2 had run on are?
Procedurally generating that much content, at such a high resolution, would be incredibly difficult to do on the current gen consoles CPUs. And while the game is running? 100% impossible.
My pc has a far more powerful processor than the current gen consoles, yet when I use Substance Designer to generate even simple 2-4k textures it takes a few seconds to finish.
Now try doing that at the same time a highly demanding game is running on a CPU that's far weaker.
mindbleach ยท 0 points ยท Posted at 05:37:01 on November 15, 2018 ยท (Permalink)
If it's happening on the processor then somebody fucked up.
Substance Designer is an offline authoring tool. If you measured video encoding speeds based on Sony Vegas then you'd conclude live streaming is impossible.
And even if each texture took a second to finish, at the highest resolution - how is that different from taking a second to retrieve the texture from disk? Doom 2016 has thirty gigs of textures and you still get to see the potato-quality versions when you enter a room.
indigo121 ยท 19 points ยท Posted at 14:13:05 on November 14, 2018 ยท (Permalink)
Games have skyrocketed because they mostly don't compress the audio files anymore. Not compressing the audio means not having to spend processing power decompressing it aat runtime which h meansore processing power available for the graphics and gameplay.
[deleted] ยท 17 points ยท Posted at 14:40:00 on November 14, 2018 ยท (Permalink)*
[deleted]
brainstorm42 ยท 6 points ยท Posted at 18:04:18 on November 14, 2018 ยท (Permalink)
And I think audio decompression can be done in hardware by the sound processor?
H_Psi ยท 9 points ยท Posted at 14:58:56 on November 14, 2018 ยท (Permalink)
That seems like such a micro-optimization. Do you have a source?
Henrarzz ยท 1 points ยท Posted at 16:04:57 on November 14, 2018 ยท (Permalink)
Respawn (Titanfall devs) said that when their game was released - thatโs one example.
H_Psi ยท 0 points ยท Posted at 16:13:08 on November 14, 2018 ยท (Permalink)
Stating something exists is not a source. Is there some interview or blogpost where they mentioned this?
Henrarzz ยท 4 points ยท Posted at 16:15:44 on November 14, 2018 ยท (Permalink)
Here you go: https://www.eurogamer.net/articles/digitalfoundry-2014-titanfall-tech-interview
H_Psi ยท 2 points ยท Posted at 16:16:50 on November 14, 2018 ยท (Permalink)
Thanks!
NoradIV ยท 2 points ยท Posted at 17:07:59 on November 14, 2018 ยท (Permalink)
Audio files? 100gb? I don't think so. Also, with hardware acceleration, compression takes next to no ressources. Unless you mean putting an .mp3 into a .zip, which is pointless.
indigo121 ยท 1 points ยท Posted at 17:16:02 on November 14, 2018 ยท (Permalink)
In fairness, I did first hear about this with Titanfall, and have assumed it extends to other games as well, which is very possibly incorrect, but here's a quote: โ[Respawn] made the choice toย store them on disk uncompressedย because low-end computers couldnโt decompress that audio on the fly without killing the framerate,โ Barth explained. โThis wasnโt a problem [on consoles] because they tend to have dedicated hardware for decompressing audio.โ
https://www.google.com/amp/s/www.digitaltrends.com/gaming/why-are-video-games-so-big/amp/
The other big culprit is of course textures. But saying "yeah we use higher resolution art so it takes more space" isn't really as interesting a factoid as "developers conciously made the choice to trade space for performance so that lower end machines can still play the game"
NoradIV ยท 1 points ยท Posted at 17:33:54 on November 14, 2018 ยท (Permalink)
Forza 7 stated that the game is big because of 4k textures.
I am fairly certain computers capable of running 4k should be capable of decompressing and cashing big textures before the race start.
swiftpants ยท 3 points ยท Posted at 16:13:33 on November 14, 2018 ยท (Permalink)
No one talks about this. Adobe PDF viewer is laggy AF! Every time I open a PDF I sit in amazement that it won't scroll at first. Gotta wait... For what? re-render the text it just rendered?
NoradIV ยท 4 points ยท Posted at 17:06:54 on November 14, 2018 ยท (Permalink)
I am seriously curious how adobe manage to make product so unstable and slow. Photoshop takes like over 2gb, and open sources alternatives usually take less than 80mb.
Its baffling.
obi1kenobi1 ยท 2 points ยท Posted at 17:09:38 on November 14, 2018 ยท (Permalink)
Just to nitpick, Forza 4 took up two DVDs, there was an install disc and a game disc (and Forza 4 was tiny compared to Gran Turismo 4 which was 20GB, and even that wasn't considered very big for a PS3 game).
jakejakejake86 ยท 1 points ยท Posted at 02:26:43 on November 15, 2018 ยท (Permalink)
Large high quality textures , way more sound files and huge meshes.
giantJim ยท 1 points ยท Posted at 14:23:49 on November 14, 2018 ยท (Permalink)
Friend of mine recently bought a game for his Switch. Had to download 55gb of stuf... wat
mindbleach ยท 8 points ยท Posted at 16:29:24 on November 14, 2018 ยท (Permalink)
VR is a joke because of this. Back in the 90s when people did 3DOF sensing with a glorified keychain compass, any integrated GPU from 2008 would've blown their fucking minds. They would've made that magical future technology crank out a thousand frames per second - in glorious flat-shaded 640x480. Now we have people doubt that a 1080 Ti is strong enough to hit 90 FPS because they can't imagine life before physically-based rendering with 4K textures.
SkewRadial ยท 4 points ยท Posted at 13:32:54 on November 14, 2018 ยท (Permalink)
True story
[deleted] ยท 4 points ยท Posted at 14:04:04 on November 14, 2018 ยท (Permalink)
Tbh, I've never understood this.
preseto ยท 5 points ยท Posted at 14:38:32 on November 14, 2018 ยท (Permalink)
The software requirements grow at Moore's law squared.
Dravarden ยท 6 points ยท Posted at 16:40:54 on November 14, 2018 ยท (Permalink)
csgo in a nutshell
processor with the highest IPC on earth overclocked to shit and back and a GPU used to calculate billions of things per second in a amazing detail and huge resolutions? lmao 40 fps in a smoke sucker
Vortico ยท 3 points ยท Posted at 14:17:02 on November 14, 2018 ยท (Permalink)
FWIW, the result of this difference is that software is a lot cheaper to develop, which of course increases the competition of developing software...
livrem ยท 1 points ยท Posted at 21:26:37 on November 14, 2018 ยท (Permalink)
Citation needed. I think the gains in productivity seem pretty insignificant really? Much of that probably comes from using large teams of cheaper developers though, rather than smaller expensive teams?
Setup times can definitely be short now, but time to actually complete anything non-trivial and fix weird bugs and design your logic seems pretty much as hard as always, if not harder with all the dependencies and layers of abstractions obfuscsting things.
Vortico ยท 2 points ยท Posted at 21:45:02 on November 14, 2018 ยท (Permalink)
From experience, Ruby on Rails completely shifted the backend industry. Prior to RoR-like frameworks, a pizza franchise would hire a company at $250k to develop an online ordering system in a mess of Perl scripts and C CGI. After the RoR epoch, everyone uses high level and really well tested Node packages for e-commerce that is hard to find bidders at $12k. The code is easier to develop now, with much fewer bugs, and solves even more problems properly, like proper user authentication instead of home-grown databases. But because of the force of the market, easier things drop in salary as more competitors can complete the same task in two months. The reason can be summarized by micro-packages written in 2016 from this era's explosion of good programming habits, rather than monolithic systems from 1999.
livrem ยท 1 points ยท Posted at 22:26:20 on November 14, 2018 ยท (Permalink)
OK, but then you are essentially taking software development out of the picture, and I must admit I was not thinking of that kind of work. Managed to stay away from that kind of web work so far.
But for general programming, actually implementing some algorithm to solve some problem I think the ease of doing that has scaled up miserably with the scale of our hardware. I have hardware a million time more powerful now than what I had when I wrote my first programs, but do not experience a million-time increase in productivity. Maybe x2 or x3 at most, but any serious problem is still going to require so much overhead in actually designing and figuring out what to do (not to mention all the meetings...) that the gains are barely noticeable over the noise level?
mwc501 ยท 3 points ยท Posted at 14:20:03 on November 14, 2018 ยท (Permalink)
In 1990 u should have at least 4 mb ram but u could survive with 640k just fine if u wanted 16 colors or more.
Silverwhite2 ยท 3 points ยท Posted at 14:39:37 on November 14, 2018 ยท (Permalink)
Have you seen mobile VR? Now thatโs optimization!
mindbleach ยท 3 points ยท Posted at 16:03:09 on November 14, 2018 ยท (Permalink)
That's right, with gigahertz multicore smartphones, we're almost hitting the framerates of Counter-Strike on a Pentium 3!
Pm_me_any_dragon ยท 3 points ยท Posted at 14:46:26 on November 14, 2018 ยท (Permalink)
I actually hate "smooth" scrolling. I want it to jump 3 lines per click.
Talbooth ยท 3 points ยท Posted at 18:42:33 on November 14, 2018 ยท (Permalink)
Or at least take it into consideration how far I want to scroll. If I made 45 click scroll, do the animation faster than if I made a 3 click scroll.
P.S.: some browsers still let you opt out of smooth scrolling, like vivaldi.
whitenoise89 ยท 3 points ยท Posted at 16:09:14 on November 14, 2018 ยท (Permalink)
Those old engineers did great for the time!
BiH-Kira ยท 3 points ยท Posted at 16:25:34 on November 14, 2018 ยท (Permalink)
The bottom image is new reddit. Shit looks awful and runs awful. The award for most incompetent redesign since the dawn of time goes to whoever designed that shit.
ThatThingAtThePlace ยท 3 points ยท Posted at 16:50:01 on November 14, 2018 ยท (Permalink)
Back in the day programmers were much more constrained by hardware, so great care was placed on efficiency and resource management. Nowadays optimization is an afterthought (if it's even a thought at all.)
lank3y ยท 3 points ยท Posted at 17:04:22 on November 14, 2018 ยท (Permalink)
Never have truer words been spoken. I can tell you that I have been in projects where middle management had a fit because I was working twenty hours to sort out a small inaccuracy in a computation subroutine. No one wants that! Just get it done good enough and ship it! I kid you not. I was told bluntly that calculations that are 98% or 99% accurate are just fine inside the depths of a finance organization. Ultimately add on fees and service fees would cover any possible losses long term so no one gives a damn about things being done "right" or "correct" or even with financial accuracy for interest rate computations.
ThatThingAtThePlace ยท 5 points ยท Posted at 18:06:16 on November 14, 2018 ยท (Permalink)
Yep, it's all about pushing a minimum viable product out the door then moving on to the next thing, management forgetting that that's a starting point, not an ending point.
mlewis03614 ยท 3 points ยท Posted at 16:53:28 on November 14, 2018 ยท (Permalink)
I wonder how much poor software development costs humanity in energy?
Steffi128 ยท 3 points ยท Posted at 16:55:02 on November 14, 2018 ยท (Permalink)
reddit laughs in new.reddit
Pet_robot ยท 3 points ยท Posted at 17:23:04 on November 14, 2018 ยท (Permalink)
My old PlayStation does itโs business with 3mb of ram and a 33 MHz processor. Crazy
AverageBubble ยท 3 points ยท Posted at 17:28:27 on November 14, 2018 ยท (Permalink)
Case in point: Fallout76's 20 year old graphics probably take 300 gigs of HD and all your ram. Same exact engine. Less game.
Honestly, at this point I'm assuming 40-50% of the game engine is just spyware. Go ahead and ask yourself if I was right in 20 years. :)
fapenabler ยท 3 points ยท Posted at 17:29:56 on November 14, 2018 ยท (Permalink)
We have gone from speed of code to speed of coding.
IAMINNOCENT1234 ยท 3 points ยท Posted at 17:40:00 on November 14, 2018 ยท (Permalink)
FUCKING SLACK
PeyOnReddit ยท 5 points ยท Posted at 15:27:39 on November 14, 2018 ยท (Permalink)
We have, overtime, lost the art of optimizing software.
Which is sad.
blueking13 ยท 7 points ยท Posted at 14:57:56 on November 14, 2018 ยท (Permalink)
Fuck people not working on optimization. I shouldn't need a cooling system to run overwatch on my laptop.
pDubb420 ยท -3 points ยท Posted at 15:40:10 on November 14, 2018 ยท (Permalink)
You donโt if you undervolt lol
blueking13 ยท 2 points ยท Posted at 16:45:53 on November 14, 2018 ยท (Permalink)
tried. cant do it on a laptop. getting a nice pc once I'm out of college and not traveling back and forth.
pDubb420 ยท 1 points ยท Posted at 21:36:40 on November 14, 2018 ยท (Permalink)
You can I have a few
blueking13 ยท 1 points ยท Posted at 23:57:20 on November 14, 2018 ยท (Permalink)
Yeah well gaming isn't the only hobby my money goes to, I like to save up. My laptop works perfectly well and I've only got a semester left so there's not much of a point.
NoNameRequiredxD ยท 2 points ยท Posted at 16:01:01 on November 14, 2018 ยท (Permalink)
You donโt overheat if you modify your system mostly in a way the manufacturer doesnโt allow lol
gauravsharma0808 ยท 4 points ยท Posted at 14:04:51 on November 14, 2018 ยท (Permalink)
It's actually true...
Avamander ยท 6 points ยท Posted at 15:03:31 on November 14, 2018 ยท (Permalink)
Loses a shitload of nuances though, takes the best of past and worst of present. Noone who was alive last century would say they'd want to use PCs made back then, a lot of stuff was horrible, ugly, slow, buggy, finicky - pick any combination of the previous at best.
Henrarzz ยท 4 points ยท Posted at 16:06:54 on November 14, 2018 ยท (Permalink)
Nowadays a lot of software is buggy, horrible, slow, finicky and ugly, too.
Avamander ยท 7 points ยท Posted at 16:16:06 on November 14, 2018 ยท (Permalink)
Didn't claim otherwise, I only said it's unfair to make comparisons in the style of "Trucks suck because they take 25l/100km" totally ignoring trucks can carry tons of goods.
JayInslee2020 ยท 2 points ยท Posted at 21:05:18 on November 14, 2018 ยท (Permalink)
I'd like today's machines with software of 10-20 years ago. The lagfest would be reduced so much.
livrem ยท 1 points ยท Posted at 21:18:47 on November 14, 2018 ยท (Permalink)
Ugly is pretty accurate for most old (non-games) software. The other things are not really true at all. And if you take some of the old software and run on modern hardware, like boot up FreeDOS, it gives you some perspective on just how slow modern software is.
Avamander ยท 2 points ยท Posted at 21:54:43 on November 14, 2018 ยท (Permalink)
Mhm, now play a 1080p H265 video and tell me again how much faster FreeDOS is.
livrem ยท 2 points ยท Posted at 22:05:25 on November 14, 2018 ยท (Permalink)
Yes, unfortunately hardware support has not kept up since obviously no hardware producers are making drivers for MSDOS anymore. There are definitely limits to what you can do in FreeDOS. But it is nice to launch an application and it is up and running the same instant you press the ENTER key to launch it. No delays anywhere.
Must admit though that I think a big part of that is just things running without silly animations anywhere. My Android phone feels much faster when battery is almost empty so it switches to power-saving mode, essentially turning off all animations, and that makes it feel several times faster than otherwise, even if I am pretty sure it actually clocks down the CPU and runs slower. So difficult to compare FreeDOS applications to similar applications on a modern OS where everything is delayed by things having to fade in and out and fly around the screen instead of just being rendered.
Avamander ยท 2 points ยท Posted at 22:23:17 on November 14, 2018 ยท (Permalink)
After I've set KDE's animations tad faster most things I use do load that fast on my hardware (and my PCs hardware is horribly out of date), but also display on two 1080p monitors and establishes connections sub ms with cryptography that would take minutes on old hardware.
What I'm trying to say is that the overall user experience, feature count and security has gone up, speed has remained roughly the same (because humans are slow, diminishing returns and all that). I wouldn't worry though, we're just now replacing a lot of old and slow protocols for things that are faster, we're getting compilers that are better than ever before running on a wider array of different hardware than ever before. If things get really slow there's always an alternative.
livrem ยท 1 points ยท Posted at 22:55:14 on November 14, 2018 ยท (Permalink)
Yes, a modern computer can do more things, and that is great. I have a problem with things that did work well even on much older hardware, that really does not.
One thing for instance, that it can be nice with multi-tasking, or at least to be able to switch quickly between applications, but with almost every application behaving as if it owned the CPU and all of the RAM for itself that almost always becomes painful, even on my reasonably fast Windows PC bought less than 1 year ago (not to mention the 8 years old iMac I type this on... everything other than running command-line stuff in a terminal is painfully slow).
Avamander ยท 1 points ยท Posted at 22:57:21 on November 14, 2018 ยท (Permalink)
If you're not afraid, you could try running Ubuntu with xfce, you should get back quite a bit of resources for actual multitasking.
If you have a lot of tabs, chrome has tab suspender that could help with conserving ram.
livrem ยท 2 points ยท Posted at 23:11:05 on November 14, 2018 ยท (Permalink)
I actually run Debian with xfce on my 2 years old laptop. :) Runs pretty well I must admit, but still not as snappy as FreeDOS on the 10 years old laptop.
[deleted] ยท 4 points ยท Posted at 16:04:13 on November 14, 2018 ยท (Permalink)
[deleted]
livrem ยท 1 points ยท Posted at 21:22:02 on November 14, 2018 ยท (Permalink)
Unlimited as in something like 8192 stars, each with a single planet. Still pretty impressive.
(I would look it up, but on mobile chrome and every time I switch tabs to look something up chrome unloads the reddit tab. Thanks bloat. A few pages of text in two tabs should not cause an issue for a device with gigabytes of RAM, but it does.)
MentalRental ยท 4 points ยท Posted at 16:33:14 on November 14, 2018 ยท (Permalink)
Is it still considered humor if it's true?
SwampDrainer ยท -4 points ยท Posted at 17:08:01 on November 14, 2018 ยท (Permalink)
Do you consider jokes about your tiny dick to be humor?
jvick3 ยท 2 points ยท Posted at 14:44:43 on November 14, 2018 ยท (Permalink)
Wirthโs Law
bloqs ยท 2 points ยท Posted at 15:04:50 on November 14, 2018 ยท (Permalink)
3 cheers for consumer driven development!
3 cheers for the software stack!
Timedoutsob ยท 2 points ยท Posted at 15:12:41 on November 14, 2018 ยท (Permalink)
yeah why is that?
sites really seem so fucking slow to load these days. reddit for instance is a good example of something that seems like it should be basic light code but takes ages to load.
Contada582 ยท 2 points ยท Posted at 15:24:37 on November 14, 2018 ยท (Permalink)
Welcome to managed memory Thanks a lot .NET
JayInslee2020 ยท 1 points ยท Posted at 21:10:52 on November 14, 2018 ยท (Permalink)
That has to be the worst thing. When they first started doing that, I would have to uninstall it after using some lazily coded program that required it because I would get micro-lag spikes in games.
kandoras ยท 2 points ยท Posted at 15:51:21 on November 14, 2018 ยท (Permalink)
I consider it a worthwhile trade to not have to reconfigure extended and expanded memory every time I wanted to play a different game.
livrem ยท 1 points ยท Posted at 21:30:58 on November 14, 2018 ยท (Permalink)
That was solved by and 32-bit DOS extenders though, and to be honest it was never a huge problem before that, just a few lines in your CONFIG.SYS to get a menu of some useful alternatives.
thanksgive ยท 2 points ยท Posted at 16:00:57 on November 14, 2018 ยท (Permalink)
It's cool to watch bts video about video games to see how they cut corner ls to preserve memory
SingleSurfaceCleaner ยท 2 points ยท Posted at 16:22:29 on November 14, 2018 ยท (Permalink)
Shots fired at Google Chrome. ๐ธโ
3tt07kjt ยท 2 points ยท Posted at 16:27:06 on November 14, 2018 ยท (Permalink)
Thatโs misleading at best. The game from the 1990s is Star Fox, which was made in 1993 and shipped with a graphics chip in the cartridge itself. When you bought a copy of Star Fox, it wasnโt just some software on a cartridgeโฆ it was an entire expansion card which happened to run Star Fox.
metalliska ยท 1 points ยท Posted at 17:15:10 on November 14, 2018 ยท (Permalink)
by expansion card do you mean "computers chip" ? Something different than the "computers chip" from Legend of Zelda?
3tt07kjt ยท 2 points ยท Posted at 17:43:27 on November 14, 2018 ยท (Permalink)
https://en.wikipedia.org/wiki/Expansion_card
metalliska ยท 1 points ยท Posted at 18:04:40 on November 14, 2018 ยท (Permalink)*
you do realize the cartridges themselves (starfox or no) fit this description ?
As does LOZ ?
picture of DUCK HUNT
picture of OG LOZ
Notice how these cartridges are "Shipped with chips in the cartridge themself"
3tt07kjt ยท 2 points ยท Posted at 18:21:42 on November 14, 2018 ยท (Permalink)
Cartridges contain different amounts of functionality. The Legend of Zelda is not much more than some memory and a battery. Star Fox is very different, it has its own processor (the Super FX) and a significant amount of RAM (256 KiB, which is more than the SNES has in the first place).
metalliska ยท 1 points ยท Posted at 18:25:10 on November 14, 2018 ยท (Permalink)
Ok there's no such thing as "functionality".
Correct, it's an "expansion card".
an additional "computers chip" on an "expansion card"
3tt07kjt ยท 2 points ยท Posted at 18:31:10 on November 14, 2018 ยท (Permalink)
Responding to the edit... Duck Hunt is a good example of a cartridge which is only software. The cartridge for Duck Hunt is as simple as it gets... nothing more than two mask ROMs and a CIC. The mask ROMs contain data, and the CIC authenticates the cartridge as a valid NES game.
metalliska ยท 1 points ยท Posted at 18:40:00 on November 14, 2018 ยท (Permalink)*
the ROM stored instructions can be thought of as software, yes, much like the Starfox rom stored instructions.
My major point argument is such that there didn't have to be an industry standard prohibiting CPUs/ GPUs/ RAM/ROM/ any aspect of chip could be wired onto a cartridge and that's not "cheating" as it "serves the purpose of an expansion board" (complete with multi-pin connector).
Manufacturing cartridges weren't greater nor lesser for doing this, and this whole game manufacturing 1980s-now is based around chips working together. Whether or not the 6502 had only one accumulator. (or a limited amount of memory to draw upon).
Back to the "original" point, which includes the pic, the SNES game "Out of this World" does fit the graphic.:
3tt07kjt ยท 2 points ยท Posted at 19:17:53 on November 14, 2018 ยท (Permalink)
It looks like you're arguing but from what I can tell we don't actually disagree on any major point. So either I don't understand what you're saying, or you don't understand what I'm saying.
Some games have nothing more than mask ROM and supporting circuitry. To me, that's just a medium for delivering software. It sounds like you might disagree with this point.
metalliska ยท 1 points ยท Posted at 19:34:46 on November 14, 2018 ยท (Permalink)
no, I think we're in agreement.
that could be music
metalliska ยท 1 points ยท Posted at 18:55:19 on November 14, 2018 ยท (Permalink)
I'd argue this constitutes "3D".
3tt07kjt ยท 2 points ยท Posted at 19:21:48 on November 14, 2018 ยท (Permalink)
Another World looks 3D but it's definitely not 3D. It just looks 3D. It uses a lot of rotoscoped animations from video footage. All of those polygons you see are just 2D polygons. Some of the original video footage was uploaded to YouTube. This should clear any misconceptions that Another World is 3D. https://www.youtube.com/watch?v=VhGtYfpmxyY
This_User_Said ยท 2 points ยท Posted at 16:31:46 on November 14, 2018 ยท (Permalink)
And needs 25Gb of your data via mobile and more RAM than a mobile device could ever need.
Also here's some popups and blocks since you're too scared to jail break.
nevezen ยท 2 points ยท Posted at 16:48:09 on November 14, 2018 ยท (Permalink)
r/demoscene would approve.
obi1kenobi1 ยท 2 points ยท Posted at 16:53:06 on November 14, 2018 ยท (Permalink)
People who complain about phones being updated every year clearly haven't tried browsing the web on an outdated phone. Sure, my iPhone 6 still looks and feels like a modern phone, but internally it's like comparing a Core Duo to a Kaby Lake i5 in the X. Even simple mobile sites can slow the phone to a crawl if not make it downright unresponsive.
Nomikos ยท 2 points ยท Posted at 17:05:16 on November 14, 2018 ยท (Permalink)
Humor or painful truth.. ;>.>
Sw00ping3vil ยท 2 points ยท Posted at 17:17:42 on November 14, 2018 ยท (Permalink)
Then there is Minecraft.
The smallest minecraft server with 1KB of RAM and 32KB of flash. https://youtu.be/YNrFOClrzTA
Roflkopt3r ยท 2 points ยท Posted at 17:25:33 on November 14, 2018 ยท (Permalink)
That's what frameworks do. Add a relatively predictable and stable overhead so that you can use decades of advancements in programming and design without spending years on a simple program.
Well, in theory.
fzammetti ยท 2 points ยท Posted at 17:27:14 on November 14, 2018 ยท (Permalink)
It's amusing reading all these comments, everyone talking about "long ago" in the "classic" era of NES and the like, how limited it all was.
The first computer I owned at home had a whopping 2K RAM. I wrote a program to look up movie showtimes on Long Island by hand-entering the movie data from our local newspaper and having a simple lookup interface to it. All the data didn't all fit, so I wound up inventing a compression scheme based on tokens to get it all in memory (I had zero CS knowledge at that point, it was just the obvious and logical way to solve the problem to my roughly 6-year old mind). Then I had to hope all my work wasn't lost due to the cassette it was saved on being eaten. But, if it wasn't, then I was treated to a text-only UI, on my black and white TV, where I could look up movie times rather than having to open the paper like some kind of heathen!
And then I realize how old I am and I'm depressed.
motsanciens ยท 2 points ยท Posted at 17:29:17 on November 14, 2018 ยท (Permalink)
I read somewhere that Goldeneye was like 5MB. Can you believe that? That's some serious fun per byte ratio.
CasinoMagic ยท 2 points ยท Posted at 17:30:53 on November 14, 2018 ยท (Permalink)
So true.
Of course, that's what you get when devs who only know js/jquery think that they should also write apps and not just stick to animating DOM objects.
LuminousOcean ยท 2 points ยท Posted at 17:42:50 on November 14, 2018 ยท (Permalink)
I blame education. My college had professors that exclaimed that optimization is a wasted effort because compilers are so good at it. So we should just make full use of all the resources(CPU power, RAM and other stuff) available to us and leave it to the compiler makers to make things fast and spiffy.
stilloriginal ยท 2 points ยท Posted at 17:53:51 on November 14, 2018 ยท (Permalink)
r/programmerSadness
AmatureProgrammer ยท 2 points ยท Posted at 18:12:24 on November 14, 2018 ยท (Permalink)
Curious but do people still program like this back in the 90s?
motivated_electron ยท 5 points ยท Posted at 18:54:35 on November 14, 2018 ยท (Permalink)
Embedded developer here. At my job, I have a max of 48 MHz CPU and 64 kB of RAM. Then the program needs to fit in 128 kB of ROM.
These have made me learn to appreciate my computing resources and to not be wasteful with them. Many embedded developers have similar experiences as this.
AmatureProgrammer ยท 2 points ยท Posted at 19:18:03 on November 14, 2018 ยท (Permalink)
How'd you get into the field? And what language is used to program? And do you use assembly a lot?
hey01 ยท 2 points ยท Posted at 18:15:24 on November 14, 2018 ยท (Permalink)
1 MB? That's way too much. Look at .kkrieger.
ultanna ยท 2 points ยท Posted at 18:34:01 on November 14, 2018 ยท (Permalink)
I remember seeing this compressed video in the 90's and I was totally mindblown. It is sad that technology died with his creator :S
zesterer ยท 2 points ยท Posted at 19:09:27 on November 14, 2018 ยท (Permalink)
I like to rant about this a lot. Modern computing power is wasted.
Forrestfunk ยท 2 points ยท Posted at 19:10:18 on November 14, 2018 ยท (Permalink)
Kind of related: I just yesterday grabbed the free version of destiny 2 for PC. That fucker is a 80gb download. Wth?
8bitsleuth ยท 2 points ยท Posted at 19:26:08 on November 14, 2018 ยท (Permalink)
Every piece of modern computer device I own slows down within a couple of years. Apart from the adverts. Adverts run smooth as butter.
nineteenthly ยท 2 points ยท Posted at 19:32:48 on November 14, 2018 ยท (Permalink)
Actually by the '90s it seemed to me that they were really squandering resources. There was a playable ZX81 chess in 1K and that needed to fit the display in too. I've seen a whole game implemented in one line of Applesoft BASIC, i.e. a single page of 6502 memory - 256 bytes.
up48 ยท 2 points ยท Posted at 19:41:43 on November 14, 2018 ยท (Permalink)
Yeah itโs annoyingly that my laptop canโt even browse the web anymore.
bulk_chain ยท 2 points ยท Posted at 19:55:11 on November 14, 2018 ยท (Permalink)
We are like 10 layers of abstraction beyond what programmers in the 1990 dealt with....not sure if that fact is good.
Pawneewafflesarelife ยท 2 points ยท Posted at 20:02:35 on November 14, 2018 ยท (Permalink)
My late father liked to reminisce on editing code line by line and then grumble about Microsoft being sloppy.
Fusseldieb ยท 2 points ยท Posted at 21:02:01 on November 14, 2018 ยท (Permalink)
nOdE-MoDuLEs
Bill_Morgan ยท 2 points ยท Posted at 21:25:43 on November 14, 2018 ยท (Permalink)
The end result of years of optimizing for the lowest common programmer
RallyPointAlpha ยท 2 points ยท Posted at 21:52:53 on November 14, 2018 ยท (Permalink)
This really bothers me with mobile devices and mobile apps. Damn phone manufacturers are being stingy with RAM so they can milk us for stupid amounts of money every year. Devs are happy to just keep pumping out bloatware that all sucks more RAM. Even if we could get a phone with 8 GB RAM fucking devs would just gobble it up in a year. I feel cheated ... I buy a quality phone instead of leasing one, I take care of it so it doesn't get broken or lost but it still won't last me more than 2 years because the fucking minimum system requirements to not be frustrated while using a mobile device keep skyrocketing.
To top it off every fucking business has a stupid app now. Every time I turn around "oh you need our app for that"... "just install our app!" NO NOOOOOOOOOOOOOOOOOO I don't want your shitty, bloated, app that just slows down my phone even more and notifies my all the time about shit I DON'T CARE ABOUT!
huzaa ยท 2 points ยท Posted at 22:57:07 on November 14, 2018 ยท (Permalink)
Yeah, but it runs in a Javascript-based WebAssembly polyfill, on a Java-based browser, running on a Docker container in a Linux VM on VirtualBox with a Windows hosts which runs on a XEN hypervisor.
SamuraiOfGaming ยท 2 points ยท Posted at 03:14:01 on November 19, 2018 ยท (Permalink)
Hey there u/Minenik ! Glad you liked my image enough to repost it, and it does feel nice to see it making the rounds online, but I would have preferred if you'd crossposted from my original post instead.
corner-case ยท 3 points ยท Posted at 15:52:29 on November 14, 2018 ยท (Permalink)
1990s - this game is being developed for one target hardware, which we own.
2018 - this web page has to render perfectly in five different browsers, as well as desktop, phone, and tablets. And we donโt even control all the source code.
metalliska ยท 3 points ยท Posted at 17:13:08 on November 14, 2018 ยท (Permalink)
so write new source code
bast963 ยท 1 points ยท Posted at 18:21:45 on November 15, 2018 ยท (Permalink)
Do you really think the client is going to pay the IT contractors to rewrite the entirety of JQGrid or Moment.js or some other shit?
metalliska ยท 1 points ยท Posted at 18:49:30 on November 15, 2018 ยท (Permalink)
I said "write", not "pay".
moment.js:
143KB can be done in less than a week.
angry_wombat ยท 3 points ยท Posted at 16:27:03 on November 14, 2018 ยท (Permalink)
Only optimize to the point it runs smooth, anything beyond that is a waste of time.
Firebelias ยท 3 points ยท Posted at 17:48:02 on November 14, 2018 ยท (Permalink)
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
Flampup ยท 1 points ยท Posted at 13:39:09 on November 14, 2018 ยท (Permalink)
See this is what I call a logical progression. smh
col786 ยท 1 points ยท Posted at 13:47:09 on November 14, 2018 ยท (Permalink)
Good Stuff!!
Hardwired_KS ยท 1 points ยท Posted at 13:52:00 on November 14, 2018 ยท (Permalink)
Preach..
ooaaa ยท 1 points ยท Posted at 14:54:18 on November 14, 2018 ยท (Permalink)
Gustafson's Law...
CaffeinatedQuant ยท 1 points ยท Posted at 14:56:11 on November 14, 2018 ยท (Permalink)
Check out the demo-scene if you aren't already familiar.
starrpamph ยท 1 points ยท Posted at 14:58:11 on November 14, 2018 ยท (Permalink)
That's about the size of it
Silveryard ยท 1 points ยท Posted at 14:58:46 on November 14, 2018 ยท (Permalink)
It won't scroll smoothly
gellis12 ยท 1 points ยท Posted at 15:05:03 on November 14, 2018 ยท (Permalink)
Only if you're using chrome.
Ghostman_Loon ยท 1 points ยท Posted at 15:14:03 on November 14, 2018 ยท (Permalink)
My first year of uni, the computer science students spent their lonas on brand new... 486s
RobotThatGoesOof ยท 1 points ยท Posted at 15:21:09 on November 14, 2018 ยท (Permalink)
Oof
BlanksText ยท 1 points ยท Posted at 15:36:39 on November 14, 2018 ยท (Permalink)
In the back games doesn't have sound in their memory, they just use Frequency Modulation system to make their sound effects
schmidty98 ยท 1 points ยท Posted at 15:39:40 on November 14, 2018 ยท (Permalink)
This is what drives me nuts about PC gaming.
Yes, my computer is 4 years old. Yes, it's due an upgrade but when Black Ops 1 looks and runs better than Black Ops 4 (Multiplayer & Zombies, Blackout makes sense) it ruffles my jimmies.
Alxndr27 ยท 1 points ยท Posted at 16:40:55 on November 14, 2018 ยท (Permalink)
โBugs?? You tell me.โ
VechainLoverBoy ยท 1 points ยท Posted at 16:56:42 on November 14, 2018 ยท (Permalink)
More like facebook humor.
Colvoid ยท 1 points ยท Posted at 17:11:42 on November 14, 2018 ยท (Permalink)
It's like how the Discord app takes up hundreds of megabytes of memory when all it should really need is 5% of that but nobody seems to care enough to fix it. My 16GB of memory is almost half full when I'm not really even running anything, I think it's ridiculous. I wish somebody would make a more efficient browser too as having several windows open somehow takes up a gigabyte of space
JayInslee2020 ยท 3 points ยท Posted at 21:12:09 on November 14, 2018 ยท (Permalink)
Firefox 2 or 3.x accomplished this alright. 1.x even better.
nmgreddit ยท 1 points ยท Posted at 17:18:00 on November 14, 2018 ยท (Permalink)
Scroll down aways on my home page I and got this:
https://np.reddit.com/r/gaming/comments/9wvy6p/computing_in_the_90s_vs_computing_in_2018/e9o7iaq
Edit: Wait lol. It's a comment on the same meme in a different sub.
wile_e_chicken ยท 1 points ยท Posted at 17:25:43 on November 14, 2018 ยท (Permalink)
Atari 2600 games were 2KB. Or, later, 4KB. (Fancy.)
Heban ยท 1 points ยท Posted at 17:53:31 on November 14, 2018 ยท (Permalink)
It's really kinda sad..
ElectricalHeron ยท 1 points ยท Posted at 18:24:55 on November 14, 2018 ยท (Permalink)
I was just talking to my coworker about this subject the other day: Code optimization is largely taking a back seat to bloat caused by nice-to-haves for developers. Frameworks require more and more overhead, and the functionality of the code itself isn't chiefly benefitting from that increase in speed. It's an interesting topic, albeit a bit of a generalization, given the vast amount of languages and applications out there.
porky_bot ยท 1 points ยท Posted at 18:29:19 on November 14, 2018 ยท (Permalink)
Whenever i see something like this, i can't help it but feel that it is an EXTREEEME oversimplification.
I mean, you have to parse HTML, CSS and Javascript, and is not only parse it, is now interpret it and apply it. And then apply all the changes that the user is doing in the page.
I wrote once a 3d viewer of a model and it ran flawlessly using webgl, but it is because it has less layers, less manipulation to do, it is a very specialized API and direct access to a GPU.
BlondFaith ยท 1 points ยท Posted at 19:05:33 on November 14, 2018 ยท (Permalink)
The problem is that phone companies are not adjusting their price per gig charges to accomodate for this. 5 years ago I would barely use 2gig of data, 3 years ago I regularly hit 5gig data and now I'm lucky if I stay under my 12gig plan.
ontariu ยท 1 points ยท Posted at 19:54:09 on November 14, 2018 ยท (Permalink)
8gb? Tell that to YouTube...
[deleted] ยท 1 points ยท Posted at 20:19:29 on November 14, 2018 ยท (Permalink)
Yeah but the top one was running one program at a time.
livrem ยท 1 points ยท Posted at 22:00:32 on November 14, 2018 ยท (Permalink)
It would sometimes be pretty nice to have a switch to run a modern OS in single-application mode somehow, but unfortunately I am pretty sure very many modern desktop applications would die instantly without being able to rely on all sorts of heavy background-processes.
It used to be possible to have a pretty good idea what a computer was doing, even when multi-tasking, like in earlier Linux distributions, but I had to give up on that a long time ago. Lists of processes constantly running, often actually running and not just existing in virtual memory, are just insanely long now.
NabiscoLobstrosity ยท 1 points ยท Posted at 20:54:19 on November 14, 2018 ยท (Permalink)
I have a laptop with an i5 4xxx-something, and pages with a big scrolling slideshow (basically every WordPress site) require upwards of 50% of the CPU; it's dual core with 4 threads.
It's probably because the laptop has discrete graphics so the CPU has pathetic graphics processing onboard. But still, a simple website makes the fan spin up.
HipercubesHunter11 ยท 1 points ยท Posted at 21:21:09 on November 14, 2018 ยท (Permalink)
Moore law intensifies
CeramicCastle49 ยท 1 points ยท Posted at 21:43:31 on November 14, 2018 ยท (Permalink)
This might be the first post from this sub I've actually understood
rogher_totti ยท 1 points ยท Posted at 21:54:59 on November 14, 2018 ยท (Permalink)
that's science bitch ๐
hexadecagram ยท 1 points ยท Posted at 21:59:22 on November 14, 2018 ยท (Permalink)*
As always, the 80s are overlooked, ignored, neglected, and forgotten.
20 MHz? 128K?
Luxury items.
MrCalifornian ยท 1 points ยท Posted at 22:26:24 on November 14, 2018 ยท (Permalink)
Slack's electron app.
Kok_Nikol ยท 1 points ยท Posted at 22:37:26 on November 14, 2018 ยท (Permalink)
New Gmail site...
Melon_Chief ยท 1 points ยท Posted at 22:39:59 on November 14, 2018 ยท (Permalink)
Could be worse. Could be java.
32th_System ยท 1 points ยท Posted at 07:09:29 on November 15, 2018 ยท (Permalink)
Android
Melon_Chief ยท 1 points ยท Posted at 06:07:35 on November 16, 2018 ยท (Permalink)
Kotlin. You have no excuse.
TurkeyTheFish ยท 1 points ยท Posted at 22:40:14 on November 14, 2018 ยท (Permalink)
I remember going to a tech convention in the early 2000s where in one session a rep from Intel was basically encouraging developers to write more complex applications, something along the lines of "focusing on capability over efficiency" in order to encourage the adoption of faster processors.
That, and the huge LCD screens that were on display but not available for sale anywhere because "the market was not ready for it"
FizziSoda ยท 1 points ยท Posted at 23:35:24 on November 14, 2018 ยท (Permalink)
I added a little wave animation (just 3 layers of sliding transparent images) to my page and now my laptop sounds like a jet taking off.
Thank_Mimes ยท 1 points ยท Posted at 23:49:40 on November 14, 2018 ยท (Permalink)
Lets be honest... computers in the 90s were coming with at least 1MB.
1987 was when the Mac 128k was release.
Oh shit... my pedantry is showing.
Atallbrownguy ยท 1 points ยท Posted at 00:32:19 on November 15, 2018 ยท (Permalink)
2000's.
Flash...
kp3009 ยท 1 points ยท Posted at 01:45:54 on November 15, 2018 ยท (Permalink)
More power
Le_Martian ยท 1 points ยท Posted at 02:15:11 on November 15, 2018 ยท (Permalink)
Even the newest version of Minecraft doesnโt run smoothly on my laptop anymore
metametamind ยท 1 points ยท Posted at 02:41:23 on November 15, 2018 ยท (Permalink)
Youโre missing the point- high end requirements act as a filter to vet prospects.
soup_specialist ยท 1 points ยท Posted at 02:45:00 on November 15, 2018 ยท (Permalink)
This isn't funny, it's far too true to be funny. It's depressing
whataboutBatmantho ยท 1 points ยท Posted at 02:55:41 on November 15, 2018 ยท (Permalink)
People don't think it be like that, but it do.
EternityForest ยท 1 points ยท Posted at 18:28:20 on November 16, 2018 ยท (Permalink)
Remember, "do less with more"! Make sure your coders actually take advantage of those i9 machines with 32GB of ram. If you make sites less than a megabyte, you're wasting thousands of dollars in unused hardware!
But don't even think about having a JPG background or a color icon. Those are totally just distractions that users hate, unlike waiting five minutes for a page to load, which gives them some quality time to really appreciate the fan noise of their CPU running at full.
tyrazR ยท 1 points ยท Posted at 09:53:39 on November 20, 2018 ยท (Permalink)
2bevo ยท 1 points ยท Posted at 04:03:31 on November 28, 2018 ยท (Permalink)
i dont think much has changed in that everything is still the same concept except it has gotten way more advanced and regularly avaluable
BlackAccipiter ยท 1 points ยท Posted at 05:13:24 on December 20, 2018 ยท (Permalink)
That's why my virtual machine with Windows 2000 crashes and gives blue screen of death for opening current websites.
aki821 ยท 1 points ยท Posted at 12:44:25 on November 14, 2018 ยท (Permalink)
Anyone cares to chime in with an ELI5 (assuming Iโm not using Chrome)?
[deleted] ยท 18 points ยท Posted at 14:14:17 on November 14, 2018 ยท (Permalink)
Machine code is really hard, so they invented assembly language, to make programming easier.
Assembly language is really hard, so they invented high-level languages, like FORTRAN, Pascal, and C, to make programming easier.
C et al. are hard, so they invented a higher-level languages.
Those languages are hard, so they invented even higher-level languages.
Those languages are hard, so they invented libraries and frameworks.
Libraries and frameworks are hard, so they invented libraries on top of libraries and frameworks on top of frameworks.
As time goes on, more libraries and more frameworks are used on top of each other, but the problem is that the CPU has to spend part of its time just navigating between libraries and frameworks. The end result of this is that, even though CPUs are getting faster all the time, they can't do any more real work than before because of the tower of libraries.
As an example, I am working on a web application that uses the Laravel framework. Laravel is built on so many libraries upon libraries that it needs a special program, called Composer, to make sure all of the libraries are there. Laravel and all of its libraries are written in PHP. The PHP interpreter is written in C, and the C is compiled to machine code.
jimmyolsenblues ยท 3 points ยท Posted at 15:37:21 on November 14, 2018 ยท (Permalink)
I am saving your response for an interview.
aki821 ยท 3 points ยท Posted at 14:16:32 on November 14, 2018 ยท (Permalink)
Thank you very much for this point of view, really appreciated!
[deleted] ยท 24 points ยท Posted at 13:23:44 on November 14, 2018 ยท (Permalink)*
[deleted]
aki821 ยท -10 points ยท Posted at 14:17:17 on November 14, 2018 ยท (Permalink)
Man youโre the funniest
spartanreborn ยท 12 points ยท Posted at 14:30:20 on November 14, 2018 ยท (Permalink)
It's the damned truth though.
aki821 ยท -8 points ยท Posted at 14:41:57 on November 14, 2018 ยท (Permalink)
Yeah, no. You can scroll a few pixels and see what a real answer is.
lilB0bbyTables ยท 2 points ยท Posted at 18:55:47 on November 14, 2018 ยท (Permalink)
/u/ach9nk7E did a great job covering the race for higher level language abstraction away from the bare-metal. However I should add that it's not impossible to make a modern web application that performs well.
How well? ... I suppose the true comparison would be to have a native application written in, say C/C++, vs a web page that both present the same UI and feature-set. The benefits to the web application in the browser is added portability; in theory that web app should render on any supported browser on any Operating System and any form-factors device (so Windows 7 with IE 10 vs Safari on a Mac, vs Chrome on Ubuntu vs Chrome on an Android phone). Achieving this with a lower-level language like C/C++ as a stand-alone program is possible, however it needs to be written with each of them in mind and compiled for each different platform, each of which may require specific optimizations.
By contrast, the web was supposed to alleviate these issues by creating some abstraction at a higher level to enable portability (the same code should be able to run on any platform, any browser, the same way by using a shared set of standards). Problem is the standards are not always agreed upon nor adopted by each browser at the same pace resulting in fragmentation. Now we need to write code that works on all of them.
Of course in a true Apples to Apples comparison, the lower level languages will just always perform better. It's a question of how much better and whether that difference is a requirement for the given project in context. Alas a modern web application can be written to perform extremely well to the point where the difference in performance is not an issue under many circumstances, but more often then not there are extreme failures by the developing team to optimize every aspect of it for all use-case scenarios.
[deleted] ยท 1 points ยท Posted at 00:10:43 on November 15, 2018 ยท (Permalink)
I glossed over every advantage of high-level languages except for ease of use by programmers, but as you say, they can be safer and more portable than anything compiled directly to machine code. And you can alleviate many of the performance problems inherent in the language itself using techniques such as JIT compilation.
However, the more layers of abstraction you add, the easier it becomes for programmers to lose sight of how much the CPU needs to do behind the scenes of those abstract operations, leading to programmers writing simple-to-understand but unoptimized code. And nobody does optimization until the unoptimized code is executed enough that the drop in performance is more than perceptible. The result is software bloat.
lilB0bbyTables ยท 1 points ยท Posted at 03:12:34 on November 15, 2018 ยท (Permalink)
A good deal of modern web application performance issues can be attributed to the nature of modern web development. There are plenty of web applications made by companies who push deadlines that don't allow for proper testing and planning - whether these are made by professional development teams who know better or by free-lance, junior devs who fit the lowest bid for the job and maybe don't know better.
I've encountered web apps created in Ember, Backbone, AngularJs, on up to bleeding-edge ReactJS - many of which I've seen suffer from performance issues. A lot of these can be attributed to misuse of the frameworks themselves (e.g. enabling far too many concurrent scope binding watchers in AngularJS, misusing events) to relying on existing 3rd party libraries that don't perform or scale well (e.g. large data tables libraries).
Simply relying on libraries because they are at the top of Google search results, or have a lot of stars on GitHub, etc - are not reason enough to expect it is a quality library. A few years ago SailsJS+Waterline was all the rage and being promoted left-and-right by the budding NodeJS community. It had a huge following, large numbers of commits, plenty of stars, and high adoption rate. And yet it was riddled with issues. Big issues. Security vulnerabilities that allowed bypassing route authorization/authentication and even SQL-Injection.
Which brings me back to my point - a small team of highly experienced front-end devs can create an optimized, highly-performant modern web app. Modern web development just tends to move ahead at a pace that doesn't lend to the absolute best practices at every turn (sadly). By the time you've done so, the underlying libraries and technologies you've used are near outdated at this pace.
[deleted] ยท 1 points ยท Posted at 13:51:03 on November 14, 2018 ยท (Permalink)*
[deleted]
aki821 ยท 0 points ยท Posted at 13:51:36 on November 14, 2018 ยท (Permalink)
Thank you, that was very r/NotKenM of you!
Alloy202 ยท 1 points ยท Posted at 15:56:14 on November 14, 2018 ยท (Permalink)
I've always wondered just how different things would be if the same level of ingenuity needed in the 90s to just get things to rub was employed today
Firebelias ยท 1 points ยท Posted at 17:48:19 on November 14, 2018 ยท (Permalink)
Chrome: "Holy Sht! You have extra RAM just lying around and I'm sure you won't mind if I use it for unnecessary background processes, and also, fuk whatever the hell you're doing right now."
flyQuixote ยท -4 points ยท Posted at 13:57:44 on November 14, 2018 ยท (Permalink)
That is a major improvement. Much cheaper to pay a developer and artist to implement with few limitations and it makes products much faster. Human time is much more expensive than computer time :)
KurtIsLoFi ยท 0 points ยท Posted at 15:26:02 on November 14, 2018 ยท (Permalink)
Just get a Mac bro. Problem solved.
rick101777 ยท 0 points ยท Posted at 19:19:41 on November 14, 2018 ยท (Permalink)
1990's computing was also super risky in terms of cybersecurity. Most of the programming methods conducted during that time are now deprecated and are not used anymore. Of course we are not completely protected from cyberattacks currently, but we are a lot better off then we were before.
notocar ยท -2 points ยท Posted at 14:41:59 on November 14, 2018 ยท (Permalink)
Computing. In. The. 90s.
RubiousOctopus ยท 3 points ยท Posted at 15:11:15 on November 14, 2018 ยท (Permalink)
is the old way I like to be
MartinDewYT ยท -3 points ยท Posted at 14:57:19 on November 14, 2018 ยท (Permalink)
r/lostredditors