FPS.cob: A first person shooter in COBOL

(github.com)

48 points | by MBCook 2 hours ago

7 comments

  • omoikane 3 minutes ago
    Looks like it outputs PPM and use ffplay as a display driver:

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

  • ltheanine 1 hour ago
    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”.
    • networked 1 hour ago
      Submitted a PR: https://github.com/icitry/FPS.cob/pull/6/changes. You can see a screenshot at the link.
    • vintermann 1 hour ago
      I hope for their sake that it's an agentic AI experiment.
      • moregrist 20 minutes ago
        Why the negativity?

        If someone wants to have fun in COBOL, let them have fun in COBOL.

        If it’s agentic fun, that’s cool. If it’s an interest in the language, that’s cool. It’s not like you have to have an ROI for a fun side project.

        • LastTrain 7 minutes ago
          It’s also OK to be turned off by AI use in hobby projects and it is also OK to prefer disclosure of the use of AI in projects so I can make that choice.
  • petercooper 1 hour ago
    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.
  • bottlepalm 1 hour ago
    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

    • giraffe_lady 55 minutes ago
      I had to get into an old tcl program for work recently and had the same thought. I wouldn't necessarily pick it today but it was kind of nice in a way that's unfamiliar to me from modern development.
      • moregrist 17 minutes ago
        The tcl syntax is fine. And modern tcl is fine.

        But tcl 7.x and before was a pure string-based language. Everything was essentially a eval(). People would hit syntax errors on production code.

        Fun, painful times.

        The flip side: the interpreter is super simple and fun to write.

        • IshKebab 0 minutes ago
          Tcl is still entirely stringly typed. That's never changed.

          There are under-the-hood optimisations to make it less insanely slow but that only affects performance.

          Tcl is a cool hack (the interpret is simple to write) but it's insane to actually use it. I wish the EDA industry would realise that.

  • tlb 1 hour ago
    They should compile it to WASM and host it.
  • spzb 1 hour ago
    Doesn't run for me. Just I/O errors and quits.
  • rroriz 1 hour ago
    Come on, we need screenshots!