‘Braid’ creator sacrifices his fortune to build his next game
engadget.com
engadget.com
you are better off taking the mental energy you would have expended on "investing" and subsequently worrying about your money, and instead funneling it into your creative endeavors. You will make more money that way, especially when you take a long-term view.
...
If creative endeavors are profitable, you can use the resulting money to fuel more creative endeavors, thus making the world a better place. Keeping money in a bank account or publicly-traded stock does not particularly make the world a better place.
Once I got approximately into the f-you money level of income, it became crystal clear how fictitious money is in the first place. I wake up one morning, and bam, I am wealthy! Why? Because someone said so and typed a number into a computer. Okay... that's kind of weird.
Given that money is so fictitious and somewhat meaningless, it is a shame to give into primal hoarding impulses, just so one can see the number in one's bank account go up like a high score in a video game. It's much better to make like Elon Musk and use your money for what it is: a way to wield influence to make the world more like you would like it to be.
Of course, there's a balance to be had.
So, if you want your kids to get a proper education you'll either have to pay for a good school or get a house in a nice neighborhood; both things which require one to constantly be paying a substantial amount of money, whether it be for the mortgage, taxes, or tuition.
That said, I generally agree with the sentiment. People with commitments are less free to play with their resources, at least if they are responsible. An who wants to invest in someone who's not responsible. There are, of course, exceptions, and even times when the opposite holds true; commitments can force a level of responsibility and drive because the stakes may be higher.
The downvotes were more likely because the comment was false (pg and YC invest in plenty of founders over 35) and unduly personal ("your mindset is exactly why...").
I am tempted to see if blind devotion to pg leads to downvotes, but I doubt HN would care. :-)
For everyone else for whom money is a meal, rent, or essential good instead of an expletive, who cannot afford to take an ethereally long-term view, this advice is out of touch with reality if not plain dangerous.
Without your "bad dreams" we wouldn't have the Red Cross, Kiva, Linux (or a majority of *nix releases), GPG (or lots of other OSS projects), One, Doctors Without Borders (or any number of other non-profit organizations), immense amounts of historically important art, music, documentaries, museums...
Some of the best, most important dreams in human history weren't profitable.
The Red Cross movement especially brought forward the Geneva Conventions (which improved the conditions of prisoners of war), successfully fought epidemics, and (in my opinion) began a tradition of humanism that combats extreme fundamentalism in a practical non-violent way (which is why the worst fundamentalists target Red Cross/Red Crescent workers.)
Would not primal hunter gatherers have spent it while they had it - resources being plentiful for those skilled to find and kill? Didn't hoarding only become necessary when humans transitioned to farming?
In fact it _is_ a primal urge to consume what you've earned, spending it on improving yourself/project.
-- some guy I used to know
I have friends that plowed their savings into their dream projects, but they lacked good taste. Nobody bought their shit.
Now they are back working a 9 to 5.
[1] Jai: https://sites.google.com/site/jailanguageprimer/
https://www.youtube.com/user/jblow888/videos
https://news.ycombinator.com/item?id=8541509
[2] https://twitter.com/Jonathan_Blow/status/563766250711425024
He's a wiz, and his C code was humorously commented that makes it a joy to read.
He just did day 60 today. It's probably going to take at least a year. It's quite educational to start from scratch without any libraries.
I'm not into game development or C... but it looks so well done I'm sure I'd learn tons... even just watching it casually.
I guess, however, that I could learn a thing or two about getting stuff done and structuring an engine/game. Wish I had the time to watch this.
https://forums.handmadehero.org/index.php?option=com_content...
Really? I find this difficult to believe, considering the success of Cave Story back in 2004.
Man, I need to replay Cave Story.
1) it was on a console 2) it made the creator rich 3) it inspired a generation of puzzle platformers
All three of those things contributed to the growth of the indie community.
Before that they were just "games" or "a cool new game" or stuff like that. I dunno.
"Next time, be more careful!"
EDIT: You may find it interesting to read Jordan Mechner's journals about the making of Prince of Persia as a solo dev (published by Broderbund, so not quite fitting the indie self distribution model today, but otherwise fairly similar). They used to be available online, which may not be true anymore, but it's certainly worth $8 or whatever they may be asking for.
I'm not saying you're wrong, I'm sure they published it later via a variety of publishers, but they made a ton off of the shareware version. Masters of Doom is a fantastic read, if you haven't read it.
All pretty indy and commercially successful.
so yes this another case of the "kids are so cute, thinking Katy Perry invented rock-and-roll" pattern.
I'm pretty sure industry comparisons with indie filmmakers and indie music bands started before Braid (IndieCade was founded in 2005), but as a widely used and popular term, I think it's fair to choose 2008 as a turning point [1], and Braid as the poster child.
[1] http://www.gamasutra.com/view/feature/132041/the_state_of_in...
I say Spacewar! is the original indie game.
Interestingly for me was the second in the list which I hadn't heard of before - Alan Turing's chess simulator.
Before Braid, the average (console) gamer did not know what an indie game was. Or if they did, generally considered indie games to be terrible.
I have never played braid, but based on an article I read online when it was released, I bought the soundtrack. It is beautiful. I've probably listened to it over 100 times. Highly recommended.
'Yes you can shoot yourself in the foot, hang the compiler, and launch missiles at the same time. You're a good programmer or you wouldn't be using this language. So don't do that. If you do, don't do it again.'
That's not always a good attitude to have in software development, but a modern language that backs away from the "wrap us all in bubble wrap" philosophy is refreshing.
#include <stdio.h>
#include <stdlib.h>
#COMPILETIME
int fib(int n) {
if(n < 2) return n;
return fib(n-1) + fib(n-2);
}
int main() {
printf("int fib(int n) {\n");
printf(" switch(n) {\n");
for(int i=0; i < 30; i++) {
printf("case %d: return %d\n", i, fib(i));
}
printf("default: return fib(n-1) + fib(n-2);\n");
printf("}\n}");
}
#ENDCOMPILETIME
and then at compile time that would get run and the source could generated would be: int fib(int n) {
switch(n) {
case 0: return 0;
case 1: return 1;
case 2: return 1;
case 3: return 2;
case 4: return 3;
case 5: return 5;
case 6: return 8;
... etc up to i=29...
default: return fib(n-1) + fib(n-2);
}
}In particular string mixins will do what you want; they will also do much more, like for instance include external files written in domain specific languages and compile them in native D code; all this is done by the compiler, using language facilities, without external tools.
(These is not some theoretically cool feature; it's used in real world code, like dproto, which compiles protobuf definitions into native code, or HTML templating engines which compile templates to the equivalent of Java servlets)
That feature is called compile-time function evaluation, and there are a bunch of languages that support CTFE[1]. Blow's language has, from what I've seen, the cleanest CTFE syntax and most straightforward usage approach. In terms of what you can use today, check out D[2] (which has multiple competing ways to do CTFE).
[1]: http://en.wikipedia.org/wiki/Compile_time_function_execution [2]: http://dlang.org/
It's macro facilities are actually fairly amazing, and allow for a lot of boilerplate code to be generated at compile time (think: the kind of things reflection is used for in other languages).
Sadly, it's a GCed language, so while it's very popular for game development, it's use is mainly in the indie scene, and so it's probably never something I'll use for anything other than a toy.
[0]: http://haxe.org/
Your example could look like this in Common Lisp:
(defun fib (n)
(if (< n 2)
n
(+ (fib (- n 1)) (fib (- n 2)))))
(defmacro spliced-fibs (x n)
`(case ,x
,(map-iota (lambda (v) (list v (fib v))) n)))
(defun hardcoded-fib (num)
(spliced-fibs num 29))
spliced-fibs macro will generate you a full case block at compile time, so the hardcoded-fib will be basically one big switch/case block. map-iota call maps a function over a list of numbers from 0 to n. Note that a macro can call ordinary functions at compile time, which themselves can use other macros, etc. So a lot of code can be used both at compile and run time.I'm not sure what you mean by 'in the language itself', since isn't all compile-time metaprogramming in the language itself? But this question has an example of computing Fibonacci sequences in C++ templates:
http://stackoverflow.com/questions/908256/getting-template-m...
The second part of the question is about how to turn that into a table which can be referenced at runtime, which would seem to be the same as your question.
I occasionally write C# which writes C# (using .NET APIs to compile it at runtime, typically) and C# in T4 Text Templates which write C# (they integrate nicely into Visual Studio's build process right out of the box.)
Improvements can always be made on man-made things like C++, even if improvements aren't always obvious at first.
You miss 100% of the shots you don't take!
Tangentially, I hate this phrase. It ignores the fact that there's an opportunity cost to missed shots. If you're imagining the metaphor of a ball game, it's possession (and thus time and position). If you imagine the metaphor of a gun, it's your limited supply of bullets. This exhortation has an implicit assumption of endless resources, which are typically not available in the real world. Of course there are times you should risk things on an uncertain outcome, and be willing to move on to the next opportunity - trying to hold on to a declining situation is often motivated by a sunk-costs fallacy.
But I've heard the 'miss shots you don't take' thing proffered too many times as an excuse for ego-driven, risk-indifferent, and resource-wasting decisions and I'm pretty tired of it. There is a certain sort of person (but I don't men you, parent poster) who comes into a situation, fucks everything up, and then sails off with the excuse of what a bold, visionary risk-taker they are, blaming any obvious failures on the timidity of the team/colleagues. An excess reliance on sports metaphors has become a huge red flag for me in picking the people I work with.
For the record, Blow has said that he's making the language primarily for his own use. I expect that most of the games he makes in the future will be written in this language.
Now if you'll excuse me, I have some kids that I need to eject from my lawn :-)
Until very recently C++ has been the best tool for the job (or more usually C++ and Lua or other scripting language).
- Proprer games are written in Assembly, while AMOS, Turbo Pascal, C, GFA Basic, Turbo BASIC are for wannabe game developers
- Proper games are written in C, Turbo Pascal, AMOS with some Assembly while C++ is too bloated.
- C++ with some Assembly is the proper way, while Java, C#, Go, ... are too bloated.
So it is always kind of interesting to see what the current generation says.
Just an example.
Then there is Unity, and plethora of frameworks where you write in some language and then it gets translated into another and there are just too many variations.
There are still games shipped done in Borland Pascal for that matter :)
https://www.youtube.com/watch?v=AxFzf6yIfcc <-compares games to televison
https://www.youtube.com/watch?v=I1Fg76c4Zfg https://www.youtube.com/watch?v=SqFu5O-oPmU https://www.youtube.com/watch?v=JjDsP5n2kSM
I think that's neither here nor there in the context of this article.
Also, as mentioned his new language is definitely worth checking out. Yes, a language is only as good as its adoption/tools/history, but I definitely think C++ needs a challenger and not many people are in the position where they can risk taking on such a thing. Since money is becoming an issue, I hope he tries to fund this language somehow.
Anyway, it's kind of weird talking about jblow when I know he'll be reading this. Even if he doesn't like us so much anymore. :(
I have throughout my career tried to maintain a grasp of everything in my stack (I went through a "study the code for HotSpot in-depth" phase that, while I don't regret it, I'm glad is over--though I may be about to start in on MRI...) and I try to make intelligent decisions about when to approach problems at different levels. I see a lot more trend-following and operating off of tribal conventional wisdom than I would like.
Not that this is any way an obstacle as long as he succeeds here. But if he really went all in for this game, well, I wouldn't do it that way (unless my name was Derek Smart that is). I'd pocket $1M of my ill-gotten and play the lottery with the rest, knowing there was a backup plan. I hope he has a backup plan. I can't say I like the guy, but I do like what he's doing.
http://vimeo.com/94259578 (2014) http://www.gdcvault.com/play/1014982/ (2011)
If anyone likes game talks then check a repo I made https://github.com/hzoo/awesome-gametalks
Contrast to someone like John Carmack, who is a legend, has achieved more in his career than most people ever will (some of the first FPS games, if not the first, pioneered so much technology, is launching rockets into space!), yet is still open minded enough to try new things, like rewriting some of his old games in Haskell and applying FP principles to game design. Oh, and John Carmack is humble as hell, considering what he's done.
That said, the game looks great -- and I'm sure he'll be very successful with this one, too.
Loved Braid, quite interested in trying out The Witness; hope it doesn't take too long to come to a platform I can play it on, as I have neither a Windows machine, nor any consoles, nor an iOS device.
I guess people see him as "winning the lottery" with Braid, so now spending that "lottery money" is seen as a foolish move. However I think that spending/investing your hard-earned money in something you enjoy (developing games) is the best investment one can do, even if you do lose all your money.
Minecraft, OTOH, made Notch over a billion dollars. So it depends on your definition of truly rich.
These are the kind of games I can get down with, a good slow ambiance based puzzle game—had enough of RTS and FPS for the time being.
For example, the advice to start early on a pension is commonplace. But the young often have low disposable income, and this cuts in to other possible uses of money that have far more return on low amounts of capital.
For example, taking a few months out to study in a different field. Building up a relocation fund so that you can move to a higher paying area. Working towards a property deposit. Buying cars outright instead of borrowing money to finance them.
Most of those have a far better return than a few percent per annum. It's just not clearly quantifiable. And that's not even going in to the riskier things like starting a business.
Seems like someone like Blow should be able to attract some investors.
1) Control over IP and final product. While some investors would likely give free reign to continue as he has been, identifying and coming to an agreement with them might seem time consuming, which leads to:
2) Doing business takes time, he may feel that time is better spent finishing the game.
There's a good chance there are more nuanced details to his decision to borrow instead of seek investment like project progress and terms of his loan.
I hoped there will be some ambition to the like of Ice-Pick Lodge https://www.kickstarter.com/projects/1535515364/pathologic or Tale of Tales http://tale-of-tales.com/videogames.php but nope, another game with puzzles.
You might as well say that Portal succeeded because of its puzzles. I mean, Portal IS a puzzle game even more than Braid is -- but what matters is the atmosphere, the immersion, and the story. Why not compare Lord of the Rings to a hiking manual while we're oversimplifying art.
I also have to say, though, that Braid was remarkably fluid for a puzzle game. What I mean is that instead of having to stand in one place and suss out each puzzle in your head, you were compelled to experiment with the game world, internalize the rules, and eventually intuit each solution. In the end, I believe I only had to "work out" a handful of puzzles in the entire game. (Contrast this to a puzzle game like Sokoban, where you pretty much have to logic out each screen. I hate those kinds of games!)
With that said, it looks like The Witness is going to be a much more cerebral puzzler.
Some 6 months ago I decided to learn how to draw pixel art to make one myself. I should have a playable demo out in a couple of weeks. You can track my progress on my twitter account (@mbabuskov).
So let's say you need to solve, on average, 75% of the puzzles in an are to beat it. And that you need to solve 7 out of the 11 areas. That gives you (677 * 7/11) *.75 / 40 or about 8 puzzles per hour.
go jonathan