SFML community forums

General => SFML projects => Topic started by: Krofna on July 25, 2012, 10:15:06 pm

Title: [WIP] MMORPG project - recruiting
Post by: Krofna on July 25, 2012, 10:15:06 pm
I named it...

Warrior of Dreamworld

...which is actually just a placeholder name, but w/e...

It is 2D top down MMORPG with real time skill based (you aim manually) combat.
It is written in C++ & SQL.

Additional Dependencies:
(stuff required to compile it)
boost,
MySQL C Connector,
MySQL C++ Connector

(stuff required to run it)
MySQL Server -  http://dev.mysql.com/downloads/mysql/ (30 MB)
MSVC++ redist pack - http://www.microsoft.com/en-us/download/details.aspx?id=5555 (5 MB)

I havent done too much work on it. For now you can:
- Log into (/empty/, there are only players in it) world and move camera around with your mouse
- Move your character around with WASD
- Chat with other players
- Shoot fire bolts and kill other players with it with mouse click

Screenshot: (please dont be hatin' on tiles, its a placeholder)
http://img513.imageshack.us/img513/1837/wodss.png

Video: (Looks pretty bad because its compressed to 3MB, but I guess it does the trick)
http://www.youtube.com/watch?v=XLicqjlSihU&feature=youtu.be

Executables: for windows: https://github.com/krofna/Warrior-of-Dreamworld/downloads
NOTE: Before running server.exe you will need to do following:
- See "stuff required to run it"
- create new database called wod_test_db
- execute the wod_full_db.sql
- modify WorldServerConfig.conf : second line is MySQL server username and third line is password

Source: https://github.com/krofna/Warrior-of-Dreamworld
If you want to compile this, you might want to contact me. Its pretty painful, mainly because of MySQL connector... There are also no make/project files of any kind...

I am also recruiting few programmers (currently working alone :( ), PM me :)

Comments are welcome.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Tank on July 26, 2012, 02:04:09 pm
What immediately came into my mind: This (http://sol.gfxile.net/mmorpg.html), this (http://www.dreamincode.net/forums/topic/59947-to-those-of-you-who-want-to-make-a-mmo-game/) and this (http://tvtropes.org/pmwiki/pmwiki.php/SoYouWantTo/WriteAMajorMMORPG).

Good luck. ;)
Title: Re: [WIP] MMORPG project - recruiting
Post by: binary1248 on July 26, 2012, 03:01:32 pm
Tank, the destroyer of (almost all) hope strikes again. But this time I somehow have to agree with him. An MMORPG is quite an undertaking, mainly because of the MMO part and not the RPG part although it can be challenging as well. I've actually spent quite some time thinking this over time and again wondering why making an MMORPG is actually so hard. I speak from experience because many many years ago when I started to program, making an MMORPG was also one of my initial goals (isn't it always what beginners think of?). I failed. I came back 2 years later with more programming experience. Got it working and even got someone else to simultaneously play with me. Failed again. Next I tried using an engine to give me a headstart, yeah I actually got a bit further this time, failed again. Now I am in the 4th incarnation (see signature) and I already know it is going to fail, so I just use the opportunity to practice and hone my programming skills. I have many years of programming experience and much knowledge from my university studies. I am probably more capable now than ever before to try again, but I won't because I know I am not dedicated enough.

Basically there are a few points that make it harder than it seems at first sight:

1. An MMORPG is still an RPG, and the underlying RPG has to work. This is already hard enough to do. Games are meant to entertain people, and the biggest challenge you will face in this respect is actually getting people to enjoy it. The probability that they will enjoy the game is proportional to the amount of time you spend in creating content and fine tuning the mechanics of the game. This is however proportional to the amount of people who work on the game (unless you are really dedicated and work 14 hours a day on it for a year). This is the first reason why many people are required to develop many (but not all) MMORPGs.

2. When you have the RPG working you will have to think of how to make the leap from singleplayer to multiplayer. Not many games were made to be played in multiplayer, which is also why they don't have multiplayer support. Introducing the notion of multiple humans playing together can break many things that already worked before and you will spend even more time trying to fix/tune these to work again. This is why you have those famous gameplay/balancing teams found in many MMOs out there. It is a really time consuming process which also involves a lot of testing among many people.

3. When you have the basic gameplay system done you have to work on the underlying architecture of the game. After all who wants to play a game (in your case even a real-time game) with 3 seconds of delay? The system you think out might work for 2, 3 maybe 10 or 20 people. But does it work for 100 people or even 1000? This is where the first M in MMO comes from. Creating a scalable architecture is yet another time consuming process which is also normally handled by a dedicated team of developers.

