Jump to content

  • Log In with Google      Sign In   
  • Create Account


EdR

Member Since 26 Sep 2000
Offline Last Active Jan 19 2014 09:51 PM
-----

Topics I've Started

Collective interaction for single-player games?

17 May 2008 - 06:13 PM

Hey, folks. Just bouncing some ideas around in my head at the moment, figured I'd throw this out there. As of late I've been cheerfully getting myself addicted to Trackmania Nations Forever, a free arcade-style racing game. One of the coolest parts of this game is the central multiplayer integration. You don't play directly against other players, but instead you collect medals earned by beating ghost-car times. (I have no idea how the times are calculated, but most are pretty easy and all are doable.) The cool part of this comes from a constantly active ticker that shows your world, country, and local standings. For example, right now I'm 22nd in Maine, around 1100th in the US, and around 4000th in the world (these are random numbers, I can't be bothered to go look them up for discussion's sake). This sort of thing is a fascinating way to keep one playing: it's an accurate barometer of just how good you are compared to everyone else. Valve does something vaguely similar with the Half-Life 2 series, starting with Portal and Episode Two: Achievements, much like the XBox Live setup. These achievements are much less interesting, though, due to the lack of direct comparison. There's just less to it. I'm interested to hear your thoughts. I've had an idea for a more up-to-date sort of Roguelike floating through my head for a while. It'd be turn-based, so multiplayer is more or less out, but I was considering the idea of something like bones files from Nethack. Players can, at the start of a game, choose to play local-only or with remote content added. When you drop a level and the game needs to create a new level, the remote content game will contact the game server and ask for a bones file, which may or may not be given. If it is, the dead character's vital stats are sent, plus with maybe one or two random items they were carrying, along with map data. (For simplicity's sake, assume that maps are randomly generated based on a seed; individual items on the map can change between plays, it won't significantly matter.) As in most Roguelikes, deaths will be frequent, and somebody playing with remote content will have their game automatically uploaded to the server for viewing, ranking, etcetera. One part of me thinks this would be a cool way to foster replay in an otherwise very straightforward RPG. The skeptical part of me, though, says that this sort of thing isn't necessarily valuable, and is more hassle than it's worth except for games that are entirely focused around the score and ranking. Any ideas or riffs on the concept would be cool to hear about. -Ed

Using Mono as a script host--anyone done it?

30 April 2008 - 08:00 PM

Hey folks. I'm in the preliminary stages of design for a project for the near future. I've been looking at Mono's script hosting capabilities (as per this link) and was wondering if anyone has any experience with using it (or an equivalent technology using the CLR; my project is .NET-based, but it doesn't seem like the same functionality exists within .NET itself, unless I missed something). Good? Bad? Hideous? Awesome? Lemme know. Thanks, Ed

Browser-based (HTML, not Flash) games?

16 April 2008 - 08:29 PM

Hey, folks: I've been toying with the idea of writing a browser-based game similar in style to Urban Dead or Shogun Wars. I was wondering if anyone here has any experience with the business aspect of these--namely, how to generate revenue. Advertising is nice, of course, but I'm not sure that I see a good, solid revenue stream coming out of something like this. Anyone have any success stories in this field? Thanks, Ed

On-the-fly ActiveX loading? (VB6 or VB.NET)

28 December 2005 - 08:33 AM

Okay, a friend of mine is running into a snag with a program he's writing. He wants to be able to load OCXes into his program on-the-fly. For example, he wants a user to be able to add a clock widget in the form of an OCX to his active program and just position it somewhere. Is this possible in either .NET or VB6? I Googled around, but couldn't find a thing. Thanks, Ed

STL string screwing up code...

25 October 2005 - 04:49 AM

This is most odd, because it doesn't occur on all machines I try it on--at least not in this particular way. The GDB output is below:
Program received signal SIGSEGV, Segmentation fault.
0x0024dc4e in _int_malloc () from /lib/libc.so.6
(gdb) where
#0  0x0024dc4e in _int_malloc () from /lib/libc.so.6
#1  0x0024f492 in malloc () from /lib/libc.so.6
#2  0x001b6bf6 in operator new () from /usr/lib/libstdc++.so.6
#3  0x00143e80 in __gnu_cxx::__pool<true>::_M_reclaim_block ()
   from /usr/lib/libstdc++.so.6
#4  0x0018e27d in std::string::_Rep::_S_create () from /usr/lib/libstdc++.so.6
#5  0x001901c1 in std::string::_M_mutate () from /usr/lib/libstdc++.so.6
#6  0x001903f0 in std::string::_M_replace_safe () from /usr/lib/libstdc++.so.6
#7  0x0019267e in std::string::replace () from /usr/lib/libstdc++.so.6
#8  0x00192c9d in std::string::replace () from /usr/lib/libstdc++.so.6
#9  0x0808cc63 in find_and_replace (source=@0xbfeeed30, find=@0xbfeeeb6c,
    replace=@0xbfeeeb64) at utils.cpp:170
#10 0x080803db in Socket::Colorize (this=0x99bd510, txt=@0xbfeeed30)
    at socket.cpp:210
#11 0x08082706 in Socket::Write (this=0x99bd510, txt=@0xbfeeed60)
    at socket.cpp:159
#12 0x0808c7c2 in send_to_char (ch=0x99bb520, text=@0xbfeeedfc) at utils.cpp:21
#13 0x0805b855 in do_who (ch=0x99bb520, arg=@0xbfeeee84, special_command=0)
    at actions_informative.cpp:111
#14 0x08061025 in command_interpreter (ch=0x99bb520, text=@0xbfeef39c)
    at commandinterpreter.cpp:118
#15 0x08085ceb in socket_state_handler (pSocket=0x99bd510)
    at statehandler.cpp:53
---Type <return> to continue, or q <return> to quit---
#16 0x08076449 in main (argc=2, argv=0xbfeef884) at main.cpp:99
I'm sure that it's obvious enough, but I bolded where my code ends and the <string> code begins. find_and_replace is a wrapper for the std::string replace function (I was far, far too lazy to be good and use the proper code for the std::string class more than once, and this was easier). Socket::Colorize is (in a hideously ugly way, let's not kid ourselves here) a battery of find_and_replace statements that replaces my defined color codes with the telnet ANSI color sequences (so that "{B" is translated into the ANSI code for bold blue--this is a MUD codebase). Socket::Write puts whatever string is passed to it into an output buffer for flushing later. do_who is where the string is compiled. It looks something like the following (though with ANSI sequences that I didn't show).
[PK?][ LVL]| Name
======================================================================
[NPK][IMPL]| Lared is sometimes AFK.
[ PK][   1]| Testbob is a newbie.
Here's the sticking point. With one lone connection it works fine (and I test against null to make sure that a player actually exists within my player stack; that isn't the issue). When a second player connects and tries to use the WHO command, it explodes. I've fought with it for the past two days and am getting no progress. Does this situation sound similar to anyone else's? Source code for the application will be available when I get home.

PARTNERS