Help Wanted

Come and help making a Christian MMOG – Jari

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Hello.

I have been working alone on a Christian adventure MMOG for many months now and I believe now it's the right time to start forming a team.

The plan is to create a free non-violent Christian beliefs based online game where player adventures trough the world in search for the truth.

The engine I'm using is torque (TGE) and it's been modified for the basic MMOG functionality such as player login using SQL database.

Here's the design documentation that tells what this game is about. But please note that I wrote it to give the basic idea about the game. It's not the kind design doc that describes everything about the game:
http://koti.mbnet.fi/therpg/docs/design/documentation.htm

So, if you are interested you are welcome to join and help out in where ever you can. Just to post to this thread or head to the project site at: http://koti.mbnet.fi/therpg in there you can register and post to the new members section.

Just note though that in order to help with the engine code you need a license to torque. But scripting doesn't require anything and there is lot to do in that area.


I'm looking forward to some feedback. Thanks and God bless you!

[This message has been edited by Jari (edited May 20, 2005).]

Rhyolite

Member

Posts: 86
From: UK
Registered: 08-04-2004
Sounds interesting, but unfortunatly I need to 'try' and make commercial games to 'hopefully' support my family. I have been planning a 'christian' RPG game myself (not mmo) for some time now (for when I have completed my fun flight combat sim game - 70% complete) and we seem to share some similar ideas.

Your document is very informative and you have obviously given much thought to the game itself and also many of the problems/pitfalls of creating a christian game.

From the document it is unclear what form combat will take - will it just be defending yourself from wild animals or will quests involve 'killing' monsters along typical mmorpg games?

Is your target audience christian (teaching) or unsaved (evangelism)?

Is the conversation tree editor your own work or part of Torque?

All the best and God Bless,
Rhy

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
quote:
Originally posted by Rhyolite:

From the document it is unclear what form combat will take - will it just be defending yourself from wild animals or will quests involve 'killing' monsters along typical mmorpg games?

Good question. And in fact I'm not sure what would be appropriate approach here because the game is supposed to be non-violent. So, there's no combat system and to survive player just have to stay away from the sharks which are currently the only hostile animals.

quote:
Originally posted by Rhyolite:

Is your target audience christian (teaching) or unsaved (evangelism)?

Both actually. The idea is to be subtle with Bible teachings / verses at the beginning and instead give the player a fun game play experience. And when the player starts making a progress more and more Bible teachings and Jesus name is declared and involved in the quests.

quote:
Originally posted by Rhyolite:
Is the conversation tree editor your own work or part of Torque?

It's my work. I have made a couple of dialogue scripts using it and talked with the NPC's.

quote:
Originally posted by Rhyolite:

All the best and God Bless,
Rhy

The same to you and God bless.

[This message has been edited by Jari (edited May 05, 2005).]

Rhyolite

Member

Posts: 86
From: UK
Registered: 08-04-2004
Sounds like something that would be good for those on the fringes of christianity to play, perhaps unsaved youth who have just been 'dragged' along to their local chrisitian youth group by some christian friends? They could log onto the server and whilst discovering through the game itself, they would also perhaps feel more able to talk openly with other players (using a ficticious player name) about chritianity?

Also, have you considered players helping each other. This is a central part of our faith, so perhaps 'most' quests should require help from other players who have different skills than yourself?

If it helps any, if I were not having to 'make money' then I would consider helping. The basic idea sounds good to me. Hope you get some others interested, its a LOT of work for one person and new people bring fresh ideas (although you have to stick to your basic design philosophy).

Rhy

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
quote:
Originally posted by Rhyolite:
Sounds like something that would be good for those on the fringes of christianity to play, perhaps unsaved youth who have just been 'dragged' along to their local chrisitian youth group by some christian friends? They could log onto the server and whilst discovering through the game itself, they would also perhaps feel more able to talk openly with other players (using a ficticious player name) about chritianity?

Yes, absolutely and I'm hoping non-Christian people would find and try out the game by them self and it would change their view about Christians being boring or what ever stereotypes they might have. Basically I see this as an great opportunity to show a non believer one side of Christianity.

quote:
Originally posted by Rhyolite:
Also, have you considered players helping each other. This is a central part of our faith, so perhaps 'most' quests should require help from other players who have different skills than yourself?

Yes I planned that players may assist each others to complete quests. Which I think is a lot of fun to solve puzzles with other players and like you said use skills to help. However requiring other player's help to complete a quest is a nice idea but it may not work like planned at the early stages after the game's launch, if there isn't enough players online.