4. So the gameplay works and 1000 players can play simultaneously without much horrible lag. What now? This is where the real work starts. Obviously you will need hardware to host the server software on, but I think you know that. Even if your server is written to be super efficient in bandwidth and CPU usage 1000 players will cost you a bit. Not only that, with that many players you will have to provide support for them especially in the initial stages where everybody (including the developers) is still quite new to the whole thing. There will definitely be a mountain of bugs to fix, and remember the golden rule of online games: if there is a way to exploit the system, it will be exploited. When exploits are found you need to fix them as soon as possible in order to satisfy the other players otherwise they will just give up on the game and your playerbase will destroy itself. This is if you ask me the most stressful part of the whole journey since you are under time pressure and have to convince people that whatever you did in those 2-3 hours is also what they expected. In this case the same applies as well. Whoever invests more time wins. If you yourself are up against 20 people trying to exploit your game I don't think you will get much sleep for a few weeks.

Don't get me wrong. Making an MMORPG with a small team is possible. Many people just don't know what the real challenges are. The kinds of articles that Tank posted aren't really helpful since they tell you that it is hard without mentioning why it is so hard. That often leads people to think that hard is a matter of definition, which if you ask me really is but not in the way they expect. I'm sure there are many people that can cope with the challenges involved and I also motivate them to challenge themselves. But before you start on this adventure just sit back in your armchair for an hour and think about what I mentioned above. Come back a week later, when the weather is different and think about it again. Come back after the holidays are over and think about it again.

