Ask HN: I hate the code in my popular open source app; do I put it on my resume? - <AUTHOR> From 2001 to 2008, I was the creator and frequently only developer on a relatively popular open source project. It was one of the first pieces of real software I'd written, and was the first thing I ever released as open source.  It's been downloaded about a million times and is still running on many sites today.
The thing is I really, really hate the code, and it's in PHP (these are only partly related). There are parts of it I'm downright ashamed of. My question is, should I put it on my resume and/or my GitHub account? Even if I'm applying for a software job that won't be using PHP?
Thanks. <comment><USER2> Of _course_ you put it in there!

Try something like "Created X-PHP app in 2001. With one million downloads, X-PHP powers [large_number] sites as tracked by netcraft. (link here)"

You _can't_ leave something like that out, it's an impressive accomplishment and ignoring it due to some PHP sensitivity is a bad idea.

The one and only purpose of a resume is to catch the eye of a reviewer and thus score you an interview. Once they see that you've published a 1M-download app and call you in for an interview _then_ you can tell them what you've learned in the past ten years.

Think of it in terms of conversion rates. Some small percentage of resume readers are going to request an interview. Some smaller percentage of those are going to make an offer. You don't want to self-select your way out of that first pool.

Edit: I have old projects on my github that are ugly too. I put my misgivings in the readme. "This was written 5 years ago, it could stand to be modernized, the interesting parts are here (link)."

<comment><USER3> > _The one and only purpose of a resume is to catch the eye of a reviewer and > thus score you an interview._

This is extremely true, and yet it's amazing how many people don't know / don't want to hear that. Most people seem to think a resume is "them" put on paper, so it should be so thorough it should list every activity they ever attempted from kindergarten on (except the ones they are now kind of ashamed of, ten years later).

Your resume is not you. It's a tease.

</comment></comment><comment><USER4> Yes.

I interviewed and eventually hired the developer of a name-brand open source project years ago. I asked him about parts of the code, and after I hired him he confessed that he thought it was game over right at that moment of the interview: he was embarrassed about the PHP he'd written.

I didn't care a bit. He was a fantastic engineer, he recognized what he no longer liked about his old code, and most importantly _he created and shipped a huge, popular project_. Very few people can say that.

Claim it, be proud of it, and be prepared to talk about the mistakes you made.

That engineer, by the way, has now been at Google for years. He's doing just fine.

<comment><USER5> One thing college has taught me, all though not neccesarily for the right reasons (there's overemphasis), is that you can fail: just be able to reflect on why and what you would do differently next time. I think being able to say you shipped and being able to tell what should be changed, updated or improved attests to your skills.

</comment></comment><comment><USER6> You are supposed to hate your code.

If you don't hate it, you aren't trying hard enough.

I would not equate hating the code with the code being something to be ashamed of.

I hate every goddamn piece of code I write.

<comment><USER7> I'm always biased against my code as well. But man.. Software with a million downloads is something to be proud of. That's a lot of people getting use out of something you created.

<comment><USER8> One of my uni professors had a good maxim he has posted above his desk:

 _love the software, hate the code_

</comment></comment></comment><comment><USER9> Nobody has ever written perfect code. So don't worry about it; writing code _and_ being able look at it critically are both rare skills, and will look great in an interview.

It's much better to say "I wrote xxx and hate yyy design feature" than to say "I've never done anything".

<comment><USER10> There is a difference between perfect code, nasty code, and ok code. It doesn't take much to turn a nasty patch into an ok one. Around 2002 or so I realized that all of my open source code could one day be read by someone looking to hire me. It really made me change my coding style. Taking the extra thirty seconds to review your change, make a better commit message, follow a common code style, better variable and function names, make a README (back before github) etc. The more I did this the more I benefited from it myself. I caught mistakes, it was easier to go back in the history of commits etc. In essence I became a better developer for it.

tldr; _Always assume someone will be reading your code in the future for a job hire. If not for them, for you as it will make your code better._

<comment><USER11> > tldr; Always assume someone will be reading your code in the future for a > job hire.

I agree that what you suggest in terms of improvements in how you code is beneficial--especially if it's a permanent change in your coding style. I think permanent changes in coding style like that happen when we realise it's actually beneficial to us even before it helps someone else.

At the same time I posit that there is much useful/functional (albeit ugly) code sitting trapped on hard-drives around the world because the developer is concerned a future employer/client might judge them for it if it were released.

While this sort of filtering by prospective employer/client may well happen, I think the average developer concerned about such things has a much higher standard for work than needed.

I've tried to adjust my thinking to "Well, it works for me, that means it might be useful to someone else, so I'll put it up there. If some future employer/client can't see that it's a quick hack and not representative of my daily work, well, that probably says more about them."

I'd rather find your 10-line hack to get that obscure API working and build on it, than nothing at all.

<comment><USER10> Agreed. It is more useful in the end to just push our your code even if you add a "warning: this is one big ugly hack" as a readme.

</comment></comment></comment></comment><comment><USER12> As the creator of MagpieRSS I know _exactly_ what you're talking about.

And yes, you include it. There are skills demonstrated in a popular open source project which are interesting and relevant, and very very few people are proud of the code they wrote in 2001, no matter who they are or what they do.

<comment> wh-uws You wrote that! I used that when I first started doing web development to show posts from certain categories in wordpress before that feature made it into the core.

Man we've come a long way since then.

</comment></comment><comment><USER13> Agree with people here. Absolutely yes.

True Story: I was in the same boat. Usually people have never used it, but google for it to verify it's real - and are suitably impressed.

However, one day I interviewed at a company who had not only heard of it, but actually used it in production! I couldn't help but blurt out "Really? The code is horrible isn't it." - This turned the tide of the interview, as it showed the interviewers I had the ability to objectively review code and learn from my mistakes.

I was hired, but had to suffer being the butt of all jokes for a long time.

</comment><comment><USER14> I definitely agree with the comments here. I don't know one good developer who doesn't want to rewrite 50% of what they previously written. That rate always goes up to about %100 if it's written when they were anywhere near new to a language.

The fact that you belted something out that was useful and stable enough to still be active is a testament to your intelligence - and that is what a good potential hire employer is looking for.

BTW, you looking for a job in Durham? [http://argylesocial.com/jobs/durham-nc- software-engineering-...](http://argylesocial.com/jobs/durham-nc-software- engineering-job)

/adam

</comment><comment><USER15> Hell yeah!

If you are lucky they might even ask you about it in an interview, and then you'll get a chance to explain how & why you'd do things differently.

More likely, though, they'll see the name of it and go _oh, I've heard of that - it seems to be used a bit so it can't be total crap_ and put you in the "interview this person" pile.

</comment><comment><USER16> Everything you wrote more than six months ago is crap, or should be. If it isn't you've stopped growing as a developer.

Anyone looking to hire you either grasps this, or isn't a sound enough developer to see past the popularity of the package. Either way you win.

</comment><comment><USER17> Have to ask: what's the app? If it something thats not only popular buy well thought of -- well, you can always mention in an interview how you're unhappy with it and how you'd improve it today.

Most programmers - myself included - look at things we did last year, two years ago, etc and think "how awful is this?". I've yet to meet someone who doesn't.

<comment><USER18> I'm usually questioning the code I wrote 15 minutes ago.

<comment><USER19> Eventually you will be able to regret the quality of the code before you have even written it!

(Sadly, this is not just induction applied to this thread. Not doing the best you can is a key to productivity.)

<comment><USER20> True! The real problem there is, if you regret it enough before you write it, you might talk yourself out of writing it to begin with...

<comment><USER21> The best code is no code?? ;)

<comment><USER22> The less code you have to write, the less there is for you to slowly start to loathe having around.

</comment></comment></comment></comment></comment></comment><comment><USER23> Definitely include it.

If a relatively non-techie person is reading your CV (i.e. if HR is doing pre- screening before passing select ones up the chain for consideration) they won't know to check the code quality, they'll just see that you were important for a significant project which proves you can handle yourself well technically.

If a techie person is looking at your CV, they will understand that a lot of code, especially code that is written in your own time so you don't _have_ to go back and resolve QA issues, is far from ideal. If the project was popular, technically impressive, original, interesting, or any combination of the above if will be an advantage to you. A technical interviewer will probably bring it up in the interview, if they do you will be able to sell the good parts of it (and why they mean you'll be good in the position you are interviewing for) and discuss what you would do differently if you were starting now and why (which will give the interviewer a gauge of your ability to appreciate and learn from experience). Recognising a problem and how it can be addressed is more valuable in judging your real world (i.e. imperfect world) abilities than just talking about things that are right.

Disliking parts of your old code is normal. If you look back at your code from a few years ago and _don't_ find things that make you cringe then either you were a savant, very lucky and "on form", had a lot of time to work on it which allowed for regular refactoring as the codebase grew, or (and this would be the worrying one) you just haven't learnt much in the intervening time.

</comment><comment><USER24> Definitely put it on.

In a backhanded way there is actually value that you can work effectively with "bad" code. Many places that are hiring are hiding their own shameful secret : they hate their own code. Sometimes something they are even screening for is to make sure the person is not going to baulk when they discover the reality of the code they are now involved in and who will be pragmatic enough to work with it try and make it better rather than declare it's a disaster and not their fault.

</comment><comment><USER25> Wow, I have an incredibly similar experience. I made a PHP news script called "CzarNews" back in 2003 that was widely downloaded and used, and is still used on many sites today.

I too am now a bit embarrassed by the amateurish-ness of the code, and the security vulnerabilities within it. Previous versions of it back when I was actively working on it even hit Secuina security advisory lists under "high" and "severe" categories and led to my server getting hacked through a remote file include vulnerability (thanks PHP3/4 register_globals + allow_url_include INI settings on by default!). I learned a lot about PHP (in)security that summer, and had many angry users to deal with. Your experience surely can't be worse than that.

In addition, I too have NOT put the code on my GitHub account, because it's nothing like the code I produce today, and I don't want people to get the wrong idea about what kind of code I produce. I have never thought about just owning it and wearing it as some sort of badge of honor though - this thread has made me re-think that. It might be interesting to highlight its success and the lessons I learned through the process.

</comment><comment><USER26> I have been thinking about something similar. I'm shutting down my first startup (circa 2007) in 3 months and thinking about open sourcing the code. Several have asked me about that. Thing is it was my first Rails app and one of my earlier attempts on working on a large web app.. so I'm not exactly proud of my code either..

</comment><comment><USER27> I would say yes, especially if you have newer code you can show off as well. Code can always be refactored and improved, but knowing (and making) what users want isn't something they teach in school!

</comment><comment><USER28> If I were to compare myself to how I am now to years ago I would be ashamed of the code I wrote.

Occasionally I have to dig out legacy projects in php and wonder how my code was ever scalable. My main thing was bad class decisions, naming and what to put in them.

If the code I had written had been downloaded a million times though, I think my view would be different, I would be proud of it. It doesn't get downloaded for no reason.

The only thing that matter is, if you had the chance to rewrite the code, would you know what to do differently? I think that's the real angle you should be going into an interview with. You have an app with a million downloads and if you were to do it all again then you would do X differently.

I don't know if you are referring to OsCommerce but I can tell you that is some pretty bad code in there but for the best part of 3 years I would use it on sites all the time. It doesn't make the idea any less brilliant.

Good luck

</comment><comment><USER29> Yes. Real code that actually works in the real world, for large numbers of users, on all sorts of weird platforms and configurations, tends to accumulate some cruft. I'm sure there exist beautiful, production code bases that have been downloaded and/or used millions of times, but there's no shame in some ugly code.

I seem to remember an old piece by jwz talking about the "clean-up rewrite of Netscape" and how the poor folks who were doing it then had to re-fix and re- workaround all of the myrid ways that broken old versions of ftp servers implement the protocol. It was probably ugly code, but it worked, and the clean code only stayed that way until it met the enemy...

</comment><comment><USER30> This, my friend is your experience. Make the best with it. To be honest, it sounds terrific.

Also, some years ago I wrote an accounting application I wasn't particularly proud of and it was always with apprehension that I was going back to it to fix some minor bugs. Overall, it worked quite well though.

One day a coworker-friend IMed me to let me know that he had fixed a glimpse in it and said he was impressed at how lean the code was in it and how, ... You get the idea.

So two things: you will always hate your code because it's your creation, thus not/never perfect enough, and you will often find worse coders than you to provide some sort of relief :)