quote:
Originally posted by Rhyolite:
If it helps any, if I were not having to 'make money' then I would consider helping. The basic idea sounds good to me. Hope you get some others interested, its a LOT of work for one person and new people bring fresh ideas (although you have to stick to your basic design philosophy).

Thanks, I understand that you have to make living. For the same reason I can't work on this project a full day but have to do 6 hour job and after that I can code.

Well, thanks for your feedback Rhy, I appreciate it.

[This message has been edited by Jari (edited May 05, 2005).]

[This message has been edited by Jari (edited May 06, 2005).]

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
So, has any one else read the design documentation? I would like to have more feedback to see if I'm doing something wrong.

I have added couple new sections there; "other players" and "languages".

And I'm trying to build up a first quest so that there would be point to keep the server up a while, where you could go and play. I'm also working on Bible card game as mini-game.


Btw. If you see some mistakes in the documentation please tell, It probably has many since English isn't my native language.

Thanks.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Ok there's a demo now at the site which you can download if you wish to test the game. Currently there is just one simple test/demo quest and the graphics, GUI's and models are bad but I hope you like it.

You can download the windows client from here:
http://koti.mbnet.fi/therpg/files/TheRPGDemoClient.zip

I'm not sure how long can I keep the server up but at least over one night.

Hope you enjoy.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

[This message has been edited by jari (edited May 20, 2005).]

[This message has been edited by jari (edited May 20, 2005).]

Seven7
Member

Posts: 50
From: USA
Registered: 03-16-2005
jari,

It’s refreshing to see someone working with TORQUE. Torque is a good and
least expensive gaming engine for beginners, or those that can’t afford
"high-end" engines. It has features that BLITZ3D doesn’t have and in some
ways out performs BLITZ3D.

