Noxico


Status Report

The whole world can now be saved to file and the game has an INI file for settings. You can specify in that INI file which tileset and color palette files to use, disable all sound or change the volume, and some other stuff.

This is also where you specify how to save worlds – you can have it gzipped and/or with the high bits flipped… which serves no actual purpose at all, really.

I also decided to publish my plans and designs. You can find them here, and they’ll be updated every so often.

This is the default INI so far:

doublesize=false
interpolate=false
tileset=ascii.png
extiles=extended.png
palette=colors.PspPalette
 
[sound]
enabled=true
musicvolume=100
soundvolume=100
 
[saving]
gzip=false
flip=false
[ ] Leave a Comment

Scripting issues

There are some things that you just can’t do with merely a tag tree. Things would just become too damn hairy that way! Now, I had planned to have towns and such be predefined, with perhaps a bit of random variation – say, placing a building on another spot, moving all the things inside with it, and having semi-important characters rolled up randomly like any other encounter – and it’s exactly those semi-important characters that could really use a proper scripting method!

I talked about this on IRC yesterday and though I won’t name the other guy, he was all “why reinvent the wheel when you’re writing this game in C# and have a full compiler right there?”

Here’s why.

First of all, using CodeDOM and such to compile and run arbitrary code simply won’t do because of a bunch of important limitations. These include that the code block must be contained in at least one method, in turn contained in a class, in a namespace. You could make the script system assume the wrapper class but that doesn’t solve the other problem: everything must be a method call on an object.

this.Move(Direction.Up);
this.Wait(20); //mind you, other entities should still run.
this.Character = (char)0x42;

Second, you can’t easily have a script repeat itself. Imagine a character who constantly (that is, until interrupted) checks a readout, looks surprised, moves a small distance towards a control panel, waits a bit (to tweak the controls) then moves back to the readout and repeats. Sure, it can be done, but it won’t be pretty.

“So why not use something else like Lua?” you might ask. Because it has many of the same or similar problems, when you think about it. That, and some personal problems that go beyond scope.

Noxico takes after Megazeux, and MZX’s Robotic language may have problems of its own, but it works. For the early games like Caverns of Zeux and Cans, Robotic was perfectly suitable.

It’s easy enough for me to write a reasonably suitable scripting engine for Noxico. The big problems I see are with conditionals and loops, and even then I have a good idea how to do it, without getting a full and proper parse tree involved and still support nested ifs! No trees, just a simple list of script lines, one command per line.

move up //or north…
wait 20
char 0x42 //or ‘B’ or 100…

Reinventing the wheel seems like a pretty good idea, really. Especially when you need a bicycle wheel and all the off-the-shelf ones are for SUVs.

[ ] Leave a Comment

Optimized the SHIT outta the walls

Earlier today, I reduced the function that takes the dungeon generator’s output and makes it look nice with proper wall outlines and stuff and turned it from a ~190 line if-else monstrosity with five discrete steps into a nice and tidy ~60 lines, where the only ifs are checking for map edges and a quick loop to fix a bug in the lookup table that makes this optimization possible where certain T junctions aren’t.

I’m very pleased with this, I’m sure you can understand.

[ ] Leave a Comment

Combat ideas

In Dwarf Fortress Adventure Mode, combat is done mostly turn-based, Rogue-like. You got your sword, you got your target. Press against the target and you hit him with your sword. It might get stuck in your target, in which case pressing against him again without either of you leaving your current positions means you get to twist the sword around inside of your target. Yay. You can also throw stuff like darts and other people.

In Megazeux, combat is done real-time. By default you only have a gun. Hold space and press a direction to fire a fast-moving but easily dodged projectile. The gun is also an automatic. Several sword engines have been made that replace the unlimited-range gun with a close-range sword (duh) that usually does damage in a two or three tile strip perpendicular to the player. That is, if you face north, the sword strikes the tiles from northwest to northeast.

In Corruption of Champions, combat is strictly turn-based, like the average RPG. You pick an action, the opponent picks an action, and whoever’s faster gets to do his thing first.

For Noxico, which has (MZX-style) realtime movement and exploration, I was thinking of going MZX-style with the combat, too. Most weapons would be close-range, with bigger blades having more range (imagine a BFS reaching some three tiles far and a simple knife only one tile). Guns would still be more or less unlimited in range, but instantly hit – there’s no visible bullet. The further the target, the higher chance of not getting hit, and maybe if you do get hit, it won’t be as effective if it’s from far away. And if that’s not enough, just make guns relatively rare.

What do you think?

[ ] Leave a Comment

Clothing Start

Started on the new clothing system, which involves randomly selected, predefined sets of clothes (read: costumes). Each creature type can define one or more costume to wear, and one is picked at generation, adding the constituent parts to the character’s inventory. This includes gender checks and the fact that googirls and nagas technically can’t wear pants. That’s why there’s only a lacy bra in this screenshot and no panties to go with it: I’ve been using a naga for testing. She’s called Legend Spewblossom and her name is stored in three separate parts so you can do DF style translations like “En Icmishibbi”, “Olzul Kazatzöslu”, or “Gomath Gamlatâtrid”.

[ ] Leave a Comment

Creature suggestions box

There’s a handful of creatures implemented or planned, several of which playable from the start:

  • Humans
  • Imps
  • Goblins
  • Bee girls
  • Naga
  • Foocubi
  • Cat people (non-furry, full furry planned)
  • Fox people (same deal)
  • Little Ponies (really more of a testing creature but who knows?)
  • Goo girls
  • Google girls (same as goo girls, but special and hard to find)

Anything you think should be added?

[ ] Leave a Comment

So what IS Noxico anyway?

Noxico is an erotic role playing game, taking a little from Corruption of Champions, a little from Megazeux, and a little from Dwarf Fortress.

Specifically, several data structures, the overall “faked text mode” asthetic, and several smaller details are inspired by Dwarf Fortress (with special attention to Adventurer mode), but it takes the realtime aspect and other details from Megazeux, which leaves the porn bits to CoC.

The game’s overworld is split up into screen-sized, randomly generated boards, no scrolling, based on a handful of general styles – think biomes – and containing towns based on less random process, and dungeon entrances. It won’t be very big, I reckon…

The dungeons, and I use the term in the gaming sense, are more like those in the average Roguelike (there goes another two hours of your life, haha), and are fully randomized once on startup. Considering the locations of their entrances on the overworld, things are bound to get a little non-euclidian…

[ ] Leave a Comment