Back to Terminys We Go!

Posted by Castypher on Nov. 5, 2012, 3:13 p.m.

So NaNoWriMo is going deliciously. I've got 12k words at the moment, putting me pretty far ahead of schedule. But since I'm aiming for 80k instead of 50k, I think that actually puts me a little behind. But I'm really liking where I'm taking this story so far, even though it's alien territory (as usual).

I'll write a review blog later, but I have to say I'm really enjoying some of the S4D entries. My question is who's actually played mine though, because I can only count them on one hand so far, and I fucking love feedback, harsh or not.

But anyway.

With all schoolwork done due to exams coming up, I've got a little free time to go back to some of my old games. Anyone remember Terminys? Apparently Cesque and SpectreNectar do (And by god, I love having those two on my boat. They're some of the best testers we have around here.).

For the others who remember, the game is getting a complete overhaul. Now you can expect to see a lot more depth, including:

- Screen size increase

- Mouse-based combat engine

- Day/night system that affects enemy spawns and environment

- Enhanced party system. Status effects and knockout manifest themselves in a larger scale

- NPC system where each NPC has his own schedule

- Dynamic lighting system that takes the time of day into account, as well as light sources

- Inventory has been re-added and includes combat items you'll use on the fly

- Caterpillar system!

- Party member switching (you can play as anyone in your party, and customize them as well)

- Enhanced animation system including idle animations!

- Brewing system

- Boss rebattle

- Boss achievements!

- The Spirits Festival, an event you can repeat every 30 days to raise your stats and gain some experience

- Character relations and contact (something similar to Pokemon Silver but more in-depth)

- Spells are no longer gained automatically, but are learned through taskmasters, who usually send you out to complete a difficult task

And now for some screenshots.

Caterpillar system with one party member (I don't know what that duplicate Aidan is doing over there *cough*

All party members provide buffs both passively and whenever you're playing as them.

The passive point system reworked. This system allows you to customize each character to fit your desired playstyle.

The day/night lighting system in effect. Time passes at a 1:30 ratio (meaning for every second of real time, two minutes of game time pass). Time flows in real time during combat.

Also, I'm doing a drawing. In the middle of coloring it right now. Will post later….

Comments

Glen 11 years, 11 months ago

I should probably finish a game.

Rob 11 years, 11 months ago

Cyrus, does your engine work with surfaces and blend modes? Just curious.

ludamad 11 years, 11 months ago

Cyrus: A few questions/points:

- Does it need to be a precise collision_ellipse ? If you can get away with it it may be faster to do a handcoded point-within-ellipse check

- Do all objects need to be considered in this check ? Having inheritance chains properly set up (eg so objects inherit from objbaselightable or similar) you can do:

 with (objbaselightable) {
   // check each light
}

- Try it out with a lot of objects and lights and try and get a feel for what's too slow, it'll help you decide how much you need to optimize this case

Can you describe what's done with this ds_list?

ludamad 11 years, 11 months ago

Maybe something like …

with (par_entity) {
	if (collision_ellipse(/*x1*/, /*y1*/, /*x2*/, /*y2*/, id, false, true)) {
		/* add id to list */
	}
}

Just in case you forget about with:

- its a loop when used on an object type

- it uses the local script scope + the scope of the object being with'd. if you want to access the enclosing object, do something var selfid; selfid = id; before entering the with, and use selfid.something within the with.

Castypher 11 years, 11 months ago

Quote:
it uses the local script scope + the scope of the object being with'd. if you want to access the enclosing object, do something var selfid; selfid = id; before entering the with, and use selfid.something within the with.
It can also be accessed with other instead of setting a variable to the caller's ID (other.something).

ludamad 11 years, 11 months ago

Ah, didn't know that.