New engine please

For developmental things relating to the graphics of the game.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: New engine please

Post by Lucifer »

Z-Man wrote:Backwards compatibility: The thing I want to avoid by postponing the decision is that sticking with compatibility limits our design choices for the new thing. For example, compatibility with the old setting system with its flat organization would make it more difficult to distribute settings better over the whole scene tree with, for example, the possibility to make the cycles of one team faster, but those of the other team more maneuverable or with some other advantage.
I meant specifically the network protocol. I can't think of any other place where we should focus on maintaining backwards compatibility if there's a better way to handle something in Godot. That includes maps and cockpits. If there's a better way to do it in Godot, we can and should.

I was thinking about the beta cycle around 0.2.8's first release. Having 0.2.7.1 and 0.2.7.0 (and the occasional 0.2.6.1 client) being able to connect and use the beta servers gave us a big practical advantage for testing server stuff, and I'd hate to lose that in the cycle from 0.4 to 0.6, although if we found that a majority of the community switched to the 0.5 development series, even then I might not worry about maintaining network compatibility anymore.
And heh, one of the first things we need back would be debug recordings. I don't want to simultaneously debug client(s?!) and server that way.
And this time around, it could be planned in advance so we could get both frame-limited recordings (and the ability to render screenshots as a job so we could make videos for places like youtube) and debug recordings that give you the whole game state.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
Word
Reverse Adjust Outside Corner Grinder
Posts: 4258
Joined: Wed Jan 07, 2009 6:13 pm

Re: New engine please

Post by Word »

Because I only noticed it now: I want to apologize for the fact that the topic title sounds like some arrogant idiot is complaining about an unsatisfactory pizza delivery, it just seemed funny. Didn't choose that title out of a real sense of entitlement or anything like that. Everyone seems to be used to it now, so I'm not going to change it unless you want me to.
User avatar
ConVicT
Shutout Match Winner
Posts: 1001
Joined: Fri Feb 17, 2012 2:33 am

Re: New engine please

Post by ConVicT »

How many Words does it take to change a title?

To be honest, I think I'd complain if my pizza was about 6 years late...
No offence to anyone working on the game :P
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: New engine please

Post by Z-Man »

Lucifer wrote:I meant specifically the network protocol.
The base network protocol is worth nothing without the gameplay code running on top of it. If we want backwards compatibility with 0.4/0.2.8, we need to keep all the old gameplay code or emulate it with the new stuff. Emulation with the fidelity that would be required to be of any use would be almost impossible (or too much work, anyway). If we keep the old stuff around, say, in an additional module only used for backwards compatibility (that would work only in the new client -> old server constellation), the usefulness for testing will be crippled: UI and graphics code would get their workout, but the new gameplay code would not.

Now, the 'old client -> new server' constellation may be useful. The new server could get a special lowest common denominator mode where it only uses features both 0.4 and 0.6 support, naturally very limited. The degree of usefulness is bound by the number of 0.4 players, though. Hence my wish to delay the decision.

Word: No worries.
Convict: Here's your money back :)
Monkey
Match Winner
Posts: 759
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: New engine please

Post by Monkey »

*Bump*

So, several years on and I really think this thread needs a bump. Godot has come on a lot. Version 3 is out, it's become a well-established project, you can use any external text editor you want to write code in, the documentation has become even better, it works on lots of different operating systems (including OpenBSD), etc.

I'm currently reading the docs and I'm impressed. Considering that development on Arma has currently stagnated, I think we really need to address using Godot for future development, to enable more people to participate and to get more done in less time. I'm not even unsure, any more, about us coding in GDScript, despite my initial concerns about it being specific to Godot. It's quick and easy to use, is *very* similar to Python and is becoming much more popular with game developers. The project has recently won a $250k grant to improve Godot even further. Godot 4.0 is aiming to use Vulkan. It's all looking good.

I think if we do use Godot, we need to code in GDScript as much as possible, keeping C++ to a minimum, as that will enable contributions from more people; we don't all have Z-Man's and Lucifer's expertise in C++/3D programming/etc. I'd also suggest two more things. Firstly, that we shouldn't encourage too much backwards compatibility with respect to Arma clients/servers/whatever as this will just complicate things. Secondly, and partly to help with the previous issue, that we should put out releases much more often, by not adding too many new features to each release.
Playing since December 2006
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: New engine please

Post by Light »

Monkey, I'm not gonna read through 6 pages of posts, but a quick Google search appears to show that this would allow exporting for mobile as well, yes? Would it require a second source, or can one source generate releases for x86, ARM, Android, iOS, etc?
Monkey wrote: Thu Mar 19, 2020 1:50 pm Firstly, that we shouldn't encourage too much backwards compatibility with respect to Arma clients/servers/whatever as this will just complicate things.
If this were to happen, I 100% agree with this. When backwards compatibility is a requirement, progress is held back. Things might feel different, people will definitely get upset about any changes, but they will get used to it.
Monkey
Match Winner
Posts: 759
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: New engine please

Post by Monkey »

@Light
On their website, it says you can export to any of the supported platforms with one click of a button and yes, that includes mobile and web: https://godotengine.org/features (on that page find "MULTI-PLATFORM DEPLOY")

Mobile platforms: iOS, Android
Desktop platforms: Windows, macOS, Linux, UWP, *BSD, Haiku
Export to the web using HTML5 and WebAssembly
One-click deploy & export to most platforms. Easily create custom builds as well.
Playing since December 2006
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: New engine please

Post by Light »