I'm currently working with HAVOK (http://www.havok.com) and NOVODEX
(http://www.ageia.com/novodex.html). You might what to check out these
engines. They might not be appropriate for the type of game you’re working
on, but they more robust engines.

I think your game has potential, especially with the engine you have chosen
to work with. What's been your experience with programming and software
development?

The "design documentation" you’ve written seems ok, however if you were
working for me, I would suggest strongly to be more specific and detail
each design level. I’ve been in the gaming industry for 16 years now, and
there is a "language" that is commonly used to describe development. But
this is YOUR project so I don’t think anyone has the right to tell you
what’s wrong or right about the docs you’ve written.

Good luck.

j.

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Hi Seven7!

Thanks for the info about the engines but I'm going stay with torque since I have spend a lot of time learning and modifying it.


quote:
Originally posted by Seven7:

I think your game has potential, especially with the engine you have chosen
to work with. What's been your experience with programming and software
development?

Well most of my game programming experience comes from 2D games and scripting and I'm quite new to 3D and networking so obviously this is a great challenge for me but that's the way I like to learn things.

quote:
Originally posted by Seven7:

The "design documentation" you’ve written seems ok, however if you were
working for me, I would suggest strongly to be more specific and detail
each design level. I’ve been in the gaming industry for 16 years now, and
there is a "language" that is commonly used to describe development. But
this is YOUR project so I don’t think anyone has the right to tell you
what’s wrong or right about the docs you’ve written.

Thanks for pointing that out, but I'm aware that the design documentation should be detailed better but English isn't my native language so I find it quite overwhelming to write more detailed docs. This is also a huge project and I don't plan to design it all by my self but first focus on building a MMORPG engine and then focus more on the content.

quote:
Originally posted by Seven7:

Good luck.

Thanks!

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Ok, I shutted down the server for now, thanks for testing every one!
If you had problems login in that's because the login code isn't berfect and I'm going to rewrite it.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

Seven7
Member

Posts: 50
From: USA
Registered: 03-16-2005
Jari,

I think your english is just fine. Keep us (me) up todate on your progress.
I might be able to help out.

j.

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Ok, thanks! I will do that.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Right now I'm trying to figure what would be the best way to send packets between master server, zone servers and client. So far I have simply send info packets with out connection to master server which works until one of the packets gets lost.
The only solutions I know is to simply keep sending more info packets if the other end doesn't respond in within certain amount of time.
Another solution would be to establish connection between zone servers and master. Which Is probably the thing I should do because otherwise passwords and stuff would be send in info packets.

Only problem with connecting is that I'm using openTNL for the master server implementation which isn't compatible with torque. I'm thinking that maybe I should replace the torque's networking code with the openTNL. I know openTNL is basically torque's networking code since it was ripped of from the engine but they are way different now what comes to the connection protocol.

Any suggestions?

Edit:
I'm planning to use TCP link to make connections between the servers and clients.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

[This message has been edited by Jari (edited May 22, 2005).]

[This message has been edited by Jari (edited May 22, 2005).]

Seven7
Member

Posts: 50
From: USA
Registered: 03-16-2005
Jari,

I've used OpenTNL, but unfortuanly its been awhile since I've played with
it. The networking I have done has been as-hoc and libraries that I have
developed. I will have to download the OpenTNL libraries and give them a
look over.

quote:

Another solution would be to establish connection between zone servers and master. Which Is probably the thing I should do because otherwise passwords and stuff would be send in info packets.


You should'nt be to worried about transmitting passwords and gaming
information as long as you have some form of encryption scheme behind the
sences. You wont need anything too fancy just as long as its fast and
effective. OpenTNL might have some form of symmetric encryption protocal,
but I dont remember, if not I will post some encryption code samples for
you to look over.


quote:
The only solutions I know is to simply keep sending more info
packets if the other end doesn't respond in within certain amount of
time.


Generally if you are using the TCP protocal you are "guaranteed that the
packet will arrive at its destination"; if the packet is dropped
for some reason, the client is suppose to resend it. This is something
that you generally dont need to worry about. I'm not sure if this helps. (?)

Do you plan on using multi-threading for each client connection on the
server?

It sounds like your on the right road and your looking at all the options which is great.


j.

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
quote:
Originally posted by Seven7:

I've used OpenTNL, but unfortuanly its been awhile since I've played with
it. The networking I have done has been as-hoc and libraries that I have
developed. I will have to download the OpenTNL libraries and give them a
look over.

That's ok because I talked with one guy who has been developing openTNL and TGE and he recommended to use own TCP connection scheme.

quote:
Originally posted by Seven7:
You should'nt be to worried about transmitting passwords and gaming
information as long as you have some form of encryption scheme behind the
sences. You wont need anything too fancy just as long as its fast and
effective. OpenTNL might have some form of symmetric encryption protocal,
but I dont remember, if not I will post some encryption code samples for
you to look over.

It seems that I can't use openTNL anymore because I need TCP connection and openTNL supports UDP only. I'm thinking of using openSSL at http://www.openssl.org for the encryption but so far I know nothing about it though. Do you know anything about it? I'm going dive in to it soon.


quote:
Originally posted by Seven7:
Generally if you are using the TCP protocal you are "guaranteed that the
packet will arrive at its destination"; if the packet is dropped
for some reason, the client is suppose to resend it. This is something
that you generally dont need to worry about. I'm not sure if this helps. (?)

Even the TGE and TNL support only UDP there is guaranteed packet implementation using net events, net objects etc but that requires connection and TGE and TNL are not compatible.

quote:
Originally posted by Seven7:

Do you plan on using multi-threading for each client connection on the
server?

Actually no. Maybe I'm not taking something in to a count but the clients need's only to be connected to the zone server which is TGE. I was planning that client would only connect to master server at login and when client needs to change zone the 'zone server' and master server deals with this and 'zone server' informs client where or when it should re-login.

Thanks for the feedback, please ask any questions you have in mind.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

[This message has been edited by Jari (edited May 23, 2005).]

Seven7
Member

Posts: 50
From: USA
Registered: 03-16-2005
Jari,

quote:
Do you plan on using multi-threading for each client connection on
the server?


Good. This is usally not a good idea to do anyway.

quote:
...openTNL supports UDP only.

Odd, the last time I knew it used TCP. I guess it has been awhile since
I'ved used it.

quote:
...TGE and TNL are not compatible.

I am surprised! There should be a way around that issue. Let me
give it some thought on how to get around that problem. There might
be a way for you to use an ad-hoc approach.

quote:
I was planning that client would only connect to master server at login and when client needs to change zone the 'zone server' and master server deals with this and 'zone server' informs client where or when it should re-login.

I am not sure what you mean here. I think I understand what your trying to
do so lets see if I understand this:

Lets say I have a game and I want to join a server. I load the game and
look at a list of servers (master server) that people have all over the
world. I then "click" on the server I want to join and it will "route" me
to a server that someone has set up. Is that what your trying do?


quote:
I'm thinking of using openSSL....

SSL is something that you DONT want to do in a mutli-gaming environment.
Your game will be laggy, and create more problems than what you want. The
SSL algorithum hits the CPU pretty hard and that something you want to keep
low in a game.

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
quote:
Originally posted by Seven7:

Odd, the last time I knew it used TCP. I guess it has been awhile since
I'ved used it.


Here's some discussion about it and MM games:
http://www.garagegames.com/mg/forums/result.thread.php?qt=18676

quote:
...TGE and TNL are not compatible.

quote:
Originally posted by Seven7:

I am surprised! There should be a way around that issue. Let me
give it some thought on how to get around that problem. There might
be a way for you to use an ad-hoc approach.

I doubt about this because if you look into NetInterface class and Netconnection in TNL and compare to TGE's you see that they are way different. TNL has much more connection code and actualy multible classes for different types of connections, like event and ghost connection. Also this guy who has been developing both TGE and TNL said that they are indeed very different and recommended using a TCP link instead.

quote:
I was planning that client would only connect to master server at login and when client needs to change zone the 'zone server' and master server deals with this and 'zone server' informs client where or when it should re-login.

quote:
Originally posted by Seven7:

I am not sure what you mean here. I think I understand what your trying to
do so lets see if I understand this:

Lets say I have a game and I want to join a server. I load the game and
look at a list of servers (master server) that people have all over the
world. I then "click" on the server I want to join and it will "route" me
to a server that someone has set up. Is that what your trying do?


Hmm not quite, I'll try to clarify:
First I would like to introduce the server networking logic:

We have a game world with x amount of zones. To run these zones we have one master server running and we are waiting some one to launch x amount of zone servers so that we get all these zones playable. When some one launches a zone server it connects to master server and asks what to do. Master server tells it to load one of the zones that no other server is currently running. And then another server connects to master server and this procedure repeats until there are no zones that needs to be run and the master server just tells the extra servers to idle.
So basically it's one master plus server for each zone. (One server can serve more than one zone though)

Now when player wants to login to the game the client app asks master server where should the client be connected (client can't make any selections of it's own). So master server first checks in which zone is the player located from a database entry then it determinates if that zone is running (hosted by some server) and sends the address of the proper zone server back to client where client now connects.
(Note: If the zone where client is in isn't hosted by any server then it's impossible for the client to play.)

So client just connects where it's told. Does that make any sense what I wrote?


quote:
I'm thinking of using openSSL....

quote:
Originally posted by Seven7:

SSL is something that you DONT want to do in a mutli-gaming environment.
Your game will be laggy, and create more problems than what you want. The
SSL algorithum hits the CPU pretty hard and that something you want to keep
low in a game.

I see, thanks, thats good to know.


Well, I'm now writing my own TCP socket wrapper and integrating it with TGE, basically trying to replace the unreliable info packet system with reliable TCP. (I don't mean replacing anything in TGE, just my own current info packet sending code)

