Anybody else tried Mono? Seems impressive

Discussion in 'Game Development (Technical)' started by PaulModz, Sep 13, 2006.

  1. PaulModz

    Original Member

    Joined:
    Apr 7, 2006
    Messages:
    53
    Likes Received:
    0
    I've pretty much locked myself into Windows by using C# to develop my game, but I decided to take a closer look at Mono to see where it stands. Before today, my total lifetime experience with Linux was less than 30 minutes, so figuring out which distro to use and setting it up seemed like a hurdle.

    To my great surprise, a pre-configured VMWare virtual machine with Suse 10.1, Mono and all the required software is available for dload on the Mono website!

    Since I already use VMWare for testing, this was a no-brainer, but even if you don't own VMWare, there's a free VMWare player available.

    It was a hefty 1GB dload (which is smaller than some of the distros I looked at), but I got my C# logging library compiling and running in a test app in less than 20 minutes, at least half of which I spent trying to figure out how to get the source code off my Windows network (Suse has great support for Windows networking, I just didn't know how to open the network browser ;) )

    I'm not sure if its ready for prime time yet, but I'll report back later. I'd really like to know if anyone has tried it on Mac OS X.
     
  2. wazoo

    Original Member

    Joined:
    Jul 27, 2004
    Messages:
    519
    Likes Received:
    0
    Cool.

    Does VMWare support any graphics hardware acceleraton yet? I was looking into it about a year ago, so that I could house my Win98/2k/XP installs on one box, but at the time it didn't support either Direct3D or OpenGL..

    thanks!
     
  3. PaulModz

    Original Member

    Joined:
    Apr 7, 2006
    Messages:
    53
    Likes Received:
    0
    Sort of. Workstation 5.0 and up include "experimental" support for 3D acceleration.

    OpenGL works, but it only supports software emulation. It might be possible to add an ultra-low quality rendering mode to a game for testing. While this kind of test wouldn't be ideal, it would still let you test your installer and non-rendering code on various flavors of Windows with every combination of service packs and prerequisites you want.

    As for D3D, it's supposed to use 3D hardware in a VM, but all I've seen it do is crash. I have an ATI 8500, other cards may fair better. Here's the info on vmware.com.

    I know a lot of folks here won't be able to use VMWare without decent 3D support, but if you can use it you should really check it out.

    Snapshots are the cornerstone of VMware. They contain the entire state of the VM at the time they were taken. This means you rarely have to boot VMs from a powered off state when you have snapshots for everything you need. When you restore a snapshot, VMWare just needs to load a file that is the same size as the VM's configured RAM, which usually takes less than a second. The Snapshot Manager allows you to create a hierarchy of configs that descend from one another like object oriented classes. I've included a screen cap of my Windows 2000 test configs. I have a similar setup for XP, but I support RTM, SP1, and SP2 so it’s a little bigger.

    Running my game as a Click Once application on Win2000 requires SP4, IE6, and .Net 2.0, but there are many ways for things to go down if the user’s machine isn’t up to par. As you can see in the image, I have a few configs which don't meet the reqs in order to test my installer's reaction. SP3 is a no-go, but ClickOnce dloads .Net 2.0 (and other common prereqs) from MS and installs them before my game’s installer starts (rumor has it MS is creating a DirectX prereq component).

    You can do some cool networking stuff with VMWare, too. Since Click Once and other projects in my game’s solution require a Web Server, I run one in a second VM. It talks to the game VM over a "virtual network" (a network useable only by VMs running on the same host and the host itself, which provides both DNS and DHCP to the VMs). The game VM has two NICs, one on the virtual network and one that bridges to the NIC on my physical box. This gives it access to both the virtual net and the Internet, which it needs since my code comes from the virtual net and the prereqs come from the MS site.

    There's also a COM interface into VMWare that allows you to do things like loading and saving snapshots from scripts and code. The only potential downsides to the Workstation version are that it runs in a user process which terminates if you log off, and using VMs on the LAN requires that you open two Remote Desktop sessions (one to the VM and one to the host since you can’t restore or save snapshots in a RD session with a VM). Both of these shortcoming are addressed in the GSX and ESX versions. You can get a 30 day eval of the Workstation at vmware.com.
     

    Attached Files:

  4. HalfLucifer

    HalfLucifer New Member

    Joined:
    Aug 4, 2006
    Messages:
    21
    Likes Received:
    0
    Hi Paul,

    I'm with Mono (and C#) now.
    Glad to see someone (few) is interesting in Mono too. ;)

    My major concern in developing with Mono.NET/MS.NET is the fat runtime DLLs.
    Since I don't want to assume that end-users got those runtime installed at their computers,
    or force them to download a 20MB file to be able to run my game, I have to pack the only DLLs required with my game.

    Still experimenting and investigating now.

    I have little to no experience about Linux too, and haven't tried that VM.
    I'll invest some time in it for sure.
    Also expecting a MacOSX VM would be there for us.


    Maybe you'll be interested in my previous post:
    http://forums.indiegamer.com/showthread.php?t=8102
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer