Pre-purchase inquiry...
by Diederik · in Torque 3D Beginner · 03/22/2010 (11:47 am) · 15 replies
Hello there!
I have been running / developing a fairly successful server for the great and -alas- slowly dying game called Neverwinter Nights. The game and toolset are fabulous, but stuff made for a time where DirectX 7.x and WinXP were new and fancy isn't going to last forever. Support from nVidia is especially getting flaky over the last years, so it's time to move on.
Anyway, what I want to make is a game that allows up to 100 people to play on a server. No fancy MMORPG stuff needed, we are small enough to deal with cheaters and issues on a one-by-one basis and we're not going commercial either. What I do like, based on the experiences of managing both a server and a community for over 5 years, is a very tight web-database-server-client integration. The more functionality I can make directly accessible from a web form by the staff the better because it means I don't have to update the game for every little gameplay tweak or gamesmaster request.
So, my idea was to define those trusty RPG elements like abilities, damage types, level progression, etc, etc, in a database and just code up very basic events and actions in the engine, and a way to read out and cache the database when the server starts. In the end RPG gameplay is a pretty trivial affair if you think of it. It's always a variation on "Action X is successful if Stat N + Random > Difficulty". It shouldn't be too hard to make a few templates that cover most of the actions.
Q1: Is this idea possible? I can imagine that there may be some very basic no-go-whatsoever obstacles that I don't know of because I simply do not know Torque very well.
I want a world with many different areas, both inside and outside. Players should be able to travel through those areas in groups. I don't want instancing, people should encounter each other if they are running around in the same place.
Q2: Is that possible in Torque?
I want to make the areas themselves pretty sparse. Basically the natural environment with spots where you can place buildings etc. The actual props I'd like to place by scripts from locations and asset references stored the database. The idea behind it is that stuff can be taken away or added from the website, eliminating a lot of micromanaging (and forced updates).
Q3: Is adding/removing models by script an option? This includes buildings, interactive objects, NPCs, and perhaps lighting and effects.
About updating the game... The client needs the areas and models, and I rather not have a huge binary file that needs to be redownloaded whenever I want to squash some bug or add a new flower.
Q4: What is the file structure of Torque and is there a way (preferably already established) to update changed assets individually once a client has been installed?
I realise the above sounds awfully ambitious for a Torque n00b. Don't worry, I think in the long run and will start with a few areas, the simplest gameplay, and slowly expand from that. I guess I got one thing that helps me a lot: I know what I have now, I know what I want to end up with, and I got lots of people to test it.
Thanks for any replies and don't hesitate to come up with answers to questions I didn't even ask. The post started to become a bit long so I stopped adding to it.
I have been running / developing a fairly successful server for the great and -alas- slowly dying game called Neverwinter Nights. The game and toolset are fabulous, but stuff made for a time where DirectX 7.x and WinXP were new and fancy isn't going to last forever. Support from nVidia is especially getting flaky over the last years, so it's time to move on.
Anyway, what I want to make is a game that allows up to 100 people to play on a server. No fancy MMORPG stuff needed, we are small enough to deal with cheaters and issues on a one-by-one basis and we're not going commercial either. What I do like, based on the experiences of managing both a server and a community for over 5 years, is a very tight web-database-server-client integration. The more functionality I can make directly accessible from a web form by the staff the better because it means I don't have to update the game for every little gameplay tweak or gamesmaster request.
So, my idea was to define those trusty RPG elements like abilities, damage types, level progression, etc, etc, in a database and just code up very basic events and actions in the engine, and a way to read out and cache the database when the server starts. In the end RPG gameplay is a pretty trivial affair if you think of it. It's always a variation on "Action X is successful if Stat N + Random > Difficulty". It shouldn't be too hard to make a few templates that cover most of the actions.
Q1: Is this idea possible? I can imagine that there may be some very basic no-go-whatsoever obstacles that I don't know of because I simply do not know Torque very well.
I want a world with many different areas, both inside and outside. Players should be able to travel through those areas in groups. I don't want instancing, people should encounter each other if they are running around in the same place.
Q2: Is that possible in Torque?
I want to make the areas themselves pretty sparse. Basically the natural environment with spots where you can place buildings etc. The actual props I'd like to place by scripts from locations and asset references stored the database. The idea behind it is that stuff can be taken away or added from the website, eliminating a lot of micromanaging (and forced updates).
Q3: Is adding/removing models by script an option? This includes buildings, interactive objects, NPCs, and perhaps lighting and effects.
About updating the game... The client needs the areas and models, and I rather not have a huge binary file that needs to be redownloaded whenever I want to squash some bug or add a new flower.
Q4: What is the file structure of Torque and is there a way (preferably already established) to update changed assets individually once a client has been installed?
I realise the above sounds awfully ambitious for a Torque n00b. Don't worry, I think in the long run and will start with a few areas, the simplest gameplay, and slowly expand from that. I guess I got one thing that helps me a lot: I know what I have now, I know what I want to end up with, and I got lots of people to test it.
Thanks for any replies and don't hesitate to come up with answers to questions I didn't even ask. The post started to become a bit long so I stopped adding to it.
#2
Database is really a separate question - you either write direct server access into the engine and make it invisibly happen behind the scenes when certain functions are used (implying you're also writing custom script functions which hide the complexity of the DB), or you use a combination of a webserver with scripts to access the DB and the HttpObject in TorqueScript.
Short answer: Yes.
Q2: Non-instanced levels (missions is the old term) are the default.
Q3: Not really qualified to answer, but this is the Internet! Yeah, you can manipulate objects. I think I've seen ways to do this (and failing to find one, you could always look for a resource).
Q4: The file structure is like a tree in full bloom. That is, there is a structure, a hierarchy and a whole lot of files. But you could replace data as needed. It will get hairy on systems where UAC blocks you (you will probably need some blessing magic if installed in a standard location), but on OS X the lovely Sparkle allows you to do partial updates of an app bundle. There shouldn't be any hard locks in the way to replace files while running, as the editor also supports live updating of assets (replace texture, watch the world automatically detecting it).
03/22/2010 (1:09 pm)
Q1: The stat resolution thing is a very basic thing. You could do it in script or build functions in the source and expose as easier to use script calls (resolveAttack() function or whatever).Database is really a separate question - you either write direct server access into the engine and make it invisibly happen behind the scenes when certain functions are used (implying you're also writing custom script functions which hide the complexity of the DB), or you use a combination of a webserver with scripts to access the DB and the HttpObject in TorqueScript.
Short answer: Yes.
Q2: Non-instanced levels (missions is the old term) are the default.
Q3: Not really qualified to answer, but this is the Internet! Yeah, you can manipulate objects. I think I've seen ways to do this (and failing to find one, you could always look for a resource).
Q4: The file structure is like a tree in full bloom. That is, there is a structure, a hierarchy and a whole lot of files. But you could replace data as needed. It will get hairy on systems where UAC blocks you (you will probably need some blessing magic if installed in a standard location), but on OS X the lovely Sparkle allows you to do partial updates of an app bundle. There shouldn't be any hard locks in the way to replace files while running, as the editor also supports live updating of assets (replace texture, watch the world automatically detecting it).
#3
Re Q3+4:
There's file download support in Torque's networking code to allow the client to download missing files from the server. I've never used it myself so I can't really say much about it. I *think* it is currently borked as it depends on the old resource manager. If so, probably would not take much to get it up and running again.
03/22/2010 (1:16 pm)
Re Q3+4:
There's file download support in Torque's networking code to allow the client to download missing files from the server. I've never used it myself so I can't really say much about it. I *think* it is currently borked as it depends on the old resource manager. If so, probably would not take much to get it up and running again.
#4
however if you do use it you may want it to redirect the downloads instead of allowing it to download directly from the game server and cause possible lag
03/22/2010 (1:18 pm)
Quote:here's file download support in Torque's networking code to allow the client to download missing files from the server. I've never used it myself so I can't really say much about it. I *think* it is currently borked as it depends on the old resource manager. If so, probably would not take much to get it up and running again.
however if you do use it you may want it to redirect the downloads instead of allowing it to download directly from the game server and cause possible lag
#5
03/22/2010 (3:07 pm)
The server should present a list of files, enough details to determine whether you need to download them, and URLs to get them from. Then it's plain (or secure) HTTP download to get them.
#6
What I mean with "no instancing" is that I want only one version of each area which contains all players visiting it (I don't think it makes any sense for a multiplayer server not to meet your fellow players).
Thanks for all the answers so far!
03/22/2010 (4:04 pm)
Quote:I am asking about the opposite. Many small 'levels' that can be used by players at the same time. Say that I have 6 players and three areas/levels that this should be possible to happen: players A-C are exploring Area 1, players D and E are having a cup of tea in Area 2, and player F is busy with a merchant in Area 3.
Q2. Im not sure if i understand what you are asking, but yes you can have a whole world one large terrain, this may require quite a bit network optimization the book on networking is a great reference for that and you will have your work cut out for you on rendering optimization, Zones and portals will be your best friend
What I mean with "no instancing" is that I want only one version of each area which contains all players visiting it (I don't think it makes any sense for a multiplayer server not to meet your fellow players).
Thanks for all the answers so far!
#7
03/23/2010 (3:58 am)
Hate to be bugging you, but could somebody give an answer to Q2? Ie: can the Torque3D server keep multiple levels/areas in memory and allow simultaneous use by various players? If yes, is there some data loading and purging system when an area is empty to keep a sensible memory footprint?
#8
03/23/2010 (6:06 am)
Torque can do anything. Almost! It's what you (or your team) can do with its source and scripts that sets the limits. :)
#9
However, if you keep a single large terrain as your world and you use the NWNesque method of micing to interior areas then you can populate the map with a very large amount of caves/dungeons/houses etc.
I'm sure there are limitations somewhete to the amount of objects etc etc that a single map can contain, but ive not seen them published anywhere.
But as a direct answer to Q2 torque doenst do it quite the same way as NWN, but in real terms i'm not sure its an issue as far as resource management is concerned (Disclaimer, i'm not a hardware or networking expert and i'm sure somebody will correct any errors)
03/23/2010 (7:59 am)
As far as i know torque requires you to keep a dedicated server running for each 'map' which is a terrain and its associated bits.However, if you keep a single large terrain as your world and you use the NWNesque method of micing to interior areas then you can populate the map with a very large amount of caves/dungeons/houses etc.
I'm sure there are limitations somewhete to the amount of objects etc etc that a single map can contain, but ive not seen them published anywhere.
But as a direct answer to Q2 torque doenst do it quite the same way as NWN, but in real terms i'm not sure its an issue as far as resource management is concerned (Disclaimer, i'm not a hardware or networking expert and i'm sure somebody will correct any errors)
#10
03/23/2010 (8:17 am)
So interior areas are somehow treated as something else than a terrain? Trying to get my brain around this... we now got a world consisting of about 300 exterior and 300 interior areas so I need to move mental concepts in and out of comfortable boxes. I guess it could work with a few big areas, although it makes changes a bit less trivial.
#11
03/23/2010 (9:38 am)
what bloodknight is referring to is you would build everything into one large level, then use zoning and portaling to break up the rendering such that every client isnt requiring the server to draw the entire world every moment, instead the client is requesting the world to only render or draw what is in there immediate vicinity which will help out with performance. depending on how many datablocks you need it is entirely possible to run out of them for very large worlds, you could also set up each "map"/World space on a different server, it would require loading time between entry and exit but that is another way to do what you are looking for if you run into issues with too any data blocks or performance issues.
#12
I have been looking around in the demo version and I saw that you can put multiple terrain blocks into one mission. Let's assume I got a small world with 3 'regions': a mountain, a forest, and a city.
Q5: I assume I can make a terrain block for each region and make them 'unescapable', so you can only go from city to forest by a portal?
Q6: If I make a change to the city will I only have to update that terrain block on the client, or the whole level?
The current setup is that I am not doing everything (thank god!). Designers add or change new areas, and even regular players can add small interior areas when needed etc.
Q7: Could somebody with the demo version make a terrain block and export it in such a way that I can add the files to the main module?
This interiors/exterior thing isn't completely clear to me. Assume this scenario: in the city terrain block I got houses (duh) and an Inn. I want to let players meet in the Inn.
Q8: Do I need to build such an interior area in the big mission screen with the terrain blocks or do you create these as models that you access in some other way (and so yes, what way?).
I get the feeling that Torque could do something like Guild Wars, a game that I admire for it's straightforward cheapness. You basically got a big outside area which is divided by natural obstructions and uses the portal system mentioned above. I didn't play it for very long but in the first two acts I didn't see any interior area. It has no interactive objects in the terrain whatsoever (no chairs you can sit on, no doors you can open, etc), reuses the same few models over and over again, offers very basic character customisation, and the terrain resolution is ... well, not very high (in fact, the scenes in act 2 look like they were randomly generated and adapted in a few hours).
It's a good basic setup, but for a more RP oriented game you need stuff that goes beyond the "kill, loot, sell" routine.
Q9: Do you have the feeling that Torque is the best option for this in its league? I looked at ShiVa and Unity, but their network options don't look very promising. DX Studio I tried a year ago, didn't fancy it too much, but it may have improved. UDK may be an option, but its art pipeline is so tied to 3ds Max that ... well, I can't possibly tell somebody to spent that amount of money. Anyway, I realise this is the question to rule them all, hehe.
03/24/2010 (1:15 am)
Alright, thanks for comments so far. Here's more of that.I have been looking around in the demo version and I saw that you can put multiple terrain blocks into one mission. Let's assume I got a small world with 3 'regions': a mountain, a forest, and a city.
Q5: I assume I can make a terrain block for each region and make them 'unescapable', so you can only go from city to forest by a portal?
Q6: If I make a change to the city will I only have to update that terrain block on the client, or the whole level?
The current setup is that I am not doing everything (thank god!). Designers add or change new areas, and even regular players can add small interior areas when needed etc.
Q7: Could somebody with the demo version make a terrain block and export it in such a way that I can add the files to the main module?
This interiors/exterior thing isn't completely clear to me. Assume this scenario: in the city terrain block I got houses (duh) and an Inn. I want to let players meet in the Inn.
Q8: Do I need to build such an interior area in the big mission screen with the terrain blocks or do you create these as models that you access in some other way (and so yes, what way?).
I get the feeling that Torque could do something like Guild Wars, a game that I admire for it's straightforward cheapness. You basically got a big outside area which is divided by natural obstructions and uses the portal system mentioned above. I didn't play it for very long but in the first two acts I didn't see any interior area. It has no interactive objects in the terrain whatsoever (no chairs you can sit on, no doors you can open, etc), reuses the same few models over and over again, offers very basic character customisation, and the terrain resolution is ... well, not very high (in fact, the scenes in act 2 look like they were randomly generated and adapted in a few hours).
It's a good basic setup, but for a more RP oriented game you need stuff that goes beyond the "kill, loot, sell" routine.
Q9: Do you have the feeling that Torque is the best option for this in its league? I looked at ShiVa and Unity, but their network options don't look very promising. DX Studio I tried a year ago, didn't fancy it too much, but it may have improved. UDK may be an option, but its art pipeline is so tied to 3ds Max that ... well, I can't possibly tell somebody to spent that amount of money. Anyway, I realise this is the question to rule them all, hehe.
#13
Q6: Pass.
Q7: I think the only limitation of the trial is how many objects can exist at the same time. Loading and saving is otherwise normal. But after 32 objects, you can't place anymore.
Q8: Interiors and exteriors can have terrains - both are just maps. The only difference is appearance - no sky on the inside and more trees on the outside, usually :)
(Druid homes excepted, for the softcore druids who prefer a ceiling!)
You would place models in the mission editor, but for placement of sealed rooms and corridors you can get away with not placing any actual terrain.
Q9: Yes, the networking in Torque is among the best (or so I keep reading - I haven't had a chance to verify that :). It should be a good fit for an SSORPG. Torque networking derives from Tribes, which works really well on dial-up with many players.
BUT for a project like yours you are going to need some custom networking too. The main game subsystem can handle all player actions and interaction, even chat, but you might want to modify it so that chat servers are separate (world servers go boom all the time in games ;). Maybe also some custom bits to handle the realtime downloading of changed data when entering new regions, and also the code to define what passes for a region in your game.
Any engine you pick will require some modifications.
03/24/2010 (6:27 am)
Q5: Should be possible, either by scripting or impassable objects. Not too sure what other ways of limiting walkable areas there are.Q6: Pass.
Q7: I think the only limitation of the trial is how many objects can exist at the same time. Loading and saving is otherwise normal. But after 32 objects, you can't place anymore.
Q8: Interiors and exteriors can have terrains - both are just maps. The only difference is appearance - no sky on the inside and more trees on the outside, usually :)
(Druid homes excepted, for the softcore druids who prefer a ceiling!)
You would place models in the mission editor, but for placement of sealed rooms and corridors you can get away with not placing any actual terrain.
Q9: Yes, the networking in Torque is among the best (or so I keep reading - I haven't had a chance to verify that :). It should be a good fit for an SSORPG. Torque networking derives from Tribes, which works really well on dial-up with many players.
BUT for a project like yours you are going to need some custom networking too. The main game subsystem can handle all player actions and interaction, even chat, but you might want to modify it so that chat servers are separate (world servers go boom all the time in games ;). Maybe also some custom bits to handle the realtime downloading of changed data when entering new regions, and also the code to define what passes for a region in your game.
Any engine you pick will require some modifications.
#14
03/24/2010 (6:31 am)
Excuse me, but what's an SSORPG?
#15
(SSO yay, MMO nay goes the mantra in my house!)
03/24/2010 (7:16 am)
Small Scale Online Role-Playing Game :)(SSO yay, MMO nay goes the mantra in my house!)
Torque Owner Ken Johnston
Indiestructable Systems
Q2. Im not sure if i understand what you are asking, but yes you can have a whole world one large terrain, this may require quite a bit network optimization the book on networking is a great reference for that and you will have your work cut out for you on rendering optimization, Zones and portals will be your best friend
Q3. I am sure this is possible, others with more knowledge on how to do it would be the people to ask. so maybe one of them might chime in
Q4. You can easily patch the game as any other game does, you wouldn't need to download the whole deal time and time again. you would just need to implement your own patching system and have to explore what you can and cannot change.