Ares-on-CFO and Lua Mods
TL;DR: I’m planning to make Lua mods to bring a number of Ares features onto CFO. These mods will be usable with the Override scenario and will take on a life of their own beyond Ares.
With the new “Modbox” channel on the Evocation Games Discord server, discussion looks to start really heating up around modding for Cosmic Frontier. And although I’m intentionally keeping my plans for Orion Skies very flexible at this point, I do have specific plans to first create an adaptation of Ares for CFO, along with accompanying Lua-feature mods. I figured this is a good time to share more details of what the Ares adaptation and its Lua mods will entail.
Ares
Ares is a 2D space action game, released by Ambrosia back when the EV series was current, with very similar overall physics to the EV series. The biggest gameplay difference is that, instead of making your way as a private citizen in the galaxy, you are leading military forces in a structured campaign to liberate the Earth from evil aliens. Here’s a “Let’s Play Ares” video on YouTube that shows how a few different types of missions work in Ares.
Because of its similarities, many of the unique concepts and features in Ares should translate directly to CFO and enhance the Override gameplay experience, as well as providing additional capabilities to modders. I would love to make use of a number of Ares features for Orion Skies, so I am hoping to actually create a full adaptation of Ares on the Cosmic Frontier engine prior to actually starting to build OS.
This Ares adaptation will have two components:
- Scenario data in conventional plug-in/KDL form for the Ares campaign.
- Several Lua mods adding Ares features to CFO.
(For those unaware: one of the most exciting features of Cosmic Frontier: Override is that a large portion of its game code will be implemented as moddable scripts in the Lua language; this opens up the possibility for modders to change the way the game actually works, including by adding entirely new features to the game!)
I’m planning to build the Lua-feature mods initially to support the Ares adaptation, but once that is done they will take on a life of their own and continue to grow in functionality for use with Override, Orion Skies, and any other mods folks want to make with them.
I wanted to write this blog post in order to outline roughly what these planned Lua mods will do:
If you have a Mac, there is already an excellent free port of Ares to modern Mac operating systems, called Antares. I highly recommend giving it a try.
Lua mod: “Apollo Displays”
Ares is a very media-rich game, with soundtrack music playing throughout the game, multiple “cutscene”-type videos appearing at different points in the game, a background image on its galactic map, etc. This mod will initially be built to enable that sort of media playback.
Moving beyond Ares and towards Orion Skies, I hope to alter the way systems in a nebula appear on the map so that you can still see the nebula background inside the little circle icon for the system; this is because in Orion Skies I’ll be using an actual Hubble image of the Orion Nebula as a background, and will place the systems over actual stars; I’d like for the stars to remain visible on the map and not be covered up by the system icons.
Lua mod: “Audemedon AI”
One of the top features I always think about with Ares is its AI. It doesn’t joust with you, EVx-style. It doesn’t sit there and slug it out with you until someone blows up, RTS-style.
It dogfights.
It literally tries to circle around and get behind you so that it can shoot you without getting hit back. And if it does end up in a head-on position with you? It calculates health & DPS, determines who would die first if you slug it out, and either presses its advantage or peels away to work around behind you. If you’re in a fast ship and try to Monty Python it? It’ll dodge your fire while trying to work its way closer or buy time for its allies to do so. And if you shoot a missile at it, it’ll try to dodge the missile...
Aside from that, the Ares warship AI has sophisticated military objectives, like protecting a specific allied ship or attacking a specific enemy location, with a “command” AI that manages which ships take which objectives.
As I build the Ares adaptation, I’ll be aiming to implement all of the above. Looking beyond that, I hope to expand on the AI’s skill-set with CFO specifically in mind, looking into things like circle-strafing, staying at optimal combat ranges (the AI could Monty-Python you!) strategic spraying to try to find & hit cloaked ships, etc. Probably all of this being configurable via AI difficulty / skill settings.
Lua mod: “Demeter Command”
Ares is based on flying a ship in combat while simultaneously building & commanding a fleet of other ships. I’m hoping to be able to use Lua to update the “escort” system in CFO to replicate this functionality:
- Ability to swap ships with an escort mid-flight.
- (And automatically swap ships when your current ship blows up!)
- Updating the “hire escort” concept into a “build warship” concept.
- Increase maximum number of escorts well beyond six.
- Ability to give commands to one individual escort of your choice at a time.
- Additionally, “escort missions” work differently in Ares -- you have to protect the ship you’re escorting until it makes it to the planet/jumpgate/whatever. (Whereas, in EVx you can usually abandon the convoy you’re “escorting” and rush to the destination, ignoring anything happening in the system.) Ares-style escorting opens up a lot of interesting and challenging gameplay, so I’m hoping to get it working in CFO.
Lua mod: “Ishiman Outfits”
Ares ships have some features & capabilities, and weapons, that simply can’t exist currently on the Nova engine. Here are some Ares-style outfit and weapon types I’m hoping to get working on CFO:
- Radar Screen Highlights: This would just highlight the part of your radar map that you can actually see on-screen. Ideally I’ll be able to implement this as a new type of radar-enhancement outfit similar to an IFF Decoder or a Density Scanner.
- Radar Symbols: Different ships would appear on your radar screen not as dots, but as symbols. For example, Cruisers would be big diamonds, Fighters would be small triangles, and Freighters would be plus’es. Missiles and rockets would appear as small dots. Again, ideally this would be tied to an outfit.
- Corrective Thrust: In Ares, whenever you’re holding down the thrust key, your ship moves in a way that is nearly “inertialess”. I say nearly because although your ship tries to always move the direction you’re facing, it does actually slide around a little; the lower your acceleration, the more sliding it does. I’d like for make this behavior happen in CFO, tied to an outfit.
- Light Drive: In Ares, many ships have intra-system warp drives, allowing you to travel to distant locations within a system in a short amount of time. This would open up some neat possibilities for CFO mods involving very large systems. :)
- Ares Beams: Beam weapons work a bit differently in Ares; the beam will always be created at just the right angle & length to hit the nearest hostile; after being created, it will maintain that length & distance to keep hitting that same spot (and any ships that remain, or wander into, that spot), until it expires. The Audemedon Carrier can get a fearsome array of several beams going at once, surrounding itself with deadly purple rays. It’s a very distinctive feature of that ship, so hopefully I can get it working on CFO.
- Directional Indicator: In Ares, there’s a little triangle on the screen that shows you what direction your ship is facing. It’s very handy for aiming! As with the other things in this list, I’d like to make this an outfit that adds this feature to your screen.
- Brakes: Ships in Ares can brake to a stop. It’s handy, especially for new players, and it also allows you to take up specific positions in combat.
All of these outfits will be available for modders to add to the Override scenario or to any TC projects.
Lua mod: “Palyos Physics”
A big part of this planned Lua mod focuses on asteroids:
The asteroids in Ares are very interactive. They block cannon fire & missiles, and you can even bump into them with your ship! When dogfighting amongst asteroids, you have to be very aware & intentional about how you maneuver to use the asteroids to your advantage rather than getting messed up by them. Some asteroids deal immense damage when they collide with a ship, so avoiding them & trying to lure your enemies into them is a big part of the strategy.
Systems can also have their asteroids configured in specific ways, like having actual asteroid belts.
Lastly for asteroids, in Ares any ships that are located within an asteroid field or belt are hidden from long-distance radar, enabling some neat guerilla/ambush tactics.
Another neat feature of Ares I hope to implement in this Lua mod: ships visibly land on planets, flying down to the surface.
Looking beyond Ares, there are some other physics-related features I’d like to include in this Lua mod:
- True Speed: In Nova, when you’re not playing on Strict Play your ship gets a generous boost to its top speed compared with AI ships of the same type; I’d like to make it possible to play the game at your ship’s true top speed, even when not on Strict Play.
- Planetside Spawning: AI ships to sometimes appear via launching from a friendly planet in the system, instead of always jumping in from hyperpsace.
- Sensor Murk: Murkiness in nebula systems to be able to shroud ships from long-distance radar.
- System Jump Distance: Modders to be able to set how far from a system’s center a ship has to be before it can jump to hyperspace, setting this on a system-by-system basis.
Lua mod: “Secorem Scripting”
Missions in Ares tend to be more complex than in the EV series. For example, one mission includes the following components:- Pirates have disabled a passenger liner; you must destroy the pirates while simultaneously ensuring that the passenger liner does not get destroyed by stray fire.
- Then you must rescue the liner’s escape pods, which are floating about the system.
- After you do that, a friendly tractor tug jumps into the system to pull the liner to safety; you must now protect both the tug and the liner while the tug flies over to the liner. There are also two friendly light warships with a dedicated mission of protecting the tug.
- Once the tractor tug reaches the liner, it locks on with a tractor beam and begins pulling the liner to the system’s jump-gate, where it will be pulled to a safe system. You must continue to protect both the tug and the liner until they are safely through the jumpgate.
- Shortly after the tug locks on, a hostile force jumps into the system and attacks; you must fend them off.
- When the liner safely exits the system through the jump gate, if the tug is also still alive, the mission is completed.
All of the above elements occur in ONE mission. There is quite a lot of complexity in terms of waiting for certain events to happen, collecting multiple items from throughout a system, AI ships having dedicated goals, triggered events happening at multiple points, and having to simultaneously protect certain ships and destroy others. Some of those things would be difficult to make happen on the Nova engine; others would be impossible.
The major focus of this Lua mod would be to enable missions, and scripted systems, of this complexity to exist in CFO.
In addition, there are some other “scripting” and “scenario” type elements I’d like to get working, for Ares and beyond it looking at Orion Skies:
- Button Names: Each spob to be able to override the names of its buttons; e.g. a small ranger outpost on a planet being terraformed could have a “Kitchen” instead of a “Spaceport Bar”; a military base could have an “Armory” instead of an “Outfitters”; etc. Similarly, outfits would be able to override their button names, with titles like “Install” or “Activate” instead of “Buy”.
- Dude Extensions: In EVx, ship spawns are controlled via the “dude” resource, where for example a Renegade ship spawn has a certain % chance to be a Krait, a % chance to be a Helian, and a % chance to be a Turncoat. This works well in the basic case, but when ship variants start to get involved a single Dude resource can potentially need numerous ship entries, and it can be a lot of work to keep track of and update all relevant “Dudes” when a new ship variant is introduced. So I’m hoping to be able to set up “Dudes within Dudes”, where for example there could be one Dude resource could have all variants of a single ship class, and other Dude resources could then reference that variants-Dude.
- Render Aid: This would be simple: when boarding a disabled ship, you’d have the option to render aid to the ship & its crew, instead of plundering it. So if you really like the UE, and you see one of their Destroyers get disabled in a battle with the Voinians, you would be able to try and help get it working again so it could live to fight another day.
- Auto-Variants: Ship variants can take a lot of work to set up and coordinate across all of the relevant resources, especially when tonnage changes are made to ships or outfits, or when new outfits are added that would logically find their way onto multiple types of ships from time to time. So I’m not 100% sure if I want to do this, but I’m seriously considering building a Lua feature that will automatically evaluate what outfits are available and procedurally determine what outfits each ship should have as that ship spawns. This would likely be a lot of work to get up and running, but could save a lot of time & headaches on Orion Skies and other TCs in the long run.
Other Lua Features TBD!
In addition to everything mentioned above, there are a few more minor features I’m thinking about, as well as others that I’ll re-discover as I work on the Ares adaptation, and others that I’ll only think of once I’m actually playing and tinkering with the game. So the six Lua mods mentioned here will likely end up with additional capabilities beyond what is described in this blog post.
...and, that’s it! Thanks for reading, folks. I’m looking forward to getting to work on this stuff, and I hope others in the community find it enjoyable and useful. :)
Comments
Post a Comment