logoalt Hacker News

FPS.cob: A first person shooter in COBOL

77 pointsby MBCooktoday at 3:13 PM46 commentsview on HN

Comments

chipx86today at 7:58 PM

The author has a number of repositories going back 3 years that seem purely experimental and, to me at least, really fun to look through.

https://github.com/icitry?tab=repositories

And he has a YouTube channel linked to his GitHub. Here's his video on the development of this project:

https://www.youtube.com/watch?v=qzpZQe7JT-o

Maybe AI was involved, maybe it wasn't. I don't know. But the author seems to know what he's doing, rather than someone just giving Claude a task and posting the result to GitHub. He talks through some of the challenges in building this, some of the different implementations he tried, the kinds of bugs and crashes he hit, and ultimately what worked and what didn't.

This is exactly the kind of stuff I love. Another comment said Claude has killed interest in crazy projects, but for me, as someone who likes to hand-craft some "why would you even think of that?" projects from time to time, discovering his repositories and YouTube has made my day.

Thanks for posting this, MBCook :)

cml123today at 6:12 PM

This was posted on hackaday[0] last week with a link to a youtube video. In the video, the author of the project goes into depth about some of the challenges they encountered and changes they made in good technical detail.

I think the complaints in this thread are not in the spirit of HN. Let's do better.

0) https://hackaday.com/2026/06/06/a-raycast-fps-in-cobol/

show 1 reply
localhostertoday at 5:19 PM

We need to start putting guardrails on hn to not allow those esoteric projects to be published. Before ai, it was impressive that a person has that much passion and dedication to go down the rabbit hole, and it usually comes back with some cool anacdotes that are nice to read.

Today, it's shallow, emptied out of the content.

It's not impressive that Claude wrote it, it was impressive if you have written it, OP.

show 5 replies
gigatexaltoday at 8:21 PM

Criminal not to put a screenshot in the readme.

ltheaninetoday at 3:48 PM

It would be nice to have screenshots. Also it’s just a single commit, did you use AI? Quoting the readme: “FPS.cob is what you get when you decide that game development is too easy nowadays”.

show 4 replies
petercoopertoday at 4:08 PM

As a few people have asked for screenshots, I spun it up. Here's a video of the basic gameplay: https://peterc.org/misc/fpscob.mp4 .. it's clunky, but it does play.

bottlepalmtoday at 4:09 PM

You know what, that is some pretty readable code.. COBOL might have been on to something there. I've gotten so used to syntax soup this is refreshing.

https://github.com/icitry/FPS.cob/blob/main/fps.cob

show 2 replies
omoikanetoday at 5:14 PM

Looks like it outputs PPM and use ffplay as a display driver:

https://github.com/icitry/FPS.cob/blob/497867bb6827bcfc32d50...

tlbtoday at 4:13 PM

They should compile it to WASM and host it.

show 1 reply
bitwizetoday at 7:48 PM

I saw his YouTube video here: https://m.youtube.com/watch?v=qzpZQe7JT-o

One of the things I like about it is he had to create a little front end to display the game, mirroring actual COBOL practice. Until the 80s or so, COBOL didn't support meaningful terminal I/O in its own right; it was all batch. If you were a mainframe dev and wanted to do terminal interaction, you either had to write your own routines for that in mainframe assembly or use something like CICS, IBM's application server which provided its own terminal handling and transactional database routines accessible through a language extension which got swizzled into regular COBOL by a preprocessor. Creating a layer outside of COBOL to do the things COBOL was deficient in, and using COBOL's regular I/O to communicate with it, is peak mainframe-era engineering.

Other solutions to the same problem existed; there was one called InterComm, which lacked the preprocessor and required you to reserve a shared area of memory and write messages to InterComm directly into it. These days there's KICKS, an open source library API-compatible with CICS, aimed at the sort of person who faffs about with old software on Hercules.

spzbtoday at 4:03 PM

Doesn't run for me. Just I/O errors and quits.

rroriztoday at 3:47 PM

Come on, we need screenshots!