If you are still convinced that you can and want to do it, then by all means go for it! :D
Title: Re: [WIP] MMORPG project - recruiting
Post by: Tank on July 26, 2012, 03:40:32 pm
Nice writing, except "If you are still convinced that you can and want to do it, then by all means go for it!". Don't get me wrong, I don't try to be an ass here (I like that role, but this time I'm serious ;)), but you should rather spend your time on things where you have a bigger chance of success.

I don't know your background and I don't know if you have completed games yet. But one thing is for sure: Every(!) game you complete will give you experience, motivation and the will to do something bigger. Even if it's the 3453478345th Pacman clone of Arkanoid. Complete your stuff, make it a game (with menus, highscores, good code design etc.).

My 2 ct.
Title: Re: [WIP] MMORPG project - recruiting
Post by: binary1248 on July 26, 2012, 04:19:38 pm
Forgot to mention required reading:

http://floatingorigin.com/mirror/ELpart1.php.htm
http://floatingorigin.com/mirror/ELpart2.php.htm
http://floatingorigin.com/mirror/ELpart3.php.htm
http://floatingorigin.com/mirror/ELpart4.php.htm
http://floatingorigin.com/mirror/ELpart5.php.htm

This series must be the single most helpful resource I have ever found regarding the lifetime of MMORPG (or any online game for that matter) development. It takes a bit of time to read but the insight gained is priceless if you have never done any work in the direction before.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 26, 2012, 04:24:49 pm
Woah. Why so serious? I think you guys got wrong idea. This is nothing more ( or less ) than one game in series of my learning projects. Last one was single player RPG (http://en.sfml-dev.org/forums/index.php?topic=7342.0)(which actually got less attention on this forum than tic tac toe games, with nifty 0 replies  ;D ).

I am aware how much time will it take me to do it. Last game took me long time to write  (probably cause I was beginner programmer back then) , and its not even fun to play!

Anyway, contrary to all the linked articles and binary's post, I dont plan actually hosting a server for this game. Heck, it is even unlikely that I'll ever finish this game because I'm working alone... and probably will never find artist because I dont have $ to spare...

My goal isnt to complete a program, I am just trying to learn something, and I invite anyone who wants to learn as well to join me :)
Title: Re: [WIP] MMORPG project - recruiting
Post by: vebski on July 26, 2012, 06:48:39 pm
You will learn more by actually finishing a game, and in my experience any RPGish game for learning is BAD idea. It takes time, high level skill . And for most, the world of RPG game is often huge, so you will spend more time putting trees on maps, then programming new stuff.
It's better to write few smaller games from different genres, and learn how everything works in games. Learn new tricks, master your code.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Perde on July 26, 2012, 07:55:39 pm
What immediately came into my mind: This (http://sol.gfxile.net/mmorpg.html), this (http://www.dreamincode.net/forums/topic/59947-to-those-of-you-who-want-to-make-a-mmo-game/) and this (http://tvtropes.org/pmwiki/pmwiki.php/SoYouWantTo/WriteAMajorMMORPG).

Good luck. ;)

Nice writing, except "If you are still convinced that you can and want to do it, then by all means go for it!". Don't get me wrong, I don't try to be an ass here (I like that role, but this time I'm serious ;)), but you should rather spend your time on things where you have a bigger chance of success.

I don't know your background and I don't know if you have completed games yet. But one thing is for sure: Every(!) game you complete will give you experience, motivation and the will to do something bigger. Even if it's the 3453478345th Pacman clone of Arkanoid. Complete your stuff, make it a game (with menus, highscores, good code design etc.).

My 2 ct.

Better do something small that nobody will notice than to actually try something big that might fail. Long live the mediocrity!

This is the worst approach to do something new, and even worse than worst (yeah, whatever  :P) for learning anything. You can't make any progress if all you ever do is stay on the same level and do the same stuff over and over again, that others have done before you. The bigger your steps are, the more you will learn. All you need to do is _stick_ to it and accept that failure is a crucial part of learning.

I think I just raged a little inside. No offense though, it's just - like everything else - a mere opinion based on personal experience. ;D
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 26, 2012, 08:16:24 pm
And for most, the world of RPG game is often huge, so you will spend more time putting trees on maps, then programming new stuff.

Nah, I do not bother with such stuff. I only deal with code.
As I said, I got empty map, which was auto generated by 5-line program. When I write code for trees, I'll just spawn 1 tree on map to test it out(rawr! resource gathering!)... Actually I think I'll rather write map editor than wasting time making huge world look nice...
Title: Re: [WIP] MMORPG project - recruiting
Post by: Tank on July 26, 2012, 08:48:28 pm
Quote
Better do something small that nobody will notice than to actually try something big that might fail. Long live the mediocrity!
At first, this thread is obviously about learning things. That doesn't require people to get noticed of your stuff, I think. Also I don't know what this has to do with mediocrity. A completed full game is of much more value than a failed attempt. Why? Because you gain experience in more fields than just programming, like project planning, release cycles, patches, community interaction etc.

The problem with failing in programming is that you mostly stop working on something if you get frustrated because you (again) recognize that you can't do it due to lack of knowledge and/or experience. So you often never get to a completed product, which means you miss a lot of important stuff.

Also doing small things doesn't mean you will never fail. Indeed you will fail so many times, but just in small areas, instead of throwing away a 5-10K+ lines codebase, withering in the darkest areas of your HDD.

Quote
This is the worst approach to do something new, and even worse than worst (yeah, whatever  ) for learning anything.
So you argue if someone wants to learn digital electronics, he should build a x86-compatible computer at day 1, instead of learning your stuff in small experiments? In my opinion doing big projects without the proper knowledge is a waste of time and may also lead to completely leaving the area of interest, which is a sad thing.

Quote
You can't make any progress if all you ever do is stay on the same level and do the same stuff over and over again, that others have done before you.

May I remind you of my own text:

Quote
and the will to do something bigger

Of course you don't stay on the same level. When you've completed some small games, you use the experience and knowledge to continue on bigger things, and all the puzzle pieces will greatly fit together.

Quote
The bigger your steps are, the more you will learn. All you need to do is _stick_ to it and accept that failure is a crucial part of learning.
Personally I think that way is difficult and dangerous. Most people need the feeling of success to continue on something. But if you're a beginner and start with an MMORPG without proper knowledge in several areas, you will fail a lot of times. You'll probably need 10 or more iterations until your code is sane, maintainable, flexible and whatnot.

Do you really think that people who experience so many negative things will still be happy when they think of programming, knowing that they have to re-implement all their stuff again?

Quote
I think I just raged a little inside. No offense though, it's just - like everything else - a mere opinion based on personal experience.
It's okay, as long as you don't start insulting I'm perfectly fine with every type of discussion, if it's rude or not. Just be prepared that I can get rude, too. ;-)
Title: Re: [WIP] MMORPG project - recruiting
Post by: StormWingDelta on July 26, 2012, 08:51:53 pm
I looked at the RPG you mentioned that got little attention and I can see why no one responded.  Most RPGs have a lot more freedom of movement than yours and if you're going to use it as a base it won't work.


To get an MMO or any other online linked game working you need to know a lot about networking codes for Server and Client.  It's not easy to find tutorials on them for some reason though but when you do find something it's a good idea to practice a lot with it. Also don't use an MMO for learning anything to do with networking games together it never ends well.

Start with a simple but decent test to see if you got everything right and if you're going 2D you might want to up your art skills a bit to make it easier to tell the environment and everything in it apart better. AKA making things stand out better.
This might help.
http://www.petesqbsite.com/sections/tutorials/tuts/tsugumo/
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 26, 2012, 09:03:31 pm
Most RPGs have a lot more freedom of movement than yours and if you're going to use it as a base it won't work.

My last RPG had a text based combat, so I didnt bother with free movement.

And in this one, I don't want to start writing nicer movement because I have no animations... Just a bunch of placeholder tiles.

To get an MMO or any other online linked game working you need to know a lot about networking codes for Server and Client.  It's not easy to find tutorials on them for some reason though but when you do find something it's a good idea to practice a lot with it. Also don't use an MMO for learning anything to do with networking games together it never ends well.

I actually think my server is actually very well written (except if code says "PH", "TODO" or "FIXME", you ignore that piece)

Will ya all please stop "assuming" stuff and read some of my code, so you can tell me whether or not I am doing it wrong!
Title: Re: [WIP] MMORPG project - recruiting
Post by: StormWingDelta on July 26, 2012, 10:39:41 pm

Will ya all please stop "assuming" stuff and read some of my code, so you can tell me whether or not I am doing it wrong!


It would be easier if we didn't have to download the things separately and also that everything that was needed was clearly IDed as needed or included in the main download.

Most of us here know what we are saying even if it is harsh to hear.  I hate to admit it but even some of the trolls have a point sometimes. Although they don't put it as nicely as the others would. >_>

Also the reason people are assuming is because you left the issue of what you wanted wide open for such assuming.  I would read your code if I had time but I'm working on a few things myself and can't do much right now.
Title: Re: [WIP] MMORPG project - recruiting
Post by: StevenC on July 26, 2012, 11:16:26 pm
Interesting. I wish I had the free time to jump into such a large project. Do you plan to keep it open source as it develops or will you eventually make it into a commercial project once it is mature?

Also are you planning your project as a framework for building a generic 2D mmo or will it be an actual playable mmo?

Title: Re: [WIP] MMORPG project - recruiting
Post by: eXpl0it3r on July 27, 2012, 12:22:03 am
Do you plan to keep it open source as it develops or will you eventually make it into a commercial project once it is mature?
See:
This is nothing more ( or less ) than one game in series of my learning projects. [...] I am aware how much time will it take me to do it. [...] Anyway, contrary to all the linked articles and binary's post, I dont plan actually hosting a server for this game. Heck, it is even unlikely that I'll ever finish this game because I'm working alone... and probably will never find artist because I dont have $ to spare...

My goal isnt to complete a program, I am just trying to learn something, and I invite anyone who wants to learn as well to join me? :)
So this strongly sounds to me like: "Yeah I'm gonna do a game but don't even except to finish it at all and probably won't even get that far, do you want to join me."
Which kind of answers your question. It will never get finished and thus will never get into a mature state and thus never get commercial. ;)

