Jump to content
Sign in to follow this  
MulleDK19

Bohemia Interactive's future ARMA 3!

What do you think?  

159 members have voted

  1. 1. What do you think?

    • Awesome, I really, really want this!
    • Would be cool, but I don't really care.
    • No, I don't like it that much.
    • You're an idiot.


Recommended Posts

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 by MulleDK19
Added fake DMM video

Share this post


Link to post
Share on other sites

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

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
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
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

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

@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

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
Digital Molecular Matter

I 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
...- 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 by walker

Share this post


Link to post
Share on other sites

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 by Dwarden

Share this post


Link to post
Share on other sites
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 by MulleDK19

Share this post


Link to post
Share on other sites

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 by zombo

Share this post


Link to post
Share on other sites

- 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

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

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 by Sickboy

Share this post


Link to post
Share on other sites
they could really use speed tree.

:facepalm:

Share this post


Link to post
Share on other sites
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
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
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 by MulleDK19

Share this post


Link to post
Share on other sites

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
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, 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
@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 by MulleDK19

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×