Thanks again for the help j.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

[This message has been edited by jari (edited May 24, 2005).]

HeardTheWord

Member

Posts: 224
From: Des Moines, IA
Registered: 08-16-2004
If you are planning to create a massively multiplayer game then you may be better off with UDP. TCP is nice because you never lose a packet, but at a speed loss. UDP will work better if you plan to make any MMOG.
Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
quote:
Originally posted by HeardTheWord:
If you are planning to create a massively multiplayer game then you may be better off with UDP. TCP is nice because you never lose a packet, but at a speed loss. UDP will work better if you plan to make any MMOG.

Absolutely, I'm using torque as engine and it uses UDP. We we're just talking about connection between master server, zone servers and client since this is not possible with torque and TNL since they are not compatible. (Need to establish TCP link between those.)

Thanks for the tip though.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17

Jari

Member

Posts: 1471
From: Helsinki, Finland
Registered: 03-11-2005
Well, I made a worklog at the worklogs section for you who are interested. Also feel free to go at the project site and register at the forums anytime and take part of the discussions. I know there isn't really any yet but I'll try to create some topics.

What comes to the issue about packet loss it should be behind now since I just replaced the UDP based TNL/TGE interface with my own TCP.

------------------
Unless the LORD builds the house, they labor in vain who build it; unless the LORD keeps the city, the watchman stays awake in vain. - Psalms 127:1


And the work of righteousness shall be peace; and the effect of righteousness quietness and assurance for ever. - Isa 32:17