Mischiefblog
I make apps for other people

C#

Trivial C#

Posted by Chris Jones
On May 4th, 2007 at 10:33

Permalink | Trackback | Links In |

Comments Off
Posted in C#, Design Journal

Motivated by the recent arrival of Professional XNA Game Programming: For Xbox 360 and Windows, I’ve spent more time learning and practicing with C#. XNA is very, very attractive: it looks to be about as easy to get into as SDL but has hooks to Direct X and is native to C#. Programming against SDL isn’t hard, but setting up the system for development and at runtime tends to be more complicated where installing DLLs on Win32 or OS X is the least of my problems: look into making sure it runs well on older or non-Red Hat/non-Debian Linux systems with extra third party libraries and see how long it takes you to throw up your hands. XNA looks mighty attractive after spending several days fighting with Amazon’s RHEL 3 development desktop.

So far, I’ve built a simple testing harness in C# for simulating combat, including the basic classes that represent the game’s object model. I can plug my ideas into the harness, tweak it, and run simulated combat to see how accurate my design was. No, it doesn’t “simulate fun,” but it will show if I’m out of line in some parts of the design, especially DPS over time and the length of combat. Later, I can add more abilities or attacks and a little logic to test more complicated combat. (See also, Applying Risk Analysis to Play-Balance RPGs (requires login) for examples of using risk analysis to model combat systems.)

Slightly off-topic, I don’t think activeCollab really works the way I want it to. I think it would be more suitable for projects I’ve had in the past, such as the SCM conversion at Fifth-Third Bank or even the work my team is doing on Amazon Daily. It’s not a good code repository, at least in how I have it configured, and Savane may be closer to what I had in mind for project tracking.

Playing with Mono

Posted by Chris Jones
On April 10th, 2007 at 07:21

Permalink | Trackback | Links In |

Comments Off
Posted in C#

I’ve installed Mono on a couple boxes, my Linux workstation at work and my PowerBook at home. On the Mac, it’s a simple package download and install (well, I also wanted to uninstall the old one, so I executed a script to clean it out). On my work box, we’re using a modified version of RHEL 3 so most of the RPMs would work, but I preferred installing from source. The Linux Installer for x86 worked pretty well.

Unfortunately, I’m not up to date on GTK 2 or a lot of libraries (we don’t concentrate on keeping our UIs up to date). Gargnome couldn’t quite handle my machine (for instance, although I have glibc2 instaled, it wasn’t in the library path under some accounts).

/opt/third-party/bin/make_real install-data-hook
make_real[10]: Entering directory
`/home/joneschr/Desktop/garnome-2.18.0/freedesktop/
shared-mime-info/work/main.d/shared-mime-info-0.20'
"/home/joneschr/opt/garnome/bin/update-mime-database" -V "/home/joneschr/opt/garnome/share/mime"
/home/joneschr/opt/garnome/bin/update-mime-database: relocation error:
/home/joneschr/opt/garnome/bin/update-mime-database: undefined symbol: g_log_set_default_handler

In any case, Mono 1.2.3.1 is installed even if MonoDevelop or GTK# doesn’t have all of its requirements.

Goals

  • Get SDL.NET working
  • Work up a quick multi-player, server based demo using SDL, primitive graphics, and Mono
  • Create instructions for compiling it on Linux, OS X, and using Visual Studio or Visual C# Free Edition

Edit: Fixed it! I needed to change a library path. g_log_set_default_handler is available in Glib 2.0.6 or higher. I was at Glib 2.0.0.3.

Edit 2: My workstation’s problems run deeper than that. I’d need new versions of gcc, libc, the Linux kernel, etc., to continue compiling. I’ve tried to get around it, but Gargnome’s dependencies are looking to hal to compile, which requires a more modern Linux than I can provide, at least on the work machine. fink on OS X/Darwin, on the other hand, works rather nicely (if slowly on my G4).