Welcome to LAC's "Mission Developers" forum. Since publication of LAC version 8.11 in late May of 2020, several skeletal missions are included in LAC's source code. As originally distributed, those missions exactly duplicated the logic of our well-known "classic" Network Mission #1. Since that time, those sample missions have become increasingly sophisticated.
Furthermore, the published source code of these new missions is extensively commented, and users are encouraged to modify and improve it. Those having success with this exercise can create improved, new missions, and they can submit their improved source code as attachments to postings in this forum for evaluation by the LAC community and LAC developers. The best of them will be incorporated into future versions of LAC!
All of these skeletal missions compile, link, and run nicely as published. As working code, they can be of GREAT help to new mission developers. By compiling and exercising them without any changes, New Mission Developers can exercise all of their tools and gain confidence. Then, by making single, simple, small changes, New Mission Developers can easily learn how to enhance those missions gradually, and how all of the relevant code snippets affect mission behavior. (Wise developers will always retain an extra copy of the original, unchanged source code so they can repair any changes that they regret making.)
In the future, this exercise may result in creation of many new missions, and LAC's menus will be expanded as they become available.
This forum is for questions and answers on this subject.
Last edit: bbosen 2023-02-20
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here is a copy of the "What's New" section for LAC Version 8.11 where the provisions for development of new missions were first announced:
===============================================
Changes in the late-May 2020 version (Lac08p11) include:
Additional missions and tools for developers: LAC's menus now offer 7 online, multi-user, server-based missions instead of just three. At this point, however, the four additional, new missions are functional duplicates of "Mission Network 01", so this is just an interim release, anticipating further development in each of those four new missions. The client and server infrastructure in support of all missions has been significantly expanded in support of these additional missions: Whether in flight or from within LAC's mission menus, selection of any combination of either of the two distinct Mumble Command Modes, 32 Realms, 7 Missions, and two Team Affiliations results in correct display of the corresponding information, in the proper color, on the cockpit's Mumble Panel, and Mumble quickly switches to the corresponding channel if it has been created on the server, or to the nearest available approximation thereof if nobody has yet created that Mumble channel. All seven missions have been subjected to significant online testing and appear to be stable, well-behaved, and well-documented.
The source code for each of the seven online, multi-user, server-based missions has been broken out of "mission.cpp" for better modularization, and EXTENSIVE source-code comments have been inserted into each of the four files corresponding with the four new missions. As a consequence, it will hereafter be fairly easy for programmers of elementary or better skill to customize the source code for the creation of new, more sophisticated missions. Two of those missions have already been "spoken for" as follows:
Blake Williams is working on Mission #4.
Hyrum Bosen wants to begin working on Mission #5 soon.
Accordingly, Missions #6 and #7 are available for community experimentation and development. If you decide to participate, please read the extensive explanatory comments within the source code of "MissionNetworkBattle06.cpp" or "MissionNetworkBattle07.cpp" as appropriate to your choice, and follow the guidance therein given. Please avoid modifying any of the source code for the other files unless you negotiate something extraordinary with me, as primary developer, through email contact via "webmaster@AskMisterWizard.com".
The missions are written in industry-standard "C++", but with the extensive source-code commentary that is now available, you really don't need to know much about C++. You can just follow and expand the well-documented, existing pattern. If you want to create an official new mission for Linux Air Combat, THIS IS YOUR CHANCE! Submit your modified source code for my evaluation. You have a lot of freedom to choose different aircraft, weather conditions, terrain features, victory goals, mission object locations, numbers, and dynamic positions, durabilities, weapon loadouts, timed or event-driven cockpit messages, text-to-speech messages, etc. I can easily visualize far more sophisticated missions with, for example, additional defended airfields, moving battleships, aircraft carriers, timed cockpit messages, timed audio messages, additional anti-aircraft guns, moving tanks, more complex victory conditions, etc. Check in on LAC's forums for further guidance. A new forum area, for mission developers, will soon appear and I will populate it with YouTube clips showing exactly what to do to get started.
This version also offers more multimedia and menu help for new users needing to configure their online usernames for use in the LAC community.
A few bugs were also fixed, including yet more protection from the segmentation errors that have sometimes been seen immediately upon entry into online missions with active gun-camera player activity. Previous releases had been diminishing the frequency of these errors, but they were still seen from time to time. I HOPE they are all gone now!
Users who have installed the popular "espeak" text-to-speech application will now hear brief text vocalized from time to time. At present this is used only for introductory or explanatory information in unusual situations.
Users who have installed the popular "vlc" media player application will now see and hear brief new video clips from time to time. At present this is used only for introductory or explanatory information in unusual situations.
Users are encouraged to install "vlc" and "espeak" if their LINUX distro does not automatically make them available. Both of these applications are popular, well-known, well-behaved, and ubiquitously available. Although their use in LAC is minimal and optional at present, we anticipate their increasing use within new missions, and new mission developers ought to be able to have a lot of fun inserting video clips and/or text-generated speech into their work.
As configurable new options, LAC's automated use of "espeak" and "vlc" can be individually disabled by editing the value of "NetworkMode" within the user's ~home/.LAC/LacConfig.txt configuration file. This follows the same pattern that has long been used for optional disabling of LAC's automated use of "Mumble".
No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.
Last edit: bbosen 2020-06-02
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
As of today, 24Jun2020, LAC has been updated to Version 8.21 (and we can expect additional updates as time goes by).
Now there are TEN online, multi-player, server-based missions. The first three among these, unchanged during the past year or so, are considered the "classics", and the associated, online documentation describes their general principles. New users should become familiar with those three missions before graduating to newer ones.
Most of the newer missions are samples, intended for enhancement and expansion by volunteers, working as official "LAC Mission Developers". Experience with them will quickly reveal opportunities to make them better. Nevertheless, they are already quite sophisticated, and they include important new features like moving warships. Because the source code for those sample missions is extensively documented with internal comments, it is fairly easy for programmers of rudimentary skill to improve them. The existing source-code infrastructure even automates complex tasks like synchronizing the position of moving warships across multiple online players as missions develop.
Two of the newer missions have already been "claimed" by Mission Developers, and they show up as "BLAKE'S MISSION" and "HYRUM'S MISSION", respectively.
Another new mission, named "PEABODY'S MISSION", is already in a reasonable state of completion. It is a lot more sophisticated than any of the three "classic" missions. For example, in order to achieve victory, it is now necessary to destroy TWO opposing airfields instead of just one, making for more complex interplayer tactics and myriad opportunities for devious behavior. Furthermore, the terrain is more complex in this mission, and the HQ airfields are vigorously defended by additional, adjacent artillery batteries. The published source code for this mission, contained within the "MissionNetworkBattle06.cpp" file, could serve as a template for additional, similar missions in the future.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Welcome to LAC's "Mission Developers" forum. Since publication of LAC version 8.11 in late May of 2020, several skeletal missions are included in LAC's source code. As originally distributed, those missions exactly duplicated the logic of our well-known "classic" Network Mission #1. Since that time, those sample missions have become increasingly sophisticated.
Furthermore, the published source code of these new missions is extensively commented, and users are encouraged to modify and improve it. Those having success with this exercise can create improved, new missions, and they can submit their improved source code as attachments to postings in this forum for evaluation by the LAC community and LAC developers. The best of them will be incorporated into future versions of LAC!
All of these skeletal missions compile, link, and run nicely as published. As working code, they can be of GREAT help to new mission developers. By compiling and exercising them without any changes, New Mission Developers can exercise all of their tools and gain confidence. Then, by making single, simple, small changes, New Mission Developers can easily learn how to enhance those missions gradually, and how all of the relevant code snippets affect mission behavior. (Wise developers will always retain an extra copy of the original, unchanged source code so they can repair any changes that they regret making.)
In the future, this exercise may result in creation of many new missions, and LAC's menus will be expanded as they become available.
This forum is for questions and answers on this subject.
Last edit: bbosen 2023-02-20
Here is a copy of the "What's New" section for LAC Version 8.11 where the provisions for development of new missions were first announced:
===============================================
Changes in the late-May 2020 version (Lac08p11) include:
Additional missions and tools for developers: LAC's menus now offer 7 online, multi-user, server-based missions instead of just three. At this point, however, the four additional, new missions are functional duplicates of "Mission Network 01", so this is just an interim release, anticipating further development in each of those four new missions. The client and server infrastructure in support of all missions has been significantly expanded in support of these additional missions: Whether in flight or from within LAC's mission menus, selection of any combination of either of the two distinct Mumble Command Modes, 32 Realms, 7 Missions, and two Team Affiliations results in correct display of the corresponding information, in the proper color, on the cockpit's Mumble Panel, and Mumble quickly switches to the corresponding channel if it has been created on the server, or to the nearest available approximation thereof if nobody has yet created that Mumble channel. All seven missions have been subjected to significant online testing and appear to be stable, well-behaved, and well-documented.
The source code for each of the seven online, multi-user, server-based missions has been broken out of "mission.cpp" for better modularization, and EXTENSIVE source-code comments have been inserted into each of the four files corresponding with the four new missions. As a consequence, it will hereafter be fairly easy for programmers of elementary or better skill to customize the source code for the creation of new, more sophisticated missions. Two of those missions have already been "spoken for" as follows:
Blake Williams is working on Mission #4.
Hyrum Bosen wants to begin working on Mission #5 soon.
Accordingly, Missions #6 and #7 are available for community experimentation and development. If you decide to participate, please read the extensive explanatory comments within the source code of "MissionNetworkBattle06.cpp" or "MissionNetworkBattle07.cpp" as appropriate to your choice, and follow the guidance therein given. Please avoid modifying any of the source code for the other files unless you negotiate something extraordinary with me, as primary developer, through email contact via "webmaster@AskMisterWizard.com".
The missions are written in industry-standard "C++", but with the extensive source-code commentary that is now available, you really don't need to know much about C++. You can just follow and expand the well-documented, existing pattern. If you want to create an official new mission for Linux Air Combat, THIS IS YOUR CHANCE! Submit your modified source code for my evaluation. You have a lot of freedom to choose different aircraft, weather conditions, terrain features, victory goals, mission object locations, numbers, and dynamic positions, durabilities, weapon loadouts, timed or event-driven cockpit messages, text-to-speech messages, etc. I can easily visualize far more sophisticated missions with, for example, additional defended airfields, moving battleships, aircraft carriers, timed cockpit messages, timed audio messages, additional anti-aircraft guns, moving tanks, more complex victory conditions, etc. Check in on LAC's forums for further guidance. A new forum area, for mission developers, will soon appear and I will populate it with YouTube clips showing exactly what to do to get started.
This version also offers more multimedia and menu help for new users needing to configure their online usernames for use in the LAC community.
A few bugs were also fixed, including yet more protection from the segmentation errors that have sometimes been seen immediately upon entry into online missions with active gun-camera player activity. Previous releases had been diminishing the frequency of these errors, but they were still seen from time to time. I HOPE they are all gone now!
Users who have installed the popular "espeak" text-to-speech application will now hear brief text vocalized from time to time. At present this is used only for introductory or explanatory information in unusual situations.
Users who have installed the popular "vlc" media player application will now see and hear brief new video clips from time to time. At present this is used only for introductory or explanatory information in unusual situations.
Users are encouraged to install "vlc" and "espeak" if their LINUX distro does not automatically make them available. Both of these applications are popular, well-known, well-behaved, and ubiquitously available. Although their use in LAC is minimal and optional at present, we anticipate their increasing use within new missions, and new mission developers ought to be able to have a lot of fun inserting video clips and/or text-generated speech into their work.
As configurable new options, LAC's automated use of "espeak" and "vlc" can be individually disabled by editing the value of "NetworkMode" within the user's ~home/.LAC/LacConfig.txt configuration file. This follows the same pattern that has long been used for optional disabling of LAC's automated use of "Mumble".
No changes were made that affect flight. When used in any of the three classic online, multi-user, server-based missions, this version remains operationally compatible with all prior versions since Lac07p92.
Last edit: bbosen 2020-06-02
As of today, 24Jun2020, LAC has been updated to Version 8.21 (and we can expect additional updates as time goes by).
Now there are TEN online, multi-player, server-based missions. The first three among these, unchanged during the past year or so, are considered the "classics", and the associated, online documentation describes their general principles. New users should become familiar with those three missions before graduating to newer ones.
Most of the newer missions are samples, intended for enhancement and expansion by volunteers, working as official "LAC Mission Developers". Experience with them will quickly reveal opportunities to make them better. Nevertheless, they are already quite sophisticated, and they include important new features like moving warships. Because the source code for those sample missions is extensively documented with internal comments, it is fairly easy for programmers of rudimentary skill to improve them. The existing source-code infrastructure even automates complex tasks like synchronizing the position of moving warships across multiple online players as missions develop.
Two of the newer missions have already been "claimed" by Mission Developers, and they show up as "BLAKE'S MISSION" and "HYRUM'S MISSION", respectively.
Another new mission, named "PEABODY'S MISSION", is already in a reasonable state of completion. It is a lot more sophisticated than any of the three "classic" missions. For example, in order to achieve victory, it is now necessary to destroy TWO opposing airfields instead of just one, making for more complex interplayer tactics and myriad opportunities for devious behavior. Furthermore, the terrain is more complex in this mission, and the HQ airfields are vigorously defended by additional, adjacent artillery batteries. The published source code for this mission, contained within the "MissionNetworkBattle06.cpp" file, could serve as a template for additional, similar missions in the future.
[kick]