Trigonometry Wars 3 Redux: The Revengeoning (v1.0 released!)

A place for people with an interest in developing new shmups.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Giest118 »

The bullets are much too fast to be considered Touhou-like, even if I went for their general prettiness. :V
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Giest118 »

Figured y'all niggas might want some screenshots. On display here is the sprite-based font and some other stuff.

Image
Huh. This pattern looks a lot more sensical in-game.

Image
As a side note, stages 1 through 3 seem a LOT slower and more relaxed after so many test runs of stage 4 and 5.

Image
I hope you're ready to be seriously pissed off by a midboss.



In other news, the stage 5 boss is going well. It's hard as fuck. Like, actual fuck. You're gonna die a lot.
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Cagar »

Holy shit i'm excited. :mrgreen:

Can't wait to 1cc this!
Don't touch the difficulty!
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Giest118 »

Getting close to being able to release a v0.8 version.

All the content is there; just need to add a few interface features and cobble together another shitty text ending.
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Cagar »

*deleted*
User avatar
Jeneki
Posts: 2509
Joined: Wed Aug 12, 2009 4:56 pm
Location: Minnesota, USA

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Jeneki »

Hiya, not really related to Trig 3, but I have something to report on Trig 4.

Recently I had some issues with the sound card on my laptop (win xp), so I disabled the sound card for a while. Trig 4 has a popup when it loads that informs me it won't have sound, doesn't seem like a big deal though as it still plays. However after getting to the end of the first stage, the boss never appears. I duplicated the bug on my main PC at home (win 7) as well, by disabling the sound card.
Typos caused by cat on keyboard.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Giest118 »

Jeneki wrote:Hiya, not really related to Trig 3, but I have something to report on Trig 4.

Recently I had some issues with the sound card on my laptop (win xp), so I disabled the sound card for a while. Trig 4 has a popup when it loads that informs me it won't have sound, doesn't seem like a big deal though as it still plays. However after getting to the end of the first stage, the boss never appears. I duplicated the bug on my main PC at home (win 7) as well, by disabling the sound card.
Shit son.

Mind downloading the Trig 3 demo and seeing if any weird shenanigans happen with it too?
User avatar
Jeneki
Posts: 2509
Joined: Wed Aug 12, 2009 4:56 pm
Location: Minnesota, USA

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Jeneki »

Ok, tried the demo from the link in the first post.

Played for a bit, COOL SHIT. Quit out, disabled the sound card, jumped back in.

Got a few more notifications that sound won't work, but ignored it.
Image

Bosses still load correctly, however the boss warning screen seems to linger. Although it's nice being reminded not to die right after I die. :)
Image

Enabled the sound card again and it's boss fight as normal.
Typos caused by cat on keyboard.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by Giest118 »

I think today I have learned exactly how the SuperSound extension package handles it when you try to free the memory of a sound file that was never loaded. It treats it the same way as it treats an infinite loop: By disabling the offending event.

I *think* I know how to fix this. Thanks for bringing this to my attention. :V
Note that I could be wrong about knowing how to fix it. I could be very wrong.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: Trigonometry Wars 3 Redux: The Revengeoning

Post by BPzeBanshee »

It's not just SuperSound but (I believe) all external functions within GM. I've had something similar occur with GMFMODSimple as well as some config loading issues. I tend to find that once I fix the erroneous line of code (usually erroneous because some fallback has been unused/failed/non-existant) everything works again. Hopefully that helps.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

Soo, I released v0.8 just now. You guys should download it or some shit.
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by BPzeBanshee »

Downloaded it. Had a go, am liking the improvements.

Somehow managed to autocontinue by accident though. Please add a 30-frame or so delay with the inputs on the continue screen so that doesn't happen again. :(
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Cagar »

Bomb at the beginning of stage 5 when there is much brown popcorn on screen, and it will crash

Image
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

I'm having trouble reproducing that.

Is this happening in the middle of a full run of the game? Is this practice mode? Are you doing anything else? Does it happen if you DON'T bomb?
DPzeBanshee wrote:Somehow managed to autocontinue by accident though. Please add a 30-frame or so delay with the inputs on the continue screen so that doesn't happen again.
I will do that. But if it helps, the game saved your score anyway. :V
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

So, I just released a new version that fixes the auto-continue thing that DPzeBanshee mentioned, and possibly fixes Cagar's issue but I'm not sure yet. No other changes are outstanding, so this update does not get the dignity of a new version number. :V
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by BPzeBanshee »

DPzeBanshee
That's the second time in a week now! :lol:

I'll give this a shot later on today. If Cagar is using Windows 8 though it's no wonder he's always the one having issues.
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Cagar »

I'm only using windows 8 on my laptop (which I got a few weeks ago) so this is the first real shmup-issue with it.

EDIT: Another crash, happened after I killed stage 2 midboss and took all the score items. I think this is a sound-issue too, similiar to that previous case
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by BPzeBanshee »