Most of us here know what we are saying even if it is harsh to hear.  I hate to admit it but even some of the trolls have a point sometimes. Although they don't put it as nicely as the others would. >_>
The ones you refere to as Trolls are the ones that know it best and have seen attempts likes this over and over again. If you dig deeper into their posts you'll end up with enlightment and understanding. If you just think 'meh trolls' you'll never understand them. ;)

Will ya all please stop "assuming" stuff and read some of my code, so you can tell me whether or not I am doing it wrong!
So are you saying we're only here to screen your code? :P
Btw I did took a peak but I didn't try to understand what's going on where etc. just a few code design things:

I looked at the RPG you mentioned that got little attention and I can see why no one responded.  Most RPGs have a lot more freedom of movement than yours and if you're going to use it as a base it won't work.
This maybe one of the reasons. Another one is that you released it and run away, without ever updating anything. On top of that, since you don't seem to care about graphics it's quite obivous that your user base won't grow (i.e. it doesn't really look nice, except for the drawings in fight mode etc.). Also the mapsize is quite small and the apperance of the fights is quite random. (Then again I'm not a hugh fan of RPGs...)

I actually think my server is actually very well written (except if code says "PH", "TODO" or "FIXME", you ignore that piece)
"A man's praise in his own mouth stinks." ;)

Forgot to mention required reading:

http://floatingorigin.com/mirror/ELpart1.php.htm
http://floatingorigin.com/mirror/ELpart2.php.htm
http://floatingorigin.com/mirror/ELpart3.php.htm
http://floatingorigin.com/mirror/ELpart4.php.htm
http://floatingorigin.com/mirror/ELpart5.php.htm
This is awesome thanks! ;)

