Author Topic: Suggestions  (Read 60552 times)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #105 on: July 08, 2009, 01:11:25 pm »
Well, often the group is not all together; they might be spread out all over the place (e.g., due to being on LONE move mode) and I might want to have them stop just as they are with the fastest ships out front of the slow ships. Other times I will have a group which includes engineers that are toward the back of the formation and I want them all to stop to give the engineers time to fix things from the back before telling them to move again, etc.

I see -- I had not considered this sort of situation.  I figured I might be missing something.  I've added this to my list, although I'll need to find another key to use for it instead of `, since that's in use.  This will be just the "stop dead and collision-detect" logic, basically.

The idea of this is to get the whole group into a big mass in the shortest time possible so you can move in a group move to wherever you want to go. Yes, you can click somewhere and get them all to move, but you might not be (and probably aren't) going to get it optimized. Then, you could shift-click other movement orders and you would know once they got to that "centralized" point, the whole group would be tightly grouped no matter how far apart they were prior to that. (It's not a hard calculation, if that is the concern; it is trivially taught in a first semester classical dynamics class in college.)

It gets more complex given that they all have different move speeds, etc -- but I'm just not as excited about this one, I think it's a very niche sort of use, and it's one of those things where I'm not sure it's worth a hotkey.  Plus, tactical management of ships is a big part of this game, so clicking in a semi-optimal location seems like part of the gameplay to me.  Ah, well.  If there's a lot of demand for this I will do it, but at the moment I think I'm going to need to pass on this one.

Don't allow shift-clicking on multiple types of actions. Quite a few times I was giving circumnavigating movement orders to flank, but would at the end accidentally click too close to an enemy and my fancy 10 waypoints would then turn into an attack headlong order. If you still have shift held down, you should only allow clicks that are of the same type as those that are already queued up.

This is a very good point.  Added to my list.  At some point I intend to unify those two command queues anyway, although with this enhancement it actually might work better as separate.

I will have to try both of these options a bit and see what I can come up with. I, of course, will also have to figure out what "non-busy" means too. :)

Non-busy means that it's not already on a wormhole path in the case of scouts.  For engineers, I think that means that they are not already repairing something else, but I could be wrong.

Thanks for listening, as always!

Of course!  I hate it when I can't do a feature that someone asks for, for whatever reason, but I try to do as many as I reasonably can.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline glyptar

  • Newbie Mark II
  • *
  • Posts: 16
Re: Suggestions
« Reply #106 on: July 13, 2009, 06:21:26 pm »
Would it be possible to make a save game remember your camera position/zoom level instead of starting at your home command center every time you load? I find it a bit disorienting.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #107 on: July 13, 2009, 06:30:21 pm »
Would it be possible to make a save game remember your camera position/zoom level instead of starting at your home command center every time you load? I find it a bit disorienting.

Unfortunately, I can't really think of a multiplayer-friendly way to do this.  It could work for whoever is saving the game, but the individual machines are not aware of where each other are looking or what their zoom levels are.  I think it's fairly much par for the course to start at a "home position" when resuming a prior savegame, though.  I have thought about this issue, but just haven't found a good way to deal with it, and it's been pretty low priority for me given the ordinariness of starting at a home spot.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Kalzarius

  • Sr. Member Mark II
  • ****
  • Posts: 422
Re: Suggestions
« Reply #108 on: July 14, 2009, 12:49:38 am »
Time Scaling for Construction
While constructing structures with the aid of engineers, the time remaining for construction passes by at an increased rate.  It would be nice if it would scale it to indicate how much real time is left like what is done for ship construction.

Grouped Queries
This is a technical suggestion that could help optimize situations involving large numbers of ships that are not involved in battle (although it could be adapted to those that are involved in battle).  You may already have something like this, but in case you don't, I thought I'd throw this suggestion out there.

While groups of ships are inactive (not moving, not shooting, not repairing, etc.) any queries that they would make individually could be done as a group (whether that be by type, all ships in a radius, all ships by a station, a combination of those, etc.).  The idea is to amortize the cost of doing queries for ships that are not going to be interacted with in the near future, possibly reducing the number of queries that have to made.

As an example, at a planet with 5000 ships with about 500 clustered at each of the ten groups (command stations, posts, wormholes, etc.) within that planet (assuming they're just sitting around waiting for orders), unless the player is near a particular group, querying whether or not an enemy is nearby would only need one query per group (in this case, ten queries total) at each query interval.  Once the player is near a group, individual ships can start waking up and performing their own queries.

Moving In Formation
Perhaps there could be a new movement mode that will keep the ships in whatever formation they were in before moving and keep them in that formation during movement (until they come to a wormhole, anyway).  This could then help to optimize ship movement by allowing individual ships to use the group's movement vector rather than having to calculate their own.  This can be further optimized to only update the position as a group when the ships aren't being queried for their positions (e.g., while moving off-screen).

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #109 on: July 14, 2009, 01:17:28 am »
Time Scaling for Construction
While constructing structures with the aid of engineers, the time remaining for construction passes by at an increased rate.  It would be nice if it would scale it to indicate how much real time is left like what is done for ship construction.

Great point.  Added to my list. :)

Grouped Queries
This is a technical suggestion that could help optimize situations involving large numbers of ships that are not involved in battle (although it could be adapted to those that are involved in battle).  You may already have something like this, but in case you don't, I thought I'd throw this suggestion out there.

While groups of ships are inactive (not moving, not shooting, not repairing, etc.) any queries that they would make individually could be done as a group (whether that be by type, all ships in a radius, all ships by a station, a combination of those, etc.).  The idea is to amortize the cost of doing queries for ships that are not going to be interacted with in the near future, possibly reducing the number of queries that have to made.

As an example, at a planet with 5000 ships with about 500 clustered at each of the ten groups (command stations, posts, wormholes, etc.) within that planet (assuming they're just sitting around waiting for orders), unless the player is near a particular group, querying whether or not an enemy is nearby would only need one query per group (in this case, ten queries total) at each query interval.  Once the player is near a group, individual ships can start waking up and performing their own queries.

I have a crazy number of optimizations in there already (I mean, just look at the unit counts), but this is something I've tried a couple of times and discarded, just because all of the ships have different ranges -- so what is nearby to a cruiser, a sniper, or a fighter are three vastly different things.  The way that I amortize the CPU processing is actually by only doing a certain number of ship targeting calculations per second (around 1200).  When you go into a huge planet and it starts slowing down on a below-spec machine, the reason is actually because of your ships trying to find a target amongst all the other ships, not the other way around (it already pre-sorts "enemy" ships out for each player, so the AI ships run just as efficiently as ever when there are only a few of your ships there, relatively speaking).

The other reason it might slow down some on a low-spec machine is the graphics, specifically for things like the minimap calculations.  All of that is heavily optimized as much as possible, too -- the minimap only updates its ship blip data once per second, and all sorts of other things.  I'm fairly certain that I've wrung about all the speed I can out of it, unless something else happens to occur to me.  If you think about it, 5,000 ships on one planet is more than most entire RTS games have -- and in other RTS games, they typically have units with vastly smaller ranges, so that simplifies things like the targeting.  For a game with planets of that scope, to have it run at perfect speed is simply going to take something very close to the actual stated system requirements.

Moving In Formation
Perhaps there could be a new movement mode that will keep the ships in whatever formation they were in before moving and keep them in that formation during movement (until they come to a wormhole, anyway).  This could then help to optimize ship movement by allowing individual ships to use the group's movement vector rather than having to calculate their own.  This can be further optimized to only update the position as a group when the ships aren't being queried for their positions (e.g., while moving off-screen).

Movement is already highly, highly efficient.  It only recalculates the angles of movement every few hundred milliseconds for the moving ships, and the way it does its calculations is based on as many cached and precalculated values as possible.  Even having 5,000+ moving ships at once hardly makes a noticeable blip on the CPU at this stage.  Also, whether ships are onscreen or offscreen is wholly irrelevant in a multiplayer game, since the simulation needs to be identical for all of the computers running it -- "offscreen" means two different things on each computer in a two-player game, since neither computer knows what the other one is actually looking at.

Even if movement were a CPU bottleneck, that sort of tandem movement would cause all sorts of complications and extra logic checks in the movement logic, which I'm not sure would be really a net win versus just doing the sort of value caching that I'm already doing.

My original goal was to support 10,000 ships in all the planets on the entire game, which was about at the tops for most RTS games.  Then I managed to get it to around 25k easily, then upwards of 50k.  After release, I actually got it up to more like 160k possible ships at full speed on a 2.4Ghz dual-core host.  I mean, this engine is wicked efficient, but there is just a huge amount of scale in play here.  When you start bringing lots of ships together -- 5,000 on one planet, for instance -- then that starts a compounding problem, where you get more ship CPU costs than you would with having vastly more ships that are more spread out.  That's just the nature of it, unfortunately.

Great ideas, but unfortunately I don't think these optimizations will really help in the current case.  I'm an optimizer by nature (that's a holdover from my database programming background), and I spent around three months of the alpha time really heavily focused on optimization above about all else.  This game has about the largest scope of any RTS game, and there's just a certain minimum floor where you can't squeeze any more blood from that stone.

Of course, that being said, after release (in 1.004, I think?), I had an epiphany that allowed me to make the jump from 60k ships as a max on 2.4Ghz, to 180k ships on that same hardware.  That was an unusually large jump, though, and it was related to non-active ships belonging to the AI.  In this case, your slowdown is coming with the large-scale active planets, which is a whole other beast.  During alpha, I tried all sorts of different precalculation and subdivision methods (some of which are now in use), but most of them did not really provide any benefits just because the state of the whole map is changing so frequently, and because the ranges and movement speeds prevent the traditional-RTS-style of grid-subdivision (that's usually a pathfinding thing in other games, but still).  I just can't think of anything more for this at this point, sorry...
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Kalzarius

  • Sr. Member Mark II
  • ****
  • Posts: 422
Re: Suggestions
« Reply #110 on: July 14, 2009, 01:25:24 am »
The moving in formation was more to keep the ships spread out rather than having them all bunch together in one spot (I've actually had them stuck on wormholes like that for nearly a minute at times).  I'm definitely impressed with the unit counts, I just wish I had the hardware to get the most out of this game.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #111 on: July 14, 2009, 10:04:50 am »
The moving in formation was more to keep the ships spread out rather than having them all bunch together in one spot (I've actually had them stuck on wormholes like that for nearly a minute at times).

I see.  Yeah, in very very early pre-alpha versions of the game, I used a movement scheme like this.  This was back when the game was just coming out of its turn-based phase.  My alpha testers were not super happy with this, but I thought it was cool.  Actually, thinking back about this, I do have a fairly simple algorithm I can use for this, that doesn't affect ongoing CPU usage one way or the other.  Added to my list. :)

Having the ships get stuck on the wormhole all in one bunch is just a factor of the CPU trying to catch up.  It limits the number of collisions it runs based on the size of stuff at the planet, etc, so that it causes as little lag as possible.  The tradeoff is the occasional bunching when there is a lot going on at once.

I'm definitely impressed with the unit counts, I just wish I had the hardware to get the most out of this game.

I hear ya...  well, I'm always keeping my eyes out for potential optimizations as I go through the code for other purposes, so I'll
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Kalzarius

  • Sr. Member Mark II
  • ****
  • Posts: 422
Re: Suggestions
« Reply #112 on: July 14, 2009, 11:06:09 pm »
Wormhole Starships
In response to some of the future expansion comments on ships that can travel without wormholes, I have this suggestion:  The Wormhole Starship.  Once activated, the wormhole starship creates a wormhole between it and its counterpart.  Naturally, they can be destroyed, although I would think they should have health on par with a Zinth, but have little more than a scout starship's offensive capabilities (if any at all) -- this would be something to send along to help establish a beachhead.  If deemed too powerful, I'm sure a mechanism could be devised to make the wormhole one way only, based on which starship is activated first (whichever is activated is the 'transmitter', for lack of a better term).

Pre-Game Ship Toggling
It would be interesting to be able to select unit availability for both humans and AI to set up custom scenarios.  This could also incorporate a sort of ranking for the AI to make it favour one type of ship over another.


Quote
I hear ya...  well, I'm always keeping my eyes out for potential optimizations as I go through the code for other purposes, so I'll

I think your post got cut off...

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #113 on: July 14, 2009, 11:22:49 pm »
Wormhole Starships
In response to some of the future expansion comments on ships that can travel without wormholes, I have this suggestion:  The Wormhole Starship.  Once activated, the wormhole starship creates a wormhole between it and its counterpart.  Naturally, they can be destroyed, although I would think they should have health on par with a Zinth, but have little more than a scout starship's offensive capabilities (if any at all) -- this would be something to send along to help establish a beachhead.  If deemed too powerful, I'm sure a mechanism could be devised to make the wormhole one way only, based on which starship is activated first (whichever is activated is the 'transmitter', for lack of a better term).

Great idea -- I like the idea of combining this sort of functionality with a starship.  Adding this to the expansion list.

Pre-Game Ship Toggling
It would be interesting to be able to select unit availability for both humans and AI to set up custom scenarios.  This could also incorporate a sort of ranking for the AI to make it favour one type of ship over another.

Yeah, that is pretty darn cool.  It's going to be a bit more intensive, I think I'm going to add this one to the expansion list, too.

Quote
I hear ya...  well, I'm always keeping my eyes out for potential optimizations as I go through the code for other purposes, so I'll

I think your post got cut off...

Oh, hmm, yeah -- looks like it.  I don't know what I wrote exactly, but it was probably something along the lines of "I'll keep looking for things that might make it more efficient" or somesuch.  That's my eternal quest, after all:  ever-greater efficiency. :D
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Admiral

  • Hero Member
  • *****
  • Posts: 547
Re: Suggestions
« Reply #114 on: July 15, 2009, 01:17:49 pm »
Wormhole Starships

Just as long as everyone can use the created wormhole... It would be fun to watch the AI attempt to send huge raids through any player-created wormhole, or truck a wormhole starship into your home base and load in a huge assault force.

Combine it with cloaking for a really wicked AI first-strike capability. :)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #115 on: July 15, 2009, 02:53:14 pm »
Wormhole Starships

Just as long as everyone can use the created wormhole... It would be fun to watch the AI attempt to send huge raids through any player-created wormhole, or truck a wormhole starship into your home base and load in a huge assault force.

Combine it with cloaking for a really wicked AI first-strike capability. :)

Yeah, that sounds good to me. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Admiral

  • Hero Member
  • *****
  • Posts: 547
Re: Suggestions
« Reply #116 on: July 15, 2009, 03:16:19 pm »
Another idea about wormhole starships...

Maybe they also act like wormhole generators; the enemy could tap into them and send attacks straight to either end point. *evil cackle*

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Re: Suggestions
« Reply #117 on: July 15, 2009, 04:28:58 pm »
Another idea about wormhole starships...

Maybe they also act like wormhole generators; the enemy could tap into them and send attacks straight to either end point. *evil cackle*

Nice.  Added to the discussion on this feature:  http://arcengames.com/forums/index.php/topic,355.msg2194.html#msg2194
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Revenantus

  • Arcen Games Staff
  • Hero Member Mark III
  • *****
  • Posts: 1,063
Re: Suggestions
« Reply #118 on: July 19, 2009, 02:04:48 am »
First of all, great interview with techZing. I now know how to properly pronounce the name of your company (Did anyone else assume it was Ar-Sen?).

I found the discussion of Neural Networks enjoyable, as that's an area I'm interested in. Have you by chance heard of Galactic Arms Race? They use a type of Neural Network called a Compositional Pattern Producing Network and an Evolutionary Algorithm to automatically evolve new in game weapons based on player preference - the fitness function is a measure of how of much the weapon is used. Unfortunately, the game is poor, but the concept is highly innovative. There's a good explanation of how it all comes together on the site.

As ever, I'm very impressed by how quickly you were able to develop the game's AI, and hope to continue to see it become increasingly powerful as time goes on.

"So, when do you think AI will become sentient?" - At the current rate of development probably about version 1.2000 :D.

I'm currently playing a game against two moderate level 8 AIs - it's going well so far (*knocks on wood*).

Thoughts and Suggestions;

Area Attack Orders

Please forgive if there is already an effective method for dealing with this situation;

Say I want to chase down a specific group of ships in my system, often a large group of parasites, they're zooming around after harvesters so my ships need to be in constant pursuit to stay in range. I can't order them to just attack one, as they will destroy it and then stop in place leaving the remaining AI ships to cause havoc unobstructed.

I can't attack-move to a location because my ships may become distracted by other targets enroute, and this also requires me to successfully determine the target that the AI ships in question are heading for. Ordering my ships to attack-move to an enemy ship is less than ideal because again my ships can become distracted, and it doesn't guarantee that my ships will ultimately destroy the entire AI group.

Free-roaming defender mode fails for similar reasons - it doesn't guarantee that my ships will head for my intended target. The only solution I've found is to pause and queue up each target in turn.

I'd like the ability to drag a selection box around a given area which automatically queues up attack orders on all the AI units within that area, with my ships preferably taking the optimum route to reach in target in the minimum amount of time.

Free-roaming Grouped Defenders

The ability to order a group of ships into free-roaming mode, but also ensure that that group of ships remains together. This would reduce the number of situations in which my faster, albeit less durable, defenders would reach the enemy first, getting themselves slaughtered before support arrives. Mainly though, it would allow me to keep a munitions booster with my cruiser garrison :D.

Missiles

A method of ordering a lightning missile to detonate immediately upon exiting from a wormhole would be appreciated - when they emerge they usually scatter and are destroyed at the side of the AI's forces, causing minimum damage.

Missiles should not regenerate health, instead it should be possible to repair them - I'm not sure what the justification is for not being able to do so with missiles.

Missiles, especially the armored kind, should not provide scout intel, it is possible to scout out the entire map at the beginning of the game (resources permitting) using the indestructible armored missile.

Missiles should be able to have their engines damaged.

Most missiles should require Knowledge points to unlock them - only the standard lightning missile should be available initially.

AI Strategy

The AI is too reckless with its starships, it sends them into battle without support from smaller ships and does not attempt to retreat and repair them when they are in danger.

The AI does not react appropriately to missiles - AI ships only fire upon missiles when they come into range and do not pursue them. Missile detonations in an AI system do not alert the AI to the player's presence and hence it does not reinforce in anticipation of an attack.

Forcefields

You may recall that I promised to never discuss forcefield mechanics again, but I assure you that this idea is a figment of your imagination. Any post you may find to the contrary is similarly a sinister illusion.

The protection radius of the Forcefield Generators should be proportional to the amount of health that the forcefield has remaining, encouraging players to place the most valuable structures closest to the centre of the field. This is in response to the tactic of filling forcefields to the brim with turrets to blockade wormholes which I feel is slightly too effective. This would also allow a dual forcefield configuration in which the more damaged field would eventually shrink inside second field, allowing the two fields to effectively share the damage, instead of one being destroyed before the other has even taken a hit.

When constructed, forcefields should come online with only 70% of their maximum health, to reward players that can effectively anticipate attacks.

A, 'Force Field Regeneration Augmenter', should be available. This device would be attached to forcefields, increasing their maximum health (10%) and regeneration rate (50%) in exchange for an ongoing resource cost.

Advanced Warp Sensor

I recall reading that there is an upgraded version of the Warp Sensor in the works that allows free roaming defender mode ships to swarm wormholes that are about to spew forth a wave of AI ships. While I think the swarming feature is an excellent idea, I think that the option to enable this behaviour this should be available with the current Advanced Warp Sensor, as I feel at this point it doesn't quite justify its 500 Knowledge point price tag.

Offline Konami

  • Newbie
  • *
  • Posts: 8
Re: Suggestions
« Reply #119 on: July 19, 2009, 07:54:38 pm »
Hello all, probably not the best place to say hello but as I had a suggestion thought I might as well combine the two. I bought this on impulse today, played for at least 6 hours including all tutorials. So far really enjoying it, as far as I can tell I've got a long way to go before I've seen anywhere near all the units/ships.  

Build Templates:

Firstly apologies if this has been said suggested already, even more so if it's already implemented.  Early on and when taking new planets, building turrets around wormholes can be a little tiresome when you're just doing the same couple of them, while it doesn't take too long to do it be nice if I could have created couple of templates of defence and just paste those around every wormhole. Be a nice time saver and allow me more time to focus on my cake...err I mean tactics. Might be able to make my bases look a little neater too.  ;D


Perhaps I'm just a bit lazy. Hopefully not alone on this, if I'm am I'll just man up and play a bit more and get used to how it is. :)

Almost forgot, all in all a lot of fun so will look forward to seeing how the game evolves.
« Last Edit: July 19, 2009, 07:58:37 pm by Konami »