What's in your toolbox?

Started by dthacker ยท Mar 23, 2011 00:07 UTC

#371

Tales of the classic PBM games here at PBM.net have sparked my curiosity about the tools today's game author's are using. I've been a free software advocate and user for years. I've run Linux desktops for about a decade. There are so many free languages, databases, frameworks, and yes, the occasional game engine. ESMS is written in C and C++, but Eli had started on a version written in ruby before he handed the reigns to me. I've used a fair bit of perl in maintaining a league. I've also used free wiki software (tikiwiki) to maintain my very neglected website.
Last night I spent an hour or so cruising around Sourceforge looking for PBEM tools, and while there were many false starts with no code, there are several viable PBEM projects.

So, what's in your toolbox and why?

Dave

#373

Well the current reincarnation of Far Horizons is using the 24,000+ lines of ANSI C code circa 1995. However, that code is only used for actual game processing.

I've written about 1000 lines in python tools to handle game signups, orders fetching+verification from email, sending reminders and turn reports, not to mention some wrappers around the C binaries to simplify turn processing.
Currently I'm working on a python library to read the binary format of the FH game files.

OS wise, I've been using a linux desktop for many years too and do all my development on it.

I've searched for PBEM tools as well, particularly a PBEM agnostic library to handle email related functions, with no luck. I'm considering making on myself.

#483

I'm a Microsoftie. (Was one of the original betaguys on .NET, got involved with MSFT New England, and never looked back.) I use Visual Studio Professional, running VB (I prefer VB to C# because being more verbose, it's easier to maintain), and augmented with a lot of JQuery. The datastore is, however mySQL, not MSSQL.

Two programs that I use almost as much as Visual Studio and mySQL are Paint.NET a freebie graphics program that rivals the guys that charge many hundreds, and Poser, a 3D modeling program. There's a compatible to Poser (which isn't free) called DAZ3d which is free, even for commercial use

One of the things folks might consider if they get serious about programming is that MSFT has a startup program that provides access to an awful lot of high-powered software, almost for free. Go to http://www.microsoft.com/web/websitespark and check out "Getting Started." They'll give you the software priced in the tens of thousands and, after three years, they want you to pay 'em $100. If you aren't ready to handle the major stuff, Microsoft's express versions of all their major development tools are probably worth a look. Of course, you have to be running Windows and not think that Redmond is a bigger threat to the U.S. than Iran. ;)

#493

I use visual studio .net at work -- using C#. I had considered using it for this, but I probably should not pirate my work software for personal use. Visual Studio professional is quite expensive, and I'm not sure the "express" version is up to the task.

On the other hand, there are free development platforms for Java, which I thought could be a good tool for browser AND mobile development. Or if I just wanted to stick with a server-side tool to handle data storage, processing, and turn output, I could do what the Empyrean Challenge guys are doing and just use Access.

Or I could go with LAMP (linux, apache, mySQL, Perl).

Someone posted something about there being some potential PBEM platforms under development on SourceForge, so maybe it's worth a look to see if I could join one of those efforts...

#511

[quote='ixnay' pid='493' dateline='1301167021']
I use visual studio .net at work -- using C#. I had considered using it for this, but I probably should not pirate my work software for personal use. Visual Studio professional is quite expensive, and I'm not sure the "express" version is up to the task.

On the other hand, there are free development platforms for Java, which I thought could be a good tool for browser AND mobile development. Or if I just wanted to stick with a server-side tool to handle data storage, processing, and turn output, I could do what the Empyrean Challenge guys are doing and just use Access.

Or I could go with LAMP (linux, apache, mySQL, Perl).

Someone posted something about there being some potential PBEM platforms under development on SourceForge, so maybe it's worth a look to see if I could join one of those efforts...
[/quote]

Something to consider when developing a web app/service is not the cost of development, but also the cost of maintaining the service after deployment.

Hosting (and scaling) a LAMP stack is much cheaper than hosting and scaling a MSFT .NET stack.

BTW, the P in LAMP can be any number of things: Perl, PHP, Python, Ruby, etc.
If you're really set to go the MSFT route, and you have access to a .edu email address (as a student, alumni, or faculty) then you can get tons of software on MMs' kid-themed website https://www.dreamspark.com (seriously, what's with the yellow and blue spaceman with pink rainbows?!)

For my personal project (Far Horizons) I'm not sold on the web based GUI yet, and am still leaning towards a cross platform downloadable client.

For one thing, I feel like gamers take the installable game more seriously than they do the web game. Though I am definitely biased as I develop cross platform desktop software for my job. Going the web route would give me the chance to play with some exciting new technologies like WebGL, Canvas, and other HTML5 goodies.

