top | item 6965437

(no title)

nddrylliog | 12 years ago

Hey folks! Even though HN is more hacker-oriented, I still thought I'd give it a shot.

Factoids:

  - It's the first commercial game fully made in ooc
  - It's sold only on itch.io (which recently made HN frontpage)
  - It was originally a Ludum Dare submission
  - We just released a Christmas update!
  - It's lame because the game is not about killing stuff!
I have no idea how this post will do, but I'll happily take your questions here. Thanks for your attention and happy holidays :)

discuss

order

mhlakhani|12 years ago

By ooc, do you mean the programming language? [1]

if so, can you share any thoughts on how that affected the development process? Any quirks? Any features that made it much easier?

Thanks!

[1] http://ooc-lang.org/

nddrylliog|12 years ago

Precisely!

Well, it's interesting that ooc returned to its roots, because when I first started working on it, it was for a small simulation game project at university.

I'll try to be as unbiased as can be, though.

Here are the reasons I liked writing it in ooc:

  - I find it hard to write bad ooc. The language is smart,
  but not too smart, so you can write code that's concise
  yet not too confusing.
 
  - Moving up from C, having a single tool manage the build
  of your whole project is really cool. I recently added
  cross-compilation support, so I produce the Windows, Mac,
  Linux 32-bit & 64-bit builds from the same machine.
  I have a simple Makefile for tasks like packaging so 
  releasing a new build is a 'make deploy' away!

  - Recent versions of rock have gotten relatively good at
  error checking (there's still plenty of room for 
  improvement), but it's often a lot more helpful than
  well, most compilers I've seen. (Clang isn't bad, but
  it's C, so it can only help you on a low-signal level).

  - Most of the libs I wanted to use (SDL2, SDL2_mixer,
  OpenGL 3.x) already had bindings, and for the others
  (stb_image, etc.), well, I wrote'em. It's usually a
  matter of neatly organizing C functions into an
  object-oriented-ish interface.
I'm not trying to sell the language here so I'll stop, but mostly - for this project, after 5 years spent working on and off on the language (and peripheral projects), it got out of the way. I could just write what I thought and it worked. From what I gather, it's a rare satisfaction in the software craftsmanship realm :)

As for the downsides, well, there are things I know to work around, language features I know I'd better avoid, and the occasional compiler blips. But for a project of that scope, I got away with "using my toy language" relatively scot-free!

I still remember the very harsh comments when I first presented ooc to HN a few years back. Forunately I was in a high at that point so I didn't care. Had I listened to them, I would never have gotten where I am now. So: stay positive, everyone!