Noxico


Taking Inventory

You can now wield two different weapons and wear up to eight different rings.

In other news, whereas wearing a cursed pair of pants would prevent access to the underpants semi-permanently (it’s semi because the pants might be destroyed some way), a cursed skirt or similar garment has no such limitation because you can reach underneath.

Unrelatedly, I’ve been thinking about adding a graveyard to show records of earlier adventures. It doesn’t make much physical sense when you consider the world is rebuilt for every new game, but what with the blatantly non-Euclidian dungeons…

[ ] Leave a Comment

On language barriers

Not saying this is something that’ll be in the game, but if it were, here’s how I’d do it.

Given a certain speaking character and a spoken line, if the player does not know the language the speaker uses, the line could be replaced by a vague reinterpretation. For example…

“I am Caquot Seggunullung. Prepare to die!”

Depending on how much of Bloody Belchbutt’s language the player character understands, this could become “he says something you don’t understand, but it sounds threatening enough”, or maybe “he says something you don’t understand, but you believe it involves death, and probably yours”.

Basically, you can pick the overall tone from certain key words like “die”, and work from there. By the same token, you could have the reinterpretation mix up given directions.

[ ] Leave a Comment

Overworld

As of today, the game has an overworld. Assuming a reach (width and height of the world) of… let’s go with 8, the first 8*8 boards known to the game will be considered part of the overworld and get special handling for a literal edge condition.

Literally in that when you stand on the edge and push on, you’ll flip to a neighboring board. I could make the world a donut shape by wrapping in both directions, or keep to the original plan and add a strip of mountains to show the edges.

Right now, the overworld is plainer than an Amish wife – there’s only a screenful of random grass, recolored for the other three biomes. You can only tell you entered a new screen because the exact pattern on the ground has changed, and maybe the color. Maybe the background music, too. Step two is to add biome-specific structures like trees and rocks and such to the boards.

Thanks to the swell guys at gamedev.stackexchange.com for helping out with the shaping of the biomes.

[ ] Leave a Comment

Considerations

Generate boards with a method chain.

For example, step 1 could be a typical dungeon generator, which would produce square rooms with corridors connecting them. Already, this output is processed by Noxico to produce something nicer-looking, and that is in fact the basis of this consideration.

Step 2 could be producing a dungeon or town from the generator’s output. The difference being that a town is open space with single-width walls forming houses and the corridors becoming streets, perhaps, while dungeons are solid rock with rooms carved out. For this, we’d need to replace the current (stolen) dungeon generator (as used in step 1) because that one always carves out of solid rock, but I got it covered.

Step 3, if it’s not done in step 2, would dress the board up according to its parent biome.

Step 4, finally, would place entities and other fun stuff.

The nice thing is that you could replace the “square rooms and connecting corridors” generator for something else entirely if you want your rooms to be something not square. Perhaps use BSP for towns and CA for, well, caves?

[ ] Leave a Comment

It’s about time

You start on the title screen. If there’s no earlier save, pressing Enter or clicking brings you to the character creator, which leads to the game itself, popping up a Look window on the player to describe what you ended up with.

But if there is a save, the above pops up. One answer leads to the character creator as usual, but the other restores the game and gives you the Look window as a refresher.

Between the character creator and the game proper, the world is generated. Right now this is hardly noticable but it’ll certainly take a while at its final scope. I wonder if I could multithread the process – generate a playerless world as the player is still mucking about in the character creator, and only waiting if it’s not done yet. Or maybe disable the Go button until the world is done, I dunno?

[ ] Leave a Comment

The title screen

If this is the title screen, what’s that blob of dither blocks supposed to be? Well, it was converted by hand from this image by an FA artist named Furore.

I think this title screen is okay, but I’m always open for suggestions. So here’s your chance to officially suggest better title screens. What’ve you got for me?

[ ] Leave a Comment

Creature update

So far, characters in the game can be any of the following creatures:

  • Human
  • Elf-like
  • Dog
  • Cow
  • Cat
  • Dragon
  • Insect
  • Bat-like
  • Horse
  • Demon-like
  • Squirrel
  • Fox
  • Slime
  • Naga

And any combination of the above, with normal skin, fur, scales, slime, rubber…

Want to play as a creature with rubber skin, a snake tail, the head of a horse, and dragon wings? You can do that.

And that’s horrible.

[ ] Leave a Comment

Counter Creep

In modern Megazeux, the developers added a whole lot of neat new functions to the Robotic scripting system, such as file I/O, substring manipulation and various new display methods. Adding those was probably a good idea. What wasn’t is the way they did so. Here’s an excerpt from the Robotics manual in MZX 2.83:

RID (read-only)
ROBOT_ID_ (read-only)

Both of these give the robot_id number of the given named
Robot. In the case of multiple robots with the same name, the
ID number corresponds to only one of them (the one with the
largest robot_id). If no robots have the name, or if the name
in question only belongs to the global Robot, -1 is given.

BEWARE: The existence of this counter makes it impossible to
use words which start with "rid" as counters. The port will NOT
fall through and give the values of any counter that starts
with "rid"; instead, it ends at -1 (since the Robot the counter
is trying to find, like "dles" (for "riddles"), will most
likely not exist). Older games will allow this, but only for
compatibility reasons.

It’s the “riddles” example that really shows what a dumb idea this actually was, and why this post is titled “Counter Creep”. The more counters with special effects they add, the less counters you can use yourself, and they had to add a special compatibility mode just to allow the use of reserved counter names.

For double the facepalm, they could’ve just removed the “RIDx” variant and kept “ROBOT_ID_x”.

And don’t get me started on how to open a file. If you can tell the difference between old and new games, why not break the original limit on the number of actual commands (256) and free up all those counters?

[ ] Leave a Comment