Edited Mar 27, 2011 14:14 UTC

#519

[quote='Ramblurr' pid='511' dateline='1301234608']
For my personal project (Far Horizons) I'm not sold on the web based GUI yet, and am still leaning towards a cross platform downloadable client.

For one thing, I feel like gamers take the installable game more seriously than they do the web game. Though I am definitely biased as I develop cross platform desktop software for my job. Going the web route would give me the chance to play with some exciting new technologies like WebGL, Canvas, and other HTML5 goodies.[/quote]

[quote='aloysius' pid='517' dateline='1301238389']I can't argue with feelings. To counter, I feel putting it on the web is the easiest and fastest way to get it out there to the people who want to play it. I'm going with a browser-based interface to begin with, but have plans to develop native desktop and tablet/phone clients in the (more distant) future, using web services to connect to the same games that the browsers do.[/quote]

Just to chime in on the subject from my non-programmer perspective, I have been online many years, now, and there's not a single, solitary browser-based game that has caused me to be addicted to it, yet.

Every now and then, I take time out to give a newly discovered browser-based game a try. I invariably walk away, disappointed.

I am playing in Ramblurr's Far Horizons: The Awakening, right now. Being able to send and receive my turn orders and turn results via e-mail is an enormously attractive feature to me. It's still early in the game, right now, and of all aspects of the game that I have yet encountered, the sending and receiving of turn orders and turn results via e-mail is the single most attractive feature of the game for me, to date.

#523

[quote='Ramblurr' pid='511' dateline='1301234608']

For my personal project (Far Horizons) I'm not sold on the web based GUI yet, and am still leaning towards a cross platform downloadable client.

For one thing, I feel like gamers take the installable game more seriously than they do the web game. Though I am definitely biased as I develop cross platform desktop software for my job. Going the web route would give me the chance to play with some exciting new technologies like WebGL, Canvas, and other HTML5 goodies.

[/quote]

One advantage a browser-based client would give you is ease of updating. Forcing the player to dl every build can get old, real fast. On the other hand, being able to offload some of the data-store can be a blessing.

Have you played with jQuery much? It adds a great deal to the front end and combined with AJAX (which it supports natively for quick and dirty trips to the server) makes for a very smooth transition.

I think players respect applications running in a browser that look like they are part of the 21st century, but tend to think less of those that are static HTML with full screen refreshes every time a tiny piece of the display is updated. Unfortunately a lot of PBeMs have websites that look very 90's. Take a look at Rolling Thunder.

#573

[quote='JonO' pid='523' dateline='1301241484']
One advantage a browser-based client would give you is ease of updating. Forcing the player to dl every build can get old, real fast. On the other hand, being able to offload some of the data-store can be a blessing.
[/quote]
Indeed, this is a headache. Though, I thought it would be fun to implement a binary patching system akin to the way Google pushes chrome updates. When the users open the app, it phones home to check for an update, then automatically updates itself with a binary patch. This would be a fun challenge to implement, but probably overkill for a simple game client.

[quote='JonO' pid='523' dateline='1301241484']
Have you played with jQuery much? It adds a great deal to the front end and combined with AJAX (which it supports natively for quick and dirty trips to the server) makes for a very smooth transition.
[/quote]
Yes. JQuery and similar toolkits (Dojo) are fantastic. If I was to create a webapp it would definitely make full use of AJAX give it a native app feel.

[quote='JonO' pid='523' dateline='1301241484']
I think players respect applications running in a browser that look like they are part of the 21st century, but tend to think less of those that are static HTML with full screen refreshes every time a tiny piece of the display is updated. Unfortunately a lot of PBeMs have websites that look very 90's. Take a look at Rolling Thunder.
[/quote]

I absolutely agree. I've ranted about this elsewhere on these forums. Most PBEM sites made a website in the late 90s when the web as new and never bothered to update it. FBI is another major culprit.


[quote='GrimFinger' pid='519' dateline='1301239454']
I am playing in Ramblurr's Far Horizons: The Awakening, right now. Being able to send and receive my turn orders and turn results via e-mail is an enormously attractive feature to me. It's still early in the game, right now, and of all aspects of the game that I have yet encountered, the sending and receiving of turn orders and turn results via e-mail is the single most attractive feature of the game for me, to date.
[/quote]

Don't worry, this won't be going away. I don't plan to discard the email/orders interface, but build a graphical interface on top of the orders interface (whether that interface will be a downloadable app or webapp is TBD). But, I will definitely keep supporting email+orders.