Nah, I do not bother with such stuff. I only deal with code.
As I said, I got empty map, which was auto generated by 5-line program. When I write code for trees, I'll just spawn 1 tree on map to test it out(rawr! resource gathering!)... Actually I think I'll rather write map editor than wasting time making huge world look nice...
And you expect people to actually play your game... Good luck. ;)

Woah. Why so serious?
Because to call something MMORPG is a serious buisness and specially since every development forum is filled with posts from some kids that don't even know anything about programming who want to make MMORPG.
You could've avoided all the long posts, if you just didn't use that shortcut and instead mentioned that you want to learn something in combination with a RPG like game and support for multiple players. ;)
Title: Re: [WIP] MMORPG project - recruiting
Post by: Perde on July 27, 2012, 01:04:35 am
...

Since this doesn't add much to the actual topic I will keep this reply short.
I wasn't being rude, I strongly disagreed with what you wrote, there's a difference. And I hope you can accept my apologies if it came out wrong.

I just tried several approaches on how to formulate my reply, but I don't see any end to a discussion on different learning-methods, since they may be as different as the people using them. Reason for my original post was that I always get that slight feeling of annoyance when somebody suggests to better not try something in the first place, that is all.
There's this famous Edison quote about failure, but that would be a bit cheap now, would it?

Feel free to PM me anytime you want, I don't want to be blamed for hijacking this thread.  ;D
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 27, 2012, 09:58:02 am
Interesting. I wish I had the free time to jump into such a large project. Do you plan to keep it open source as it develops or will you eventually make it into a commercial project once it is mature?
I dont know. I never thought about it. Its thinking too far into future...

Also are you planning your project as a framework for building a generic 2D mmo or will it be an actual playable mmo?

Both. I'll create World editors which will allow completly customized world, creatures (and their AI), spells, and whatnot.

Nah, I do not bother with such stuff. I only deal with code.
As I said, I got empty map, which was auto generated by 5-line program. When I write code for trees, I'll just spawn 1 tree on map to test it out(rawr! resource gathering!)... Actually I think I'll rather write map editor than wasting time making huge world look nice...
And you expect people to actually play your game... Good luck. ;)
  >:( THERE WILL BE PLAYABLE WORLD, its just I WONT BE ONE MAKING IT. I'll create world editor and have SOMEONE ELSE do it for me.

Do you plan to keep it open source as it develops or will you eventually make it into a commercial project once it is mature?
See:
This is nothing more ( or less ) than one game in series of my learning projects. [...] I am aware how much time will it take me to do it. [...] Anyway, contrary to all the linked articles and binary's post, I dont plan actually hosting a server for this game. Heck, it is even unlikely that I'll ever finish this game because I'm working alone... and probably will never find artist because I dont have $ to spare...

My goal isnt to complete a program, I am just trying to learn something, and I invite anyone who wants to learn as well to join me? :)
So this strongly sounds to me like: "Yeah I'm gonna do a game but don't even except to finish it at all and probably won't even get that far, do you want to join me."
Which kind of answers your question. It will never get finished and thus will never get into a mature state and thus never get commercial. ;)
Thats how stuff works when I'm alone. I'll probably never do it. Its too much job for me alone. But if I were to recruit at least 1(2 would be great!) more guy we could(would) finish it. Wouldnt recruit if I could do it alone...


I actually think my server is actually very well written (except if code says "PH", "TODO" or "FIXME", you ignore that piece)
"A man's praise in his own mouth stinks." ;)
Do I feel trolling? Yes I do. I can't make code without placeholders, todos and fixmes now because I cant assume most of code because I have no tiles, no animation... Just placeholders. Besides, there arent too many :/

Most of us here know what we are saying even if it is harsh to hear.  I hate to admit it but even some of the trolls have a point sometimes. Although they don't put it as nicely as the others would. >_>
The ones you refere to as Trolls are the ones that know it best and have seen attempts likes this over and over again. If you dig deeper into their posts you'll end up with enlightment and understanding. If you just think 'meh trolls' you'll never understand them. ;)

Will ya all please stop "assuming" stuff and read some of my code, so you can tell me whether or not I am doing it wrong!
So are you saying we're only here to screen your code? :P
Btw I did took a peak but I didn't try to understand what's going on where etc. just a few code design things:
  • Use *.hpp instead of *.h, or do you really want to make people believe you're code in C?
  • Don't use manual memory management and pointers all over the place but start using smart pointers.
  • Don't use global objects.
