Neu] [ower

SpindleyQ's picture
nt-earthquake.png
Game File: 

Remember Neut Tower? I made it again, but for the Apple II!

Seriously, it's the same game, rewritten from scratch and running on an older, slower platform. It's been polished a little in some ways - there were accidentally a few ways you could get stuck in the DOS version, which I fixed, and I streamlined The Hellmaze (room 2) a bit. It's also less polished in other ways due to the limitations of the platform and my patience (6 colours, no real animation, occasional flickering, no screen-shake or glitch effects, 1-bit speaker sound). I think it's a good game with some neat puzzles, and you should give it a try if you haven't before!

I spent six months of my life making this, and I enjoyed that process very much. I think it was worth doing. The thing I'm most proud of isn't the game - though I'm still proud of the design of Neut Tower, this project in particular was obviously not designed to stretch my game design muscles.

The reason I built this was Honeylisp.

I didn't actually want to make a game - I wanted to make a tool. I wanted to know if the full, absurd power of a modern laptop could be harnessed to make it easier to program a small single-tasking resource-constrained computer. And one thing I know now, thanks to the experience of building Neut Tower - when you are building tools, it helps a whole lot to have a goal to build towards. So my goal became "can I build a tool that I can use to recreate Neut Tower?"

Honeylisp is, at its core, a collection of tools, designed to work together, that all run within an extensible text editor called lite. The idea was this: I would write a 6502 assembler, using Lisp (Fennel, specifically), whose output would not be a file, but a data structure - obviously the bytes, but also, the symbol tables and potentially any metadata. I would take the output of this assembler, and send it to a scriptable emulator (MAME), which could be told to load the machine code directly into RAM. This would allow me to do any number of useful things - I could assemble and run code on the fly, without restarting my program. I could load new versions of the game into memory without restarting the computer. I had visions of maintaining state between versions - load a new map, or script code, without losing your place in the game -- though the design of Neut Tower is sufficiently constrained that this never became worth my time to implement. But there's no reason I couldn't do it.

I also built tools for creating data for the game - a tile editor, a map editor, a font editor - that ran inside the text editor, as tabs. These tools were all built on top of love2d, which I had ported lite to run on as well, so I would have the full power of a game engine at my disposal.

In short: I wanted to interactively program the Apple II, and I built tools to do that. And they work. I made a game with them. Every byte of it, generated by me and my tools.

Now that I have built a DOS game on a 286, using tools made for 286s, and now that I've built an Apple II game using tools made for modern PCs, I'm hoping I can take what I've learned from this and apply it to building new tools for making games for modern PCs, using modern PCs. We'll see how far I get.

Made For: 
An event

Comments

gisbrecht's picture

sorry I haven't played the

sorry I haven't played the game but when I see the name "Neut Tower" I think of the "Neuro Tower" from Baroque. Hopefully this game's story is more comprehensible than Baroque!?

SpindleyQ's picture

I've never played Baroque,

I've never played Baroque, but I think so! I wanted to make a game where you go around helping people and there is no real antagonist, so there's not much more to it besides "earthquake happens, get to safety." In truth, it's named Neut Tower because it rhymes with "Yoot Tower", another game with which it has virtually nothing in common.

let-off-studios's picture

Hardcore Mode

Two things to mention here:

1. This seems like quite an excellent technical accomplishment! You've jumped through a lot of hoops to make it work the way you want it to, and with your own tools. I'm still working my way through it: I think I finished up to the second stage where the player can control the cleaning robot. The game is fun and quite a challenging order-of-operations puzzle, to boot!

2. Just a question out of curiosity... How much of a challenge would it be to challenge the player with a timer? Either counting down (like the player wants to escape before another earthquake happens) or counting up for a high-score chase? Maybe there's already a timer and I just missed it. Maybe adding a timer could be another useful programming challenge for you to try.

SpindleyQ's picture

1. Thanks! I have a long,

1. Thanks! I have a long, loooong history of abandoned overly-technically-ambitious projects so it feels really good when one of them actually comes together.

2. I wanted it to feel more like an adventure game than a puzzle game, so I never considered a timer. Ideally I always thought of the player being relaxed and thoughtful while playing; carefully looking at the options that are available to them and trying to see what they're missing. I never wanted the player to feel anxious or pressured.

That said, if you wanna speedrun it I could probably beat you :D

Fun fact: The Apple II has no clock! The only way to know precisely how much time has passed is by counting cycles. Of course it usually doesn't matter _that_ much; for most problems you can say, "one timer tick = one pass through the game loop" and just tune the numbers til it feels right.

Blueberry Soft's picture

Boss Key saved my career,

Boss Key saved my career, thanks!

SpindleyQ's picture

Putting a boss key in your

Putting a boss key in your game is just good praxis imo