Edited Mar 29, 2011 14:14 UTC

#579

With the price of postage going up and up (I am such an old fart that I remember when (for years on end) the price of a first class stamp was $.03) eMail becomes a necessity as well as a convenience, doesn't it?

Oh yeah, and back then, mail was delivered twice a day, except they goofed off and only delivered once on Saturday.

#911

Has anyone considered using Flash as a front-end for a play-by-web game? I just found a book describing how to build "virtual online worlds" in Flash - multiplayer and everything...

#917

[quote='ixnay' pid='911' dateline='1302723179']
Has anyone considered using Flash as a front-end for a play-by-web game? I just found a book describing how to build "virtual online worlds" in Flash - multiplayer and everything...
[/quote]

I considered it, but the load time seemed to be a killer - this is my only real foray into Flash. (There's no loading icon, so just take my word for the fact that if you wait for a short while, something will appear.)

#933

I used to develop CD-ROMs (back before the web exploded) using Director. Flash is sort of the bastard cousin of Director, only I've heard that they have beefed up the capabilities considerably. So I am thinking about doing some animated controls for interaction. Or even for mini games within a larger game.

#935

Flash wouldn't be my first choice, but if done correctly I suspect it would be very good.

Most websites that use flash tend to only implement it in 'small pieces' where html / css isn't a suitable option. The trouble with this approach is trying to ensure the page looks and behaves the same across the various technology boundaries. Often this isn't done very well.

The other option is to produce a website entirely in flash. This isn't the norm, but it would get around alot of the problems I mentioned above. Others are introduced however. :-) This site does just that: http://www.sterkinekor.com

It has mixed reviews. Some people love it, while others hate it.

Jon: Are you sure about the lack of 'loading status' in flash? The example site above does something similar but there is a slight delay at the start while I guess it loads the framework.

Personally I wouldn't go for Flash. Html / CSS and Javascript (JQuery) is the way to go as far as I'm concerned.

#937

If you're talking about a static page, then Flash is definitely not the way to go. Adds bulk and a layer of interface unnecessarily. As such, something like Mafia Wars would NOT benefit from a Flash front-end.

Farmville, on the other hand, uses it (or something like it), because the interaction is dynamic - a graphic interchange between user and database.

I am imagining a game where, for example, you are piloting your spaceship around, live. You pull up coordinates on your computer, you access status reports, you press the hyper jump button, you find the asteroids to mine, etc. And you attack freighters that other players have put on automated shipping runs (with defensive tactics preprogrammed.)

Or you have a simcity style view of a section of a planet surface, where you can lay out your colony components, monitor production statistics, or drop invading space commandos.

These could be games within a larger game, in which you run an interstellar company that continues to earn money while you're offline, the same way your "city blocks" do in Mafia Wars. This would meld turn-based with real-time to create a casual gaming platform that still offers compelling interaction that impacts your long-term game.

#938

[quote='ixnay' pid='937' dateline='1302792779']
If you're talking about a static page, then Flash is definitely not the way to go. Adds bulk and a layer of interface unnecessarily. As such, something like Mafia Wars would NOT benefit from a Flash front-end.

Farmville, on the other hand, uses it (or something like it), because the interaction is dynamic - a graphic interchange between user and database.

I am imagining a game where, for example, you are piloting your spaceship around, live. You pull up coordinates on your computer, you access status reports, you press the hyper jump button, you find the asteroids to mine, etc. And you attack freighters that other players have put on automated shipping runs (with defensive tactics preprogrammed.)

Or you have a simcity style view of a section of a planet surface, where you can lay out your colony components, monitor production statistics, or drop invading space commandos.

These could be games within a larger game, in which you run an interstellar company that continues to earn money while you're offline, the same way your "city blocks" do in Mafia Wars. This would meld turn-based with real-time to create a casual gaming platform that still offers compelling interaction that impacts your long-term game.
[/quote]

My point was that Flash takes time to load. Whether its a game within a game, or the game, or anything else, it takes time to load. Now, once loaded, it's as responsive as anything else that we've got, but still, Flash takes time to load.

If I were to start designing any of the games you described, I would be calling for a client app that handled most of the presentation layer and dl'd the data.

#939

Client apps are good and all, but I myself have a strong bias against downloading and installing something. Too many security issues. Flash is protected and generally safe to view.

There is a MMO game called Runescape that uses Flash, I believe. It's far beyond what I would envision using - quite a technical accomplishment in my opinion. They have a 2-level system where you can play for free, but only get access to premium content through a subscription.

Anyway, I have access to some Flash books through my local library and my kid wants me to program a game for him anyway, so I might experiment a little here. I know I can do the game play in Flash, but I need to find a way to send results up to a database, to persist them in the common universe.

(Incidentally, I have only recently become aware of the enormous resources available at libraries these days! I can view recent-edition technical books online for free -- the kind of stuff that costs $50 at the book store!)

#940

[quote='ixnay' pid='939' dateline='1302795922']
There is a MMO game called Runescape that uses Flash, I believe. It's far beyond what I would envision using - quite a technical accomplishment in my opinion. They have a 2-level system where you can play for free, but only get access to premium content through a subscription.
[/quote]

They use a Java Applet.

Everything that you said can be done with most of the client-side technologies nowadays especially with the arrival of html5. Flashy animations are obviously easier to be done in flash, java, silverlight etc but they all require browser plugins. Stick to basic HTML if you can.

Go to: http://dev.sencha.com/deploy/ext-4.0-beta2/examples/ to get some idea of how powerful HTML and javascript can work together. All the examples are compatible with the major browsers. I'm not a huge fan of the EXT framework, I do prefer JQuery, but EXT really does show what can be achieved, though a little heavy under the hood in my option.

#941

I really like what EXT is doing with storing the state on the client.

#944

[quote='JonO' pid='483' dateline='1301149472']
I'm a Microsoftie. (Was one of the original betaguys on .NET, got involved with MSFT New England, and never looked back.) I use Visual Studio Professional, running VB (I prefer VB to C# because being more verbose, it's easier to maintain), and augmented with a lot of JQuery. The datastore is, however mySQL, not MSSQL.