No, but for example see:
Quote
To get an MMO or any other online linked game working you need to know a lot about networking codes for Server and Client.  It's not easy to find tutorials on them for some reason though but when you do find something it's a good idea to practice a lot with it. Also don't use an MMO for learning anything to do with networking games together it never ends well.
Anyway
1.) Easy, gonna fix
2.) Good idea... This sounds like something I should fix soon...
3.) Not an issue. There are only few, and I could replace then with singletons but it would still be same thing

I looked at the RPG you mentioned that got little attention and I can see why no one responded.  Most RPGs have a lot more freedom of movement than yours and if you're going to use it as a base it won't work.
This maybe one of the reasons. Another one is that you released it and run away, without ever updating anything. On top of that, since you don't seem to care about graphics it's quite obivous that your user base won't grow (i.e. it doesn't really look nice, except for the drawings in fight mode etc.). Also the mapsize is quite small and the apperance of the fights is quite random. (Then again I'm not a hugh fan of RPGs...)
There was nothing I could do about graphics. Tiles are from 10 year old game called tometik, because I couldnt find artist to do them for me. Artist which done fight mode drawings doesnt know how to do pixel art.
There are 2 types of fights: Random encounters and those you engage yourself. And thats not only map. I didnt use camera, but if you go to edge of map you get relocated to adjacent map (read whole topic, I think I explained all weird stuff )


Will ya all please stop "assuming" stuff and read some of my code, so you can tell me whether or not I am doing it wrong!

It would be easier if we didn't have to download the things separately and also that everything that was needed was clearly IDed as needed or included in the main download.
Refering to stuff needed to run it or compile it?
Title: Re: [WIP] MMORPG project - recruiting
Post by: panithadrum on July 27, 2012, 10:35:20 am
Just let him try to make his MMORPG. I think we all tried once in the past :P
Title: Re: [WIP] MMORPG project - recruiting
Post by: Tank on July 27, 2012, 10:36:56 am
Quote
Since this doesn't add much to the actual topic I will keep this reply short.
I wasn't being rude, I strongly disagreed with what you wrote, there's a difference. And I hope you can accept my apologies if it came out wrong.
I didn't mean you were rude, I just said it's okay if you got rude. No apologies needed, nobody got hurt. ;)

Quote
Feel free to PM me anytime you want, I don't want to be blamed for hijacking this thread.
Personally I don't like private discussions, because others can't jump in. ;) I think we both stated our opinions.

Quote
Both. I'll create World editors which will allow completly customized world, creatures (and their AI), spells, and whatnot.
Phew... Of course that sounds awesome, but keep in mind the shitload of work required.. Tears are already dropping here when I think of the bad feelings you will *probably* get when recognizing it's just too much. ;)

Quote
THERE WILL BE PLAYABLE WORLD, its just I WONT BE ONE MAKING IT. I'll create world editor and have SOMEONE ELSE do it for me.
Interesting attitude for a recuiting thread.

Quote
Thats how stuff works when I'm alone. I'll probably never do it. Its too much job for me alone. But if I were to recruit at least 1(2 would be great!) more guy we could(would) finish it. Wouldnt recruit if I could do it alone...
Did you read the articles I linked to? Or binary1248's post? The Eternal Lands articles? It requires more than 1-3 developers. Please be aware of that before you really dig into that project. And don't assume "Ah well, as soon as one can walk around and kill zombies it'll attract more manpower". Attracting human resources to your project needs more than "I wanna do an MMORPG, wanna join?". Especially if you're a beginner yourself, because you need experienced developers, but those will know you're just learning EVERYTHING and don't join your project, because it's, and I'm very sorry to say this, a waste of time.

Whatever, I think you got *my* point. I wish you all the best for your project. Actually I'd be very happy to see this project evolving, but to be honest I have zero hope in that. My personal suggestion is to start small, get familiar with the enormous amount of game development areas first, then put all the pieces together to create something big. Up to you, good luck.

Quote
Just let him try to make his MMORPG. I think we all tried once in the past
And we all got to the same conclusion, didn't we? ;)
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 27, 2012, 10:51:56 am
Quote
THERE WILL BE PLAYABLE WORLD, its just I WONT BE ONE MAKING IT. I'll create world editor and have SOMEONE ELSE do it for me.
Interesting attitude for a recuiting thread.
I'm not going to have programmer editing world. Thats a waste of human resources... But anyway looks like I'll have no programmers...

I wish you all the best for your project.
No you don't.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on July 31, 2012, 09:50:03 am
UPDATE #1

Been busy last 5 days... And here are results:

Changelog r67 .. r86:

General:
- Add support for NPC Creatures:
SQL tables `creature_template` and `creature`(instance of a creature defined in template)
Classes: Unit, Creature

Generic creature AI:
- Pathfinding using A* algorithm
When attacked, Creatures pursue their attacker avoiding obstacles.

