Invicta - (RTS)

Or a pig.
Just a pig.
No specialty, no weapons, no armor, no ability.
Just…
A pig.

Yes, totally, something that is crazy expensive and as soon as you get it it is a pig that does absolutely nothing, but wanders around.

Lol we may have to wait for the Pig DLC package for that one.

Btw I’m working on the cover system Solar Lune recommended. I’ve got the enemies getting behind cover spots but does anyone have an elegant way to have the ai know which side of the cover to get on?

yeah have the routing ai use behind them as a preferred node?

so if three are lined up, they will run from one to the next to the next?

Seems legit. Thanks

Hey, thinking over my “suicide bomber” idea, I just thought of a question for you.

How will you handle unit death in thirdperson mode? Will the game end since “the commander is dead now”? Or will it just snap you back to RTS mode? Or maybe, to the nearest unit?

at this point when you die in third person mode it kicks you back to RTS mode

this is really cool, reminds me alot of warhammer 40k, and along those lines, I’d suggest a heavy weapons unit (weak but able to take out mechs) and also - less practically- an assault squad like dudes with jump packs! Keep it up man, looks awesome :slight_smile:

Yeah, I recommend looking at the Star Wars Battlefront series for unit inspiration. Jet Troopers, Bothans, Wookiees, Dark Troopers, all kinds of fun classes.

A dretch would be very hard to program, but fun as hell to play as…

from tremulous…

Hey thanks for all of the feedback guys. Hopefully here in a week I will have a new unit to show off. The psychic/mage. Any ideas before i start work?

This is some really solid stuff, keep at it!

As for the psychic unit, could it have the power to shield units within a certain distance of it from damage? So in a mixed squad you could have a psychic acting as mobile cover (with the amount of damage absorbed taken from its energy reserve)? Or perhaps it could also act as a radar, highlighting the aura of living enemies behind walls normal units cannot see (except robots, perhaps). Other ideas:

Trick enemies into fighting each other
Make your squad invisible for a short time (for stealth attacks)
Heal other units
Squish enemies using angry thoughts

I imagine it would have to be a high value unit since it is so powerful, and quite weak too.

To ka0s420:
Yeah it’s hard to make an RTS and have it not look like either StarCraft or Warhammer, which arguably StarCraft looks like Warhammer. And that is definitely in my wheelhouse of units. Mech’s need a cheap counter that answers the mechs but doesn’t provide the same benefits as just having your own mechs. And assault squads are always fun and I think would be a great welcome addition.

To BluePrintRandom:
So kind of like a facehugger? I could maybe do a tiny explosive robot to fill everyone’s suicide bomber need lol.

To Rubbernuke:
Thanks mate, all really neat ideas.

Did you overcome the “direction of cover” problem?

If not, I can suggest an answer:

If you have an empty as a goal next to the cover, you can rotate the empty so that the “y” axis points towards the cover, not towards open space. Now get a vector to the enemy from there.

cover_vector = enemy.WorldPosition - cover_empty.worldPosition

Now get the alignment of the empty:


import mathutils
y_axis = mathutils.Vector([0.0, 1.0, 0.0])
local_y_vector = cover_empty.getAxisVect(y_axis) 

Now compare the angle of the two vectors:

cover_angle = cover_vector.angle(local_y_vector)

This will give you an angle in radians (360 degrees = 6.28318531 radians) so if the angle is less than quarter of a circle (about 1.5 radians) the cover will be effective. You can also check the distance of the enemy to make sure he’s not standing in that cover, you can do that by checking:

distance = cover_angle.length

If the distance is long enough and the angle is small enough we can use that cover. The calulations are pretty fast so it shouldn’t impact your frame rate if you do the calculations once or twice a second.

Vector.angle(other) is unsigned which means it doesn’t go ± to the left or right. But you can use Vector.angle_signed(other) if you want to know if the enemy is on the left or right hand side, if you’re using an L shaped cover for example. But you’d have to include some way of telling what angles the cover protects.

Hey really appreciate the reply. I did get it figured out but many thanks.

No problem it’s something I’m going to use myself anyway. ^^ I often find people working on the same issue as me so I try to share my own thoughts on the subject.

So, tell us what kind of game you’re going for with Invicta. I know it’s an RTS, but what kind? Is it a Grand Strategy/4X game? Is it match-based like Starcraft or mission-based like Halo Wars? The fun thing about RTS is that you can do pretty much anything you want with it.

There will be game types. You can: play a traditional first person to kill the other, king of the hill, first to capture the resources, et cetera. I think the game types will help from there being a master list/configuration. A good “kill-em-all” list may not be fast enough for a capture the flag or tough enough for a hold the objectives style game. Also this first iteration will only have one army. hopefully if all my dreams come true and I can get anyone to notice the game then i can make dlc down the road, expanding the armies :confused:

Either way all of the above is WAAAAY down the future and subject to change. I’m having a hard enough time pushing through my noob skills to make a proof of concept.

Looks quite nice so far, that cover system is also pretty neat, is it python or logic based?

thanks man. and mostly python