In the New York Times, Jason Schreier reports on the game industry's cult of crunch: the pervasive practice of making workers put in 20-hour days, resulting in one met deadline and a many lines of low-quality code.
“People think that making games is easy,” said Marcin Iwinski, a co-chief executive and co-founder of CD Projekt Red, the Polish developer of a 2015 game, The Witcher 3. “It’s hard-core work. It can destroy your life.” Mr. Iwinski, like many other top video game creators, sees crunch as a necessary evil ... A growing faction of game developers, however, argues that it’s possible to make good games without crunching. Tanya X. Short, a co-founder of the independent studio Kitfox Games, asked colleagues to sign an online pledge against excessive overtime. The pledge, which was published last year, has been signed by over 500 game developers. “Crunch trades short-term gains for long-term suffering,” said Ms. Short in an email.
Hey, ever met a geeky computer programmer with a bottomless need to prove his own competence and a political ideology perfectly tailored to capital's needs?
Read the rest
Springing from the august tradition of esoteric programming language Brainfuck, behold the mind-mangling power of JSFuck.
Read the rest
A version of Yes, an app that says "y" at maximum speed, is built-in to unix-based operating systems. You can test it by firing up a terminal, typing "yes", and then watching it fill your window; you'd usually pipe it to another app or script. But there's a problem: it can only generate 51 megabits per second worth of yes, and something must be done about it.
The trivial program yes turns out not to be so trivial after all. It uses output buffering and memory alignment to improve performance. Re-implementing Unix tools is fun and makes me appreciate the nifty tricks, which make our computers fast.
As benchmarked by the author's computer, 3GB/s of yes is now possible! Read the rest
Interested in learning Python? You can watch all 38 videos for MIT 6.0001 Introduction to Computer Science and Programming in Python from Fall 2016, for free on YouTube.
[via] Read the rest
Nintendo programmer Masahiro Sakura coded the Game Boy classic Kirby's Dream Land on a cartridge-based Famicom console and Disk System that lacked a hardware keyboard. According to a recent presentation given by Sakura, "values had to be input using a trackball and an on-screen keyboard."
Sakura, who was 20-years-old at the time, said he just thought that was "the way it was done."
From Game Watch's report in Japanese, translated by Source Gaming:
At the time, the development tool that HAL Laboratory was using was the Twin Famicom, a console that combined the Famicom and the Famicom Disk System. A trackball made specifically for the Twin Famicom was used with the machine, which read and wrote data to a floppy disk and uploaded data to the floppy disks [during development].
Essentially, they were using a Famicom to make Famicom games. Sakurai told the crowd, “It’s like using a lunchbox to make lunch”. However, because of that, they were able to create a functional test product before the project plan was even completed.
(via Ars Technica)
Read the rest
Lunus Sakesson's 256 byte Commodore 64 demo "A Mind Is Born" took first place at the Oldskool 4K Intro compo at the Revision 2017 digital art festival. From his program notes:
The demo is driven by its soundtrack, so in order to understand what the program needs to do, it helps to have a schematic overview of the various parts of the song.
The three voices of the SID chip are used as follows: Voice 1 is responsible for the kick drum and bass, Voice 2 plays the melody and Voice 3 plays a drone that ducks on all beats, mimicking the genre-typical side-chain compression effect.
All in all, the song contains 64 bars in 4/4 time. It is played back at 112.5 bpm by means of a 60 Hz timer interrupt. The interrupt handler is primarily responsible for music playback, while the visuals are mostly generated in main context.
"A Mind Is Born" by Linus Akesson
Read the rest
Humble Bundle has a good sale on Python books right now. For $1 or more, you get three No Starch Python ebooks. There are more books offered at the $8 and $15 level. Read the rest
In his Lifehacker essay looking back on his five years of tinkering with the Raspberry Pi, Thorin Klosowski says one of the desirable features of the Pi is the fact that it's not easy to use right out of the box.
Read the rest
The joy I get from finding a solution to some dumb problem is one of the main things that drew me to the Raspberry Pi to begin with. Thankfully, Raspberry Pi projects have gotten easier over the years. Where it was once a complicated process to build an SD card, it’s now pretty much automatic. Still, the Raspberry Pi is far, far away from being as user friendly as a PC or Mac. That’s a feature, not a bug. The Raspberry Pi is built to force you to learn troubleshooting, and that’s still one of my favorite things about it.
Before hobbyists latched onto the Raspberry Pi, it was a computer for learning how to code targeted mainly at kids. Since then, the appeal has broadened, but it’s still impossible for a project to “just work” out of the box. You will have to tweak something, dig into the command line, or spend a few hours buried in an obscure internet forum to find solutions to problems that only you seem to be having. You will slam your head against the wall, yell a little, and throw your Raspberry Pi at least once for every project you attempt to make.
For every project you complete, for every bug you squash, and for every typo you correct, comes a small, glowing feeling inside your stomach that is well worth the trouble of it all.
Implementing an on/off switch on a general artificial intelligence is way more complicated than it sounds. Rob Miles of Computerphile looks at what could go wrong. Hint: lots. Read the rest
This Tumblr gives new software-development titles to old paintings.
“Engineering manager returning from a budget meeting”
Oil paint, 1888
“Front end programmer”
Giovanni Battista Moroni, 1570–1575
“Sysadmin grants sudo privileges to developer on production web server” - Andrea del Verrocchio and Leonardo da Vinci, 1425-1475, Oil on wood
Read the rest
You're probably familiar with Scratch, the introductory programming language that allows kids (and adults) to create interactive stories, games, and animations. Scratch doesn't require lines of code to write programs. Instead, you build programs by snapping together colored blocks. (My book, Maker Dad, has an introduction to Scratch that shows how to make retro-style video games).
Scratch is perfect for kids 8 and up. Recently, MIT Media Lab's Lifelong Kindergarten Lab announced the release of ScratchJr, an even simpler programming language for young children (ages 5-7) to create interactive stories and games. It's free and runs on iPads and Android tablets.
Mitchel Resnick, who runs MIT Media Lab's Lifelong Kindergarten Lab, and Marina Umaschi Bers, a professor in the Computer Science Department at Tufts University, have a new book out called, The Official ScratchJr Book: Help Your Kids Learn to Code. The publisher sent me a copy, and it looks like a great way for parents to learn about ScratchJr so they can get their kids up to speed and let them go off on their own. With full color screenshots on every page, it provides a thorough overview of everything ScratchJr is capable of doing.
Read the rest
When I was a mechanical engineer in the late 1980s I used Microsoft QuickBASIC to write and create simple programs for work. I loved it. It was a compiled BASIC, too, so it was speedy. I used it to recreate a lot of the programs from Rudy Rucker's Chaos software from Autodesk. I got pretty good at writing programs in BASIC, just as I got pretty good at nodding my head when my smarter programmer friends would tell me that BASIC was not a real programming language.
I never learned any other languages, but recently I've started using Python and it is easy and fun. One thing I did with Python was write a nontransitive dice simulator to prove to myself that these confounding dice really worked as described.
I just got my hands on a new book called Automate the Boring Stuff with Python: Practical Programming for Total Beginners by Al Sweigart, and it looks like it is exactly what I need: a book for beginners and with lots of ideas for programs that are actually useful. Examples:
Search for text in a file or across multiple files
Create, update, move, and rename files and folders
Search the Web and download online content
Update and format data in Excel spreadsheets of any size
Split, merge, watermark, and encrypt PDFs
Send reminder emails and text notifications
Fill out online forms
Read the rest
At the beginning of the summer my son Ronan, age 12, and I built him his first high-powered gaming PC. Me being a dad and all, I did so happily, but with one proviso -- he’d have to dedicate time every day to learning a programming language. He was slightly sceptical of this, having taken a few less-than-interesting intro to programming classes in the past. Prepared for this, I recommended that we enroll him in Youth Digital’s comprehensive Java course called Minecraft Server Desgin 1. This got his full attention, as he had dreams of creating his own custom servers and gameplay modes to host Minecraft sessions with his friends.
We signed him up and dove in. Our immediate impression was that site and course are smartly designed and easy to navigate. All material is introduced through clear, well-produced, often funny videos that didn’t talk down him, but instead did a great job of walking him through new concepts, then pausing while he took pop quizzes and did hands-on coding exercises.
The course includes a year of server hosting, 24-hour tech support (that was fast and helpful the few times he’s needed it), and perhaps best of all, a browser-based integrated development environment (IDE) for editing the game, player, and team Java files. Within this Codenvy IDE (Windows and OSX only), you can launch the updated server with one button, which makes it fast to test code and correlate newly learned concepts with the “real world” Minecraft results.
He chose one of the four pre-built maps, learned to modify the default server file description text, whitelisted a few friend, and launched his Minecraft server within the first hour of instruction. Read the rest
Udacity created an infographic about different programming languages, showing their popularity over time, their applications, and the average salary one might expect from becoming proficient in one of the languages. Python often appears at the top of the different lists.
(Here's a good book called Python for Kids: A Playful Introduction to Programming, which I used to learn how to write a nontransitive dice simulation.)
High-resolution infographic. Read the rest
Gweek is brought to you by Crunchyroll, offering 1080p streaming anime with English subtitles. Try it free for a month by signing up at Crunchyroll.com/gweek
Scratch is a free drag-and-drop programming language for kids, developed at MIT. My 10-year-old daughter Jane uses it to create puzzles, games, and interactive cartoons. In 2012 I reviewed a book called Super Scratch Programming Adventure, a comic book guide to Scratch. I recommend it.
I also recommend the new book, Learn to Program with Scratch: A Visual Introduction to Programming with Games, Art, Science, and Math. Like Super Scratch Programming Adventure, this book is aimed at the complete beginner, but it goes deeper, exploring powerful programming concepts that show how useful Scratch is, for kids and adults.
Read the rest