SuperSound's never been the most functional or stable with newer OSes, so you might be onto something. If the trick for making the crash occur on your machine is to consistently play a lot of sounds at once a simple GM SuperSound test app oughta be able to reproduce it. Usually it doesn't even play multiple sounds at once though, so I thought Giest would've been using GM's default engine for sfx.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

I do use GM's default sound for sfx. The previous crash was caused by too many of the small explosion sound effect happening at once, while this one is being caused by too many of the point-item sound effect happening at once.

I fixed the first one by making it so the explosion sound doesn't play if there's a bomb happening, which seemed to do the trick. This one will be trickier though, if not impossible to fix without eliminating the point item sound altogether. :|

EDIT: So hey, apparently this is a known bug in Windows 8. Sad to say you're fucked if you use that OS. I don't think I'll endeavor to fix this; this is very much Microsoft's problem.
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by n0rtygames »

Giest,

How are you doing your bullet patterns? Hard coded, or are you using some sort of script parser -- ala danmakufu, bulletml etc?

I'm looking at giving my codebase an overhaul so everythings not painfully crafted in code..

Gonna check out your latest builds now :)

Cheers!
facebook: Facebook
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Cagar »

Alright, what the fuck microsoft. I'm not going to play with this laptop anyways because of input lag, but cool that the problem is solved now.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

n0rtygames wrote:Giest,

How are you doing your bullet patterns? Hard coded, or are you using some sort of script parser -- ala danmakufu, bulletml etc?

I'm looking at giving my codebase an overhaul so everythings not painfully crafted in code..

Gonna check out your latest builds now :)

Cheers!
Yeah, see the thi--

No, you don't want to take pointers from my code. The way I develop games would make the seasoned Game Maker devs here cry.
But I guess the answer to your question is hard-coded. Which is to say I used only in-built Game Maker commands.
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by n0rtygames »

Giest118 wrote:Yeah, see the thi--

No, you don't want to take pointers from my code. The way I develop games would make the seasoned Game Maker devs here cry.
But I guess the answer to your question is hard-coded. Which is to say I used only in-built Game Maker commands.
Oh right, now the "Trigonometry Wars" title becomes clear.

pssst... mine are hard coded too. I wouldn't sweat it. Yours are better. Nobody cares how beautiful your code is, so long as your game plays well, which this one fucking does! ;)

I ask, because I'm hoping to evolve my codebase and move away from hard coded stuff to allow for easy tweakage and perhaps even "modding" of any games I put out. I'll have to keep plodding away on that one :)
facebook: Facebook
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

n0rtygames wrote: I ask, because I'm hoping to evolve my codebase and move away from hard coded stuff to allow for easy tweakage and perhaps even "modding" of any games I put out. I'll have to keep plodding away on that one :)
Well in this case, I do have some tips, but these will only work for specific pattern types. But, they can be adapted to suit your needs.

Assume that make_bullet is a function with arguments (int spawnx, int spawny, int speed, int direction).

Code: Select all

//Spread is the angle between each bullet, direction is the direction of the first bullet made
//When calling this function, direction2 should be 0.
bulletRing(int spread, int direction, int speed, int direction2)
{
    make_bullet(x, y, speed, direction+direction2);
    direction2 += spread;
    if(direction2 < 360)
        { bulletRing(spread, direction, speed, direction2); }
}
... You can adapt this to suit whatever environment you're programming in, but basically what that does is make a ring of bullet spread outward from a single point. You can easily modify the bullet speed and density this way.

Code: Select all

// Assume that point_direction() simply generates the direction to point from the
// first set of coordinates to the second set of coordinates.
bulletWhip()
{
    int bulletSpeed = 3;
    while(bulletSpeed < 6)
    {
        make_bullet(x, y, point_direction(x, y, Ship.x, Ship.y), bulletSpeed);
        bulletSpeed += 0.25;
        delay(1);  //Or however you program time delays in your environment of choice
    }
}
The code above is meant to produce a bullet whip, like the kind the DDP stage 4 boss uses in its last pattern. You can modify it to make several whips at once with more make_bullet commands, or even by combining it with the first function I displayed to make a huge ring of whips. You can easily observe what numbers you would change to modify how many bullets are in a whip and how fast they are.

These are just a couple of examples. A huge number of my bullet patterns use that first example I wrote in various ways. :V

If you want some other "templates" that I use, let me know.
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by n0rtygames »

I think... I'll be refactoring my entire fucking projectile system.

Here's my method of doing the same.

Code: Select all

 if (mnBossForm != 0)
                bullSprite = eProjectileSprite.pinksquidanim1;

                maAngles[8] += MathHelper.ToRadians(1.0f);
                int lnLIVE_WEAPON = TANK_BARRAGE_COUNT;
                Vector2 taVector = maWeldedEnemies[lnLIVE_WEAPON].mPosition;
                Vector2 shotDir = Vector2.Zero;

                if (subshots > 0)
                {
                    subshots--;
                    for (int i = 0; i < 32; i++)
                    {
                       
                        shotDir = AngleToVector(maAngles[8] + MathHelper.ToRadians(i * 11.25f));
                        shotDir.Normalize();
                        ProjectileObj p = ProjectileObjManager.DoNonMultipliedProjectile(bullSprite, taVector, shotDir, (25 - subshots) + 4.0f, 1.0f, null, false, PlayerIndex.One, false, eProjectileBehaviour.NORMAL, 0, eHitBoxName.TinyBullet, 999);
                        p.noSpeedMul = true;       
                    }
                }
