.Visceral Games Comments on Battlefield Hardline Delay, Admits Friction With Publisher EA Over Decision
It’s not new news that Battlefield Hardline got delayed by a few months, and will now hit retail in early 2015.
In an interview with IGN, Visceral Games Creative Director Ian Milham talks about the shooter’s delay and then some.
We had that Beta in June and it went really, really well. But we had this ton of feedback and we had a lot of conversations about, ‘Man, this is really cool we should do this. Oh, but we don’t have the time…And then as we really started to think about how long games are living now over our time, we thought we only get one chance to do this right and we got something that is on the doorstep of being great.
Milham then talks about approaching EA for an extension to develop Hardline, which he confirms was met with some friction due to a lot of factors.
I mean we just want to make cool games and thats all we care about or want to do. And there is a whole universe of other stuff going on: What other things does EA have coming out? What other games are coming out? Like this had nothing to do with release windows or competition or any of that kind of stuff. But those are things in the world. So of course there was a lot of ‘Grr, well I don’t know we got to figure this out, this is a pretty big deal are you sure?’ But as we talked it out, it became pretty clear that it was the right thing to do, so they were onboard.
As a Battlefield fan, I think Visceral took the correct route for Hardline. Once a game’s released, it needs to impress right off the gate or people will dismiss it and move on to the next big game. Heck, just the fact that the studio is considering putting Bad Company 2’s game mechanics in Hardline is a step in the right direction — at least in my opinion.
Did EA do the right thing in approving Hardline’s delay or do you think the publisher just wanted to move out of this year’s FPS game war with Call of Duty: Advanced Warfare?<commit_before>module Fog
  module AWS
    class AutoScaling

      class Real

        require 'fog/aws/parsers/auto_scaling/basic'

        # Creates a new Auto Scaling group with the specified name. Once the
        # creation request is completed, the AutoScalingGroup is ready to be
        # used in other calls.
        #
        # ==== Parameters
        # * auto_scaling_group_name<~String> - The name of the Auto Scaling
        #   group.
        # * availability_zones<~Array> - A list of availability zones for the
        #   Auto Scaling group.
        # * launch_configuration_name<~String> - The name of the launch
        #   configuration to use with the Auto Scaling group.
        # * max_size<~Integer> - The maximum size of the Auto Scaling group.
        # * min_size<~Integer> - The minimum size of the Auto Scaling group.
        # * options<~Hash>:
        #   * 'DefaultCooldown'<~Integer> - The amount of time, in seconds,
        #     after a scaling activity completes before any further trigger-
        #     related scaling activities can start.
        #   * 'DesiredCapacity'<~Integer> - The number of Amazon EC2 instances
        #     that should be running in the group.
        #   * 'HealthCheckGracePeriod'<~Integer> - Length of time in seconds
        #     after a new Amazon EC2 instance comes into service that Auto
        #     Scaling starts checking its health.
        #   * 'HealthCheckType'<~String> - The service you want the health
        #     status from, Amazon EC2 or Elastic Load Balancer. Valid values
        #     are "EC2" or "ELB".
        #   * 'LoadBalancerNames'<~Array> - A list of LoadBalancers to use.
        #   * 'PlacementGroup'<~String> - Physical location of your cluster
        #      placement group created in Amazon EC2.
        #   * 'Tags'<~Array>:
        #     * tag<~Hash>:
        #       * 'Key'<~String> - The key of the tag.
        #       * 'PropagateAtLaunch'<~Boolean> - Specifies whether the new tag
        #         will be applied to instances launched after the tag is
        #         created. The same behavior applies to updates: If you change
        #         a tag, the changed tag will be applied to all instances
        #         launched after you made the change.
        #       * 'ResourceId'<~String>: The name of the AutoScaling group.
        #       * 'ResourceType'<~String>: The kind of resource to which the
        #         tag is applied. Currently, Auto Scaling supports the
        #         auto-scaling-group resource type.
        #       * 'Value'<~String>: The value of the tag.
        #   * 'TerminationPolicies'<~Array> - A standalone termination policy
        #     or a list of termination policies used to select the instance to
        #     terminate. The policies are executed in the order that they are
        #     listed.
        #   * 'VPCZoneIdentifier'<~String> - A comma-separated list of subnet
        #     identifiers of Amazon Virtual Private Clouds (Amazon VPCs).
        #
        # ==== Returns
        # * response<~Excon::Response>:
        #   * body<~Hash>:
        #     * 'ResponseMetadata'<~Hash>:
        #       * 'RequestId'<~String> - Id of request
        #
        # ==== See Also
        # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_CreateAutoScalingGroup.html
        #

        ExpectedOptions[:create_auto_scaling_group] = %w[DefaultCooldown DesiredCapacity HealthCheckGracePeriod HealthCheckType LoadBalancerNames PlacementGroup Tags TerminationPolicies VPCZoneIdentifier]

        def create_auto_scaling_group(auto_scaling_group_name, availability_zones, launch_configuration_name, max_size, min_size, options = {})
          options.merge!(AWS.indexed_param('AvailabilityZones.member.%d', [*availability_zones]))
          options.delete('AvailabilityZones')
          if load_balancer_names = options.delete('LoadBalancerNames')
            options.merge!(AWS.indexed_param('LoadBalancerNames.member.%d', [*load_balancer_names]))
          end
          if tags = options.delete('Tags')
            tags.each_with_index do |tag, i|
              tag.each do |key, value|
                options["Tags.member.#{i+1}.#{key}"] = value unless value.nil?
              end
            end
          end
          if termination_policies = options.delete('TerminationPolicies')
            options.merge!(AWS.indexed_param('TerminationPolicies.member.%d', [*termination_policies]))
          end
          request({
            'Action'                  => 'CreateAutoScalingGroup',
            'AutoScalingGroupName'    => auto_scaling_group_name,
            'LaunchConfigurationName' => launch_configuration_name,
            'MaxSize'                 => max_size,
            'MinSize'                 => min_size,
            :parser                   => Fog::Parsers::AWS::AutoScaling::Basic.new
          }.merge!(options))
        end
<commit_msg>Fix: tags implementation was defective<commit_after>module Fog
  module AWS
    class AutoScaling

      class Real

        require 'fog/aws/parsers/auto_scaling/basic'

        # Creates a new Auto Scaling group with the specified name. Once the
        # creation request is completed, the AutoScalingGroup is ready to be
        # used in other calls.
        #
        # ==== Parameters
        # * auto_scaling_group_name<~String> - The name of the Auto Scaling
        #   group.
        # * availability_zones<~Array> - A list of availability zones for the
        #   Auto Scaling group.
        # * launch_configuration_name<~String> - The name of the launch
        #   configuration to use with the Auto Scaling group.
        # * max_size<~Integer> - The maximum size of the Auto Scaling group.
        # * min_size<~Integer> - The minimum size of the Auto Scaling group.
        # * options<~Hash>:
        #   * 'DefaultCooldown'<~Integer> - The amount of time, in seconds,