AI Scripting: (NOTE: Currently number of functions to work with is very limited)
- Implement scripting API which consists of 8 functions which are called on certain event (such as Update(server thick), EnterCombat, JustDied...)
- Implement AI factory: (NOTE: If creature is not scripted, it will be granted generic AI)
- Rewrite spell code: Creatures may now cast spells

Misc:
- Make both server and client use same code for stuff which is same for both of them.
- Comment the code a lil bit more
- Allow comments in conf
- Compiled r86 is in Downloads tab on github: https://github.com/krofna/Warrior-of-Dreamworld/downloads
NOTE: INSTRUCTIONS ON HOW TO SET UP SERVER ARE IN FIRST POST OF THIS THREAD

Last but not least, still recruiting :)

Commented Example of AI:
Code: [Select]
//Include necessary headers
#include "../server/CreatureAI.hpp"
#include "../server/Creature.hpp"

// Spell entries used in this AI
enum
{
    SPELL_FIREBALL = 0
};

// Define class for AI, inherits from generic creature AI
// WOD_DLL_DECL is declspec(dllexport) => scripts are in seperate .dll
class WOD_DLL_DECL npc_krofnicaAI : public CreatureAI
{
public:
    npc_krofnicaAI(Creature* pCreature) : CreatureAI(pCreature)
    {
        Reset();
    }

    Int32 FireballTimer; // Define spell timer

    void Reset()
    {
        FireballTimer = 5000; // 5 seconds cooldown
    }

    void UpdateAI(Int32 diff) // Diff is server thick
    {
        if(!pCreature->GetVictim()) // Return if no target
            return;

        if(FireballTimer <= diff) // If timer expired
        {
        // Cast spell (NOTE: You might want  to make bolt angle a bit more
        // random because victim may not stay still. There are several overloads of this function)
            pCreature->CastSpell(SPELL_FIREBALL, pCreature->GetVictim());
            FireballTimer = 5000; // Reset timer
        }
        else
        {
            FireballTimer -= diff; // Reduce cooldown
        }
    }
};

// Creator function used by AI Factory
CreatureAI* GetAI_npc_krofnica(Creature* pCreature)
{
    return new npc_krofnicaAI(pCreature);
}

// Register AI to factory with script name from creature_template table
// NOTE: This function MUST be called from ScriptLoader.cpp
void LoadScript_npc_krofnica()
{
    RegisterAI("npc_krofnica", &GetAI_npc_krofnica);
}

Comments are welcome
Title: Re: [WIP] MMORPG project - recruiting
Post by: Tank on August 11, 2012, 10:57:08 am
Quote
I'm not going to have programmer editing world. Thats a waste of human resources... But anyway looks like I'll have no programmers...
Uhm.. I don't know where you come from, but around here I ask nicely and with respect if I want something from others. ;)

Quote
Quote
I wish you all the best for your project.
No you don't.
Polishing your crystal ball? Seriously, I'll be the first to shake hands when there will be nice results from your plans.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on October 06, 2012, 06:34:56 pm
le BUMP
Project is still alive! (https://github.com/krofna/Warrior-of-Dreamworld/graphs/code-frequency)

Changelog:
- Re-wrote most of the project to fix major limitations and code ugliness
- Countless bugs and memory leaks fixed
- Fixed most of biggest server performance issues

- Items and Bags (Client side GUI is still placeholder/incomplete )
- Quests
- Allow Interacting with other units: Implement vendors and quest givers (Client side GUI incomplete..)
- Allow chat & add commands (Client side ugly...)
- Add cmake files to make compilation less painfull (Also some instructions for debian/ubuntu users)

Server side now has all features needed for the game to be playable! But I am having some serious issues with client side, especially GUI. SFGUI seems to break the SFML, and writing my own widgets would be very time consuming. I could use some suggestions here...

There are currently 2 active developers working on it, and we could really use some help. PM me if you are interested in helping :))
Title: Re: [WIP] MMORPG project - recruiting
Post by: binary1248 on October 08, 2012, 09:46:15 am
SFGUI seems to break the SFML
Would be nice to know how, so it can be fixed. This is clearly a bug if it can be reproduced.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on October 08, 2012, 06:25:32 pm
SFGUI seems to break the SFML
Would be nice to know how, so it can be fixed. This is clearly a bug if it can be reproduced.

I don't know - but I will ask the guy who was trying to make GUI. IIRC SFGUI and SFML were breaking eachothers GL states.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Qix on October 08, 2012, 07:27:01 pm
Holy attitude, batman!

