Noxico


Unrelatedly…

I’ve been using FMOD Ex 4.37.05, from 2011, all this time and recently figured I ought to look into updating. So I got a copy of FMOD Studio 1.08.04, one month old, and spent like five maybe ten minutes adapting Noxico’s sound code. Now I have a little archive with the new DLLs and two CS files, a clean drop-in replacement. I’m just wondering, is it worth it in the end to switch?

[ ] Leave a Comment

On dialogue and file formats

When I started on this game project, I put all the data in a bunch of XML files. Some of them were parsed into token trees before use, others were custom-parsed.

Eventually I felt like XML’s verbosity was unneeded, and I came up with a format that more closely matched the token tree data structure and was reasonably human-readable.

Recently I converted the second-to-last XML file to TML; the i18n word list and its related data, done mostly with a quickly whipped up converter and a little bit of aftercare. The only thing left in XML format is the game’s dialogue.

<scene id="GenericUnknownHottie" name="(starting node)">
	<filter target="bottom" type="relation" value="none" />
	<filter target="top" type="value_gteq" name="charisma" value="50" />
	<p>
		"Ah... Greetings, traveller," [b:he] says with a slightly flushed smile. "Can I... help you, maybe?"
	</p>
	<action name="introduce yourself" />
	<action name="invite to have sex" />
	<action name="no thank you goodbye" />
</scene>
 
<scene id="GenericIntroduceHottie" name="introduce yourself" list="Introduce yourself">
	<filter target="top" type="value_gteq" name="charisma" value="50" />
	<p>
		You tell [b:name] your name and flash [b:him] a twinkling smile.
	</p>
	<p>
		"It's a pleasure meeting you, [t:name]", [b:he] says a little flustered.
	</p>
	<script type="text/javascript">
		top.SetRelation(bottom, "acquaintance");
		bottom.SetRelation(top, "considers hot");
	</script>
	<action name="invite to have sex" />
	<action name="goodbye" />
</scene>
-- TML version
scene: GenericUnknownHottie
	start
	filters
		bottom: relation
			value: none
		top: has
			path: charisma
			value: >= 50
	$: ""Ah... Greetings, traveller," [b:he] says with a slightly flushed smile. "Can I... help you, maybe?""
	action: introduce yourself
	action: invite to have sex
	action: no thank you goodbye
 
scene: GenericIntroduceHottie
	name: introduce yourself
	list: Introduce yourself
	filters
		top: has
			path: charisma
			value: >= 50
	$: "You tell [b:name] your name and flash [b:him] a twinkling smile."
	$: ""It's a pleasure meeting you, [t:name]", [b:he] says a little flustered."
	script
		<[[
			top.SetRelation(bottom, "acquaintance", true);
			bottom.SetRelation(top, "considers hot");
		]]>
	action: invite to have sex
	action: goodbye

How exactly this data is used doesn’t matter here. No, what I’d like is opinions. So please tell me, does that example look readable? Do you maybe have another idea?

[ ] Leave a Comment

Regarding the new patch system I just whipped up and put on Bitbucket

Given this starting data, music.tml:

Title
	loonie_-_cronologie_4_remix.xm
	sandras_sweet_sex_seminar.xm
Grassland
	joule-mozarella_filofox.xm
	aa-molec.s3m
	hyo-dum.it

and this patch, music.tml.patch:

-- Add this to the end of the file
add: -
	Added
		patch_me_in.s3m
 
-- Add this between Title and Grassland
add: Title
	Inserted
		patch_me_in.s3m
 
-- Add this to Title
add: Title/-
	beek_ita.it
 
-- Remove a particular song from Title
remove: Title/loonie_-_cronologie_4_remix.xm
 
-- Replace a song
replace: Title/loonie_-_cronologie_4_remix.xm
	Cronologie IV.ogg
 
-- Replace the whole set of title music choices
replace: Title
	Title
		Cronologie IV.ogg
		Sandra's Sweet Sex Seminar.ogg
 
-- Change a token's value(s)
set: Inserted
	value: 42
	text: something

Given two tokens with the same name, you can use something like bodyplan[6] (zero-indexed!) or bodyplan[=felin] in a path as well.

[ ] Leave a Comment

The State of Development, April 2016

First of all, those of you playing Noxico builds from Bitbucket may notice that talking to townspeople may or may not crash your game. The error may be a little confusingly worded but it boils down to missing conversational data. This will be fixed naturally as/if/when someone writes better conversational data to replace the stupid and/or stand-in data that’s there now.

Others who played may have had a crash regarding the bodyplan data where the game couldn’t find the “felinoid” data. This is because I was overhauling the plans a little, replacing the felinoids with the species that they directly inspired; the felin. The crash was simply because not all references were adjusted yet. No, anonymous reporter, it was not a typo.

Second, I’m heavily considering to remove the introduction dream from the game. It seems a silly way to teach the player how to control the game, let alone in one or two big ol’ walls of text. So instead I’m planning to replace that with a tutorial mode, which would be enabled from the character creator. Its default state would be taken from the settings file, and basically it’d let the game teach various things as they become relevant. This is why the latest commit adds image support to MessageBox – so our lovely mascot Chelsie can “host” the tutorial and appear as a sort of part of the interface, at the player’s side of the fourth wall. I’d like your opinion on this idea.

Third, I really need to nail down the setting here. Fantasy? Sci-fi? What even is this?! Weapons, clothing and such are all over the place.

Well, that’s about it for now. See ya next year 😀

[ ] Leave a Comment

Oh dear, is that a new character creation backdrop? Yes it is, and it’s dynamic, showing a representative image of the chosen species and sex combination. If a given combination has no matching image file, it’ll try to use just the species. If that isn’t possible, it uses a generic fallback.

[ ] Leave a Comment