Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

39 Excellent

1 Follower

About Sparker

  • Rank
    Lance Corporal

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Sparker

    AI Facts & Myths Compilation List

    Group units sometimes split into another group when entering another vehicle - TRUE. It's terribly hard to reproduce (thus I can't create a ticket for it), and I have had it a a few times in a dynamic scenario. Every time it was connected with soldiers being ordered to get into a vehicle when units of other group were in that vehicle. It's very rare, but something to keep in mind if you do AI scripts.
  2. Sparker

    AI Driving - Feedback topic

    Of course it is. It's called 'Driving AI'. That's what Arma is supposed to be doing internally. xD
  3. Thanks! With this addon (this is why I initially made it) you will be able to write debug text information into different text files. By default you have only the diag_log command which writes data to single .rpt file. If there are too many components in your mission/addon design, reading output from many modules is very inconvenient, so you might want to redirect all the information, from, for instance, medical system, into a different file. The addon I've made lets you do that by adding more SQF commands to achieve this. There is no way to add a custom SQF command by default, but with the usage of the Intercept library it becomes possible. I hope it answers your question? If not, I'm sorry, I didn't quite understand what you mean.
  4. Hi there! This tiny Intercept-based addon adds two SQF commands to output data to files in text mode. You can open a file and write data to it. That's it for now! Usage examples: g_myRpt = ofstream_new "myRpt.rpt"; // Opens a file and returns a handle to it g_myRpt ofstream_write "Some text"; // Write some text to a previously opened file g_myRpt << "Look, I can output text like in C++"; // '<<' is the same as 'ofstream_write' (ofstream_new "myRpt.rpt") ofstream_write "Some text"; // We can also 'open' the file every time we want to write, the addon will handle that fine // You should probably make yourself a macro like this: // Uncomment to switch between output to external file and standard diag_log // #define OFSTREAM_ENABLED #ifdef OFSTREAM_ENABLED #define MY_LOG (ofstream_new "myModule.rpt") ofstream_write #else #define MY_LOG diag_log #endif Download / Installation: Files will be created in <ARMA ROOT>/Logs folder Install to Arma root directory as a typical mod: https://github.com/Sparker95/ARMA-ofstream/releases Also you will need the Intercept host addon, this will do: https://steamcommunity.com/sharedfiles/filedetails/?id=1645973522 And disable Battleye before launching Arma! Source (to prove that It won't mine bitcoins): https://github.com/Sparker95/ARMA-ofstream/blob/master/src/FileInterface.cpp https://github.com/Sparker95/ARMA-ofstream/blob/master/src/FileInterface.h Intercept is an amazing project which lets you interface C++ (and, I think, Python and Lua?) code with the RV engine: It's pretty easy to make a working addon (I did it from this template: https://github.com/intercept/intercept-plugin-template ) and I hope developers will use it more often!
  5. Sparker


    Yes but it is pleasant neither for me nor for my enemy if I spawn right on his head by chance. I think this check wouldn't harm much. Anyway, that's a nice mode, it was quite fun to play. It reminds me of EUTW server, but with more accessible proper weapons and bigger role of AI usage.
  6. Sparker


    Hi! A little suggestion, but might have already been mentioned: when teleporting to a location, make sure we don't spawn right next to an enemy.
  7. Thanks! You are totally right. I have corrected that in the message.
  8. > Sorry to rain on your parade but I'm glad BIS don't waste their time and bother with AI anymore Ofcourse some old players may leave, but they will be replaced by a bigger horde who prefer modder-friendly platform on a new engine over useless tries to simulate human behaviour by AI. What we(or at least I) mean by 'bad AI' here is not bots' lack of intelligence but their inability to follow a plan, either made by their planner or by a human, in the virtual world where they exist. They would often crash into everything, poorly navigate in city environments, or even get totally stuck in the middle of an open road. This could do in something like GTA where a policeman's lifespan is half a minute, until he is replaced by a new one, but when something has to happen in the big scale of ARMA it is totally inacceptable. I guess their AI code just became totally unmanageable, since it's FSM-based and as I understand it's derived from the very first iterations of Operation Flashpoint AI. I could understand this lack of will to invest effort into this as a programmer but unfortunately not as a consumer of their products. Also, as for the point 'PvP is the future', this is simply not true. I have seen lots of ARMA players who prefer more casual PvE gameplay. In order to create better dynamic PvE scenarios we obviously need NPCs which can at least do what they are told to with the provided tools, that is, the SQF scripting commands we currently have.
  9. This is an OOP implementation for SQF which is hugely inspired by a similar project, OOP.h . Why another one? I like OOP.h but as I found out, it has a big impact on performance, which lies deep in how it is done. I don't mean to say that OOP.h is bad, it just has one limitation which I was forced to work around. Then it's better to share code than not, right? So, I decided to reinvent it, but with the aim of minimizing performance impact, and here is what we have: Based on SQF preprocessor, so you need to #include a single file. Supports member variables, methods, static variables, static methods and class inheritance(no multiple inheritance yet). With a single preprocessor flag (#define OOP_ASSERT in OOP_Light.h) you can enable or disable run-time error checks, which verify most common errors, like attempts to access a non-existent member or class. If enabled, it will output errors in a human-readable way. Good performance. Really, with debug disabled, a macro like GETV(_veh, "varName"); gets expanded into "missionNamespace getVariable (_veh+"_"+"varName");", which is typically not such a great performance loss. No support for public/private/protected keywords yet, so all members are public. Currently it is in 'beta' state. It seems to work and I don't see any major game-breaking issues with it as I have tried to do a little development with it. Also there is no documentation but you can examine the example files and classes and see how it works. As an example, the project contains a few useful classes written with OOP-Light: MessageLoop, MessageReceiver and Timer. An example of how to use them is located in Example.sqf file. MessageLoop and MessageReceiver can help you easily create a message loop, a useful construction which lets you manage processing of some events in a fixed amount of SQF threads, or helps you pass data between threads. Timer class just generates messages at fixed time intervals and sends them to the specified MessageReceiver. Github link: https://github.com/Sparker95/OOP-Light I hope someone finds this useful!
  10. Thanks! You are very much right... I was looking for something like the profiling build does actually. Profiling, Performance, Arma Script Profiler, these things are so confusing!
  11. So, could we load it on a linux arma 3 server and remotely profile it? I'd like see what the engine is doing every frame. because we often have huge performance drops down to ~3 FPS and it would be very interesting to know what the hell is going on.
  12. Sparker

    AI Driving - Feedback topic

    Where is 2.? Having a list of known mission developers is a good argument. Why does 4. make you laugh? I'm not really aware of the structure of the company and who is responsible for what and who we should send it to, but I can imagine the collective message having more effect than our usual bumping of this thread.
  13. Sparker

    AI Driving - Feedback topic

    I suggest we do it like this: 1. Find scenarios and videos showing the evident failures of driving and convoy handling without any mods. 2. Collect (a sort of) signatures of people affected by this issue, most important is to find mission developers of popular scenarios. 3. Create a proper text which explains everything. 4. Send it to someone in the upper management of the company who can dispatch the resources to respond to the problems. If the company is known for its relations with the content creating community, they won't ignore this (I guess).
  14. Sparker

    AI Driving - Feedback topic

    You don't just say the magic word 'modular' and expect something to be magically better based on that. For instance, the issue of airplane issuing a turn-away maneuver 300 meters from target instead of 500, is it because it's not modular? Also I think there is no way to let modders access the AI code since it's written in C, not SQF. Unless they specially implement the AI code as a library, give us its source code and let us connect a different library to the game. "a way too low cost-benefit ratio (spend days, weeks fixing seemingly simple issue) " - the AI topic clearly affects mission creators like Barbolani. Upset mission creators -> less missions -> less players -> less money, I thought it should look like this from a company's point of view. I think this whole conversation is pretty pointless. Clearly, nobody is going to do anything with AI any more, ever. I have made a negative review on Arma to raise the awareness of other people about this problem. It's not something I'd like to do to my favourite game, but what else can we do?
  15. Sparker

    AI Driving - Feedback topic

    Sorry to post my workaround to 'convoys get stuck trying to depart' problem', but in case @barbolani needs it: if convoy is detected to get stuck by a script, try to select a new different leader for the convoy group. AI will do some replanning and eventually they will start moving... that's the best I know right now.