@Monkey that sounds amazing. I will have to check it out for myself. :P I have some work projects that could benefit from that if it works well. Most of the time when I've looked at options like this, they require a lot of outdated software that I simply don't want to put together. Hopefully this one is different.
Monkey
Match Winner
Posts: 759
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: New engine please

Post by Monkey »

So, I've read through a lot of the documentation for recent Godot and played around with it quite a bit. It's got good things going for it but it does require knowledge and understanding of object-oriented programming. One of the main reasons for switching to Godot was that it should be easier to use than what we are currently using, so that more people can help develop Arma. From what I've experienced, I'm not so sure this is the case. Firstly, there is a lot of scripting involved and, as Z-Man stated, GDScript is a lot slower than C++ and if we use Godot we would still need to write certain things in C++ anyway. It may be worth us just learning C++ better instead. Also, nowadays, we do have good text editors, IDEs and programming tools at our disposal.

Anyway, it's up to the Devs here what happens, just giving my 2 cents.
Playing since December 2006
User avatar
sinewav
Graphic Artist
Posts: 6413
Joined: Wed Jan 23, 2008 3:37 am
Contact:

Re: New engine please

Post by sinewav »

A decent Arma experience on mobile would pretty much guarantee I'd play it every day since the only time I play games these days is when I'm on my phone during a break from work or lying in bed.
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: New engine please

Post by Z-Man »

I've been following Godot's development closely and agree 120% with Monkey's bump post. The extra 20% are that I think one should aim for no C++ code. C++ code complicates deployment to other platforms; it means that you need to be able to compile shared libraries/DLLs/whatever the platform equivalent is, or compile the whole engine, for all your target platforms. It's correct that GDScript is slow right now, but they recently (for 3.1, IIRC) added something that gives it the potential to get faster eventually; they now have optional type safety. They currently only use it for better code completion in the editor and early fails if you assign a value of the wrong type to a variable, but all the expensive 'can I really do that, and if yes, which function do I call or which value do I set' lookups can then in principle be precomputed and operations on primitives can be JIT compiled. CAN being the keyword here. Also, most of the things you would do in C++ are already built into GDScript primitives; of course you almost never have to parse a string character by character, and collision detection is also already there.
Monkey
Match Winner
Posts: 759
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: New engine please

Post by Monkey »

If we don't need to write any C++ code, to achieve what we are aiming to achieve, then that is one issue out of the way, although one would still need to have knowledge and understanding of object-oriented programming and game object terminology, even just for GDScript. Their docs aren't too bad but they don't teach those things (yet).

Godot works fine on my Desktop but crashes instantly on my laptop (both have the same specs except for AMD vs Intel GPU). This could be a threading issue or a GPU driver issue, I'm not sure yet. Anyway, that's probably my system so...

Other than these issues, it's good. I just hope it doesn't become a resource hog one day because that could repel a lot of potential developers who don't have super powerful gaming computers.
Playing since December 2006
JK123
Posts: 1
Joined: Thu Nov 11, 2021 7:13 am

Re: New engine please

Post by JK123 »

This is a fascinating discussion. I appreciate reading descriptions of what is required, such as Z- man's, as well as the progression of thought over time. I enjoy watching coders code, even though I can't do it myself. I've set up live skype chats with screensharing so I can observe a debugging session. It's like seeing a pianist perform. I don't know how to code, but I enjoy the mental music.

Anyway, as I was reading, I considered making a financial contribution. I'm aware that this community has had a difficult time coping with the issue of money, which may have been one of the elements that led me to create our app in the first place. We're working on a financial engine, with a prototype almost complete and just enough funding for beta. Potential applications
fungilife
Posts: 3
Joined: Wed Sep 15, 2021 6:56 pm

Re: New engine please

Post by fungilife »

Arch-based source build linux - no systemd - no logind
Built from latest source this NEW game
Didn't like it a single bit.

That direct response no lag real-time feel to it is gone ... among other things, the turning views create nautia/nausea
This is no net-play, just playing against the machine, so it is non-net related.
Buggy as hell, gfx would go nuts, ok it is an alpha project .. but I see it going the wrong direction.

I am happy with my 0.2.9.1_rc_z2388
User avatar
Z-Man
God & Project Admin
Posts: 11585
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: New engine please

Post by Z-Man »

Alpha? This wasn't even alpha, just a test cobbled together in a week, learning as I go along. Just for perspective. One problem you mention would likely be a problem for a full effort, though, the nausea from the camera. Any change in camera behavior is going to do that to veterans, and it would be very difficult to exactly replicate the current code.

Another interesting opportunity has cropped up while I was researching things that can visualize 3D models on the Web: raylib. It's somewhat similar to SDL in scope, mostly a lean, portable C wrapper around OS functions dealing with graphics and sound. It adds font rendering (pixel fonts, IIRC), some UI framework and 3D model loading. What makes it extra special: At the backend, it supports GLES and full OpenGL. But for the coder, it always offers immediate mode like funktions (rlBegin/rlEnd/rlVertex...), so our legacy code should port right over and get translated to GLES, with a performance penalty, of course. As for platforms, it supports HTML5 (via webassembly or emscripten) and Android in additon to the usual desktop platforms. It has a tiny footprint, is largely self-contained and supports the code structure style we already have, with control over the main function being with us. Downsides so far: No iOS support, the sound interface is lacking (custom sound streams work by you having to ask the library whether it needs new data for the stream, and if yes, you feed it... that adds latency compared to SDL), it does not help nearly as much as Godot with the pretty graphics and it does not (yet) have a network sub-library. I'll keep half an eye on it.
Post Reply