Technology choices

OCTGN.net development has taken a break recently. And it’s going to stay on hold for one or two more weeks. Why ? Because I’m exploring new technologies.

The next version of Windows, called Windows Vista, is expected for this year. With it comes a new programming interface, called WinFX. For your information, current Windows applications are programmed on top of something called Win32, which is now approx. 10 years old.

Right now, I’ve put the core OCTGN development on hold because I’m considering porting it to this new technology. There are many advantages to that, let me name a few:

  • WinFX is a lot richer visually. It allows to create lots of niceties and effects that I would love to put into OCTGN, but which are just impossible to do in the current version. And this is a big point: although I don’t write much about it, there are many great things to buy here.
  • Not only its possibilities are better, but they are also a lot easier to program and deal with. And this means many things for you, the players: OCTGN.net would be completed faster, there would be more features, the overall quality (i.e. bugs) should be better, and maintenance and evolution easier.
  • On top of this, this new platform is hardware accelerated (the current is not), which means that all of this should come with better performances.

Of course, nothing comes for free, so here’s my current list of drawbacks:

  • Nobody has this installed yet. Using it creates an additional requirement for OCTGN users. Honnestly, this is something that annoys me and in the past I’ve made several choices to keep OCTGN.net as much  dependency-free as possible.
  • It narrows the possible platforms. WinFX will ship with Windows Vista and as a library for Windows XP. But not for older systems like ’98. I guess time works on my side for those 2 issues, but I understand some people won’t be happy today.
  • There’s no equivalent for the docking system I presented in an earlier post. And building one is a big task, especially since I don’t know the new platform very well… My take on this one is that for now, I’m dropping the docking system and I go back to a more static layout. 😦 Later, I can incorporate whichever solution seems nice.

To be honest, porting OCTGN to WinFX was on my mind from the very beginning of this project. But at the time, WinFX was in a very distant future, and I thought that 2.0 would get completed a bit faster. Things didn’t go that way, and now I’m thinking that it’s not worth finishing the current version and porting it later. I think I should better spend my time switching to WinFX right now.
I apologize if this was a quite abstract post for most of you, but I wanted you to know what’s going on. If some of you have an opinion about this rather technical topic, feel free to leave a comment!

Have a nice day,

jods

Advertisements
Explore posts in the same categories: Uncategorized

