Tuesday, October 10, 2023

10 years of USS Nimitz in Arma 3

Time has swiftly marched on, marking a decade since the inception of the USS Nimitz project in Arma 3. Reflecting on those times, I find myself transported back to the year 2013, unaware of the exciting journey that lay ahead.



It all began in mid-September of that year when a mod emerged on the BI forums, crafted by none other than Saul and John Spartan. They presented the F/A-18 Super Hornet for Arma 3. Given my affinity for flight simulations, particularly reminiscing about Thirdwire's Strike Fighter series, I eagerly embraced this new addition. I downloaded the mod, took to the skies over Stratis, and marveled at what I could achieve.


With the Super Hornet's naval orientation and my growing interest in aerial and amphibious assault scenarios, an idea began to take shape. Could I fashion an improvised carrier-like island using in-game objects? The answer was a resounding yes. I embarked on the endeavor, ultimately arranging a collection of H-Barriers into the iconic form of an aircraft carrier. You can witness the result in action on this video: https://www.youtube.com/watch?v=XUyW_-m57pQ.


While my interaction with the Nimitz mod in Arma 2 had been limited, it felt only natural to revisit it. I obtained the mod from the now-defunct Armaholic site and introduced it to the Arma 3 realm. Fortunately, my background in coding allowed me to navigate the mod's C++-like syntax without trepidation. I ventured into making some initial edits and shared a patch via the BI forums. Initially, it was merely intended as a patch for the Arma 2 mod. However, fate had other plans, thanks to Foxhound, renowned in the Armaholic community.


Foxhound reached out to JDog, the original creator of the Nimitz mod for Arma 2. In an act of generosity, JDog granted me the permissions needed to release an adapted version of Nimitz for Arma 3. This pivotal moment marked the beginning of a thrilling chapter in the USS Nimitz project's evolution.





On the 11th of October 2013, a pivotal moment occurred in the history of the Nimitz for Arma 3 project when the thread "Preview release: Nimitz for Arma3" was established on the BI forums. Since that momentous day, a series of significant updates and transformations have shaped this endeavor. In its nascent stages, it closely mirrored the Arma 2 mod, with a smattering of configuration adjustments here and there. However, as the years unfolded, a dedicated effort unfolded to rewrite a substantial portion of scripts and tweak configurations to enhance its reliability.


The project's vitality owes much to a passionate cadre of volunteers who contributed fresh textures and innovative ideas. Among them, Odyseus and Jones stand out, with Odyseus continuing to grace the team with model enhancements and textures throughout the years. Indeed, the Nimitz for Arma 3 project has been, in many respects, a testament to the power of community-driven collaboration. Lacking extensive graphic and modeling skills, I leaned on the talents of fellow community members to enrich the mod.


An important milestone was achieved through the reconfiguration of the Nimitz model into smaller, more manageable components. The Arma 3 engine grappled with collision and walkable parts of the model exceeding dimensions of approximately 50-60 meters in width and length. Odyseus took on the task of dissecting and reassembling the Nimitz into more reliable, smaller segments. Nevertheless, on specific maps and locations, challenges persist with road and geo lods. The typical workaround involves shifting the carrier slightly and attempting the operation anew.


Scripting-wise, a significant stride was made by eradicating all global variables from the original scripts, enabling the coexistence of multiple carriers within the same mission. However, to maintain backward compatibility, the legacy global variables remained intact within the mod for an extended period.


On the configuration front, the introduction of the function module system played a pivotal role in furnishing the carrier's functionality. Initially, players needed to place various modules in the mission to unleash the carrier's full potential. Over time, these modules were seamlessly integrated into the Nimitz setup system, necessitating placement only when a player sought to modify a specific module.



The arrival of the Eden 3D editor in Arma 3 ushered in new opportunities and challenges for the mod. Leshrack's addition to the team brought forth an initialization script designed to accommodate both the Eden environment and missions. Concurrently, the entire initialization functions underwent restructuring while preserving backward compatibility.


A significant juncture emerged when Arma 3 mods found their way onto the Steam Workshop. Previously, distribution primarily occurred through Armaholic and my personal website. Thanks to Rory's initiative, a dedicated Steam Workshop page was established (https://steamcommunity.com/sharedfiles/filedetails/?id=643530417), amassing a substantial following of 160,265 subscribers as of the writing of this piece. 