facebook: Facebook
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

Note that my code is incredibly simplified, and it's entirely possible that you may need all that extra stuff.

Having said that, it is VERY useful to just have a function like make_bullet that does some of that stuff without you needing to ever worry about it again. :3
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by n0rtygames »

Giest118 wrote:Having said that, it is VERY useful to just have a function like make_bullet that does some of that stuff without you needing to ever worry about it again. :3
Yeah, I had that.. once...

The problem is that "make_bullet" grows in to "make_this_kind_of_bullet_with_these_extra_bells_and_whistles" very quickly.

Now that I've got the game completed and ready for shipping after I iron out a few bugs that may fail a peer review, I can actually see about tidying it up since I know the extents of what I'm going to need. :)

I'd like to just tell it:
MakeBullet(eProj.smallblue, x, y, speed, direction);

But yeah, all the shitty maths and loops before hand are still required. Just damn, that fucking method of spawning projectiles drives me nuts....
facebook: Facebook
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by Giest118 »

n0rtygames wrote: I'd like to just tell it:
MakeBullet(eProj.smallblue, x, y, speed, direction);
Hmm, why can't you? Surely you would get a huge amount of mileage out of it, even if you did need to write more, similar functions for certain special parts later on?
User avatar
BPzeBanshee
Posts: 4859
Joined: Sun Feb 08, 2009 3:59 am

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by BPzeBanshee »

I did some recreation/expansion of original GML commands within Flash to avoid extra lines of code. See below:

Code: Select all

/***********************************/
/* ENEMY/BULLET CREATION FUNCTIONS */
/***********************************/
/* 
Name:  instance_create, by Beau-Patrick Finch
Usage: instance_create(x,y,object);
*/
function instance_create(a:Number,b:Number,c:Object):void {
	var newEnemy = new c();
	newEnemy.x = a;// - (newEnemy.width/2);
	newEnemy.y = b;// - (newEnemy.height/2);
	enemyContainer.addChildAt(newEnemy,0); // add to stage with depth handling
}

/* 
Name:  bullet_create, by Beau-Patrick Finch
Usage: bullet_create(object,x,y,speed,direction);
*/
function bullet_create(a:Object,b:Number,c:Number,d:Number,e:Number):void {
	var bullet = new a();
	bullet.x = b;
	bullet.y = c;
	bullet.spd = d;
	bullet.dir = e;
	addChild(bullet); // add to stage with depth handling
}

/* 
Name:  explosion_create, by Beau-Patrick Finch
Usage: explosion_create(x,y,speed,amount,angletoadd);
*/
function explosion_create(a:Number,b:Number,c:Number,d:Number,e:Number):void {
	for (var i:int=0; i<d; i+=1) {
		var exp:obj_explosion = new obj_explosion();
		exp.x = a;
		exp.y = b;
		exp.spd = c;
		exp.dir = (i + 1) * e;
		addChild(exp); // add to stage with depth handling
	}
}
Of course dir and spd aren't native flash variables, they're ones I made myself to replace them due to the way Flash handles things like sprite orientation. So for say, a bullet or an explosion object they'll have code in their step (per-frame) event something like this:

Code: Select all

var angle:Number = dir * Math.PI / 180;
x += spd * Math.cos(angle);
y += spd * Math.sin(angle);
And when I wanted an enemy to make a bullet, it was a simple matter of calling bullet_create(x,y,bullettype,spd,dir). I don't claim this to be the best way of doing things with Flash at all but you can see how I was able to make things easier for myself thanks to making the hard yards happen in functions I made and then just referring to those.

Fun fact: FLAs aren't normally meant to be opened with TextEdit/NotePad but somehow the actual ActionScript code you use is completely unencrypted inside said file. That's how I got the above code while on OSX without resorting to getting some kind of pirated Flash editor.
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Trigonometry Wars 3 Redux: The Revengeoning (v0.8 releas

Post by n0rtygames »

Giest118 wrote:
n0rtygames wrote: I'd like to just tell it:
MakeBullet(eProj.smallblue, x, y, speed, direction);
Hmm, why can't you? Surely you would get a huge amount of mileage out of it, even if you did need to write more, similar functions for certain special parts later on?
I can, it's just one of those things that grew in to a very untidy fashion over time and I didn't go back to tidy it up as other things were more pressing.. :( As I say, now that I know the extents of what I'll be doing, I can refactor that in to much tidier code. i.e

make_bullet(sprite,x,y,dir,speed);
make_accel_bullet(sprite,x,y,dir,speed);
make_targetted_bullet(sprite,x,y,dir,speed,tgtpos);
make_homing_bullet(sprite,x,y,dir,speed);

etc etc
facebook: Facebook
Post Reply