Two programs that I use almost as much as Visual Studio and mySQL are Paint.NET a freebie graphics program that rivals the guys that charge many hundreds, and Poser, a 3D modeling program. There's a compatible to Poser (which isn't free) called DAZ3d which is free, even for commercial use

One of the things folks might consider if they get serious about programming is that MSFT has a startup program that provides access to an awful lot of high-powered software, almost for free. Go to http://www.microsoft.com/web/websitespark and check out "Getting Started." They'll give you the software priced in the tens of thousands and, after three years, they want you to pay 'em $100. If you aren't ready to handle the major stuff, Microsoft's express versions of all their major development tools are probably worth a look. Of course, you have to be running Windows and not think that Redmond is a bigger threat to the U.S. than Iran. ;)
[/quote]

Cool Stuff Jon0,
What would you recommend for a C or C ++ compiler on windows?

#945

Through websitespark you can download Visual Studio 2010. It can compile C++ either to "managed code" - i.e. .NET, or "unmanaged code": straight C++.

#1095

I'll post a big thumbs up to Flex/Flash as a client technology for this market.

The primary reason is that there have been lots of great small press games that I've wanted to play with my friends, but not only do I know that some of them use macs, some of them use old macs without a lot of memory. It's been a killer really frequently.

I really want to at least experiment with the windows clients for email games, but found that even running parallells on my computer took much more than the 3gb or RAM than my tower came with. The clients are dinky but the operating systems themselves are huge and it takes a lot of ram to load them both at the same time. I upgraded my tower to 12gb, and that will work for me, but I have to assume that most mac using clients are using macbooks with around 2gb , making parallels kind of a drag. Bootcamp might be a better move, but still, that does require rebooting.

To be clear, I've generally been a windows developer from 1990 to 2000k. The last version of windows that I liked as a developer was windows 2000. Since then it seems like MS has been focused on the os more as a marketing vehicle than an os, and mac and linux have been kicking ass since about the same time, but never to any difference. I think in this one niche it's worthwhile to be cross platform. I love os x and though I still don't know of that single linux distro that I could sell to my mom, i know that someday it will happen. It's only been about a year since I've had to go to my wife's computer to test things on windows.

Regardless, web technologies have really made a pretty good case for themselves for distribution and the flash player enables that distribution method for strategic games that fits pretty well in my thinking.

I do agree with Ixnay that html and the current ajax frameworks look pretty promising for this niche, which is more abstract than graphical, but the capabilities of the flash player are so beyond html 5 that in absolute terms I think it has a huge advantage that is unlikely to ever go away. In the end it's probably a "what's most comfortable for you" kind of question. And though Flex has it's warts, I'd recommend it for this niche.

I've looked a lot at pygame and the java gaming toolkits as well and they seem to be further along in terms of design, and yet are hobbled by their client installation processes.

I think that weborb and flex are, in particular, the best technologies for this niche, but that whatever is easiest is good enough as well. Time will certainly tell.

Edited May 18, 2011 06:11 UTC