Yet another significant milestone in the evolution of the Nimitz project occurred with the release of Jacky's instructive video, aptly titled "Nimitz Instructions," available on YouTube at https://www.youtube.com/watch?v=6OAfNEuwXfw. In the past, the project's documentation had been somewhat sparse and fragmented across various files. However, Jacky's video provided a comprehensive and thorough exploration of the carrier's inner workings within the Arma 3 environment, bridging the gap in understanding and knowledge.



As time progressed, it became evident that not all players sought constant updates, favoring instead a stable platform with well-defined limitations. Thus, in 2019, the Nimitz Experimental build was conceived (https://steamcommunity.com/sharedfiles/filedetails/?id=1697731012), aimed at pushing the carrier's boundaries without the constraints of backward compatibility. While updates may not be frequent, we hold aspirations of introducing more changes in celebration of the project's remarkable 10th anniversary.

Thursday, September 14, 2023

10 years of F/A-18E/F and SU35 for Arma 3

On September 15th, 2013, Saul and John Spartan embarked on a remarkable journey by releasing the F/A-18E/F modification on the BI forums, which can be accessed at https://forums.bohemia.net/forums/topic/154948-fa-18-super-hornet-and-su-35s-flanker-e/. Little did they know that this humble beginning would lead to significant developments. Over the course of several years, they dedicated their efforts to refining the mod and adapting it to the evolving world of Arma 3.


Eventually, both Saul and John Spartan decided to venture out and establish Bravo Zero One, where they channeled their expertise into crafting the Jets DLC. This transition opened the door for TeTeT's team to take charge of further model and development work. They embraced the advancements offered by the Arma 3 platform updates and continued to enhance the mod.


Jaentzen, a skilled skinner (https://steamcommunity.com/profiles/76561198015969026/myworkshopfiles/?appid=107410), joined the team and contributed an impressive array of historical and contemporary liveries for the F/A-18E/F mod. In the same vein, Leshrack diligently enhanced the code base, leveraging the latest features of SQF to establish a robust and forward-looking foundation.


With the arrival of Yax and RiverX, the aircraft's cockpit underwent a significant transformation. They introduced clickable buttons and multifunctional displays (MFDs) throughout the Super Hornet, pushing the boundaries of what was possible within the constraints of the Arma 3 engine. 


A major breakthrough occurred when Acolyte joined the team. His unwavering commitment to exploring the capabilities of the Arma 3 scripting language, SQF, brought the clickable cockpit concept of the Super Hornet to a new level of completeness.


Fast forward to 2023, and both the Super Hornet and Super Flanker have firmly established themselves within the Arma 3 community. We extend our heartfelt gratitude to the players who have faithfully supported these mods over the years. Here are some notable statistics before we conclude:


These numbers underscore the enduring popularity and impact of these mods within the Arma 3 community. Thank you for being part of this incredible journey.


Sunday, January 16, 2022

Rope based arresting system on Nimitz

 Rope based arresting system

With a recent update to Nimitz Experimental a rope based arresting system as implemented in Bon Homem Richard and MAAS previously was added to the Nimitz. It follows a description of the system.

The home of the rope based arresting system is in ttt_nimitzfunctions\fn_arrest_ropes, as well as the setup functions in jdg_carrier\functions\defaultInit.sqf.



fn_aircraftTailhook.sqf
    A compatibility function for BIS_fnc_aircraftTailhook that removes the hook up call in EXIT_CODE

fn_arrestEventsInit.sqf
    The system uses BIS scripted eventhandlers, which are set up here. The supported events are:
  • jdg_toggleTailhook
  • jdg_touchdown
  • jdg_abort
fn_caughtAnyWire.sqf
    Checks if the aircrafts tailhook is close to a wire. It relies on a hashmap of wires (_carrier getVariable "jdg_wireAreas") and then calls inPolygon to see if the tailhook is in the polygon defined by the wire.

fn_hasTailhookDown.sqf
    Checks if the tailhook is in down position. Either uses a simple tailhook mem point or whatever is defined in CarrierOpsCompatability.

fn_init.sqf
    Initialized the ctrl-shift-h tailhook toggle helper command.

fn_localWires.sqf
    When a plane from ttt_nimitz_planes is close to the wires of a carrier in ttt_nimitz_carriers this function is called where the plane is local to and checks if the tailhook grapples a wire via caughtAnyWire.

fn_toggleTailhook.sqf
    Simple function to lower or raise the tailhook, either via tailhook anim or as defined in CarrierOpsCompatability.

fn_touchdown.sqf
   The function that brakes the aircraft via setVelocity, pretty much a copy of BIS_fnc_aircraftTailhooks part of decelerating the plane.

fn_wireRopes.sqf
    Per frame function that checks if a plane from ttt_nimitz_planes is close to wires from ttt_nimitz_carriers. If close the localWires function is called on the system where the plane is located on. The use of two global arrays vs the use of nearEntities/nearObjects and so forth is done deliberately to give this function a speed advantage.

fn_wireRopesAttach.sqf
    Attach the ropes/wires onto the tailhook when the grappling of the tailhook to the wire was a success. Note that the ropes don't follow animations of the tailhook, unfortunately.

Cheers,
TeTeT

Tuesday, May 28, 2019

Nimitz update

Quite a while has passed with this blog being dormant. But the development of the Nimitz is not idle - slowly but surely we make progress.

Biggest news in the past couple of months was the move to Steam Workshop for the experimental build: https://steamcommunity.com/sharedfiles/filedetails/?id=1697731012 This experimental build contains the latest and not always stable additions to the Nimitz. Currently you can already see the upcoming changes to the island and lower deck on the port side, but not all areas are enterable and at places you fall through the cracks. Read, it is experimental and not considered to be stable enough for general use.

Speaking of the changes in the Nimitz, the Changelog contains various entries since the 0.102 release (https://tetet.de/arma/arma3/nimitz/experimental/Changelog.txt).

Functions to reset the cat and wires were added a while back, but never exposed to the player. This has changed lately and now you can reset the wires and catapults when things go wrong - mostly destroyed planes blocking cat and wire.
An oversight was the direction of air defenses on the carrier. In a previous build they were attached to the carrier parts, but now stand freely. This required a change in the direction setting commands, which has been done now.
The crane behind elevator 3 is now semi-functional, it can be raised and lowered with ctrl-w and ctrl-s, and turned left and right with ctrl-q and ctrl-e, if CBA is loaded. Unfortunately the crane is duplicated in the process, due to unknown reasons, so consider this feature to be very experimental.
The lower launchbar and repair actions were added repeatedly on dedicated servers. There is now some code in place to catch these duplicates and hopefully only one action will be available.
The island interiour has been restructured by Odyseus, extending to the hangar level deck and above below the island. This area is now a place of constant improvement and most likely once the renovation there is finished, Nimitz 0.103 will be released.
Joe provided us with a nice LSO platform which sits at the very aft section of the carrier now. It's not functional in any sense, but can be used for additional ambiance elements. Note that the current location is not final, as once the island work is completed, this section will be renovated next.
Some arma update broke the general quarters sound, this has been fixed by replacing the sound file and fixing the config entry for it.
Thanks to the USAF mod a new weapons cart is now available and has been placed on the weapons elevator. The cart carries a number of Sidewinder missiles and can be emptied and filled with player actions, if deployed stand alone (e.g. not on the weapons elevator).
The inheritance for the air defenses and radar of the Nimitz has been changed for the encore update of the Jets DLC and the air defenses are now more tightly integrated and more effective.
A landing statistics menu is now available from the islands ground floor level, showing who landed at which speed and which wire caught. This should help on multiplayer servers to see which pilots need some further practice and which are landing solid.
Another change is the printing of an error if the height of the Nimitz is not close to sea level. Various scripts in the carrier use hard coded values of 17.5 meters for deck height (hangar and other heights as well) and won't work if the carrier is spawned at a different height than sea level. Ultimately these hardcoded values would go from the scripts, but this requires more refactoring.
For landing experts, the vertical distance where the wire snatches you out of thin air can now be set in an Eden attribute of the carrier.
Also for landing, the IFLOLS range has been increased, so it can help landing on the Nimitz from farther away.

The next weeks will hopefully see the completion of the renovation of the island and decks below it, then some testing and bug fixing will be happening. Script wise the replacement of the hard coded height values might happen, and then 0.103 version is ready to be shipped.

Beyond that the general plan is to re-do the lower decks (2nd deck) below the hangar and to renovate the hangar and aft section of the carrier. On the scripting side, it's not decided what will happen next. We're open for suggestions and ideas on what else can be done for the carrier!

Friday, October 27, 2017

Plans for Nimitz in Arma 3 beyond 0.99

After the release is before the release, or so they say. Some ideas got implemented in Nimitz for Arma 3 0.99, but not all. So this is an overview of what might happen in Nimitz 0.100.

First, an already completed but untested task was the upgrade of the SAM systems, the Mk-29 Sea Sparrow launcher and RIM-116 RAM. Both systems now use a BI function to move the missile to the correct launch tube. Also they deploy Pookie's smoke script and generate some smoke upon launch.

Now onto the uncharted territory. With the advent of working radars with the sensors update as part of the Jet DLC, the anti air assets were already upgraded to use sensors. Now the Nimitz itself needs a long range radar to assist those weaponry and of course the planes. Work on this had started during 0.99 development, but was never completed. And when speaking of long range radar, I mean long range for the typical Arma 3 island, something in the range of 10-20 km.

The customization of the carrier for different versions of the Nimitz class is another topic to be discussed. The aft mast, located behind the island, is quite different between those subclasses and ideally we would have different models to show these differences. Further the island itself differs between the latest Nimitz class carriers and the original. And finally the numbers look a bit different on the real carrier than they do on our virtual one.

The hangar is quite an important part of the carrier, but lacks in details and 'liveliness' currently. I would hope for a complete overhaul, similar to what was done to the exteriour of the Nimitz already. It's undecided yet if ambient objects will be directly integrated, or left to the mission makers idea. Both approaches, an empty hangar, or one filled with objects, have their purpose and it's a hard decision which path to go down.

Sitting below the hangar is the 2nd deck. It can be considered a first approach of supplying additional rooms for communities on the Nimitz. The deck needs to be completely overhauled to look more ship like and equipped with objects. Mind you, there will be enough empty rooms available, so a mission maker can equip them as he deems fit.

Weapon carts are a needed addition to the carrier's properties list. The work on them has been contracted from the remaining donation money and should be available later in 2017.

For Nimitz 0.99 Shockley did a tremendous job at adding textures to the hull, which look more ship like than before. Hopefully this work can be continued for the flight deck textures and improve the textures further.

Script wise it would be interesting to add a teleport module for those player that don't want to walk/run around the carrier. There are already some memory points in place that can be used for that. Probably the best approach forward is to publish the nimspots lod, which contain those memory points, so mission makers can integrate their own teleport systems.

A completely different area is that of sounds. Late in the 0.99 release cycle the air conditioning sounds and engine sounds were added to the Nimitz. What's missing is now some general quarters alarm and other ambient sounds via speaker systems. Any suggestions are welcome here!

Yet another tech available in Arma 3 that has not been made widely available in the Nimitz are the Picture in Picture possibilites. The nautical's bridge monitor system is a good place to start on this, but more control rooms in the carrier's interiour could be thought of that get a view on the outside world via cameras.

Camera's are also found on UAVs, which are currently not exactly compatible with the Nimitz systems. The scripts for launching and recovering planes could use an overhaul so UAVs are supported as well.

The Tilly crash crane is currently a static property, as time to make it a carX simulation is rather scarce. Eventually it would be made fully driveable.

Last on this long laundry list is the IFLOLS system which sits untextured on the side of the carrier. Here a better texture, some light source magic and scripting is needed to make it a believable system.

As you can see from this post, we can really use some help in any of the above areas. Feel free to reach out when interested in helping, and join our discord server. There's also the possibility to hire modellers and texturers to assist with some of the above tasks. When doing a donation please let me know in the comment which part of the carrier you would like to see improved: Donate. The money raised so far helped with the following parts: RIM-116 RAM, Phalanx, nautical bridge, medical station, interiour objects, fuel pump, weapon carts (when completed) and new ammunition models.


Sunday, March 19, 2017

NDB Navigation

One of two aircraft related mods that I planned to do is the NDB non-directional-beacon navigation support; the other one is the MAAS system, which is still sadly lacking a nice model.

At the end of summer I got contacted by madsolosniper on the BI forums who had a mod idea for adding navigational aids to arma 3. When a few weeks later NightIntruder wrote me about his aircraft sign mod I sat down and wrote a couple of test missions at the end of September. One of them eventually was released by NightIntruder with his mod.

Then the project sat idle for quite a while. This weekend I then finally converted the sample mission into a mod, which still needs testing, especially in multiplayer.

The mod as it is now (2017-03-19) is quite minimalistic. It consists of an invisible NDB object and some actions on players to control the NDB navigation. The basic work flow is to add one or more NDB objects to the map at places like airfields, aircraft carrier, or the NDB building from NightIntruder's mod. On the object the frequency for the NDB can be set. In the mission players in aircraft can then change their direction finders frequency to that of any NDB. For publication of the NDB frequency for example a map marker or a note in the mission briefing can be used.

In the mission a player in an aircraft has three action menu entries:

  1. change frequency of direction finder to NDB frequency
  2. show the direction arrow on the HUD
  3. hide the direction arrow on the HUD
The implementation is quite straight forward and might be in need of optimisation for performance later on. In the config.cpp the "ttt_ndb1" class defines the invisible beacon object. It's main purpose is to keep the "Frequency" stored in a like named variable. Further it uses an init event handler to store the object in a global array (ttt_ndb_beacons) and initialize the mission event handler for showing the arrow on the HUD (addMissionEventHandler EachFrame). Also the Man class gets an extended init eventhandler to add the above mentioned user actions.

The init eventhandler for the Man class calls fn_addUI.sqf. The code there sets up the arrow for later use and adds three actions to the scroll wheel menu for the player. It relies on the locality of the global variable beaconActive and a few others to determine the state the system is in, e.g. if the arrow is displayed on the HUD or not. From the "Enter beacon frequency" action the dialog for entering the beacon frequency is triggered.

The init eventhandler for the beacon class "ttt_ndb1" checks if the global variable ttt_ndb_beacons is present. If this is not the case, it will be initialized and the mission event handler "EachFrame" is added to display the directional arrow on the HUD. Also the beacon object is added to the "ttt_ndb_beacons" array.

When the frequency is changed through the dialog, the "ttt_ndb_beacons" array is traversed and checked for the given frequency. If found, the new active beacon is set and the arrow points toward it. If not found, a message via "vehicleChat" is shown to the player that no such beacon frequency exists.

As this is pretty much my first attempt at changing the UI via mod, there might be other ways to achieve the wanted behaviour. Maybe some are much better than the way chosen, and I'd be glad to hear about them.



Wednesday, September 28, 2016

Nimit for arma 3 0.96 plans

With Nimitz for arma 3 0.95 out of the door, it is time to think of what is ahead for version 0.96. Currently we have a few open issues and bugs that we would like to address.

The Phalanx model has been enhanced by TheSnk4k3 and got a new set of textures, including secondary ones. It currently needs to be integrated into arma 3 properly. Also on air defenses we're re-evaluating the turning restrictions on the air defense assets, as some are still prone to hit the Nimitz itself. Some research will be done on anti missile defenses and if they are more successful than in the tests leading up to 0.95 will be included. Lastly in this area we would like to introduce a general quarters alarm that raises the alertness of the crews (set combat status to red).

Next on the list is the Tilly salvage and crash crane that is a static object right now. Making it driveable and operational in arma is quite an undertaking, we will see how far we get in the time frame for 0.96. If all goes very well it will be a fully functional carx and allow sling loading or at least attaching objects. Staying with cranes, the Nimitz crane should be made operational as well, we will be evaluating different UI approaches for it.

A new topic on the horizon are navigational aids for the Nimitz. In the form of a non-directional beacon aboard the ship it should be easier to find via a bearing indicator on aircraft. There is already a sample mission on Stratis (vanilla without Nimitz) available at http://tetet.de/arma/arma3/nimitz/experimental/missions/beaconFrequency.Stratis.7z Feedback is welcome.

In preparation for 0.95 we had two community members approaching us with a better IFLOLS experience, utilising arma 3 lights at the IFLOLS position on the carrier. Hopefully one of these will be made available at least as a mission if not Eden attribute for the Nimitz 0.96.

The holes that were pierced at the bow will be covered by some sort of gate, so the hull looks intact again. Via Eden attribute the opening can then be revealed when at harbour and closed when on sea.

On bug fixes the textures on the bridge will be inspected and reversed maps will be corrected. Further the bridge model will be split into separate models that hopefully can be reused for an airboss and prifly room. Unfortunately the donation campaign was not very successfull so far, so we cannot afford to source complete airboss and prifly rooms. Nevertheless thanks to the three donators who were very generous!

Foxone will provide an upgraded version of the test engine stand, which was previously dropped in 0.95. This is an all new model with upgraded textures. Again the sourcing of further ambient models hinges on further donations.

While we have no exact timing for the 0.96 release it will not land before December 2016, and is more likely to be in the first quarter of 2017.