Apart from all of the crude remarks by the OP, I must comment on something that was said:

'Smart' pointers are only smart if 1) you use them correctly and 2) if you don't really want to hassle with proper pointer usage.

Personally I never, ever use smart pointers, but that's a matter of preference.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on October 08, 2012, 07:59:15 pm
Holy attitude, batman!

Apart from all of the crude remarks by the OP, I must comment on something that was said:

'Smart' pointers are only smart if 1) you use them correctly and 2) if you don't really want to hassle with proper pointer usage.

Personally I never, ever use smart pointers, but that's a matter of preference.

After gprof reported 99% of program execution spent on smart ptrs, I got rid of most of them. Most of my objects have well defined lifetime anyway.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Nexus on October 08, 2012, 09:37:30 pm
After gprof reported 99% of program execution spent on smart ptrs, I got rid of most of them.
Then you were using them terribly wrong. I guess you just put shared_ptr everywhere, that's the worst thing you can do. Shared pointers are only required in case of actual shared ownership (which is rare).

Mostly, you can just take std::unique_ptr (or boost::scoped_ptr if you don't have C++11, or even std::auto_ptr or something self-written in the worst case). std::unique_ptr has absolutely no overhead, but greatly improves code readability and safety.

There is really no good reason to manage memory manually with new and delete, you just make your life more complicated than necessary, without a single advantage.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Qix on October 09, 2012, 12:34:41 am
There is really no good reason to manage memory manually with new and delete, you just make your life more complicated than necessary, without a single advantage.

Yes there is; stack vs. heap. You're limited on stack space. However, you're correct, using new + delete is relatively expensive and all around a headache causer if used incorrectly.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Nexus on October 09, 2012, 07:33:59 am
Let's continue the offtopic discussion here (http://en.sfml-dev.org/forums/index.php?topic=9359).
Title: Re: [WIP] MMORPG project - recruiting
Post by: OzVessalius on October 10, 2012, 11:15:28 pm
So, I'm the second developer on the project, nice to meet you.

SFGUI seems to break the SFML
Would be nice to know how, so it can be fixed. This is clearly a bug if it can be reproduced.
It seems that if we not use resetGLStates in Login constructor, we can't draw with SFGUI.
But, after, we can't draw with SFGUI and SFML at the same time in World class.

If you can take a look on Login.cpp, remove "Window->resetGLStates()" or try to draw a minimal GUI in World.
Maybe, that I don't know how to use completely SFGUI, I've thought we can use popGLStates/pushGLStates, but it's a loss of performance, right ?

[Sorry, for my bad English]
Title: Re: [WIP] MMORPG project - recruiting
Post by: binary1248 on October 11, 2012, 03:26:35 am
It is correct and required that you call resetGLStates() if you want to render with SFGUI before drawing with SFML. If you draw first with SFML it will be called internally the first time a Drawable hits the screen and you will not have to call it yourself. As such you could even call resetGLStates() from Main.cpp right after you create your RenderWindow. This way you only have to call it once at the start of the application and not for every SFGUI window you create.

Quote
But, after, we can't draw with SFGUI and SFML at the same time in World class.
Can you elaborate on this? What do you mean by at the same time? In separate threads? Or just within the same method in the World class? SFGUI was not meant to be drawn in a separate thread at the same time as anything else. The normal case is that it is the last thing that gets drawn to the Window before it is display()ed. I would have tested this myself, but after I realized how much work it takes to get the server up and running I just stopped.

Just a side note, I had to edit a few of your files to build the project:
Code: [Select]
if (NOT BUILD_ONLY_SERVER OR NOT BUILD_ONLY_CLIENT OR NOT BUILD_ONLY_WORLD_EDIT)
Maybe you meant to use AND instead of OR?

And in your Client CMakeLists.txt:
Code: [Select]
SFML_INCLUDE_DIRS -> SFML_INCLUDE_DIR
SFGUI_INCLUDE_DIRS -> SFGUI_INCLUDE_DIR
Boost has multiple directories, SFML and SFGUI only have one.
Title: Re: [WIP] MMORPG project - recruiting
Post by: Krofna on October 11, 2012, 05:39:36 pm
I would have tested this myself, but after I realized how much work it takes to get the server up and running I just stopped.
What was 'so much work'? SQL database? It can be set up in ~4 lines in terminal...
Title: Re: [WIP] MMORPG project - recruiting
Post by: binary1248 on October 11, 2012, 10:38:47 pm
I don't have a MySQL server installed and installing one just to test this is a bit too much. I also don't want to spend all the time that is required to get the dependencies of the server working.