14 Comments on “Technology choices”

  1. daddylikesit Says:

    Hey Jods,

    Sounds like you are right on track. I, for one, am happy to wait on a product where production has been so well thought out. I agree that people overall will be happier with a more flashy product with less bugs. I’m assuming most people pre-XP will cave and convert at some point and hope this doesn’t cramp anyone’s style. While I’m not on the “inside,” I’m very impressed with what I’ve seen so far and am looking forward to 2.0!

  2. developer Says:

    Please don’t take these comments the right way–but you asked!

    It seems like a bad idea unless you’re willing to articulate the solid, quantifiable reasons why winfx would be better–you don’t seem willing to do that. fancy little visual tricks often don’t go a long way, and your docking system already seems like a great idea (a big problem I have with the 1.0 series, as you’ve posted here, is the very non-standard interface).

    This also means you are all but starting from scratch on the UI to a software project for which the UI essentially IS the project, aside from the database backend and the networking. By the way, if your cryptographic techniques are the ones I’m thinking of for the anti-cheating stuff, it’s a fantastic idea, and bravo.

    I doubt this is the best move for OCTGN 2.0. If you want to teach yourself WinFX for whatever it is you do for a living, that’s another deal, and it is your project, after all. But, to be frank, this post sounds like a very, very, typical open-source project flaw: this step is more about what you want to learn than what makes the project work.

    Up to you.

    Again, don’t take this the wrong way. I’ve made this same kind decision (and regretted it) before, on commercial projects. Just finish it and make your next project use WinFX from scratch.

  3. jods Says:

    @developer:
    > It seems like a bad idea unless you’re willing to articulate the solid, quantifiable reasons why winfx would be better–you don’t seem willing to do that.

    Why do you think I don’t want to do that ? And BTW, I really would like to read your solid, quantifiable reasons why winfx would be a bad idea.

    > This also means you are all but starting from scratch on the UI to a software project for which the UI essentially IS the project.

    You are wrong here. The UI is very far from being the project. There’s only one window, and it’s not very complicated from a UI point of view.
    On the other hand, the UI is the project in the eye of the players. Just like you, that’s the only thing they see. So it’s very important that the application shines on the visual area. And for this, WinFX is SO MUCH better. It is completely skinnable, has built-in support for animations, performs way better than GDI+, and a lot more.

    And it is so much easier to do all these things. The current version is built on GDI+, and I can really tell you that it was not designed to do visual games. I have spent hours and hours coding myself all the things I wanted to have, and then more hours to optimize it because GDI+ isn’t fast at all. And I haven’t done everything I want now, so a big coding effort is still ahead. That’s why I think moving to WinFX is a good move. I need to port the application, but then I will complete the project faster. Not to say there are things I just can’t do with GDI+.

    What you may not realize, is that with WinFX I have tons of lines of code that will just disappear!

    > By the way, if your cryptographic techniques are the ones I’m thinking of for the anti-cheating stuff, it’s a fantastic idea, and bravo.

    I like the way you congratulates yourself. I don’t know what the techniques you are thinking of are, but since they are a fantastic idea, bravo. 😉

    > If you want to teach yourself WinFX for whatever it is you do for a living […] this step is more about what you want to learn than what makes the project work.

    You are very wrong, sorry. What I want to do is complete the project as fast as possible, with the best quality.
    Because this is a “hobby” project, it is very important to keep it as simple and efficient as possible, because I don’t have endless hours to spend on it.

    Thanks for your feedback,
    jods

  4. Kerrydan Says:

    Personally, I’m all for the option which allows for completing the project as fast as possible. If you believe that WinFX is the way to go, Jods, then I’ll trust you and say, go for it!

    I think that’s the biggest question: determining whether it is more important to reach a larger audience (keep using GDI+) or to improve the program faster.

    I could be wrong, but it would seem to me that improving the program faster will attract a greater audience in a shorter time.

    -K

  5. Btrice Says:

    I am a man of few words. So I’ll keep this short. This is a mistake. I know A LOT of people who do not have windows XP and are not planning on upgrading. A few of them are likely future OCTGN users (although one has tried to get 1.0 working multiple times and is fed up).

  6. jods Says:

    Btrice, this is exactly why I made this post. I wanted to see how big the wave of “We don’t have XP and we don’t want to upgrade” is. This being said, here are three remarks:

    * To be honest, the “likely future users” don’t matter too much, because if we build a very attractive client, there will be many likely future users who do have XP. And I don’t want to work for “potential users” who may never become “real users”.

    * Time works on my side. All new PC today are bought with XP installed. And later this year, they will ship with Vista installed. When 2.0 comes out, XP won’t be the latest OS anymore, so even less WinME or 98. Those people will have to move sooner or later. So unless our users base proves to consist of many ’98 users, it doesn’t seem right to get stuck in the past for a minority which is going to disappear anyway.

    * In theory, there’s a Java team working on another implementation. Which should be compatible with older OS, as well as other OS (Linux, etc.). I’ve always seen the .NET version as an high-end version, tuned for the best experience on a given platform (WinXP), while the Java version would be the lowest denominator between all platforms. (edit> I say in “theory” because I haven’t had any news from the Java team for quite a long time.)
    That being said, if a big number of current OCTGN players show up to say they won’t be able to play if I target XP, then I shall reconsider my options.

  7. AkumAPRIME Says:

    So these people that aren’t using XP and won’t be upgrading… what OS are they using? An older windows? Do them a favor and MAKE them upgrade if so. XP is a far more stable version than, Gods help us, win 95/98/me… I shudder to think. Why Wouldn’t they upgrade?

  8. Btrice Says:

    Jods: Ok thats fine I guess. I thought the java project was pretty much dead in the water though.

    Akuma: Um lets see, because not EVERYBODY on the planet pirates their OS’es 🙄

  9. AkumAPRIME Says:

    they don’t? They need to start

  10. AkumAPRIME Says:

    Not everyone on the planet goes to school either, so should we use only picture books because of them?

    Hey is there a comment edit? so I don’t need to double comment?

  11. Btrice Says:

    “Not everyone on the planet goes to school either, so should we use only picture books because of them?

    Hey is there a comment edit? so I don’t need to double comment?”

    Last I checked pirating software was illegal and going to school isn’t.

  12. AkumAPRIME Says:

    Hey, Question. Right now I can add cards to Owned. Will there be a way to add categories like owned? For example, League1, category? This would allow for easier deck creation and organization.

  13. dSharp Says:

    Bravo! I like what you’ve done and am really interested in what you’ve discovered about the mysterious WinFX framework.
    Is it just a new namespace (packed with neat rich Ui functionality of course) that I can use in the .Net v2 framework once it arrives? (That would be cool)
    Or is it a whole different monster altogether? The few items I’ve seen on it were actually results from a query I did online trying to solve another issue I was having in coding. Without noticing the namespace, I copied and pasted the code only to discover the namespace was missing and I couldn’t find it anywhere. Later, after returning to the page I copied the code from I noticed the namespace. 😦
    What have you learned about WinFX please?

  14. jods Says:

    @dSharp:
    Is it just a new namespace (packed with neat rich Ui functionality of course) that I can use in the .Net v2 framework once it arrives? (That would be cool)
    Or is it a whole different monster altogether?

    It really is a whole new and quite different monster.
    WinFX is the new Windows API, designed to replace the current Win32 API, which is quite old now.
    It was built as part of the new Windows Vista OS, but will be available for XP too.

    To answer more precisely your question, you can use it with the .NET 2.0 framework, and you can mix old and new APIs. If you’re interested in the GUI parts, which seems to be the case, you can mix Windows Forms and WPF programming. This inter-operability is codenamed “Crossbow”. But it has restrictions; e.g., each API must have its own “airspace”, and you cannot render both technologies to the same screen area.

    As OCTGN 2.0 will have a pure WPF user interface, I don’t know much more about interoperability with Windows Forms. You should google for WPF, Avalon, Crossbow, Airspace if you want to learn more about it.

    Have a nice day,
    jods


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: