ric 1 Posted June 19, 2012 Could the core of the Arma 3 game engine been written in .NET? and would the development time have been cut in half with the quality remaining the same? Share this post Link to post Share on other sites
nuxil 2 Posted June 19, 2012 it could. if they "the devs" where retarded. and started writing it from scratch again, But no one in their right mind would write a game like arma in .Net. you can use .Net to create extensions for the game tho. Share this post Link to post Share on other sites
ric 1 Posted June 19, 2012 it could. if they "the devs" where retarded. and started writing it from scratch again,But no one in their right mind would write a game like arma in .Net. you can use .Net to create extensions for the game tho. would there be performance issues? i understand .NET is great for business aps but not really for games I was hoping one of the Devs might give me a quick break down on the limitations of writing a complex game in .NET Share this post Link to post Share on other sites
squeeze 22 Posted June 19, 2012 (edited) I'm no expert but had fun messing around with MOGRE for a few months, for a hobbyist like myself C++ is just to hard to get back into, :p I rather be licking windows. anyway check out MOGRE and OGRE, it's a open source 3d engine. Edited June 19, 2012 by Squ33z3 Share this post Link to post Share on other sites
yarex 0 Posted June 19, 2012 (edited) Nope, it could not. (not for so complex 3D game) C#, as a higher level language, (is similar type as java) is in general quite slower then c++. (so suitable for web services, web apps and rapid application development) c# code is by compilation translated into Intermediate Code, that is at runtime loaded, compiled into assembly and executed. Slowness is caused mostly by that loading, and miscelanious program structures checks and checks for overflows at runtime that do not exist in c++ (it's not possible to overwrite piece of memory that belongs to other program so easily as in c++) But in my opinion, would be more suitable for programming extensions then chosen java - because is easier to learn and use, but for engine and all lower level stuff there is no other option then c++. Edited June 19, 2012 by yarex Share this post Link to post Share on other sites
Vixente 10 Posted June 19, 2012 (edited) From my small point of view (hobby programmer), it could be done, using wrappers and shit, but the quality?, no. Barely nothing can surpass C++ in speed. (only ASM or a few others i guess) Don't get me wrong, i love C# and .NET, i've been 'deving' with it for small winapps and it's great. But for a game of this magnitude (Arma series) all speed ('quality') is welcomed. But in my opinion, would be more suitable for programming extensions then chosen java - because is easier to learn and use, huh? Java is pretty easy. In fact is very similar to C#, i don't see the difficulty. Java is a very good choice for scripting. Edited June 19, 2012 by Vixente Share this post Link to post Share on other sites
sickboy 13 Posted June 19, 2012 Though there's at least pre-compilation possible; http://msdn.microsoft.com/en-us/magazine/cc163610.aspx (some related posts in http://stackoverflow.com/questions/140750/is-it-possible-to-compile-net-il-code-to-machine-code) Share this post Link to post Share on other sites
mathiask1 1 Posted June 19, 2012 Shouldnt this be in wishes and ideas thread? Share this post Link to post Share on other sites
nuxil 2 Posted June 19, 2012 Shouldnt this be in wishes and ideas thread? Nah. why make a wish that never will come true. this thread is just as pointless as the 99% others in this forum section.. one more dosent hurt :p Share this post Link to post Share on other sites
sprayer_faust 0 Posted June 19, 2012 A C# fan here, mostly because of Intellisense and auto-formating. It does make life easier. Share this post Link to post Share on other sites
yarex 0 Posted June 19, 2012 From my small point of view (hobby programmer), it could be done, using wrappers and shit, but the quality?, no. Barely nothing can surpass C++ in speed. (only ASM or a few others i guess)Don't get me wrong, i love C# and .NET, i've been 'deving' with it for small winapps and it's great. But for a game of this magnitude (Arma series) all speed ('quality') is welcomed. huh? Java is pretty easy. In fact is very similar to C#, i don't see the difficulty. Java is a very good choice for scripting. Language is similar (.net has better language extensions that have no equivalent in java (linq, etc) ), but the libraries in Java from my point of view (.net developer) are very messy. When i compare them to .net libraries (their naming conventions, etc.) then .net is a clear winner. Configuration stuff in java is a pain. Share this post Link to post Share on other sites
batto 17 Posted June 19, 2012 Language is similar (.net has better language extensions that have no equivalent in java (linq, etc) ), but the libraries in Java from my point of view (.net developer) are very messy.When i compare them to .net libraries (their naming conventions, etc.) then .net is a clear winner. Configuration stuff in java is a pain. No way. There's at least 100x more free stuff for java. Define messy maybe? Maybe you're just bad programmer if naming convetions and configuration stuff is hard for you. On topic: It's stupid. BIS should've done it in LISP. Share this post Link to post Share on other sites
sickboy 13 Posted June 19, 2012 A C# fan here, mostly because of Intellisense and auto-formating. It does make life easier. I think most of that is part of most modern IDE's for most high level languages, incl Java? Share this post Link to post Share on other sites
Vixente 10 Posted June 19, 2012 I think most of that is part of most modern IDE's for most high level languages, incl Java? Yes, intellisense or autoformat has nothing to do with the C# language itself. It's just the IDE (Visual Studio). Eclipse IDE (Java) has some sort of helper, but not as good as VS.NET. Share this post Link to post Share on other sites
sprayer_faust 0 Posted June 19, 2012 I think most of that is part of most modern IDE's for most high level languages, incl Java? Yes, intellisense or autoformat has nothing to do with the C# language itself. It's just the IDE (Visual Studio). Eclipse IDE (Java) has some sort of helper, but not as good as VS.NET. Sure. It's just that in my experience Intellisense works better with VC# than VC++. Since C# is Microsoft's own design, they have put more love and care in it? Or do you (people with more experience) feel differently? I like the pretty colors :D. Makes it easier to orientate. Share this post Link to post Share on other sites
gossamersolid 155 Posted June 19, 2012 No way. There's at least 100x more free stuff for java. Define messy maybe? Maybe you're just bad programmer if naming convetions and configuration stuff is hard for you.On topic: It's stupid. BIS should've done it in LISP. Java might have more libraries out there, but it doesn't mean it has better ones. I primarily code in Java and C# these days and I definitely prefer C#. By naming conventions, I think he means all the depricated functions/classes that were left in java to preserve backwards compatability, but some coders still use them and it's annoying as f*** Share this post Link to post Share on other sites
yarex 0 Posted June 19, 2012 No way. There's at least 100x more free stuff for java. Define messy maybe? Maybe you're just bad programmer if naming convetions and configuration stuff is hard for you.On topic: It's stupid. BIS should've done it in LISP. Dont be personal, if you know nothing about me and my programming experience. To be more accurate, i as talking about default java namespaces and their naming conventions and not comparing how many 3rd party libraries are there out for c# vs java. I;v stated, that personally don't like how default java libraries are being organized. (and i don't attack you if you do) I can provide example and list of advantages (and disadvantages of .net over java) but i see no reason to do that, because it's easy to google it. So if you don't like my personal preferences, it's your problem. Share this post Link to post Share on other sites
darkiron 1 Posted June 19, 2012 Only C and C++ to make a game! You cann't make better with dot net who was paye for use ! netbeans and Eclipse or CodeBlock and notepad ++ (seround the right mention to BIS dev only) are free ! Share this post Link to post Share on other sites
MulleDK19 21 Posted June 20, 2012 (edited) checks for overflows at runtime that do not exist in c++ That's actually not true. C++ has overflow checks. Unless disabled. But in my opinion, would be more suitable for programming extensions then chosen java - because is easier to learn and use,but for engine and all lower level stuff there is no other option then c++. Java was the worst decision of a language to include in ARMA 3, and it hurts thinking about the fact that that piss poor excuse of a language has infested this marvel. They should have went with C#. (I don't care if it has similarities to Java. They're far from equal.). Hell, if they would just make a C++ interface to all the script functions, I'd make a C# wrapper, in a OOP style. Though there's at least pre-compilation possible; http://msdn.microsoft.com/en-us/magazine/cc163610.aspx Even though it's possible to compile a C# app to native code, the app will still make calls into the .NET Framework, which will still use JIT compilation. Edited June 20, 2012 by MulleDK19 Share this post Link to post Share on other sites
batto 17 Posted June 20, 2012 That's actually not true. C++ has overflow checks. Unless disabled. False. Java was the worst decision of a language to include in ARMA 3, and it hurts thinking about the fact that that piss poor excuse of a language has infested this marvel. Blah blah blah... Be MS employee somewhere else please. They should have went with C#. BIS developers are hopefully smart enough. I'd make a C# wrapper, in a OOP style I'm 99% sure it would be very bad interface. Even though it's possible to compile a C# app to native code, the app will still make calls into the .NET Framework, which will still use JIT compilation. Nonsense. Share this post Link to post Share on other sites
sthalik 10 Posted June 20, 2012 C# is a major pain from a perf standpoint. Every object contains a pointer to its type. Garbage collection is mandatory for all so-called "managed" data. Last time I saw GC'able heap allocation during the render loop in MonoGame when using the VS Ultimate profiler. JVM is nice because it can run Scala. Share this post Link to post Share on other sites
MulleDK19 21 Posted June 20, 2012 False.*bla, blabla, blablabla* Wow. You really have no idea what you're talking about. Disassembly of a function written in C++: push ebp mov ebp,esp sub esp,084h ;Here it clearly performs an overflow check (I've put -> at everything that has to do with the overflow check) -> mov eax,dword ptr ds:[0193000h] -> xor eax,ebp -> mov [ebp-4],eax ;<function code here> -> mov ecx,[ebp-4] -> xor ecx,ebp -> call 001910B8 mov esp,ebp pop ebp ret Share this post Link to post Share on other sites
batto 17 Posted June 20, 2012 @MulleDK19: Pasting assembler will not make your claims true. It cannot prevent heap overflow. And It's still completely different from memory management in interpreted programs. Wow. You really have no idea what you're talking about. No, you. Time to explain that native code & JIT non-sense. Share this post Link to post Share on other sites
MulleDK19 21 Posted June 20, 2012 @MulleDK19: Pasting assembler will not make your claims true. It cannot prevent heap overflow. And It's still completely different from memory management in interpreted programs. You're right. It has no heap overflow protection. And I never claimed so. I just said it has overflow checking. And it has. Never said which kind. No, you. Time to explain that native code & JIT non-sense. http://stackoverflow.com/questions/3173116/is-ngen-used-to-compile-net-code-into-an-binary-that-will-not-require-net-fram http://stackoverflow.com/questions/45702/is-there-some-way-to-compile-a-net-application-to-native-code http://www.pcreview.co.uk/forums/native-code-compiler-do-you-need-frame-work-run-after-code-has-been-compiled-using-ngen-exe-t1873143.html Share this post Link to post Share on other sites
batto 17 Posted June 20, 2012 I just said it has overflow checking. And it has. Never said which kind. You said it has overflow checks. Be more specific next time please. Also it's not C++ feature. Even though it's possible to compile a C# app to native code, the app will still make calls into the .NET Framework, which will still use JIT compilation. I don't need to google to realize that this is non-sense but I'll quote for you most accepted answer from one of the links you posted: The Native Image Generator (Ngen.exe) is a tool that improves the performance of managed applications. Ngen.exe creates native images, which are files containing compiled processor-specific machine code, and installs them into the native image cache on the local computer. The runtime can use native images from the cache instead using the just-in-time (JIT) compiler to compile the original assembly. Share this post Link to post Share on other sites