Home » Community » Forums » NeHe Productions » Need help alpha testing my MMORPG.
  Intel sponsors gamedev.net search:   
[Control Panel] [Register] [Bookmarks] [Who's Online] [Active Topics] [Stats] [FAQ] [Search]

Add Forum to Favorites |  Send Topic To a Friend | View Forum FAQ | Track this topic

Page:   1 2 »»

 Last Thread Next Thread 
 Need help alpha testing my MMORPG.
Post New Topic  Post Reply 
My completely free, open-source MMORPG (Massively Multiplayer Online Role Playing Game) is an online virtual reality. It is inspired by Legend of Zelda and similar NES/SNES-era games.

A web site with the source code and more information is up!

http://thechuckster.homelinux.com/nitro/

Go to the downloads section and grab the source package. It depends on OpenIL (Open Image Library), OpenGL, SDL, and SDL_net.

To compile, just type make! To clarify: you don't have to run this as root.

Remember, folks, this is GPL'd so please obey the license.

TCP/IP Ports 9997-9999 need enabled on your router or firewall for this to work.

It is pretty stable so far. Just run it in a console and type a nick name. Immediately you enter my persisent online world. Controls are W A S D movement, T to talk ENTER when you're done typing, F1 for full screen, ESC to exit.

Report bugs here.

Thanks.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Are there any plans for a Windows version? I don't use Linux much anymore (I have it on my other computer, which is currently stored in my closet).. but anyway good luck with the project, I like SNES-style RPGs. :)

---
Website :: Blog

Currently working on an as-of-yet unannounced 3D stealth game.

 User Rating: 1053   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Well there will be when I get around to it. Visual C++ doesn't like standard code.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

VC might not but dev-cpp almost compiled it for me. It looks like it doesn't link right however. I can get it to link to DevIL, SDL and OGL but the problem is it won't link your files right..

For some reason it can't find the definition of glPrint yet its in the text.h which is included at the top, go figure. the only two files that I got to compile were framework.cpp and text.cpp.

You should give dev-cpp a shot before VC, it will probley work if you monkey with it a little after all it does use gcc.

Also thanks for leting me look at your source, it gave me more of an idea on how to organize my code, mine currently is a mess but does more or less the same thing minus networking suport (standard tile engine in SDL).

 User Rating: 1025   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

The binary supplied links to.. SDL 1.3??!

[sijmen@shadowfax MMORPG-src]$ ./MMORPG
./MMORPG: error while loading shared libraries: libSDL-1.3.so.0: cannot open shared object file: No such file or directory


Compiling wouldn't work either:

[sijmen@shadowfax MMORPG-src]$ make clean
rm -f framework.o tiling.o input.o text.o chat.o net.o tokenizer.o
[sijmen@shadowfax MMORPG-src]$ make
g++ -c framework.cpp -I/usr/include/SDL -O2 -pipe -Wall -ansi -o framework.o
In file included from /usr/include/allegro.h:69,
                 from /usr/include/IL/ilut.h:188,
                 from framework.h:27,
                 from framework.cpp:18:
/usr/include/allegro/fix.h:92: error: declaration of C function `fix operator+(fix, int)' conflicts with
/usr/include/allegro/fix.h:91: error: previous declaration `fix operator+(fix, fix)' here
/usr/include/allegro/fix.h:93: error: declaration of C function `fix operator+(int, fix)' conflicts with
/usr/include/allegro/fix.h:92: error: previous declaration `fix operator+(fix, int)' here
/usr/include/allegro/fix.h:94: error: declaration of C function `fix operator+(fix, long int)' conflicts with
...
...
In file included from framework.cpp:18:
framework.h:34:1: warning: "TRUE" redefined
In file included from /usr/include/allegro.h:25,
                 from /usr/include/IL/ilut.h:188,
                 from framework.h:27,
                 from framework.cpp:18:
/usr/include/allegro/base.h:58:1: warning: this is the location of the previous definition
make: *** [framework.o] Error 1


Looks nice from what I've seen so far though, on the site and such.


/edit:
Linking SDL-1.2 to the 1.3 .so named above solved it. Weird though.

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

How did you get Dev-C++ compatible versions of SDL_net and OpenIL?

Odd. I don't remember Allegro being a part of this.

I use the bleeding-edge SDL 1.3 since I use an XMMS visualization program called Project-M that requires it for off screen buffer rendering. Sorry.

Glad that the source code was useful to somebody.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by TheChuckster
How did you get Dev-C++ compatible versions of SDL_net and OpenIL?

Odd. I don't remember Allegro being a part of this.

I use the bleeding-edge SDL 1.3 since I use an XMMS visualization program called Project-M that requires it for off screen buffer rendering. Sorry.

Glad that the source code was useful to somebody.


Well, this is about Linux, for me at least. By the way, maybe you should try compiling the Linux version against a stable SDL version, because this way it leads to some minor confusion ;)

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

just got sdl_net off libsdl.org and then I used DevIL for the IL stuff.. all you really have to do is put the header files and libs in thier respectful directories under dev-cpp.

 User Rating: 1025   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

You can have two versions of SDL, just tell the linker which one to link against. I would stay away from SDL1.3 until it becomes more standard.

Clutch

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Visual C++ doesn't like standard code.


Version 7.1 (the .NET 2003 version) actually likes at least as much standard code as GCC 3.4 does. In fact, where we have compiler boneheadedness problems, it's more likely on GCC than VC these days.

Version 6 was pretty bad, I'll agree with that. You could make it better with this define in a header everyone included, though:

#define for if(0);else for



 User Rating: 1944   |  Rate This User  Send Private MessageView ProfileView Journal Report this Post to a Moderator | Link

Hah I clicked this expecting to be about GL_ALPHA_TEST...

Cool little game.

 User Rating: 1099   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Sijmen, it seems that every time you join, weird messages get sent out to the server and I never can see you or your chat messages. Perhaps you are using an outdated source tree.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by TheChuckster
Sijmen, it seems that every time you join, weird messages get sent out to the server and I never can see you or your chat messages. Perhaps you are using an outdated source tree.


Heh, nice you noticed it. There were a few 'good' times, though, when I used your client.

I was trying to fiddle around a bit with the protocol and such, looking at how you did it. It's looking quite nice really. One question I have though, is: why do you ignore the status message from the server when it concerns the player?

if (nick == nickname) // If it's us, then forget about it!
	return;


And while I'm at it, what are you using as message serperator? That's not clear from the source, either. Neither is the 'login' procedure. It doesn't seem to use the message-id system, right?

Overall, well done though!

/edit:
The client segfaults when I'm using two at the same time :|

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Hey,

Got somewhat further. It seems like you are first sending the length of the message, and then the message itself, to avoid using message serperators. Looks quite good.

Found a little exploit though: try using a nick like 'Sijmen:1:Muharharhar', you'll get some funny results.

Good luck,
Sijmen Mulder

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

It's because we already know our own status so why keep track of it as if it were a remote player?

I switched to using the pipe (|) symbol as a separator because the colon is frequently used for smilies. To prevent exploits, I will need to filter it out of messages so that malformed messages do not go to the server.

What's the message-id system?

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by TheChuckster
It's because we already know our own status so why keep track of it as if it were a remote player?


Well, the server might have not accepted the movement. Take for example a hacked map, missynchronisation would be the result.

Quote:
I switched to using the pipe (|) symbol as a separator because the colon is frequently used for smilies. To prevent exploits, I will need to filter it out of messages so that malformed messages do not go to the server.


Yes, indeed :)

Quote:
What's the message-id system?


1|Sijmen|Hey man!
^
|
| message id


Now I for my part have one question again :)

I did this:

1 - Send the length of the message as uint with network byte order
2 - Send a (null-terminated?) string

However, after that happens, the connection seems to be closed. Is that right?

And also, some strings are zero-terminators, some are not, and some are double zero terminated. Is this your side or SDL_net's?

Good luck!
Sijmen Mulder

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

The message-id system allows for easy distinction between the three types of messages: position, chat, and disconnect.

I'm guessing the error handling kicked in on you and closed the connection. I oughta publish the server source as well.

And for the null-terminator deal. Yikes. It's more than likely poor coding on my part. How did you get to see the low level packets?

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by TheChuckster
The message-id system allows for easy distinction between the three types of messages: position, chat, and disconnect.

I'm guessing the error handling kicked in on you and closed the connection. I oughta publish the server source as well.

And for the null-terminator deal. Yikes. It's more than likely poor coding on my part. How did you get to see the low level packets?


I've used a Linux program called ethereal.

When does the server close the connection? What is going wrong?

 User Rating: 1084   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Edit your config file so that you're not using duplicate nicknames. That's probably the issue. Also, another release is going to be out soon. Check the news updates on the site -- I'll post when it's out.

Among other things, it promises a Windows port! (and the server source)

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Quote:
Original post by TheChuckster
A web site with the source code and more information is up down!

http://thechuckster.homelinux.com/nitro/


 User Rating: 1463   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Woops. Looks like I forgot to add apache2 to my default runlevel.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

Your game server seems to be down(I did allow ports 9997-9999 on my firewall, still doesn't work).

 User Rating: 1463   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I am going to be using Windows more frequently now. Besides, the beta version is nearing completion. IIRC the latest source tree has the server included.

Sorry.

 User Rating: 1019   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

I made a Macintosh .app file (executable), if your interested. OSX Executable(zipped with README), it contains everything they need (I bundled the data files in the executable).

EDIT: Fixed a bug that caused it to crash whenever you tried to enter the inn.

 User Rating: 1463   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link

This looks like a great project! It what I wanted to shoot for later down the road. (I JUST figured out how to display a bitmap with Direct3D T_T) BUT! its simple, its clean, and it works! Good job!

 User Rating: 1015   |  Rate This User  Send Private MessageView Profile Report this Post to a Moderator | Link
Page:   1 2 »»
All times are ET (US)

Post Reply
 Last Thread Next Thread 
Forum Rules:
You may not post new threads
You may post replies
You may not edit your posts
You may not use HTML in your posts
Jump To:
Administrative Options: