That's the feeling I get every single time I use the next Ubuntu release. It's closer and closer each time to becoming everything I need with app support and whatnot, but always falls short of one or two critical things. Previously, I had converted to 9.10 and dual booting Windows 7 for any purposes requiring it (read: games). For a while I was really happy with Ubuntu and it did everything I needed, and I was ok with some of the differences in programs.
And then I just couldn't do it. Now, I won't dog Linux or Ubuntu in particular, it's not their fault in this case. The problem is with MonoDevelop. While I commend their efforts greatly, it still falls too short of Visual Studio for me to switch, mainly in the debugger. The IDE itself is nice and offers most of the features I'd want in an IDE, including code folding and code completion (though auto-formatting would be nice for the OCD/lazy me). However, the debugger still has a ways to go. It does work much, much better and fluid than the last time I tried it, it doesn't quite make it in my books for my impatient self. Long(er) wait times for program execution to hit the debugger, flaky edit and continue support, slow/unhelpful mouseovers while breaking, and odd stepping at times made me miss VS too much.
Another slight issue which again isn't Ubuntu's fault is the fact that some of my programs require native DLLs invoked via C#'s platform invoke. This works fine under Windows but trying to do so in Mono with Win32 DLL's and Wine is a nightmare. I looked at the Mono documentation if it was possible to do so but it seemed like it was not, and I had figured as much as the Win32 subsystem is indeed not running on Ubuntu! Like I said, slight issue and easy enough for me to work around it by developing the programs under the Windows 7 boot.
The issue comes down to what am I getting out of developing under Ubuntu? Cross-platform is the real main answer. That and the self-satisfaction of running Linux and enjoying breaking from Windows, but that's more a personal preference. What I would be losing is time, as it takes me much more time to get used to MonoDevelop, deal with its issues in the debugger, and work in an environment that I'm less familiar with. Is it worth it? That's the harder question to answer. Obviously, the first and third issues would go away with time, hopefully the second as well with newer releases, but not a true guarantee. I figured C# code is almost by-nature, very portable. Not too much of the code is Win32-specific, I could easily compile it under Mono in Windows under VS.
It seems, at this point, I have very little reason to break away from the Windows platform at this time. Sticking to it does not mean I believe it's the only operating system in use and I can respect (and develop for) other platforms as well. Dark Ages is a Windows game so with that slight bias, I do realize that some hackery may be best under Windows though that could be virtualized under other OS's too.
So really this is about me developing under Windows again on Visual Studio. However, when I do release binaries, there will be ones for Windows/Mono side-by-side (where applicable). For example, the 2D isometric engine that I develop to be used in the map editor and then a possible standalone client will be coded in SDL.NET which uses OpenGL, not DirectX. This makes it much easier to port to other platforms as Ubuntu and Mac OS X both support OpenGL and SDL.NET has ports for both of them as well.
The good news is that I have gotten a good bit of the core done for the server. Network code is done, encryption/security code is done, and packet formats are on their way. I'm really liking how this is turning out and I can't wait to see the fledgling server up and running (again). I won't be releasing source code (at first) but I will be releasing the libraries that all my projects are using so that other developers can work on DA-related projects with great ease. Of course, the libraries will be released as I develop them too, so don't expect the 2D engine out just yet!
Capricorn Development Log
Subscribe to:
Post Comments (Atom)
Yay for progress! :) (Feretus from PDA btw)
ReplyDelete