</comment><comment><USER31> I also released an open source PHP project in 2001 (<http://templation.websaviour.com/>). It got zero uptake, but it's still used to power a few large sites to this day. The fact that it never got any use meant the codebase stayed lean and the ideas pure. I can think back on it with fondness and believe that even now, 10 years on as a professional web developer, I had great ideas from the start.

Of course it's not very impressive on a CV if no one uses it and no one's ever heard of it, so on balance I'd have to choose your predicament. Congratulations!

</comment><comment><USER32> Besides agreeing with most of the comments here: for me, the demonstrable progress in your work would be more important than the past or current quality of your code.

</comment><comment><USER33> If it has been used by millions users, it cannot be bad code on every front. For example, maybe the architecture sucks, etc... but this came after you already had many users, so you could not change it easily: that's inherent to most projects out there, and the ability to deal with it is one of the most valuable skill you could look for in a prospect hire.

</comment><comment><USER34> Are you saying,you didn't learn a single thing with that project? If you learned something out of it (whether its design part or coding part) you must add it to your resume. You can tell interviewers you didn't follow any coding standards with that project. But now you are started to follow them. Open source project always add more value :D

</comment><comment><USER35> That's what asterisks are for. You learned a lot from it, and it was popular; that's why you include it. You can acknowledge that its a steamy pile of shit and incidentally show that you've grown as a developer and are able to acknowledge your past mistakes. Those are the traits that will make you stand out from other candidates.

</comment><comment><USER36> Absolutely, you should -- for everything already said here, and more. When you interview with a company do they ask you about the project? Have their developers looked at the code in enough detail to question the design decision you've made and see what you've learned since then?

</comment><comment><USER37> I agree with all the comments, but one question remains: would the interviewer think like we do? You could argue that you shouldn't want to work there in such a case, but the interviewer may not be representative of your direct colleagues. How large would that risk be?

</comment><comment><USER38> Familiarity breeds contempt. Everyone hates what they wrote a few years ago, as it represents the person and place they were, and they've done so much improving in the interim.

Keep it on your resumé - for all the reasons everyone else has posted.

</comment><comment><USER18> I would say something along the lines of what you said here. You were new, there are a few things you'd have done differently now (and list what those are) but that people love it and its not your primary interest anymore, etc.

</comment><comment><USER39> If I were hiring, I'd look at your ability to organize people and generate interest in what you do, and your ability to make something that others find useful.

</comment><comment><USER40> Make sure you include sample code that shows your recent good code. If they think all your code looks like that it's going to be a big negative.

</comment><comment><USER41> Definitely. I'd put it on and add some info about what you've learned since. It must have grown you in immeasurable ways, so why hide that?

</comment><comment><USER42> If you hate the code that much and you've been working on it for 9 years, why haven't you gone back and "fixed" the ugly broken bits?

</comment><comment><USER43> Yes, put it. At the end of the day , everybody hates the code (that's the earned maturity/knowledge)

</comment><comment><USER44> You're the one that wrote PHPBulletinBoard??? :)

</comment><comment><USER45> Yes, you put it on, and say 2001-2008 on it.

</comment><comment><USER46> Yes. Experience, even with crap, is useful.

</comment><comment><USER47> If you put it on GitHub, wouldn't it create the impression that you had recently written it, due to the timestamps?

If I were you, I'd milk that app's notoriety for all it's worth, though I might not make it _too_ easy for people to find the code. Oh, and don't be ashamed of your baby. Even ugly babies are worthy of bragging if they're popular.

<comment><USER48> The commits will have the actual timestamps if he preserved history.

</comment></comment><comment><USER49> Hey Everyone - did you know that I once single-handedly saved 1.6 million kitties from a forest fire?

Yeah, well I did. Cool, I know. But hey, I like puppies better than kitties. Should I mention my amazing feat on this application to the NYC Fire Department?

Do you think the NYC FD will even care I saved 1.6 million kitties? Saving turtles is WAY cooler right now, sort of like node.js., I wouldn't want anyone to know that I was even good at saving kitties.

Thx, Grant</comment>


They Whiteboarded Me - <AUTHOR> http://they.whiteboarded.me/ <comment><USER2> A small suggestion to the website owner:

The "What is whiteboarding" section has a longer and better argument against whiteboarding than the "Why is whiteboarding bad?" section.

It might be of benefit to have more than a 2-sentence argument against whiteboarding on a website designed to rid the world of whiteboarding interviews. Rather than simply referring people to "additional resources", why not include some of the most pertinent points (sourced, of course) directly under the "Why whiteboarding is bad" section?

Of course, I wholly agree with the sentiment of the website. However, I feel like it could be much more persuasive.</comment>


Activist Jailed for Facebook Posts; FBI Tracks Him as "Black Identity Extremist" - <AUTHOR> https://www.theguardian.com/world/2018/may/11/rakem-balogun-interview-black-identity-extremists-fbi-surveillance <comment><USER2> I suspect he got the attention of the FBI by being publicly vocal about his hatred of police but was arrested for having a gun when he was prohibited because of his conviction for domestic assault.

[http://foreignpolicy.com/2018/01/30/is-a-court-case-in- texas...](http://foreignpolicy.com/2018/01/30/is-a-court-case-in-texas-the- first-prosecution-of-a-black-identity-extremist/)

<comment><USER3> Thank you for saving me from going on an anti-free speech tirade. And now I see the article has been flagged, presumably because the headline is misleading.

<comment><USER4> > But this month, a judge rejected the charge, saying the firearms law did not > apply.

<comment><USER5> shhh, any excuse to deny a black man his rights is fine.

</comment></comment></comment></comment><comment><USER6> >Per their statement, Balogon was in leadership roles with Geronimo Tactical, Huey P. Newton Gun Club, and Guerrilla Mainframe. Let's take a look at these three groups.

Geronimo Tactical:

>Instagram account, which has almost four thousand followers, is much more straight forward. It simply has a quote from the Communist mass murderer Mao Zedong that says "Political power grows from the barrel of a gun", a PayPal link, and LOTS of pictures of the group conducting paramilitary training.

Huey P. Newton Gun Club (HPNGC):

>"In essence we take responsibility for the growth and development for our community which is an element to our nationalist ideals. We understand and know we will not win every person over to our methods and practices, however we accept we must walk this difficult path towards eventual armed struggle."

>"We are servants above anything else and more than militants we employ the revolutionary ideals of nationalism. Nationalism will only organize the talents that we currently possess as a people and aid our function as a nation. The beginning of this tasks is to arm the body and minds of black people in America in which the Huey P. Newton Gun Club intends to be a part of."

>HPNGC faced a lot of scrutiny when it was revealed that Micah Xavier Johnson, who ambushed and killed five police officers during a Black Lives Matter protest in Dallas, Texas in 2016, may have been affiliated with the militant black nationalist group. They have also come under fire for brandishing their weapons and confronting employees at a Dallas gas station.

Guerrilla Mainframe:

>According to their website, Guerrilla Mainframe is another militia group founded in 2008 in Dallas, Texas. The organizations core foundations are Pan African with teachings from the likes of Kwame Nkrumah and Sekou Toure, both African Marxist political leaders.

>We support the abolishment of the U.S. Constitution as a political right, and favor a government based on the needs of the people.

>We want all freedom fighters/prisoners of war to be freed immediately to rejoin the peoples struggle for revolution.

>We demand the redistribution of land, power, and resources be returned to exploited people around the world. We are unified against the evils of capitalism, fascism, and imperialism in all forms.

>We believe in Revolution, by this meaning the Total overthrow of the Capitalist System by direct struggle conflict.

Some of Balogun's social media posts:

>On July, 6th 2017, he changed his profile picture to an image of Micah Xavier Johnson in honor of the one year anniversary of the day he ambushed and murdered five Dallas police officers in cold blood. On that same day he said "Comrades and Family tomorrow is #ClaimMicahXDay in memory of a great sacrifice made by a local Dallas Revolutionary! Zalute"

>On July, 7th 2017, the one year anniversary of the murders of Senior Cpl. Lorne Ahrens, Officer Michael Krol, Sgt. Michael Smith, Officer Brent Thompson, and Officer Patricio "Patrick" Zamarripa; he said "Today one year ago one Black Man brought Dallas Pig Department to their knees. #77". On that same day he posted pictures of himself as well as pictures of Micah's dead body with the caption "I'm wearing brown and khaki in solidarity for Micah X #77".

Source for all of the above is [https://farleftwatch.com/2018/01/08/far-left- militia-leader-...](https://farleftwatch.com/2018/01/08/far-left-militia- leader-rakem-balogun-arrested-by-fbi/) which itself provides proper sourcing for these claims.

<comment><USER7> Okay, but what's the point? You could have posted the link by itself if you were just trying to provide additional information, so I feel like you're trying to make some sort of argument by choosing these and repeating them in your comment, but you've left that part out.

<comment><USER6> The point is to provide some counterbalance to the Guardian's biased framing of this case.

The excerpts are provided for the reader's convenience to quickly convey the gist of the article.

If you want to know more or verify the accuracy of this information, you can visit the link.

<comment><USER7> > The point is to provide some counterbalance to the Guardian's biased framing > of this case.

> The excerpts are provided for the reader's convenience to quickly convey the > gist of the article.

Sure, and they do that. The question was why you thought the article was worth including, and there could have been multiple answers, so I decided to ask. Perhaps you thought it was self evident, but that's often not as clear in a forums as people would like to think.

As to your reason for inclusion, I don't really see the Guardian's representation all that biased, because I think the points you referenced are for the most part irrelevant. In this country, we're supposed to have a right to free speech. He was detained for months and prosecuted for his speech. What that speech was advocating isn't really the point.

I do think it's useful information to have though, so thanks.

</comment></comment></comment></comment><comment><USER8> >Keighley made no mention of Balogun's specific actions at the rally, but noted the marchers' anti-police statements, such as "oink oink bang bang" and "the only good pig is a pig that's dead". The agent also mentioned Balogun's Facebook posts calling a murder suspect in a police officer's death a "hero" and expressing "solidarity" with the man who killed officers in Texas when he posted: "They deserve what they got."

Yeah he obviously does not know why they were paying attention to him!

<comment><USER7> _Keighley, however, later admitted the FBI had no evidence of Balogun making any specific threats about harming police._

That's the next sentence. It's not about why they were looking at him, it's about why they _arrested_ him, and kept him detained.

 _"Sometimes when you couldn't prove somebody was a terrorist, it's because they weren't a terrorist," he said, adding that prosecutors' argument that Balogun was too dangerous to be released on bail was "astonishing".

"It seems this effort was designed to punish him for his political activity rather than actually solve any sort of security issue."_

I'm not sure how this wasn't dismissed fairly quickly as an infringement of his first amendment rights.

<comment><USER9> "You can beat the rap, but you can't beat the ride."

This was extrajudicial punishment for expressing anti-police sentiments. They were able to take away his freedom, job, home, vehicle, and family, without even going to trial. By the time the prosecution was forced to drop the case for lack of evidence, their mission had already been accomplished.

They abused the justice system to punish prior to conviction, all based on their perception of his unforgivable blackness.

</comment></comment></comment><comment><USER10> He's misunderstanding what tyranny is. Tyranny isn't when the police state arrests you for criticizing them. Tyranny is when Peter Sweden or whoever is suspended from Twitter for being racist. (Said in a 2018 Libertarian voice).

<comment><USER11> Even with the parenthetical... Poe's law. I just can't tell any more.

<comment><USER12> I'm pretty sure this is satyric, but it bother me that even on HN, i have to read this type of comment twice to understand the author.

</comment></comment></comment><comment><USER13> What is the line between exercise of free speech and incitement of violence?

If a white supremacist openly advocates for the murder of Jews and helps organise armed militias, should that person be tracked by the FBI and prosecuted?

If a high school student openly advocates for the murder of teachers and flaunts his access to firearms and knives, should that person be tracked by the FBI and prosecuted?

<comment><USER14> I think you are being downvoted because you only read the headline.

I'm with you that it is ok for the FBI to track people's public comments when they fit a risk profile, and to track their private communications with a warrent.

But in this case, the problem is that this man was arrested and charged with a vague terrorism thing for what amounts to facebook posts expressing sympathy with copkillers.

But in the US, it is your legal right to do that.

<comment><USER15> > this man was arrested and charged with a vague terrorism thing

Incorrect. He was charged with illegal possession of a firearm, that's a specific and not vague thing. He was denied bail as a potential threat based on him expressing sympathy for copkillers.

<comment><AUTHOR> His possession of firearms was legal, and the judge tossed that charge. They didn't come to his home because they suspected an illegally possessed firearm. It certainly appears that they came on a fishing expedition because he was "identified" as a threat. The FBI admitted a lack of any direct threat.

<comment><USER15> > They didn't come to his home because they suspected an illegally possessed > firearm.

I was curious about this as well, the Foreign Policy article has more detail:

"In his affidavit, Keighley describes learning that Daniels placed a firearm in his checked luggage — in compliance with airline regulations, according to the defense — which was then delayed, before being returned to his home address in Dallas.

The FBI obtained a search warrant on Dec. 7, based on Daniels's prior conviction, and the raid took place five days later."

[http://foreignpolicy.com/2018/01/30/is-a-court-case-in- texas...](http://foreignpolicy.com/2018/01/30/is-a-court-case-in-texas-the- first-prosecution-of-a-black-identity-extremist/)

This indicates the warrant was indeed for illegal possession.

<comment><AUTHOR> Interesting, nice find and thanks- I was curious as well. I guess the warrant was wrongly issued and pursued then, given that the judge tossed that charge out. If that is the case, it really seems to boil down to intimidation.

</comment></comment></comment></comment></comment></comment><comment><USER16> If you would like to see what the United States will look like in 2024, look at Türkiye in 2018. Watching it all unfold is terrifying. All major countries right now are switching from Republics to single-man rule populists.

<comment><USER17> Sorry, America was a republic centuries before Turkey and doesn't have the same authoritarian cultural tradition.

<comment><USER9> No tradition can survive beyond the lifespan of a man, unless it is passed down to the children.

The ones who voted in 2016 are not children of the revolution. They aren't even children of the children of the revolution. They grew up saying the Pledge of Allegiance every day in school, and standing for the national anthem before every sporting event.

It isn't the _same_ authoritarian cultural tradition, but America is _very_ authoritarian at the median. It thankfully retains a long, fat, and largely disorganized tail pointing towards libertarian, that moderates the laws and policies that are able to be enacted.

Even now, some people clamor for censorship, establishment of religion, restrictions on the press, gun control, expanded police powers, punishments without due process, abolition of the electoral college, for-profit prison labor, etc. There isn't a right crucial to liberty that some number of Americans isn't shouting to repeal and abolish. But they don't have the votes. Not yet.

More voters are being born every day, and they are being taught to believe in certain things, so they will vote their beliefs when they grow to voting age. It can happen here. It can all fall apart within a single generation.</comment></comment></comment>


UK metal detector enthusiast finds ancient Roman bronze artefacts - <AUTHOR> http://www.breakingnews.ie/world/uk-metal-detector-enthusiast-finds-ancient-roman-bronze-artefacts-807584.html <comment><USER2> I don't really understand why archeologists always assume every single statue from the ancient world is religious in nature. Why can't people just buy a cute dog Knick-nack for their kitchen shelf?

<comment><USER3> I don't disagree with you, but in this case they are identifying the type of statue:

> The licking dog is an example of a healing statue, and may be linked to a > Roman healing temple at Lydney.

I have not heard of a "healing statue", so a bit of searching found this in Wikipedia:

> Some healing temples also used sacred dogs to lick the wounds of sick > petitioners.

So it is an interpretation of the statue - not a bad interpretation, but some explanation would be nice.

</comment></comment><comment><USER4> To be nitpicky, (and slightly tongue in cheek), would "treasure hunter" not be a more appropriate term than "metal detector enthusiast"? I assume if there were a better tool for finding buried treasure, they'd happily ditch their metal detectors.

<comment><USER5> I think "treasure hunter" is more likely to conjure the image of someone who'd pawn off an artifact to someone else. Like the people who busted into Egyptian tombs over the centuries.

</comment></comment><comment><USER5> Archeologists hate him!

No really, they probably do. Archeologists have a love-hate relationship with laymen who hit upon artifacts. On one hand, a find is a find, and local communities can often point out likely archeological sites. On the other, these people might not handle artifacts properly, or fail to take notice of their context to the degree an archeologist might want, like taking notice of the depth at which it was.

</comment><comment><USER6> _Detectorists_ , a BBC show, is a wonderful (drama) show that explores this subculture. Every time a story like this comes up, I can't help but recall the characters' responses when they (spoilers) discover priceless ancient artifacts!</comment>


Custom Game Engines: A Small Study - <AUTHOR> https://gist.github.com/raysan5/909dc6cf33ed40223eb0dfe625c0de74 <comment><USER2> Unity, Unreal, Godot, Game Maker etc are all so popular these days it's easy to lose sight of how you can make a game with a "custom engine".

"Make games, not engines" is fine advice in general but you can make an engine for _your specific game_ without making that engine look like Unity. You don't need a sophisticated custom level editor, you can just use something off the shelf like Tiled. You don't need an extension language (like C# or Lua), you can just do the whole engine + game in one project, with one language.

You might also have a valuable mental toolkit that is squandered when using an existing engine. I can't count all the times I've said, "I know how to implement that, but not in Unity." My mental model of how objects are drawn to the screen consists entirely of buffers and shader program invocations. There are also plenty of games that just don't benefit from some of the core features of engines, like physics, and need to roll their own anyway.

Some games have fairly custom needs and aren't a good match for existing engines (like _No Man's Sky_ or _Minecraft_ ) and some games (especially 2D games) have very simple needs and an engine doesn't provide as much of an edge over something like a framework (e.g. MonoGame) or platform abstraction library (e.g. SDL).

Or in short, "custom engine" does not automatically mean "half-baked alternative to Unity". Just how it's totally fine to make your next web app backend without using a high-level framework, and it's totally fine to make your next frontend without React. If anything, it's easier than ever to make a frontend without React, just like it's easier than ever to make a game without Unity.

<comment><USER3> Got any recommendations on how someone that can code a little but isn't a professional might go about learning to make an engine?

<comment><USER2> What kind of engine do you want to make and what is your goal by making that engine?

The generic, one-size-fits-some advice is: Go and make three games, and by the time you're done with the third game, you'll have a clear idea of what you want from an engine.

<comment><USER4> I'd like to eventually learn to make a simple 3d engine suitable for a retro FPS. However, to start with I'd like to learn how to make 2d engines for side scrolling or isometric action games.

Basically, game dev is a hobby for me so I'm in no rush to actually publish a game. I'm interested in learning nearly every aspect of how games are made.

I've already been playing around with Unity and Game Maker Studio a bit. I'm continuing to learn Unity but rather than spending tons of time learning how to use a game engine's libraries I would prefer to learn how these things are built and make one myself.

<comment><USER2> You might find it valuable to make some simple games without using an existing engine. For example, a simple action platformer game is nice because the physics can be pretty simple.

</comment></comment></comment></comment></comment><comment><USER5> Cave Story is another one-person game, he made everything himself; art, music and code.

With time, as technology peaks; more one-person engines will appear because you don't have to chase the next big thing all the time.

I'm building a MMO from scratch since 20 years back, the most recent MMO that uses my server is free-to-play this weekend:

[https://store.steampowered.com/app/486310/Meadow/](https://store.steampowered.com/app/486310/Meadow/)

The source for the backend is here:

[https://github.com/tinspin/fuse](https://github.com/tinspin/fuse)

You can call it a one-man MMO backend.

I'm going to release a MVP for the C++ 3D MMO client in about a month hopefully, here is a tech demo for it:

[http://talk.binarytask.com/task?id=579711216639635462](http://talk.binarytask.com/task?id=579711216639635462)

<comment><USER6> As someone who writes a lot of server code, I've always been curious about the architecture for MMOs--how do you handle issues of scale (or is it fine to assume everything is running on the same server)? If you do concern yourself with scale, presumably you have to "shard" your universe somehow? Do you shard by in-game geographical regions? If so, how do you handle players moving from one region (shard) to another? What is the best practice for handling game state? A SQL database? A redis server? Or maybe you just keep things in memory and persist asynchronously? Can anyone recommend blog posts or similar on these subjects?

<comment><USER7> Fun fact: the word "shard" in this context was coined by the dev team of the first major commercial MMO, Ultima Online, as an in-universe explanation for why the game world was split into multiple servers.

If you're looking for an exemplary server architecture for MMOs, look no further than UO. That game came out in 1997 and supported worlds with thousands of players and millions of persistent objects. Players could build their own houses within the game world, decorate (and later design) them to an incredible degree [1], and have other players visit (welcome or not). Players could run their own shops within their homes and sell their own hand-crafted, signed goods (weapons, armour, clothing, furniture) in addition to any found treasure they wanted to offer.

What made UO so impressive, technically, was how they accomplished all of this on such modest hardware as was available in 1995 [2]. This second link is to the GDC postmortem of the game. If you're interested, I recommend you check it out. It may not answer all your technical questions but it's extremely interesting nonetheless. The story of how they had to shard the game is part of the talk.

I'm pretty sure they did not use any off-the-shelf databases as the performance would have been terrible at the time. Everything would have been custom. The custom networking protocol is extremely reserved (not chatty), since it was designed for dial-up modems. Even when you run the game on modern hardware with broadband, the game uses on the order of a few megabytes _per day_ of traffic.

[1] [https://duckduckgo.com/?q=uo+house+decoration&t=osx&iax=imag...](https://duckduckgo.com/?q=uo+house+decoration&t=osx&iax=images&ia=images)

[2] [https://www.youtube.com/watch?v=lnnsDi7Sxq0](https://www.youtube.com/watch?v=lnnsDi7Sxq0)

<comment><USER8> I have heard Richard Garriott claim credit for coining "shard," and I'm very skeptical. The first database paper I could find that uses "shard" (as an acronym: System for Highly Available Replicated DAta) is from 1986: [https://dl.acm.org/doi/book/10.5555/889956](https://dl.acm.org/doi/book/10.5555/889956)

<comment><USER9> Those authors may have been first, but I seriously doubt they were a significant influence on the term's popularity. If there's one thing I've learned from reading a lot of CS papers, it's that pretty much any word you pick out of a hat has been used as an acronym by _somebody_.

The paper you link to doesn't use "shard" as a noun, and in fact it doesn't describe a system that has "shards" in the sense that UO and just about everyone else since then has understood that term, i.e. independent partitions of a dataset:

> The reader is referred to [SBK] for a detailed description of the > architecture of the SHARD system. Briefly, the main ideas are as follows. > The network consists of a collection of nodes, _each of which has a copy of > the complete database._

(emphasis mine)

Additionally, according to Google Scholar, that paper was only ever cited 21 times. I checked the 16 of those citations for which full-text is available, and not a single one of them used the word "shard" as anything other than a passing reference to the name of the system itself.

</comment></comment></comment></comment></comment><comment><USER10> I noticed an omission on this list was Minecraft. Today, the game of course has thousands of engineers working on the various versions of the game due to its success. But in the beginning (and throughout Alpha/Beta and during the beginning years of its 1.0 development) it was built on a hacked-together Java LIBJDX 2.0-based engine.

Here's the first video uploaded by Notch when he first embarked on a new "Cave game": [https://www.youtube.com/watch?v=UMpv5kZ9-rE](https://www.youtube.com/watch?v=UMpv5kZ9-rE) (the original video is blocked in the US for some reason)

An interesting side-effect of this technical decision was that the game was heavily moddable. Java byte code is relatively easy to decompile, and class files easily modularize the various components of the game. So installing a mod amounted to un-zipping the minecraft.jar file and replacing .class files with modded ones. In fact, this is still how modding works in the Java version of the game.

<comment><USER11> I find it hard to believe that Minecraft today has thousands of engineers working on it.

<comment><USER12> Minecraft the Java game certainly doesn't but the whole IP probably has a lot more people working on it than people think. You have the Java version, Bedrock version, AR game and all the ancillary porting involved as well as all the backend services etc. powering Realms and the other bits and pieces. I think thousands of engineers is a massive exaggeration but it's certainly going to be a lot.

<comment><USER13> Mojang, the developer of Minecraft, had 70 employees in 2016. It will definitely not have thousands by now. Maybe hundreds.

<comment><USER12> Yes that's what I said.

<comment><USER14> Interesting that you interpreted this as a correction and not support of your point

<comment><USER12> I guess that's because of the design of the interface here. Generally speaking if I support or agree with something I upvote it. I typically only reply if I have something useful to add or I disagree. That also seems to be the general style of commenting here at least in my experience.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> Regarding A Plague Tale, I used to work at Asobo Studio on the Engine/Tools team. That was during the Toy Story 3 / Disney Pixar Heroes period. The in- house engine is called Zouna and is very good. However, the piece of software that was the most interesting to me is their in house level editor called PAWAP (can't remember what the acronym meant) . It's a 20+ years old C++ codebase dating back to Kalisto (where most of the founders of Asobo used to work), of course modernised over time. I changed code that was written before C++98 was standardised! The Engine team is amazing there and it shows in the games.

<comment><USER16> The graphics of A Plague Tale are astounding. Great job from all of them.

</comment></comment><comment><USER17> One surprising omission here was Paradox, which uses its own in-house engine for (AFAICT) all of its grand strategy games (though this seems to apply only to their own studio(s); Cities: Skylines, for example, is Unity-based, and I believe Surviving Mars derives from whatever engine Haemimont uses for its Tropico games).

TaleWorlds is another studio that wrote its own engine for Mount & Blade (reused later for M&B Warband and its expansions), and more recently developed a new engine from scratch for the recently-released (and 8 years awaited) Mount & Blade 2: Bannerlord. The older M&B games were definitely niche, but Bannerlord's definitely notable going by the numbers (it's currently in the Top 10 games by concurrent players per steamcharts.com, though that seems to be tapering off now that the novelty's wearing off a bit; it also broke Steam's payment processing within minutes after launch). Early Access, but still an interesting example.

<comment><USER18> Did they really develop a new engine? This is an interesting case then: Bannerlord feels like a really polished Warband.

The opposite seems way more common: a sequel that tries to be different but noticeably uses the same tech under the hood.

<comment><USER17> Yep, entirely new engine. Warband used a custom bytecode-like programming language that required Python scripts to generate, whereas Bannerlord uses C# and XML. The engine rewrite is a big reason why it took so long to develop, but it was well worth it.

</comment></comment></comment><comment><USER19> As with all things, there's a balance and a place for technical trade offs to be made. The first entry on the list, Activision/Blizzard, built Hearthstone in Unity. A better case study would look at what games are successful, and then look at what engines they use.

One way to look at things, is who in recent years won the (imo) biggest indie game award, the Seumas McNally Grand Prize:

\- A Short Hike: Unity

\- Return of the Obra Dinn: Unity

\- Night in the Woods: Unity

\- Quadrilateral Cowboy: id Tech 4

\- Her Story: Unity

\- Outer Wilds: Unity

\- Papers, Please: custom using OpenFL/Haxe

\- Cart Life: Adventure Game Studio

I admittedly started looking because I knew Obra Din was Unity, so there's some bias in category selection. That brings us to 2013. That 5/8 Unity, and 7/8 using an engine. The remaining 1/8 (Papers, Please) was developed by Lukas Pope, who later made Return of the Obra Dinn in Unity. This is a list chosen by game developers, but I would think that would skew the list towards impressive custom things.

I do agree with the spirit of the post: You don't have to use an engine. Nothing about a game engine is magical. There's lots of success stories on both sides.

<comment><USER20> I am disabled and have played a bunch of games (DRM-free only, via GOG or Humble Bundle) and I can confirm that Unity games are extremely common, including on tiny 2d games, visual novels, etc. I wouldn't be surprised if over 5 of 8 games in the past decade (or at least the last 8 years) used Unity.

Interestingly, from the Wikipedia page it seems that Unity was a result of "our game didn't do well but we made awesome tools". They now have 2000+ employees according to Wikipedia.

The employee numbers on some of these companies is misleading. Nintendo does not just make video games, but the employee count covers everyone. CD Projekt employee count includes GOG and is somehow mostly the developer side, but GOG still has 172 employees (but not a single employee over 50, and only 2 in all of CD Projekt :/, also for anyone else wondering while I'm looking at the stats, GOG is a bit under and the rest of CD Projekt a bit over 25% women). It looks like Valve does both development and Steam with 360ish employees.

Also publishers often do quite a bit of QA and such for games they publish (even if it often doesn't seem like it :/), so comparing publishers with studios that have outside publishers is also not getting the full picture.

Also worth noting the open source RenPy that a number of visual novels use.

</comment></comment><comment><USER21> I'm working on my own 'no-code' game creation tool for almost 10 years now.

I had to create my own game engine because it had to be 100% data driven, and none of the existing ones really fitted my need.

The cool thing about a data driven engine is that there is no building and restarting phase. You just edit everything inside the running game.

You can check it out at [https://rpgplayground.com](https://rpgplayground.com) .

<comment><USER22> Looks great, I'm working on a similar kind of project specifically for making Game Boy games.

[https://www.gbstudio.dev/](https://www.gbstudio.dev/)

I'll definitely have a look at your project for some ideas.

<comment><USER23> Just want to say I love your project, and shout loudly about it to whoever will listen. :P It's very exciting! Thank you for your work.

</comment></comment></comment><comment><USER24> Many of these game 'engines' are not engines at all in the Unreal/Unity sense of things. More a collection of libraries and code that are used to implement a game. For many games this is just fine (and sometimes a better fit than a monolithic engine).

If you can't take a read-only copy of the engine and implement a game on top of that then you don't have an engine. Marketing will still want you to name the 'engine' though!

Back in the earlier days of Unreal there was an industry joke that Unreal was great if you were making a single player third person space marine game on Xbox or PC. Unreal has come a very long way since then and is a truly wonderful achievement but it took a huge amount of time, resources and skill to get it to where it is now.

<comment><USER25> > If you can't take a read-only copy of the engine and implement a game on top > of that then you don't have an engine. Marketing will still want you to name > the 'engine' though!

I guess id Tech 1 -- which they licensed to many developers -- was not an engine then? I don't think that's a useful definition.

> Back in the earlier days of Unreal there was an industry joke that Unreal > was great if you were making a single player third person space marine game > on Xbox or PC.

Did Unreal really fall that far after the glory days of Unreal, Unreal Tournament '99, Deus Ex, Clive Barker's Undying..? Wow. The Xbox generation of games really ruined so many things.

</comment></comment><comment><USER26> I highly recommend Jonathan Blow's (Braid, The Witness) streams on custom programming language development (jai [1]) and game development: [https://www.youtube.com/channel/UCCuoqzrsHlwv1YyPKLuMDUQ](https://www.youtube.com/channel/UCCuoqzrsHlwv1YyPKLuMDUQ)

In one of the videos he says that the big engines are trying to be everything for everybody, and there's value in developing a custom engine for your game's specific needs.

[1] [https://inductive.no/jai/](https://inductive.no/jai/)

<comment><USER12> I think the other thing to note is that you aren't really making an engine just making the game. You might have some reused bits culled from one game to the next but that's not really "an engine" so to speak.

<comment><USER2> I disagree on this one, for sure. That definition of "engine" is too narrow.

There's a tendency these days for people to think of "game engine" in terms of the big, general-purpose engines like Unity, Unreal, and Godot. However, by analogy, a car still has an engine even if that engine was purpose-built for the specific car and is never reused in other cars.

It would be really weird to have to come up with a different name for the game engine for _The Witness_ — what would you even call that, if not an "engine"? So, "engine" is going to refer to custom, never-reused engines in games until we get a better word for it.

<comment><USER12> I'd call something an engine if it were reasonably general and could be repurposed. In the same way I can take the engine out of one car and plumb it into another. I'd also say an engine has to provide a relatively complete set of functionality otherwise you're building a library or framework. SDL as a classic example of that.

I also think it's fine to think in terms of the game you're making between "game stuff" and "engine stuff" where the "engine stuff" is essentially things that could reasonably be repurposed.

In the example of The Witness I'd not call it anything as it doesn't exist separately to it as far as I'm aware. I'd still understand someone who referred to it as the game engine though.

The main point IMO is that making an engine implies more than just making the tech needed to power a game.

<comment><USER2> > The main point IMO is that making an engine implies more than just making > the tech needed to power a game.

Then I think we have a very fundamental disagreement here. Your definition for "engine" is definitely not mine.

If we can't talk about the engine for _The Witness_ we are at a loss, because there isn't a different word that we could reasonably use, besides "engine".

<comment><USER12> I said I'd understand if you talked about the engine of The Witness. I think that is a fairly common colloquial expression. Engine is a fairly fuzzy concept at best. That you think there isn't a different word like 'tech', 'framework', 'libraries' or the myriad of alternatives is by the by.

For example some of the framework for The Witness was ported to Jai for the sokoban game Thekla is working on.

</comment></comment></comment></comment></comment></comment><comment><USER27> In the medium sized category, Valve is the obvious odd child. They have a small number of employees, but they also famously make Steam. This certainly requires a large amount of engineering effort, but also brings in literal billions in cash. They could almost certainly afford to outsource the creation of a custom game engine, since they have the cash flow and it's probably not as core an activity as maintaining Steam.

But it could also be in house. I don't have a feel for how many engineers it takes to make a game engine.

<comment><USER28> Speaking of Valve's source engine, in the recent chat log leaks, the Valve employee says the Source 2 engine is essentially just the Source 1 engine with new physics tacked on.

<comment><USER29> I guess in comparison to how far other storied engines such as UE4 have come, Source 2 does feel like its much less of a step forward.

One thing I really like is the level editor tools, with Hammer for source 2 they've re-implemented BSP geometry tools with geometry tools that use static meshes.

A good/modern geometry level editor workflow is sorely lacking on the other available engines.

<comment><USER30> I really agree here. I've used Hammer since... well since it was Worldcraft and I used it for Quake levels. Maybe it's a VI vs EMACS type thing, but I latched onto it pretty quickly, and have always found it the easiest editor to use.

I'm really curious how they will expand it for VR level editing with the Alyx release. One thing I think you'd need is a way to quickly view the environment in VR while editing. This seems really important if you want to carefully craft some specific visuals for VR, or certain interactions. Can for example the player stand next to a hole in a wall and reach through it to access something.

</comment></comment></comment></comment><comment><USER31> I've been dabbling a bit in game development in recent years and have so far taken the approach of just building small composable libraries or headers encompassing units of functionality as needed.

This of course meant progress was rather slow-going early on, having no prior experience with things like 3D rendering or the related math, spatial indexes/collision detection, the list goes on... I figured by creating everything as needed I would at least be getting a better understanding of what's going on and how everything comes together, plus owning all of the code doesn't hurt.

Last weekend I successfully participated in a 24hr irc art contest by submitting a small game using some of these components, and I'm happy to say it's a whole lot easier for me to slap something simple together today with this pile of parts than it was a couple years ago.

I made a Show HN about the 24hr contest submission since it's all GPL and thought some HNers might enjoy poking at it, but it didn't seem to get any notice. This was the post if interested [https://news.ycombinator.com/item?id=22940287](https://news.ycombinator.com/item?id=22940287)

</comment><comment><USER32> Came here to mention Sapiens, an indie written from scratch by this guy named Dave, from NZ. Dave is great and goes through his development process of the custom Lua engine he wrote for his game engine, the AI, as well as design decions. Follow him here: [https://www.youtube.com/user/majiDave](https://www.youtube.com/user/majiDave)

</comment><comment><USER33> I am making a custom c++ 3D game engine using openGL right now and it's a massive undertaking. I have a lot of respect for folks like Jonathan Blow who manages to be an incredible game designer while also being a super programmer. In my case, i just decided to give it a try because if i ever watch an engine/game maker software tutorial again i will most likely throw up.The amount of trivia knowledge you need to have to make something in those engines is huge and usually non transferible between them. Also if you want to make sure you will provide the absolute best experience possible for your players, you need to have control of the low level stuff. I may be wrong but i don't think Unity allows you that kind of control. Two examples are Subnautica and Firewatch, while being excelent games in their own way, fail miserably in loading up the game assets in time after player spawn (subnautica mostly) and are filled with visual artifacts and texture problems (both games) while The Witness does not give you even the smallest hickup whatsoever.

<comment><USER34> >Also if you want to make sure you will provide the absolute best experience possible for your players, you need to have control of the low level stuff.

I disagree with that. Sometimes you need, sometimes you don't.

>I may be wrong but i don't think Unity allows you that kind of control.

It allows you to use your own level stuff, like your own custom renderer, or your own physics engines. Some studios releasing AAA games do that, because they have the resources.

</comment></comment><comment><USER35> Nice list! Interesting to see the breakdown of companies and which engines they use/which ones use completely custom ones and which use modified versions of stuff like Unity and Unreal engine.

That said, it might be interesting to look at companies that changed from using custom engines to stuff like Unity/Unreal at some point, or perhaps the other way around. I remember Rare originally building most of their game engines inhouse at one point, but their Xbox 360/Xbox One era games seem to have changed that.

It's also interesting to note that there are also quite a few custom game engines being made for various fan game development scenes too, as well as off the shelf ones specifically made for games based on that series.

Or that the same 'build games not engines' and 'unless everything is custom it's not worth it' debates exist there too.

Either way, some of the notable ones there include:

\- Hello Engine, which was basically a hybrid of various 2D Mario titles in a way that made it very easy to use as a level editor. Has roughly the same reputation as Unity does on Steam because of that, with at least one game basically marketing itself as a parody of it as a result. \- Gatete Engine, with a fairly similar featureset, but a more modern coding style \- Super Mario Bros X, a level editor created by the guy behind Terraria, which has since ended up decompiled and remade in a different programming language by fans, with various forks made based on that.

There are also obviously a ton of individuals and small groups building their own engines for individual games in that community too.

Finally, the whole 'make games not engines' thing doesn't have to refer to the entire engine. No, it can be equally easy to get distracted by the possibility of adding extra features to an existing one too.

</comment><comment><USER36> It seems to be missing Dunia (Far Cry series) in the Ubisoft list. You could say that since it is based on an (early) CryEngine it isn't "custom" but it already contains engines that were forked off 3rd party engines (IW from Quake 3, Creation from NetImmerse, Source 2 from Quake 1, etc).

<comment><USER37> Quake: [https://en.wikipedia.org/wiki/File:Quake_- _family_tree_2.svg](https://en.wikipedia.org/wiki/File:Quake_- _family_tree_2.svg)

Cryengine: [https://en.wikipedia.org/wiki/File:Cryengine_Family_Tree_201...](https://en.wikipedia.org/wiki/File:Cryengine_Family_Tree_2016.svg)

</comment></comment><comment><USER38> > It would be really nice to know how many engineers are working on the engine > division for each company, I'm sure there would be some big surprises, > probably by the low number of engineers working in the engine and tools!

When I worked for Free Radical Design we had two big AAA games in development both using the FRD in-house custom game engine. I'd say the engineer split was something like 30:30:30 between engine and the two games, with another split between engine programming and tool programming (though there was some cross over there, for example one of the guys on the game team I was on worked on the game editor). The engine was really impressive - it was cross platform and ran on *Nix, Windows, XBox 360 and PS3. The engine guys did an amazing job on it.

</comment><comment><USER39> Urho3d seems like it's a new engine, it seems like it's pretty good.

Ogre3D is mentioned, but it's not as easy to use as it was, the doc seems poor, there are 2 versions of the engine (although it's a normal thing nowadays), so it seems the engine is dying.

</comment><comment><USER40> A couple rather remarkable engines not listed: -Whatever isometric games like AOE2DE are using and the custom engine used in Brigador. Brigador, esp, I read that the developers found that none of existing engines could satisfy their vision, so then spent a few years building their own. Finally it turned out good, the game though made by a very small team, looks spectacular, and runs well even on low end hardware.

-Whatever Avalanche Studio's are using for their games like Just Cause, Renegade Ops, and Mad Max. They graphics seems not only look good, but very performant on medium to low end PCs.

<comment><USER41> They use their own engine called the APEX engine.

"Just Cause 2 was announced in January 2008. Powered by the Apex Engine 2.0"

</comment></comment><comment><USER42> Really interesting!

The small studios (or one-man armies) are the ones using custom stuff because they have to do it all anyways, no biggie having to do a little leg work to import stuff.

When you're a bigger studio, having to coordinate and support multiple teams with different workflows, the engine and the tools it provides play a much bigger role. The studios with such scale either build something that works for them, or use some existing one provided by others.

<comment><USER43> I think the biggest reason for the custom code in the small teams is that they make 2D games. A 2D engine barely deserves the name and it's usually more hassle adapt to a 3rd party engine and its limitations than just write it yourself.

<comment><USER44> > A 2D engine barely deserves the name

If you say so. The vast majority of programmers would have no clue where to start if you put them up to the task.

A game engine is much more than a renderer, which is the only easier part in 2D versus 3D.

<comment><USER43> Sure there's a place for these engines. They abstract away graphics layers and bring convenience. But if you are a (semi-?) professional game dev, that's not a major hurdle.

I have a toy game in play around in my free time and started with SDL like so many. You can create windows and draw bitmaps really easily. But sooner rather than later you discover limits (bugs, performance limitations, less than ideal APIs) and see that just writing OpenGL code yourself is actually easier and more flexible. Many people go down that road.

edit: Concerning your edit about "more than a renderer": Yeah that other stuff is annoying and many still use SDL, SFML or whatever for that. See Factorio and many many others who do the rendering themselves and offload the other crap. I do that myself too.

<comment><USER45> _They abstract away graphics layers and bring convenience._

And bring physics, input, asset loading, networking, systems, scripting, etc.

<comment><USER46> > _And bring physics, input, asset loading, networking, systems, scripting, > etc._

Along with their own idiosyncrasies and assumptions. Which is something you may decide you do not want to deal with. E.g. hand-coding the little physics you need may be easier than learning the physics engine's API and adjusting your own architecture to mesh with it.

<comment><USER45> Yes. That's a very fair point. Most engines I've seen try to implement a general physics model that can handle every genre of games, and there's a lot to be gained by not using that and building something more focused on what you actually need.

<comment><USER12> Further to that very few engines are developing their own general purpose physics solver and are using middleware. Bullet, PhysX and Box2D are the most popular.

Roblox is the only really big engine company I can think of that actually develops their own physics tech (because they started off doing it).

<comment><USER47> NVIDIA completely bungled PhysX because they chased accuracy for ML/robotics reasons in the newer releases, and the latest PhysX is slower and deprecated useful games tech like cloth.

So both Unreal and Unity now have their own physics tech.

<comment><USER48> What do you mean by slower? Is it the new TGS solver you're talking about (which is optional and really doesn't need to be on for games)?

You're right that it seems like Unreal and Unity are ditching PhysX for something else (Unreal for the new Chaos engine, Unity for their new DOTS engine in collaboration with Havok). I'm just surprised that PhysX's performance problems had something to do with the move.

<comment><USER47> Unity started their physics engine as a test of the job system. When they got the latest PhysX drop, and it was slower, they made it into a full team. Unreal had been annoyed with PhysX for a while, and entertained the idea of writing their own, but never actually did it. When Unity engineers told them about the latest PhysX updates, they launched the Chaos project.

NVIDIA's incompetence is what kicked both of them off, basically. Both engines will continue to support PhysX 3.6 for existing customers.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER49> Game engines are super interesting. The variety of different things happening in the program, the audio/visual aspect, the real-time nature of the application. It's _exciting_ to work on. It just feels like there is a software machine chugging forward.

A few years ago I made a mostly crappy 2D arcade game with a custom engine ("Fractus" on Steam). It basically started as a way to learn graphics tech and try out some visualization ideas. Slowly it turned into a real project. For a long time the journey of creating an engine was the main thing. Unfortunately, I think this shows in the final game quality... still working on that. I remember reading a post about having a "forever project". It's that piece of software that you keep going back to hack on because it feels good. I find a graphics engine to be a good choice for this.

If you have an idea/design/plan for a game, you probably shouldn't make your own engine without a compelling reason. But what if you don't really have an idea, yet still want to get into the programming side of games? Try working on a toy engine!

</comment><comment><USER20> I was curios about Falcom since they have such consistently good games. I couldn't find a detailed lists but it sounds like most Falcom games (Including recent Ys games) use their own custom engine called the "Yamaneko Engine". Tokyo Xanadu and Cold Steel I and II (not sure about later ones) use Sony's PhyreEngine. They had 62 employees in 2019 according to Wikipedia.

</comment><comment><USER50> One I didn't see on here—probably because they're not particularly well known—is the custom engine built by Coilworks for their game, Cloudbuilt[1].

I find this super impressive, because (A) Coilworks was tiny, and (B) Cloudbuilt is a fully 3D, polygonal game.

While the simple graphics likely help, Super Cloudbuilt performs well, with great frame pacing and minimal input latency—not something I can say about a lot of more mainstream games on traditional engines. And Super Cloudbuilt is a lot of fun!

\---

[1] [https://www.double11.com/games/supercloudbuilt/](https://www.double11.com/games/supercloudbuilt/)

</comment><comment><USER51> Adding to the list of small, single-developer-multi-year 2d games: Starsector[1]. It's a modern descendant of a whole set of top down shooters (I found it looking for a modern Escape Velocity, but it's quite different). The developer is very active and the modding community is huge - lots of total conversions and expansions have been created by the community.

[1] [https://fractalsoftworks.com/](https://fractalsoftworks.com/)

<comment><USER52> Did you ever find a good modern Escape Velocity? I lost a lot of time to that game back in the day, and it's still one my favorites of all time.

<comment><USER51> The answer I've found the most often is Endless Sky[1]. It's open source and has the look. I've installed it and messed about before, but never gotten enough into it to feel like it's a worthy successor (for me).

Of course, EV Nova was released for Windows and still runs fine. I'll start a new campaign every few years. Not sure if you can still purchase it legally tho - the company has gone under[2].

Also - if you enjoy EV, I highly recommend checking out Subspace! It's not the same, exactly, but it scratches a lot of the same itches for me.

[1] [https://store.steampowered.com/app/404410/Endless_Sky/](https://store.steampowered.com/app/404410/Endless_Sky/)

[2] [https://en.wikipedia.org/wiki/Ambrosia_Software](https://en.wikipedia.org/wiki/Ambrosia_Software)

</comment></comment></comment><comment><USER53> The general rule for small (single-developer or maybe teams of single digits) studios is "make games, not engines".

Turns out people don't play engines, they play games. Just finishing making a game is hard enough and most don't make it that far. If you have to finish your engine before you start the remaining 90% of game development, well, keep your day job.

<comment><USER2> That's a reasonable general rule but it's too easy to remember the short version "make games, not engines" and forget the underlying advice, which is more subtle.

Making a game engine _first_ and then making a game _second_ is a fools errand, even if your goal is to make the game engine. However, you can make the engine in parallel with the game. Making a purpose-built engine in parallel with a game can be very reasonable.

Having made a number of games with and without off-the-shelf engines, whether or not a custom engine makes sense depends heavily on the specifics of your team and the game you are making.

<comment><USER24> This is a great point and often forgotten at game studios. Without a game driving the engine feature set you will almost certainly end up with an engine design that tries to do 'everything' because your target is Unreal/Unity.

</comment></comment></comment><comment><USER54> Something that could probably be added is that many people and studios still use third-party engines for prototyping new projects.

</comment><comment><USER55> Regarding the Fox Engine of Konami, in addition to the Pro Evolution Soccer games, it was also used for Metal Gear Solid V

</comment><comment><USER56> can I recommend «Autumn Night 3D Shooter» here? It's a short 3d shooter with custom engine that was made with love. Author boasts about it being 100% software-renderer (in other words, it doesn't use GPU acceleration)

</comment><comment><USER57> What a nice little gist, just what i needed to get motivated over the weekend.</comment>


Ask HN: What do you do to become a better software developer? - <AUTHOR>

<comment><USER2> Learn multiple programming languages, so that you are in a better position to use the one that is most suited to a given task. This also exposes you to new ways of thinking...some languages aren't nearly as good at expressing certain concepts as other languages.

The ability to "glue" is a related skill. One type of glue is inter-process communication and shell scripting, allowing you to tie small programs in multiple languages together. Another type of glue is a generator tool like SWIG or Cython, where a single large program can take advantage of a high- level language and a low-level language instead of being confined to one suboptimal language.

<comment><AUTHOR> Thanks for your recommendation! I came from the standard OO background but after reading "Coder at work". I am quite inspired to learn Haskel and Erlang

</comment></comment><comment><USER3> Not in any order:

Learn to do more than just write software. In fact, learning how to minimize source code is a good start (really source code is bad like crossing streams bad).

Learn how to read and leverage off of existing, hopefully open source, resources.

Learn how to design away problems instead of coding a solution for them.

Learn to keep things simple.

Learn to design/mockup and get feedback (UX, etc.) on your solutions before coding them.

Did I mention the try not to write code part?

<comment><AUTHOR> Emm... but why not write codes? I think, for example, code down algorithm is both good to understand the practical side of comp sci as well as a better way to remember algorithm.

<comment><USER3> Every time you write code you have to/should: Define requirements for it, define tests for it, continually run regression tests, design it, implement it, debug it, peer review it, etc. All of this is done to solve some problem in a specific domain. That is a lot of work when all you want to do is add some small feature to your overall software solution.

In software development communities, people are now able to pull from the works of others and build on it. Let's take the Rails community as an example. Many of the features I need in a software program have already been written and available for me. I need an SMS system? Done for me already. User authentication? Done. Persistence? Done.

One way of becoming a good software developer is to become better at taking existing solutions and integrating them into your final software solution. This should involve as little source code as possible.

</comment></comment></comment><comment><USER4> Personally I learn best from others.Two heads are always better than one, and it keeps me engaged with the material.

Ask your senior co-workers for help, or even your peers. I've learned a lot over code-reviews, whether its a sit down formal affair or a 5 minute, let-me- run-this-past-you sanity check.

</comment><comment><USER5> Practice, learn from others. Don't spend more time reading than coding, but a couple of books with good tips include "The Pragmatic Programmer" and "Apprenticeship Patterns"

Also going to dojos and doing katas.

<comment><AUTHOR> I guess I prone to the problem of reading more than i code. Got ton of e books from the recommendation at Stackoverflow. Think i should inspire myself to code 10,000 hrs

</comment></comment><comment><USER6> Write lots of "bad" code. Read lots of "bad" code. Fix lots of "bad" code.

In essence, fix lots of bugs.</comment>


Very Mention of Snowden's Name Makes Prosecutors Tremble - <AUTHOR> https://firstlook.org/theintercept/2015/06/04/mention-snowdens-name-makes-prosecutors-fear/

<comment><USER2> > [T]he defendant should be precluded from arguing or suggesting that the > undercover technique the government used in the underlying investigation was > improper.

Why not just say: "The defendant should be precluded from arguing he is innocent" while you're at it?

<comment><USER3> The prosecution is trying to limit the arguments the defense can make to those germane to guilt or innocence and the reliability of the particular evidence introduced by the prosecution, using a particularly narrow interpretation of what is germane.

(The defense will normally do the same thing in reverse, as well as countering the prosecution motions on these points.)

Looking at the particular arguments, and without any more information than is in the article on the case, it does seem that some of the things they seek to exclude would potentially have direct relevance to either guilt/innocence or the reliability of the prosecution evidence (particularly information about the CI, which may serve to contextualize the recorded conversation), but many of the things.

The stuff about Snowden and the NSA, well, I'm having trouble seeing the relevance to the questions of fact that appear to be at issue in the case, though if information directly gathered through such surveillance is presented, and a pattern of government dishonesty to courts related to that surveillance can be shown (e.g., the FISC ruling which called the NSA out for repeated misrepresenting the program to the court), it could arguably be relevant evidence to impeaching the program as a source and, therefore, relevant to any of the evidence produced from that source.

Like to see the more complete filings from both prosecution and defense on these issues.

</comment></comment><comment><AUTHOR> The prosecutors also want to prevent the discussion of the existence of the NSA, and a speech by Diane Feinstein.

It's best not to confuse juries with anything not favorable to the prosecution.</comment>


GitHubDocs – Open source SPA built using Markdown docs in your GitHub repo - <AUTHOR> https://www.npmjs.com/package/githubdocs <comment><USER2> Seems to break my back button.

Going to [0] then redirects me to [1] and single presses of back continuously redirect from [0] to [1].

[0] [https://githubdocs.markmoffat.com/](https://githubdocs.markmoffat.com/)

[1] [https://githubdocs.markmoffat.com/#Erant-ventorum-aliter- ess...](https://githubdocs.markmoffat.com/#Erant-ventorum-aliter-esse- pervenientia-mutua-numquam)

</comment><comment><USER3> pls stop

you already have an html _document_ and a _browser_ that was made for _browsing_ documents. why make _another_ application that does the job of the application i'm using to access your documents?

for fun, it get it, but as far as something that i would actually use to read docs. no thanks.

</comment><comment><USER4> Search doesn't look like it's working on the example site. When I pick a word at random from the text body and search for it there are no results.

<comment><AUTHOR> Thanks. I will check it out.

</comment></comment><comment><USER5> Soon this will become an offline app in electron which can be used as offline reference. Instead of a readme or html help. (Sometimes progress isn't a feature but a lack of)

</comment><comment><USER6> Why would I want an SPA for documentation?

<comment><AUTHOR> Why not?

<comment><USER7> Because being an SPA adds tons of potential for bugs that normal sites don't have. Case in point, your demo:

\- required changing my adblocker settings to work

\- Breaks the back button on the first page by adding instead of replacing the start page on the history stack

\- changing pages doesn't reset the scroll position - you jump to somewhere in the middle of the new page if you switch pages while scrolled down

All of these can be fixed, but a non-SPA wouldn't have any of them in the first place. More work for what benefit exactly?

(While I'm listing bugs, the top of the content scrollbar is cut off/hidden behind the top bar, but that's not SPA specific)

<comment><USER8> Plus it's (more) complicated to wget mirror it to reference while offline. Being in a public github repo makes it easy but I've run into issues trying to take older frames-based "SPA" documentation sites offline that aren't explicitly downloadable.

</comment></comment></comment></comment><comment><USER9> Why not use gitbook?

<comment><USER10> Genuine question: isn't that targeted at writing (and then publishing) _actual_ books, rather than relatively (compared to a book) short documentation?

<comment><USER9> It is but it is also used for documentation. The Redux documentation use gitbook for example [http://redux.js.org/](http://redux.js.org/)

</comment></comment></comment><comment><USER11> At this point, I think JavaScript programmers are just trolling.

The argument that _" because others are doing SPAs, we have to do too"_ is invalid, the _" others"_ are just either your friends or popular JavaScript programmers, and you follow them because you lack better arguments to go against this development technique. An SPA adds unexpected behavior to every web application, when we have spent years learning how a popular web browser behaves, people come to re-invent the wheel _(back buttons, custom scroll bars, custom routers, and who knows what else)_.

Normally, I encourage people to learn and work on whatever thing they are interested in, not just technology-wise. But when you start promoting your project trying to make people use it as if it was good, well, then you have to expect some rants here and there. I am sure there is a lot of people who would disagree with me, and people who have good arguments for the development of an SPA, I would love to hear those arguments, I am being serious.

<comment><USER12> The primary argument in favor of SPAs is that otherwise the entire page and every resource on it has to be reloaded every time the user navigates, and the resulting user experience is vastly inferior to that of an SPA (or native app), especially for users on low-end devices and/or high-latency connections.

<comment><USER10> > every resource on it has to be reloaded every time the user navigates

Since when? Browser cache is a thing that exists.

> especially for users on low-end devices and/or high-latency connections

I use an original iPad Mini (so basically the guts of an iPad 2 with a smaller screen) for occasional browsing. It definitely works better on simple, JS free pages.

I use said iPad Mini in Thailand. Regardless of our ISP provided line-speed, connections out of the country are always a throttling point for data. Having a regular browser-provided loading indicator (which can actually be intelligent and use things like the Content-Length header) is definitely preferable to some in-page JS (see above) spinner that gives zero indication of what % is loaded, or if it's hung, or whatever.

I am convinced at this point that SPA's basically exist to be 'portfolio' sites for front-end developers, the way designers would (maybe still do) create their own take on a popular app/website/etc and publish it, to show off what they're capable of.</comment></comment></comment>


The TED Tribes talk is now live - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2009/05/the-ted-tribes-talk-is-now-live.html <comment><USER2> and the link to the actual talk is : <http://www.ted.com/talks/view/id/538></comment>


[video] The iPhone Ocarina: Link Never Would Have Allowed This - <AUTHOR> http://gizmodo.com/5079308/the-iphone-ocarina-link-never-would-have-allowed-this

<comment><AUTHOR> The iphone is officially the Swiss army knife of electronics (as if it were not already). So cool.

When my co-worker saw this video he exclaimed "the iPhone is the last thing, device, object, relationship you will ever need!" Hyperbole for sure, but hilarious and maybe even half true.

</comment><comment><USER2> i have to get an iphone now

see what you done did?</comment>


Watch AMD Threadripper 3990X Use 128 Threads to Render a Video in Task Manager - <AUTHOR> https://www.tomshardware.com/news/watch-amd-threadripper-3990x-128-threads-render-video-task-manager <comment><USER2> Not what I expected from the title at all. This is actually using the per- thread utilization visualization as a grid of pixels to render a very blocky movie within task manager.

I honestly interpreted this as "watch us load 128 threads while rendering a video in another program." I only clicked for confusion.

</comment><comment><USER3> [https://news.ycombinator.com/item?id=23582436](https://news.ycombinator.com/item?id=23582436)

</comment><comment><USER4> this should be considered blog-spam - saw the original original linked on HN from reddit from yesterday</comment>


Ask HN: Hosting suggestion for python and django - <AUTHOR>

I am starting, or at least I plan, to learn python, along with django or web2py.
Anyway, I searched a good shared hosting that supports django, but und nothing after 1 hour. And of course, decent pricing.
If there's nothing, I'll take a small VPS.
Thanks in advance! <comment><USER2> <http://www.webfaction.com/> or <http://virpus.com/> are a good solutions!

</comment><comment> saiko-chriskun why not use the free version of heroku?

<comment><AUTHOR> I'll try that first</comment></comment>


Keyless Cars and Their Carbon Monoxide Toll - <AUTHOR> https://www.nytimes.com/2018/05/13/business/deadly-convenience-keyless-cars-and-their-carbon-monoxide-toll.html <comment><USER2> I'm not really surprised Toyota is mentioned as being involved in half the cases. Because they sell large numbers of hybrids and those have a much higher risk. The car can be "on" without the combustion engine running, so there is no sound to alert the driver that the car is still on. Then over time when the battery charge decreases the car will automatically start the engine to recharge.

</comment><comment><USER3> For anyone with family members at risk, detectors for CO and smoke with 10-year batteries can be had for $40 USD.

More information is available from: [https://sdinspect.com/health-and- safety/new-law-regarding-ca...](https://sdinspect.com/health-and-safety/new- law-regarding-carbon-monoxide-detectors/)

</comment><comment><USER4> Combustion engine cars reached their technological peak in the 90s and since then most new features have been pointless gimmicks. Case in point: keyless entry. It hardly saves any time or effort compared to inserting a key and turning it, and puts the driver in more risk.

</comment><comment><USER3> Discussion at dupe post: [https://news.ycombinator.com/item?id=17061411](https://news.ycombinator.com/item?id=17061411)

</comment><comment><USER5> A non-problem (remote ignition systems) causes another non-problem (thinking about how exhaust works) -- being a luddite is sometimes the correct position.</comment>


A Second Planet May Orbit Earth's Nearest Neighboring Star - <AUTHOR> https://www.scientificamerican.com/article/a-second-planet-may-orbit-earths-nearest-neighboring-star/ <comment><USER2> From my stubby pencil work it seems that the apparent diameter of this planet would be within an order of magnitude of the black hole image from earlier this week (~120 vs 40 micro arcseconds), which is 3+ orders of magnitude smaller than the resolving power of even our largest optical telescopes. I have a feeling ill never see an image of another planet in this life. :(

<comment><USER3> [https://en.m.wikipedia.org/wiki/List_of_directly_imaged_exop...](https://en.m.wikipedia.org/wiki/List_of_directly_imaged_exoplanets)

[https://en.m.wikipedia.org/wiki/Methods_of_detecting_exoplan...](https://en.m.wikipedia.org/wiki/Methods_of_detecting_exoplanets#Direct_imaging)

<comment><USER2> I guess what I'm hoping for is something akin to Hubble's photo of Pluto. A blurry blob with patches of color.

In the animated image at the top right of the page you linked, those planets are between 14 and 69 AU from their star. Let's pick the one at about 5 o'clock, it's the second most distant at about 25AU, or ~2.5 billion miles from the little yellow star.

Wikipedia says its ~1.3 times the radius of Jupiter, so let's round up to get even numbers and say it's 125,000 miles in diameter. That means the actual scale size of that planet is 1/20,000th the distance between those two dots in the image, meaning that blurry dot is about 2,000 times as large as the planet itself. We have a long way to go.

</comment></comment></comment><comment><USER4> > Midway in mass and size between Earth and giant worlds like Neptune, such > worlds may either be mostly gassy worlds offering slim chances for life as > we know it, or instead super-sized versions of our own habitable, rocky > world.

However:

> Astronomers say they may have detected a second planet ... with a minimum > mass roughly six times that of our planet's.

If it's a planet 6 times more massive than Earth, it's a gaseous planet, and nothing like Earth:

[https://www.forbes.com/sites/startswithabang/2016/11/08/is-e...](https://www.forbes.com/sites/startswithabang/2016/11/08/is- earth-our-solar-systems-missing-super-earth/)

So don't expect that humans will ever land on that, even if they reach it once (for it rotating around the nearest star).

Apparently "super-sized versions of our own habitable, rocky world" can be just slightly bigger than Earth.

<comment><USER5> Doesn't 6 times the mass get ~6 times the gravity, if we're talking about a rocky planet of comparable density?

If I weigh 600 Kg on a super-sized version of earth, it doesn't matter what amount of water or atmosphere is present. It's not habitable, even if it's a temperate 30 degrees celsius, with refreshing sun showers and a briney primordial soup.

<comment><USER4> "6 times the mass get ~6 times the gravity, if we're talking about a rocky planet of comparable density?"

There's no such thing, apparently, see the link I've already posted. According to the latest research, six times the Earth mass the planet is gaseous (Neptune-like). The limit over which the planet is Neptune-like is just two times Earth mass, which corresponds to just a little bigger radius than Earth's:

"a world that's 2.0 Earth masses and rocky will only be about 25% larger in radius than Earth; larger than that and you're probably Neptune-like, with a massive hydrogen/helium envelope."

[https://www.universetoday.com/22070/surface-of- neptune/](https://www.universetoday.com/22070/surface-of-neptune/)

"In short, there is simply no way one could stand on the "surface of Neptune", let alone walk around on it."</comment></comment></comment>