View Full Version : (MMOSRPG) 2 Years in concepting looking for advice on actual implementation
Mephs
07-24-2008, 11:35 AM
I already hear the groaning at the use of the word "MMO" in the topic, I'll make this as brief as possible.
I've been in a planning/design stage for the last 2 years, mostly with free time and as a hobby, and reading as many articles about the industry as I can. I have a pretty decent understanding that I'm lighting the fuse to my own human cannon pointed directly at a brick wall. I do have about intermediate experience with a few OO languages, such as Java and C#, with a bit of delving into C++ and vague scratching-of-the-surface when it comes to memory management.
The plan is an MMOSRPG, which I think simplifies some aspects of the development process. Namely, an online tactical RPG that plays much like some old classic tacticals, i.e. Final Fantasy Tactics, Ogre Battle, etc. Just for reference sake, since typically an MMO is free-range in 360 degrees, real-time, etc.
Anyway moving on to the questions:
Graphics: I've messed around with a few engines and I think I'm going with (M)OGRE [MOGRE is the C#/.NET wrapper for OGRE, of course] as my graphics engine. Given a 2d (sprites) / 3d landscapes graphical structure, do you think this would be adequate, and using C# no less? Would it be overkill, or just fine given OGRE's beautiful integration and capabilities?
Language: C# mainly for the client, I'm thinking, anyone really have a solid conclusion that C# in today's 2039582035GB computing world is acceptable for such a project?
Networking: Here is where the cannon fires and I plunge headfirst into the wall. I really do not have any real experience programming server-client relationships, though I do have a basic understanding of networking in general (packets, TCP, UDP). How difficult will it be to break into writing just a simple server-client, and eventually graduating to a level that I can implement for the purpose of a larger scale game?
Networking 2: Given the nature of the game (turn-based combat), would this greatly simplify the workload of the server, and on writing the server's code? Or would it still be about as intense a project as I'm lead on to believe? :)
(Also note that for things like writing server/client and all that I am very patient and willing to learn from the ground up if necessary)
Networking 3: I hate to ask this but, is it absolutely necessary I do the server code in C++? Some people swear by it and already have the garlic and crosses out when I mention C#, I bet, or is it acceptably capable of doing what I need done? Also, what kind of libraries for networking type stuff would you suggest for the final product? For learning? I keep hearing about IOCP but I'm not finding many resources relating it to C# or .NET in particular.
Database: I am pretty fluent with SQL and managing databases, I was just curious if there is any caveat to using say, MySQL vs. MSSQL Server vs. Oracle, etc. If anyone knows of course.
That's about all I can think of that I'm not 100% on just yet. Again, this is a 2 year in-design project that I'm really just now starting to actually work on writing the code for, starting with the client side and an offline workable graphics demo =). Any and all help/suggestions is greatly appreciated. I'm not going to tout things I can't show for yet, so I'm not about to go into any more detail about the project, or try to hype it until I have something that's actually functional :P
Lastly, and this is optional and more of a Marketting question: If you ever did play games like FFT, Disgaea, OB and all those, would you play an online based game in the same style?
Mattias Gustavsson
07-24-2008, 12:16 PM
I'd rule out C# for the client, as so many people have trouble getting .NET stuff to run.
What does the S stand for btw?
Obviously, MSSQL Server and Oracle are in a different league than MySQL. I wouldn't feel comfortable making a Massive multiplayer game using MySQL, but for a non-massive one, it would be ideal.
One thing I can say though: You're not in a position to make an MMO yet. You need to at least make a simpler multiplayer game first, to get a feel of what's involved in network games. It is usually an eye-opener for people, especielly the bit about how much your game design needs to be adapted to work in a networked environment...
I don't know how helpful any advice would be, when you say so little about your game.. .But I'd say that no matter how determined you are, the chance of you pulling off a massive multiplayer game is close to nil. So I think you should ask yourself: do you really need thousands of simultaneous players, or would it be enough with just dozens (as in, just a multiplayer game)?
Mephs
07-24-2008, 12:29 PM
I don't know how helpful any advice would be, when you say so little about your game.. .But I'd say that no matter how determined you are, the chance of you pulling off a massive multiplayer game is close to nil. So I think you should ask yourself: do you really need thousands of simultaneous players, or would it be enough with just dozens (as in, just a multiplayer game)?
The S stands for Strategy.
In all honesty I think aiming for just getting a game that can use a network protocol would be a better start, like you said. Think getting maybe 3-4 players connected at a time would be a reasonable starting goal and working from there? At this time I'm not 100% sure I want it to end up as massive, maybe more like an offline game with transferrable characters to lobby-style Multiplayer (though this leaves way too much possibility to "hacked" characters from the client side, doesn't it?) but it would be something to gauge and assess as I work more on the project, I suppose.
The C# thing seems to get tossed around a lot though. Some say it's great for development some will write 50 page essays about what C++ does better. I'm mainly looking to cut down on actual production time if possible, while walking away with as much performance as possible. Where I could probably learn C++ inside and out given about 3 years, by then I think we'll be driving flying cars and using way more advanced things.
Mattias Gustavsson
07-24-2008, 12:40 PM
I'd say a multiplayer style lobby system with 3-4 simultaneous players sounds like a great ide :yes:
C# is a nicer language than C++, by far (some will claim that it's not, but they're probably just being irrational :D)
But when it comes to releasing stuff done using C#, it's not very nice. Your players need to download and install the .NET runtime, and I've heard lots of people struggling to get that to work properly. Better to use something like Java then...
Mephs
07-24-2008, 01:06 PM
I'd say a multiplayer style lobby system with 3-4 simultaneous players sounds like a great ide :yes:
C# is a nicer language than C++, by far (some will claim that it's not, but they're probably just being irrational :D)
But when it comes to releasing stuff done using C#, it's not very nice. Your players need to download and install the .NET runtime, and I've heard lots of people struggling to get that to work properly. Better to use something like Java then...
On the topic of .NET runtime, that's both a concern but I'm not sure. A lot of people use Vista which comes with the runtime packaged in, doesn't it? I can see it becoming an issue from an end user standpoint and for people still using XP that doesn't come with it part of the OS, but also I've rarely heard of .NET being excessively cumbersome to deal with.
When talking Java the only thing I dislike about it is lack of an open source graphics library to the scale of something like OGRE that exists. I believe there is a Java port of it, or a wrapper or something but it's not publically available AFAIK. Also wouldn't it be less likely people will have the Java runtime over .NET?
Mattias Gustavsson
07-24-2008, 01:10 PM
Well, if you're planning on using something like OGRE, you're going to have to learn C++ anyway :S
I don't know if Java runtime is more or less widespread than .NET, but I've rarely heard people struggle to install it.
But if you're not too worried about compatibility, go ahead with C# if that's what you feel comfortable with. Sometimes productivity wins over compatibility.
Mephs
07-24-2008, 01:18 PM
Well, if you're planning on using something like OGRE, you're going to have to learn C++ anyway :S
MOGRE actually, C# wrapper. Works pretty nice so far.
Which brings me back to my biggest question: What would be a solid library to use for a first time network programmer? :S, I hear a lot about IOCP, is this learnable from the ground up for someone that knows a little bit about packets and TCP/UDP?
Mattias Gustavsson
07-24-2008, 01:27 PM
MOGRE actually, C# wrapper. Works pretty nice so far.
Wrappers are all well and good, if you're just playing around or prototyping. But to finish off a game to a level where it's good enough to sell (or get a large user base if it's a freeware title) you'll be modifying the engine and you will need in-depth knowledge of its inner working. That is regardless of what engine you use.
Which brings me back to my biggest question: What would be a solid library to use for a first time network programmer? :S, I hear a lot about IOCP, is this learnable from the ground up for someone that knows a little bit about packets and TCP/UDP?
The actual transfer of data is the easy bit. You can get raw sockets working in a couple of days (but I guess there's libraries which wraps it up nicely). The tricky bit is to get your game to work over the network, and that's very much dependant on your game, its design, and what you need the overall player experience to be. There's no clear answer here; it's usually based on the developers experience, and there's not much a library could do to help...
Mephs
07-24-2008, 02:18 PM
The actual transfer of data is the easy bit. You can get raw sockets working in a couple of days (but I guess there's libraries which wraps it up nicely). The tricky bit is to get your game to work over the network, and that's very much dependant on your game, its design, and what you need the overall player experience to be. There's no clear answer here; it's usually based on the developers experience, and there's not much a library could do to help...
As you said earlier given the nature (turn-based) I'm imagining this would greatly simplify the server code, as it only really needs to accept some basic signals
Client 1->Sends Command [Player moved Unit A to 32,35]
->Server [Update Unit A's X,Y position in memory]->[Notify Client 2 of the position change]
->Client 2 [Updates Unit A's position on Screen]
Client 1->Sends Command [Unit A is performing Action("Attack") on Unit B]
->Server [Calculates the result and updates Unit B's status in memory]
->Client 1 [Receives a relay from server that the command was OK and is sent the damage or calcs from the server, plays animation]
->Client 2 [Plays an animation of Unit A attacking Unit B and updating it's status]
Things like damage calculation would have to use attributes taken from the SQL Database on the server side to prevent "cheating" from the clients of course, some security things like buffer overflow checks I'm aware of and already kind of put into the "plan", making sure everything checks as synched (to prevent players from attacking far beyond the unit's range, and all that).
Something like that sound about right, at the most basic level?
I think after poking about for a bit TCP would be fine, if it comes down to it in the long run though, if there's multiple "instances" of these kinds of battles going on would I want to use asynchronous and non-blocking...or that kind of thing? (Sorry, not very clear on the terms, just the concepts :D)
stodge
07-24-2008, 05:41 PM
Sun's Darkstar and Java Monkey Engine?
Mattias Gustavsson
07-24-2008, 11:50 PM
I'd say you could probably have the server-side in php, and send HTTP requests from your client. That'd make it a bit easier I think.
Zvejkus
07-26-2008, 06:56 AM
Hello Mephs,
I also would like to try to answer your questions about programming of your MMO game. As advanced proffessional programmer and also experienced player of MMOs(L2, WoW, Ragnarok, Age of Conan, Ultima Online etc...), I think I can answer some of the questions.
Language: Well, I think it is possible to make MMO using C#, some of advanced game engines like Ogre3D have C# trunk or at least port to C#. But to say truth, I would rather use C++ language. First point is, that it is a bit faster than C#. Second is that C# is just Microsoft's derivation of C++, so it means, you cannot port the game to other OS like MacOS, Linux/Unix ... and you cannot use as much functions like with C++. Third you do not need any other additional packages for programming or executing(.Net framework), sure except OpenGL or DirectX SDK, network libraries etc. There could be lot of other reasons why to use C++ instead of C#, but it always depends on the way, how you want to make the game.
Database: Choice of database always depends on the data load and transfer rate. MySQL is database mostly for small or medium data load. It is easy to install and maintenance, thats why its so popular for amateurs, web creators and beginning programmers. But I think, it would not be very good choice for MMOs, where there are transfers of huge amount of datas, multiple tasks and transactions at the same time etc. I would use Oracle or Sybase database, MSSQL is not very good at all and also not supported on other operation systems(most of worldwide MMO game servers are using Unix system, not Windows). It also depends on the amount of money, you want to spend on your project. When do you want some freeware database, then you can use in example PostgreSQL, which is a bit more advanced than MySQL.
Mephs
07-28-2008, 01:03 PM
Hello Mephs,
I also would like to try to answer your questions about programming of your MMO game. As advanced proffessional programmer and also experienced player of MMOs(L2, WoW, Ragnarok, Age of Conan, Ultima Online etc...), I think I can answer some of the questions.
Language: Well, I think it is possible to make MMO using C#, some of advanced game engines like Ogre3D have C# trunk or at least port to C#. But to say truth, I would rather use C++ language. First point is, that it is a bit faster than C#. Second is that C# is just Microsoft's derivation of C++, so it means, you cannot port the game to other OS like MacOS, Linux/Unix ... and you cannot use as much functions like with C++. Third you do not need any other additional packages for programming or executing(.Net framework), sure except OpenGL or DirectX SDK, network libraries etc. There could be lot of other reasons why to use C++ instead of C#, but it always depends on the way, how you want to make the game.
Database: Choice of database always depends on the data load and transfer rate. MySQL is database mostly for small or medium data load. It is easy to install and maintenance, thats why its so popular for amateurs, web creators and beginning programmers. But I think, it would not be very good choice for MMOs, where there are transfers of huge amount of datas, multiple tasks and transactions at the same time etc. I would use Oracle or Sybase database, MSSQL is not very good at all and also not supported on other operation systems(most of worldwide MMO game servers are using Unix system, not Windows). It also depends on the amount of money, you want to spend on your project. When do you want some freeware database, then you can use in example PostgreSQL, which is a bit more advanced than MySQL.
Funny you mention PostgreSQL, I was JUST looking up information on it when I saw your response about 30 minutes later.
ATM I'm really just designing the offline components, namely the rendering and all that. Here's a brief camera/sprite facing demo, was mostly just getting my feet wet with MOGRE and integrating Managed DirectX components in C#
http://www.sjfweb.net/Iso2.avi
http://www.sjfweb.net/iso2.jpg
onyxthedog
07-28-2008, 07:27 PM
Reminds me of Radu Privantu, you might want to contact him. He is the creator of Eternal Lands (http://www.eternal-lands), an indie, free MMORPG. His client is open-source, but for obvious reasons the server is closed source.
Your expectations are very reasonable, and you seem to have a good footing
best of luck,
onyx
Zvejkus
07-29-2008, 10:21 PM
Funny you mention PostgreSQL, I was JUST looking up information on it when I saw your response about 30 minutes later.
ATM I'm really just designing the offline components, namely the rendering and all that. Here's a brief camera/sprite facing demo, was mostly just getting my feet wet with MOGRE and integrating Managed DirectX components in C#
Well I was working in Postgre on some smaller projects, so I can say it is not bad database system, just I think it is slower than Oracle and Sybase when using big amounts of data.
To your avi, it is very good for beginning.
When I saw that video, my first idea was, that you should think out how do you will solve the area transferring. Some of games like ragnarok use small areas with ports on sides and level based dungeons. Modern MMOs like Age of Conan or World of Warcraft use limitless terrain using some kind of paged geometry and ports are use only when you enter dungeons, houses, travel to islands etc.
Ogre framework itself is pretty advanced and complex engine with lot of add-ons, so you chose very good. I didnt tryed MOGRE, just the regular C++ one, so I cannot say the quality of the MOGRE, but I think the community is quite big, so you will be comfortable with that.
Mattias Gustavsson
07-30-2008, 01:12 AM
Ogre framework itself is pretty advanced and complex engine with lot of add-ons, so you chose very good.
One thing that concerns me about OGRE is that it's difficult to find finished commercial games done with it. Anyone know of a game which is done in OGRE and is out for sale? That would be cool to hear about.
Zvejkus
07-30-2008, 06:35 AM
One thing that concerns me about OGRE is that it's difficult to find finished commercial games done with it. Anyone know of a game which is done in OGRE and is out for sale? That would be cool to hear about.
Well, when I was shopping, I saw Ankh in example. It is animated adventure game situated in Egypt. If I remember, authors used something like 2D/3D combination. But there is one fact, I am sure of, it was made using Ogre. You can also see this game in Ogre's gallery -> Featured projects.
Well as I said before, it all depends on how much money the person or team wants to spend on the project. Sure most of current successfull games does not use Ogre, Blender or in example Torque(commercial engine), they use Unreal engine 2.5-3, Gamebryo or other commercial hi-end engine + Speedtree for nature and foliage. But they are very expensive for most people, their price is about $100k-500k. So if you do not want to spend money till you are sure how your game will look like, what features will you implement etc. or out of money, i recommend you the Ogre, it is the best freeware engine. Or you can buy in example Torque or TV3D, both look not very bad, there is some support and the price is about $200-300.
Mattias Gustavsson
07-30-2008, 07:06 AM
Ankh is the single example of commercial game I've seen (have come across it before) but surely there must be more? Or is OGRE a poor choice for commercial titles? There's a whole bunch of commercial games done with Torque for example... which, to me, makes that one a proven engine, while OGRE seems more like a hobbyists engine...
Mephs
07-30-2008, 12:20 PM
Ankh is the single example of commercial game I've seen (have come across it before) but surely there must be more? Or is OGRE a poor choice for commercial titles? There's a whole bunch of commercial games done with Torque for example... which, to me, makes that one a proven engine, while OGRE seems more like a hobbyists engine...
You probably won't see large commercial titles using Ogre because there -are- better engines, and in today's cutting-edge world usually only the best will do. The ones that are revered usually have people who write the engine from scratch too.
That being said, OGRE is an incredible engine, for the price (FREE!), so if you're just a hobbyist game developer then it's got the power to produce a commercial quality product, but as said, there's way more powerful engines that do a lot of the work for you, whereas OGRE requires a bit of mumbling around in it to get the same results. And to a large commercial game company what's a few hundred thousands for top notch quality in a competitive industry? :)
Anyway OGRE can do some amazing things (if you've ever seen the PagedGeometry demo, this is a good example of just what it can do), rendering thousands upon thousands of trees, foilage elements, etc and still running at 3 digit FPS consistently is pretty hot. I've seen quite a few amazing looking projects in there myself.
When I saw that video, my first idea was, that you should think out how do you will solve the area transferring. Some of games like ragnarok use small areas with ports on sides and level based dungeons. Modern MMOs like Age of Conan or World of Warcraft use limitless terrain using some kind of paged geometry and ports are use only when you enter dungeons, houses, travel to islands etc.
Travel would be very static, I'm not sure how to handle it just yet, maybe make a distinguishing factor between "Traversable" maps and "Combat" maps which use the tile layout:
Here's some new stuff I'm working on in the actual game engine:
http://www.sjfweb.net/new2.jpg
http://www.sjfweb.net/new5.jpg
Basically takes any 3d map you want and maps a tile system to it for obvious purposes later down the line. That includes calculating height of each tile for use in things like combat (height advantages), It's not fully implemented but I just wanted to put out a tech demo: http://www.sjfweb.net/Iso3.avi shows the tile selection and path calculation from a selected tile. I think next I'm going to see if I can get the Pathfinding algorithm that figures out movement through certain terrain types, and around other objects. Determining whether a unit can move to a tile (too high, it's untraversible terrain, like quicksand, etc).
It's taking a while mainly because I'm still getting my feet wet and haven't really written code for about 5 years (since college) so I'm slowly getting faster at it. Would like to put out a full working tech demo (playable game) before I start looking for other people like artists or other programmers.
Mattias Gustavsson
07-30-2008, 12:58 PM
You probably won't see large commercial titles using Ogre
Oh, I was just referring to small commercial titles, as in smaller indie games. There doesn't seem to be many of them using OGRE, while there's a bunch of them using Torque. Which makes me wonder if OGRE is up to the job?
It's a huge difference between getting a playable version running and finishing something to a sellable level...
Mephs
07-30-2008, 01:10 PM
Oh, I was just referring to small commercial titles, as in smaller indie games. There doesn't seem to be many of them using OGRE, while there's a bunch of them using Torque. Which makes me wonder if OGRE is up to the job?
It's a huge difference between getting a playable version running and finishing something to a sellable level...
It might be because XNA is specifically tailored to create XBox/Windows compatible titles (I think?) and it does a lot more than OGRE in one large package. OGRE is just graphics, nothing else. No sound, physics, input, etc.
It looks like Torque just drops the user into an XNA environment and gives them the tools to develop right away. OGRE is certainly up to the job, though. It's just like creating any other game, I mean. OGRE just provides a free graphics library, and it's not easy to just sit down and master overnight I guess. I don't track indie titles very closely so I wouldn't be able to tell you.
I don't see why OGRE wouldn't be able to produce a commercial product of high quality, given you'd just have to use other things to get the rest of it working as it just provides the graphics.
Can you name each ant in an anthill? :)
Mattias Gustavsson
07-31-2008, 12:42 AM
It's just that it is a big difference between starting a project and finishing it. The real hard work doesn't start until you're almost done with the game. When you get to the finishing off, polishing, compatibility and bug testing part. That's when you need to understand and make use of all the under-the-hood details of whatever engine you're using.
OGRE might well be up to the job, I don't know. I'm just trying to look for evidence, and can't seem to find much. I'm not trying to knock OGRE, I'm just asking those who promote it to point me to some finished titles that are out for sale, and so far I've seen one (and it seems a good one, so that bodes well) and one only.
This makes me suspect that most people using OGRE either give up or switch engines when they come to finishing things off. It might not be that way, but it makes me suspect it.
Torque (TGE) is C++/OpenGL isn't it? Not XNA? Don't know, as I haven't used it. But I know there's several games (some quite successful) done with Torque and available for Windows, Mac and Linux. Does that make Torque a better choice? I don't know. But at least it has proven its capability to be used for finishing games, not just starting them...
I'd like to stress that I don't have an agenda here, I'm neither for or against either Torque or OGRE (or other engines). I just want to point out the importance of looking at the portfolio of finished commercial games when choosing your engine.
If you don't, chances are that you'll work on it for months (making good progress) just to hit a brick wall that you can't see how you'll get through. And that really sucks...
Mephs
07-31-2008, 06:54 AM
All good points. Hey if one game can/has done it isn't that a good sign? :P
Also don't forget that there's probably a million people using Torque that don't produce a game ever either, a lot of indie are just like you or me, solo hobbyists.
onyxthedog
07-31-2008, 10:02 AM
All good points. Hey if one game can/has done it isn't that a good sign? :P
Also don't forget that there's probably a million people using Torque that don't produce a game ever either, a lot of indie are just like you or me, solo hobbyists.
Mattias is a professional game developer. His site (in his signature) has some of the games he has worked on.
Mattias Gustavsson
07-31-2008, 10:07 AM
Mattias is a professional game developer.
Not anymore, but I used to be. Now, I'm just a happy hobbyist :yes:
Mephs
07-31-2008, 10:31 AM
Mattias is a professional game developer. His site (in his signature) has some of the games he has worked on.
Either way :D I'll take all the advice I can get, from hobbyists or like Mattias who has a background in it, or is working in the field... I worded that terribly.
Zvejkus
07-31-2008, 09:55 PM
Well I will return a bit to your disscussion about Ogre and Torque. I think all depends on the stage of the progress. Torque has already finished game titles and indie games cause the engine itself is already finished. It includes every part developer needs to finish his game. But in case of Ogre, there is finished to the release just core and graphics part of the engine. Other things like physics, audio, paged terrain geometry are still under strong develop. In example the tree foliage and paged terrain I tested a year ago and now and the difference is really huge. So Ogre just needs some time to become great engine.
I have also some question to your game Mephs, if you dont mind. For how big amount of players will be the game planned? Did you already chose the database and server platform for it?
And hey Mephs, the third ant on the left side of the anthill is Peter. :lol:
Mephs
08-01-2008, 07:58 AM
I have also some question to your game Mephs, if you dont mind. For how big amount of players will be the game planned? Did you already chose the database and server platform for it?
Just working on the offline parts right now =]. Really reading up on networking and stuff like that in the meantime.
I'm not quite sure yet on size, I guess that will come over time. Seeing as the system is based more over players controlling multiple characters and that I'm probably not going to be a "WoW-killer" I'm looking at a smaller scale system that a few players can enjoy in a small group. The world can't be that expansive seeing as if everyone is 2039859032 miles apart and there's maybe 500 people on, well you see where the trouble starts in planning for a smaller scale online game :p
As far as DB choices go I'm looking either at Postgre or MySQL to kick it off.
Zvejkus
08-02-2008, 07:04 AM
Yes, I understand your point. I think for your purposes PostgreSQL would be OK. But I would still use rather linux and C++ for server side than windows with C#. You can believe me, that it would be much more stable and easier to handle the server.
I didnt understand what do you mean with "players controlling multiple characters". You mean system similar to in example Baldurs gate, where you travel the world with group of chars?
Mephs
08-02-2008, 03:22 PM
Yes, I understand your point. I think for your purposes PostgreSQL would be OK. But I would still use rather linux and C++ for server side than windows with C#. You can believe me, that it would be much more stable and easier to handle the server.
I didnt understand what do you mean with "players controlling multiple characters". You mean system similar to in example Baldurs gate, where you travel the world with group of chars?
You can have multiple units in your "army" and deploy so many per battle.
Zvejkus
08-02-2008, 10:47 PM
You can have multiple units in your "army" and deploy so many per battle.
I see, so it will be something like strategy MMO game. You know, I always think of MMOs using RPG chars. To use strategy game base in MMO game is pretty good idea, I am very currious about your development.
Mephs
08-03-2008, 01:18 AM
I see, so it will be something like strategy MMO game. You know, I always think of MMOs using RPG chars. To use strategy game base in MMO game is pretty good idea, I am very currious about your development.
http://www.sjfweb.net/iso10.jpg
It's coming along nicely, I was mucking around too much this week with trying to make the code cleaner but as per Mattias' suggestion it was getting really cumbersome and annoying to revise as I added new things, so I went with what he said and went back to a simple design.
Still working on an offline playable battle map demo. And the above SS is just a video stress test, with about 100 sprites on screen animating I can maintain 300 FPS, but also to test snapping units to the grid tiles. A few things irking me that I can't seem to figure out, one being those white lines around the sprites, I can't seem to get them to go away, but it is probably something in my material files I'm not doing right.
Zvejkus
08-03-2008, 03:02 AM
It's coming along nicely, I was mucking around too much this week with trying to make the code cleaner but as per Mattias' suggestion it was getting really cumbersome and annoying to revise as I added new things, so I went with what he said and went back to a simple design.
Still working on an offline playable battle map demo. And the above SS is just a video stress test, with about 100 sprites on screen animating I can maintain 300 FPS, but also to test snapping units to the grid tiles. A few things irking me that I can't seem to figure out, one being those white lines around the sprites, I can't seem to get them to go away, but it is probably something in my material files I'm not doing right.
I am looking at the pic you posted, but I cannot see any white line on it. It could be caused when you use textures in a wrong way to 3d models or it could be also problem of the MOgre C# implementation. Did you try to do the same thing in C++?
Mephs
08-03-2008, 03:34 AM
I am looking at the pic you posted, but I cannot see any white line on it. It could be caused when you use textures in a wrong way to 3d models or it could be also problem of the MOgre C# implementation. Did you try to do the same thing in C++?
It's a very fine white line around the sprites if you look really closely. Pretty sure it's not MOgre, but something I need to mess around with the alpha blending of the sprite. It's hardly noticeable using the "real" zoom limit (players wont be able to move the camera the same way I am for debugging) but it's still irritating everytime I see it :)
najak
08-09-2008, 01:15 AM
It looks like you've made plenty of headway here. Did you do a lot of C# programming to get this working? I'd like to know more about your team size/composition, and how you've achieved the progress you made so far.
Also, how much further do you have to go, in your mind? (%complete guess) And how is MOgre working out for you? I used to work with MOgre back when it first started out -- I assume it's become more matured over time.
Sorry for so many questions. I hope you enjoy giving us the answers.
Mattias Gustavsson
08-09-2008, 01:58 AM
know more about your team size/composition, and how you've achieved the progress you made so far
I would guess it's just him, and that this is also the reason why he gets so much done.
Nothing can slow down development as much as a team :lol:
rranft
08-09-2008, 09:12 AM
The one thing I see in this discussion is that everyone is missing an important distinction between Torque and OGRE: Torque is a game engine, OGRE is a rendering engine.
Basically, to make a game with Torque, you create your assets, create some scripts and go. Ok, maybe not quite that simple, but you can make a game with Torque without touching the C++ engine - full multiplayer, 3D, massive terrains and all. The XNA version is handy, too, not to mention Torque Advanced - supporting incredible shader flexibility and truely massive terrains with the new Atlas terrain system.
OGRE requires that you actually build the rest of your engine. Your sound, network etc all have to be built by you. All OGRE really does is graphics - or did they add a physics module? Anyway, with OGRE you have a ton more work on your hands. Gives you more control - choose to use Lua or Perl or whatever for scripting, decide to go with OpenAL for sound, etc., but isn't much help outside of graphics.
My point is that comparing the two is inappropriate. Of course you'll see more titles built on Torque - it costs $100 to get started and you get a whole game engine right out of the box.
BTW - I would recommend using Torque. Completely solves your terrain, pathfinding, networking questions. You can get Finney's books (3D Game Programming All in One, and Advanced 3D GPAiO) and The Game Programmers Guide to Torque to give you solid examples and to guide you step by step through some of the things you're looking to do. If I recall, Finney actually uses a turn-based combat system (written in TorqueScript) in his first book. Torque's main downside is that the official docs are annoying (dOxygen generated) and not very informative, but the community is very helpful and people are always posting bits and pieces that you can use to add all sorts of features for free.
Anyway - My two least denomination monitary units....
Rich
Mephs
08-10-2008, 08:34 PM
The one thing I see in this discussion is that everyone is missing an important distinction between Torque and OGRE: Torque is a game engine, OGRE is a rendering engine.
Basically, to make a game with Torque, you create your assets, create some scripts and go. Ok, maybe not quite that simple, but you can make a game with Torque without touching the C++ engine - full multiplayer, 3D, massive terrains and all. The XNA version is handy, too, not to mention Torque Advanced - supporting incredible shader flexibility and truely massive terrains with the new Atlas terrain system.
OGRE requires that you actually build the rest of your engine. Your sound, network etc all have to be built by you. All OGRE really does is graphics - or did they add a physics module? Anyway, with OGRE you have a ton more work on your hands. Gives you more control - choose to use Lua or Perl or whatever for scripting, decide to go with OpenAL for sound, etc., but isn't much help outside of graphics.
My point is that comparing the two is inappropriate. Of course you'll see more titles built on Torque - it costs $100 to get started and you get a whole game engine right out of the box.
BTW - I would recommend using Torque. Completely solves your terrain, pathfinding, networking questions. You can get Finney's books (3D Game Programming All in One, and Advanced 3D GPAiO) and The Game Programmers Guide to Torque to give you solid examples and to guide you step by step through some of the things you're looking to do. If I recall, Finney actually uses a turn-based combat system (written in TorqueScript) in his first book. Torque's main downside is that the official docs are annoying (dOxygen generated) and not very informative, but the community is very helpful and people are always posting bits and pieces that you can use to add all sorts of features for free.
Anyway - My two least denomination monitary units....
Rich
Well for the most part I'm liking MOGRE for the learning experience, getting to know more than what's in a box is nice. I've successfully integrated Lua for event scripting and animations, and should be able to expand quite a bit from where I am now with it to make production a bit faster.
I wouldn't say I'm moving very quickly as I only have a few hours a night to work at it lol :)
http://www.sjfweb.net/Iso8.avi is a demo of the pathfinding and some other nifty things I figured out so far. It just shows how scripting can make the sprites animate a bit more, and I got a working pathfinding algo with no slow-down or performance hits in the process (then again, the paths wont be all that complicated). It always chooses the shortest route, but if there are two routes that are exactly tied but one requires less "jumping" (hopping from platform to platform) they also know to take the most convenient route now.
The slowdown in the video is mostly because I was running fraps and 2 other games at the same time, typically I can run the shown demo with 2000 FPS clean, with a minimum of 800.
No just working on making chat bubbles and some other GUI stuff, which is a big headache because I can't seem to get OGRE to recognize fonts :S
vBulletin, Copyright ©2000-2010, Jelsoft Enterprises Ltd.