MulleDK19 21 Posted December 21, 2009 (edited) Okay. I originally played OFP (GOTY), then ARMA (+Queen's Gambit) and finally ARMA 2 (And eagerly awaiting Operation Arrowhead) But... There's some things that I've always been annoyed by the series: No 3rd-party components. Please, Bohemia, for the love of god... For once in history, please use 3rd-party components! I want, Lua for scripting. Havok, Euphoria and DMM for physics. On a side-note, these features would be awesome! - Possibility to put injured people (dragging/carrying) into vehicles. - Possibility to create physics constraints (Would require a real physics engine), like ropes, elastics, hinges, etc. - Animations for getting in and out of vehicles, and doors actually opening/closing etc. - Physics interactions! (Havok) - Ragdolls! (Euphoria) - Destructable everything! (DMM) - Possibility to group multiple units in the editor simultaneously. - Possibility to shoot from vehicles with infantry weapons. (eg. from the side of little-birds). - Possibility to report your position. - Possibility to carry multiple maps, radios, etc. - Losing remaining ammo if reloading before a clip is empty. - More fluid movement. - Easier way of opening/closing doors (Both ways). - More orders for commanding units. - Combining team commands, eg. if you have four units, (unit 1, 2 = team yellow, unit 3, 4 = team red), selecting all four and issue the "Open Fire" command would issue order: "Team Yellow and Red, Open fire!"), instead of "1, 2, 3, 4, Open fire!". - Also, when issuing commands. If you have 30 units in your group (example), and you select 29, of them, instead of having to say "1,2,3,4,5,6,7...29, Open fire!", just "All except 29, Open fire!". - Every building enterable. - Using Euphoria for vehicle physics, and DMM for handling dynamic vehicle damage. - Varying muzzle flashes (It's the exact same for each shot, at the moment). - Possibility to move from seat to seat in vehicles. (And walking around in larger vehicles, such as airplanes). - Possibility for HALO with animation. - Real physics handled parachutes. - Refueling-airplanes. - Real physics for windows. - Destructable terrain (eg. grenades). - Bring us the scripting functions from VBS1/2 (But using Lua). - Make use of hooking events in Lua, much like the addEventHandler. Example: function MyFunction(victim, weapon, projectile, killer) victim:PrintToChat("You were killed by a " .. projectile:GetClass() .. " projectile, fired from a " .. weapon:GetClass() .. ", held by " .. killer:Name() .. "!"); victim:PrintToChat("The projectile hit you with " .. projectile.LastSpeed .. " km/s."); end hook.Add("UnitKilled", "HookName", MyFunction); Would print to the victims screen: You were killed by a 5.56x45 mm projectile, fired from an M-16, held by Arnold Schwarzenegger!The projectile hit you with 889.533 km/s. - Everything would be so much easier using Lua. Example for creating a pilot, a vehicle and send him to a location: local TransportOrderer = nil; --No one has requested transport local TransportPilot = nil; --No pilot local TransportChopper = nil; --No chopper function SendTransport(unit) TransportOrderer = unit; --Store the unit currently ordering transport, so no one else can. local pilot = unit.Create("USMC_Soldier_Pilot", marker.GetByName("SpawnPos").GetPos()); --Create pilot at marker named "SpawnPos". pilot.SetBehaviour(BEHAVIOUR_CARELESS); TransportPilot = pilot; local chopper = vehicle.Create("MH60S", marker.GetByName("SpawnPos").GetPos()); --Create MH60S at marker named "SpawnPos". TransportChopper = chopper; chopper.SetEngine(true) --Force the engine to be instantly turned on. chopper.FlyInHeight = 100; --Fly high above. chopper.SetPos(vector(chopper.GetPos().X, chopper.GetPos().Y, chopper.GetPos().Z + 100); --Set Z position 100 meters above chopper.AddImpulseDir(DIR_FORWARD, 100) --Push the chopper forward to make it fly on start. pilot.WarpIntoVehicle(chopper, SEAT_DRIVER); --Move the pilot into the driver's seat. pilot.MoveTo(unit.GetPos()); --Make the pilot fly to the unit who ordered the transport. hook.Add("UnitReady", "SomeUniqueName2", UnitIsReady); --Add an event handler for the UnitReady event. end --This function is triggered when any unit reports itself as ready function UnitIsReady(unit) if unit == TransportPilot then --The pilot is ready, make him land. pilot.Land(LAND_HOVER); --Make the pilot hover above the ground. hook.Remove("UnitReady", "SomeUniqueName2") --Remove the hook called "SomeUniqueName2" from the vent "UnitReady". hook.Add("Tick", "SomeUniqueName3", Ticker); --Hook the tick event end end local ticking = 0; function Ticker(deltatime) --deltatime contains the time in seconds since the last tick ticking = ticking + deltatime if ticking >= 1 then ticking = 0 --There's been a second since last time we reached this if-statement. --We do this to spare some processing power. if TransportOrderer.CurrentVehicle == TransportChopper then --When the unit who ordered the transport has mounted the helicopter, take off. hook.Remove("Tick", "SomeUniqueName3"); --Remove hook from the Tick event. hook.Add("MapClicked", "SomeUniqueName4", MapWasClicked); --Add hook for map clicking. TransportOrderer:PrintToChat("Please select your destination by clicking on the map!"); end end end function MapWasClicked(unit, pos) if unit != TransportOrderer then return; --Only the unit who called for transport can choose destination. local ReadablePosition = util.GetCoordinatesFromPosition(pos); --Convert vector position (eg. Vector(351.5, 251.2, 35.1)) to coordinates (eg. 069074). unit:PrintToChat("Going to co-ordinates " .. ReadablePosition .. "."); pilot.MoveTo(pos); end function RadioHandler(unit, radio) if radio == ALPHA then if TransportOrderer == nil then --If no one is currently waiting for transport SendTransport(unit); --Send transport to unit who triggered the radio. unit:PrintToChat("Transport is on the way, stay put!") --Tell the player that the transport is on it's way. else unit:PrintToChat("Sorry, " .. unit:Name() .. ", but the transport helicopter is currently transporting " .. TransportOrderer:Name() .. ". Please try again later!"); end else unit:PrintToChat("Sorry, " .. unit:Name() .. ", there is no action for this radio command!") end end hook.Add("RadioActivated", "SomeUniqueName", RadioHandler) --Add hook for the RadioActivated event. Give it the name "SomeUniqueName" so the hook can be removed later. On activation, event will trigger function RadioHandler. Ya, I know... I'm dreaming too much. But seriously. I don't care if I have to buy Roadrunner or pay double the price to get all this. - Server-side and client-side scripting. Example: Server-side script: AddCSLuaFile("cl_init.lua"); --Send the client-side script to the client. function SomeoneConnected(ply) local name = ply:Name(); if string.find(string.lower(name), "fuck") or string.find(string.lower(name), "bitch") or string.find(string.lower(name), "asshole") or string.find(string.lower(name), "shit") or string.find(string.lower(name), "retard") or string.find(string.lower(name), "jerk") or string.find(string.lower(name), "noob") or string.find(string.lower(name), "n00b") then --Kick player for having an insulting word in his name. ply:Kick("Sorry, " .. name .. ". Please remove the insulting words from your name, and feel free to rejoin!"); return; end end hook.Add("PlayerConnected", "PlayerConnected1", SomeoneConnected); function PlayerSpawnedFirstTime(ply) --Welcome the player ply:PrintToChat("Welcome to the server, " .. name .. ". Enjoy your stay :)"); --Wait 5 seconds, then show the Message Of The Day. timer.Simple(5.0f, ShowMOTD, ply); end hook.Add("PlayerInitialSpawn", "PlayerInitialSpawn1", PlayerSpawnFirstTime); function ShowMOTD(ply) usermessage.Send(ply, "MOTD"); --Send a message to the client. Msg("The MOTD was shown to " .. ply:Name() .. "\n"); --Print message in server console. end Client-side script: function CreateMOTDAndShowIt() --Here should be some code to create a panel, with a message and a close button. local MOTDDialog = dialog.Create("Panel"); --Create a panel MOTDDialog.ZOrder = 0; --Make sure it's background. --Set position, etc. etc. --Create text, buttons, etc. local CloseButton = dialog.Create("Button", MOTDDialog) --Parent is MOTDDialog CloseButton.OnClick = function() MOTDDialog.Close() end; --Close dialog on click --Dialogs should be created through code, instead of being defined in Description.ext MOTDDialog.Show(); end function someFunction(msg) --A user message has been received from the server. if msg == "MOTD" then --If the message is "MOTD", then create the MOTD dialog and display it. CreateMOTDAndShowIt(); else Msg("Received unknown user message from server (" .. msg .. ")\n"); --Print message in local client's console end end hook.Add("UserMessageReceived", "UniqueNameHere", someFunction); function DrawHUD() --Drawing event local X = 32; local Y = 16; local C = color(50, 100, 255, 150); --Blueish (semi-transparent) draw.SimpleText("You are playing on SERVER_NAME_HERE, enjoy your stay!", X, Y, C); --Text "You are playing on SERVER_NAME_HERE, enjoy your stay!" will be drawn on the player's screen at all times, at position 32, 16. end hook.Add("HUDPaint", "HUDPaint1", DrawHUD); --Hook the draw event I've really put some work into these pseudo-scripts, because I really want to see it as the future ARMA 3 from Bohemia Interactive. Concept for Digital Molecular Matter I made a video using After Effects and Premiere to fake DMM in ARMA 2: Concept for Euphoria Greetings from Denmark - Morten. Codemasters don't hold a candle to you, Bohemia Interactive! Edited December 22, 2009 by MulleDK19 Added fake DMM video Share this post Link to post Share on other sites
Flash Thunder 10 Posted December 21, 2009 A whole new engine would have to be made to even allow havok physics, look at Dragon Rising for an example, putting physics into video games is eye candy more than anything utterly destorys performance for lower end PC's and the overall graphical fidelity will be less, to compensate for Physics calculations. Man can dream though. Also dont think Arma 3 will come out, its been said that BIS is getting burnt out, I would feel the same, these kind of games take alot of energy and time to develope. Share this post Link to post Share on other sites
jasonnoguchi 11 Posted December 21, 2009 i think ArmA3 and Real Virtuality 4 will happen. :) I still feel the BIS guys have more up their sleeves and they have still yet to achieve what they really want to with ArmA2. Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 Also dont think Arma 3 will come out, its been said that BIS is getting burnt out, I would feel the same, these kind of games take alot of energy and time to develope. Why would you think that? Because they said their next game would be fARMA? lol. That's an internal joke, btw. Bohemia will not stop making war games. And seriously. If the only change from ARMA 2 to ARMA 3 was the scripting engine and physics, I would still buy it, no doubt about that. Share this post Link to post Share on other sites
Flash Thunder 10 Posted December 21, 2009 Why would you think that? Because they said their next game would be fARMA? lol. That's an internal joke, btw. Bohemia will not stop making war games.And seriously. If the only change from ARMA 2 to ARMA 3 was the scripting engine and physics, I would still buy it, no doubt about that. No they were talking about Carrier Command. Just look at it this way Ten years of developing the same thing developers get bored of it, Bungie and BIS are prime examples of this. I would still buy it also. :) Share this post Link to post Share on other sites
katipo66 94 Posted December 21, 2009 Got my vote... i want all that and more! i want everything... and yes if they offered half that stuff especially ragdoll i would happily pay double price for the game! Share this post Link to post Share on other sites
jasonnoguchi 11 Posted December 21, 2009 @Katipo66, you can get ragdoll effect using some of the mods available you know? no need to pay double the price. (unless we are not talking about the same thing here) Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 Digital Molecular Matter I made a video using After Effects and Premiere to fake DMM in ARMA 2: Share this post Link to post Share on other sites
Flash Thunder 10 Posted December 21, 2009 Digital Molecular MatterI made a video using After Effects and Premiere to fake DMM in ARMA 2: That would be a huge jump forward if this was in Arma 3, imagine how Epic the gameplay and missions could be??? Destorying buildings with Tanks and Satchels wouldnt be the same. Nice video by the way. Share this post Link to post Share on other sites
walker 0 Posted December 21, 2009 (edited) ...- Ragdolls! (Euphoria)... Hi all MulleDK19's call to put Flacid Dick in ArmA 3 is something I am against. It is not (Euphoria) sir it is (Impotence) No Flacid Dick in ArmA 3 please. Kind Regards Edited December 21, 2009 by walker Share this post Link to post Share on other sites
Dwarden 1125 Posted December 21, 2009 (edited) no need to rely just on Havok better to utilize P.A.L. (Physics Abstraction Layer) while use as base physical engine e.g. Bullet Physics Library this way You get easy access to cost effective (no license fees) OpenCL accelerated physics You can also then interact Bullet with e.g. DMM and accelerate both via OpenCL while Euphoria is nice yet any proper realtime (semi/full)procedural animation blending would be enough ... also there are similar middlewares around with better price tag ... e.g. Locomotion for walking the LUA part raise the question is if it's worth it or why not look for something what may challenge LUA, one of candidates may be AngelScript some may fight for good old Python in the end just evolve SQF + allow direct C++ API linking to the application (hint VBS2Fusion) C++ code build with Intel TBB/IPP/etc or Parallel Studio combined with DX11 to squeeze max of todays PC platforms the above is just example that You should always consider other ways Edited December 21, 2009 by Dwarden Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 (edited) while Euphoria is nice yet any proper realtime (semi/full)procedural animation blending would be enough ... also there are similar middlewares around with better price tag ... e.g. Locomotion for walking Except that Euphoria can be 100% physics. Euphoria is able to make soldiers stumble with physics while still being able to fire, etc. the LUA part raise the question is if it's worth it or why not look for something what may challenge LUA, one of candidates may be AngelScript some may fight for good old Python in the end just evolve SQF + allow direct C++ API linking to the application (hint VBS2Fusion) C++ code build with Intel TBB/IPP/etc or Parallel Studio combined with DX11 to squeeze max of todays PC platforms I'd rather have Lua than any C++ like scripting language. Lua is fast, flexible, easy to learn, and very forgiving. No need to define variable types. You can put anything in them. Even functions. You can even rename native libraries, lol. io.write(string.lower("LOL\n")) --Gives result "lol"local bla = string; string = nil io.write(bla.lower("LOL\n")) --Gives result "lol" io.write(string.lower("LOL\n")) --No longer exists Aaah... And it worked first try xD http://www.lua.org/cgi-bin/demo It's really a nice language to work with. Edited December 21, 2009 by MulleDK19 Share this post Link to post Share on other sites
johncage 30 Posted December 21, 2009 they could really use speed tree. Share this post Link to post Share on other sites
zombo 10 Posted December 21, 2009 (edited) A melee attack , A more inteligent IA , NO MORE BUGS , NOT MORE USSR ,RUSSIA . I would like to see England , China ,Irak, Iran,Germany , maybe USA but with new vehicles like f16 or f18 new weapons etc . a real country, a real city, No more repeated vehicles like T-72 or BMP2 or 1 they are in the game since OFP1 , MORE NEW ONES LIKE T95, more realistic air fly, more ships submarines, more realistic weapon sounds and scary,the ak47 and ak 107 in arma 2 sounds like toy guns for me ,more betters graphics a conboy waypoint and no more robotic voices and so on ... :smile: sorry for my bad English :) Edited December 21, 2009 by zombo Share this post Link to post Share on other sites
Deadfast 43 Posted December 21, 2009 - Everything would be so much easier using Lua. Why exactly? I think BIS did a good job with SQF/SQS. If anything needs to improve it's the client-to-client(server) communication. Share this post Link to post Share on other sites
whisper 0 Posted December 21, 2009 ArmA3 is Carrier Command:Gaeia Mission, apparently I suggest you take a look at the dedicated forum a bit lower in these forums Share this post Link to post Share on other sites
sickboy 13 Posted December 21, 2009 (edited) Programming away in Ruby these past months, I surely can agree to wanting an Object-Orientated programming language, with nicer typing and more flexibility :) SQF gets the thing done, but the above would seriously increase productivity, and creativity, as it will be easier to get things done, and more fun :) Edited December 21, 2009 by Sickboy Share this post Link to post Share on other sites
dm 9 Posted December 21, 2009 they could really use speed tree. :facepalm: Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 A melee attack , A more inteligent IA , NO MORE BUGS , NOT MORE USSR ,RUSSIA . I would like to see England , China ,Irak, Iran,Germany , maybe USA but with new vehicles like f16 or f18 new weapons etc . a real country, a real city, No more repeated vehicles like T-72 or BMP2 or 1 they are in the game since OFP1 , MORE NEW ONES LIKE T95, more realistic air fly, more ships submarines WTF? I don't wanna miss the T-72 or BMP2, or any other vehicle. more realistic weapon sounds and scary,the ak47 and ak 107 in arma 2 sounds like toy guns for me Uhm... You play too much CoD. The sounds in ARMA 2 sounds exactly like real-life. more betters graphics WTF... ARMA 2 has some of the best graphics. Buy nVidia. Why exactly? I think BIS did a good job with SQF/SQS. If anything needs to improve it's the client-to-client(server) communication. SQF/SQS is really crap. It's fucking annoying. I'd rather work with machine language than SQS/SQF (And I do). Share this post Link to post Share on other sites
4 IN 1 0 Posted December 21, 2009 SQF/SQS is really crap. It's fucking annoying. I'd rather work with machine language than SQS/SQF (And I do). But others dont. The simple fact is, I dont think there would be any change on this matter unless BI start everything from the begining, which I dont think BI will think of giving the time they have been using them, nor is it worth the time and money to do such thing, unless BI somehow wanted to use 3rd party engine which AFAIK notthing on the market can match what RV is doing in terms of scale Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 (edited) But others dont.The simple fact is, I dont think there would be any change on this matter unless BI start everything from the begining, which I dont think BI will think of giving the time they have been using them, nor is it worth the time and money to do such thing Dude, Lua is easy to implement. The current scripting engine in ARMA 2 is simply a module. Remove it and you just won't be able to use scripts. You would probably get a few errors, if some other modules depend directly on the scripting module, but otherwise, there'd be no problem. All the functions are native functions in the game. SQS/SQF simply contains a reference to the native functions and all you need to make it work with Lua, is to tell Lua the addresses of those functions. It's really simple. Right now, they do: RegisterScriptFunction("moveInCargo", unknown, unknown, unknown, unknown, native_moveInCargo); Pseudo-code: lua_State* L; //Lua intepreter void MissionBegin() { L = lua_open(); //Initialize Lua luaL_openlibs(L); //load Lua base libraries //Register functions lua_register(L, "moveInCargo", native_moveInCargo); lua_register(L, "moveInDriver", native_moveInDriver); lua_register(L, "moveInGunner", native_moveInGunner); lua_register(L, "moveInCommander", native_moveInCommander); //And making an all in one function would be even better. //Which wouldn't even be that difficult, as they already have functions for each position. lua_register(L, "WarpIntoVehicle", WarpIntoVehicle); //The best, though, would be to make a custom data type called Unit, which has all the sub-functions, like in my pseudo-code in the first post. //Run a script luaL_dofile(L, "init.lua"); } const int POS_DRIVER = 0; const int POS_GUNNER = 1; const int POS_CARGO = 2; const int POS_COMMANDER = 3; void WarpIntoVehicle(unit, vehicle, pos) { if(unit == NULL || vehicle == NULL) ThrowScriptError("Parameter UNIT and VEHICLE can not be NULL!"); switch(pos) { case POS_DRIVER: native_moveInDriver(unit, vehicle); break; case POS_GUNNER: native_moveInGunner(unit, vehicle); break; case POS_CARGO: native_moveInCargo(unit, vehicle); break; case POS_COMMANDER: native_moveInCommander(unit, vehicle); break; default: ThrowScriptError("That is an invalid vehicle position!"); break; } } Took me 5 minutes to implement Lua in C++. It would just require all the current scripting functions to be added. My Lua script (GetTickCount is a custom function I registered with Lua) local tick = GetTickCount(); print("The system has been running for " .. (tostring(math.floor((tick / 1000) / 60) / 60)) .. " hours."); Output from my program: The system has been running for 54.95 hours.Hit ENTER to exit Edited December 21, 2009 by MulleDK19 Share this post Link to post Share on other sites
mattxr 9 Posted December 21, 2009 On a note Carrier Command Looks like an Improved Real Virtual Engine. Which is good, shows when Arma 3 does come around it will be improved and and looking at those Carrier Command In game Screen shots its gonna be one hell of a game! Share this post Link to post Share on other sites
MulleDK19 21 Posted December 21, 2009 On a note Carrier Command Looks like an Improved Real Virtual Engine. Which is good, shows when Arma 3 does come around it will be improved and and looking at those Carrier Command In game Screen shots its gonna be one hell of a game! Hopefully, they won't forget ARMA. Share this post Link to post Share on other sites
katipo66 94 Posted December 21, 2009 @Katipo66, you can get ragdoll effect using some of the mods available you know? no need to pay double the price. (unless we are not talking about the same thing here) Yeah ive got that mod, i think its SLX ragdoll mod, its not true ragdoll though, it just allows players to fall off buildings etc when killed instead of lying half on half off... Unless theres another ragdoll mod i missed? @Walker - "No Flacid Dick in ArmA 3 please." dude, what u on about, euphoria ragdoll is a friggin beautiful thing, why would you not want it?? Share this post Link to post Share on other sites
MulleDK19 21 Posted December 22, 2009 (edited) @Katipo66, you can get ragdoll effect using some of the mods available you know? no need to pay double the price. (unless we are not talking about the same thing here) There's no ragdoll mods... There's one that makes dead soldiers fall down from buildings, but it's far from ragdolls. That's where Euphoria comes in. It's not just ragdolls.. It's ragdolls with behaviours (Eg. "dead bodies" reacting to the environment) Meaning that if eg. an explosion happened and it wouldn't kill them, Euphoria could take over, making the soldier fly waving his arms around, landing, roll a little, then get up. I made a little concept. I just wish it was real :P Concept for Euphoria Or take a look at GTA IV utilizing Euphoria: Edited December 22, 2009 by MulleDK19 Share this post Link to post Share on other sites