Archived

This topic is now archived and is closed to further replies.

Ziphren

n00b with some good questions.

Recommended Posts

Hi, I already know the basics of programming, but I want to dive into 3d game creation, since I am overflowing with good ideas for multiplayer games, and my programming classes are boring me to DEATH. My questions are regarding engines and which language to use. I''d like to make a massively multiplayer game with simple, high-framerate 3d graphics, with minimal textures and lots of pretty lighting effects. Should I use Java or C++? Also, I really want to focus on the game -design- and not the coding, so I want to use a free 3d engine and a networking engine(?) to simplify the coding process. Can you guys reccommend some good free engines/libraries that I can use to speed up this process? Laterz() { FellOverDead = true; }

Share this post


Link to post
Share on other sites
Oh yeah, I forgot to mention that it''s an Action/RPG 1st person game, hopefully with support for thousands of players in the same game.

later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

Share this post


Link to post
Share on other sites
Use basic languages.... no high level stuff like visual basic or java... It would slow it down too much.

C, C++, Assembly.. those would all be fairly fast. C++ would depend on the headers you include. A typical borland bloated exe would go slower than a much more efficient stripped down version. Although that might not matter too much.

The easiest would be to take a look at the free source code out there. Like the Quake 2 engine (i think it''s free now... at least to look at but not for commerical. I donno.) or basically anything that was made on linux. If I was to make a 3d engine, i''d probably do a mix of assembly and C++.

that''s just me

Share this post


Link to post
Share on other sites
High aspirations, eh?

Java can be used for fast 3d graphics with the right libraries (quite pricy ones as of a few months ago)... same goes for sound. Its a much more difficult path to walk, however. Few (particularly here) will be able to help much with specific details (i.e. people can still tell you how to render heightmap terrain say, but they couldn't help you on implimentation).

If this is your first project, I might suggest Conitec. It will get you off the starting block quickly if you are looking to make a 3d game with those features.

No money to buy that? I really don't suggest anything based on the Quake 2 source (its a mess!). Try CrystalSpace, Faked Reality, NeoEngine, OGRE, or the venerable Genesis3D.

CrystalSpace, OGRE, and NeoEngine are all Open Source under the GNU LGPL (which means you can keep the source code to your application closed; any alterations to the libraries, however, must be released to the public). I wasn't able to find the license for Faked Reality, and the license for Genesis3D is somewhat more involved.

If you decide later you are looking for 2D game libraries, Allegro and Clanlib provide you the most complete set of functionality, whereas SDL+related libraries are more like OpenGL, but for 2D.

I know you're not looking for non-programming related tools now. I'm going to quote Yoda "You will be.". GIMP is an open source photoshop-like program, and its absolutely free. Blender is a 3D modelling program that is free, and Alias/Wavefront just released a free version of Maya for non-commercial use.

If your interested, I develop on my own distribution of Linux (based off of Knoppix, using KDevelop as a frontend to gcc 3.2; GIMP and Blender for content production; and I am currently using the Torque engine to hopefully produce a game that will gain me some recognition. I am 22, and its a hard long road to get this far. I was probably your age when I read in Maximum PC about the immenent open-sourcing of Genesis3D (in Nov. '97 or so), and have been striving ever since to get somewhere (I had been programming for 5 years at that point too). Its a long, hard road. I wouldn't have made it this far without all the people in the internet community that helped me, so I try to give back. Its a Karma thing.

[edited by - SteevR on October 23, 2003 10:09:09 AM]

[edited by - SteevR on October 23, 2003 10:26:54 AM]

Share this post


Link to post
Share on other sites
If you're interesting mainly in game design, I highly recommend modding an existing game. Half-Life is popular, but the code is a bit messy (mix of Half-Life C++ and Quake C = garbage). I liked Unreal Tournament -- UnrealScript is very much like Java, and the codebase is well-organized. I'm sure Unreal II and UT2003 use the same basic script language, since it didn't change from Unreal to UT.

EDIT: Oh, forgot you wanted it to be an MMOG. Well, as with all MMOGs, you have to ask yourself: Will there ever be thousands of people simultaneously playing my game? You'll be lucky if you can get 32 most of the time.

~CGameProgrammer( );

-- Post screenshots of your projects. 100+ posts already in the archives.

[edited by - CGameProgrammer on October 24, 2003 7:01:33 AM]

Share this post


Link to post
Share on other sites
while (GameDev == true)
{
newbie_MMORPG_dream++;
}

It is not feasible for one programmer with (some) amount of experience to write their own MMORPG. I know everyone wants to make the best EQ clone ever, but it''s simply not feasible. It would be very hard to get any sort of audience. Even Triple-A titles like Asheron''s Call 2 barely had 1000 players when I played a few months into the release. That was a Microsoft backed product using an established name with a large team of professional developers.

I would take the modding route instead, as others have mentioned.

Share this post


Link to post
Share on other sites
I think that the game being free and action-oriented will attract a lot of players. Personally, I don't like Asheron's Call 2... I don't like any games where you have to walk around forever just to get to something good.

I'm on a University connection with 1MB/sec of upload bandwidth, and at least 3.6MB/sec down... I want the game to upload a decent amount of data to each client. So it could get out of hand quickly, but I hope to get at least 50 players on the game at a time to start. The core elements of the game will be large, numerous action scenes in a small, dense city environment, seamless indoor and outdoor, with character development. I have many more unique ideas to make online gaming much more exciting, and frankly I'm scared to give away too much information.

I just want to make a game with super-simple 3d graphics, and a very low-level Windows XP optimized networking model, with compressed packets, maybe with the .NET framework? Or maybe it would be easier to get players and design the client/server structure on Linux?

I am tempted to post my whole design document though just so I can get more help with this huge project.



later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

[edited by - ziphren on October 24, 2003 8:16:38 PM]

[edited by - ziphren on October 24, 2003 10:58:23 PM]

Share this post


Link to post
Share on other sites
Maybe your situation is different, but my university would NOT appreciate me running an MMORPG with their connection I''m sure I''d have my internet shut off within a week, if not less. Can you really use the connection like that?

Share this post


Link to post
Share on other sites
I have hosted Unreal 2003 and Half Life games before, and I''m --always-- listening to internet radio, so I don''t think the bandwidth would be too big of a deal.

However, I''m having MASSIVE problems figuring out how to start. I thought I would start with the graphics (I''m only going to have ONE map) and use that as a foundation for building the content of the game, then design the networking aspect afterwards.
I have been looking for days straight, and I still have not found a simple, step-by-step guide for something as simple as loading a map and a controllable camera.
If anyone knows a good set of sample code that I can use to start from, I would be -----greatly----- thankful!


later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

Share this post


Link to post
Share on other sites
well, the reason you haven''t found any code on something that simple, is the fact that it isn''t that simple at all. I would suggest you learn the tutorials inside out at nehe.gamedev.net opengl will serve your purpose well. Patients and determination are the biggest attributes you can possess. Don''t be afraid to ask questions, but search the forums before hand, chances are someone else has already asked the question. Best of luck

Share this post


Link to post
Share on other sites
There''s a difference between running a Halflife server and an MMORPG. I mean, I assume you want more than 24 or so people in your world, right?

Some idiotic guy at my school decided to run a server for people to download movies and whatnot. I think the reason he got his internet shut off was not because it was pirated (the university might not even have known what it was) but the high traffic it caused. I''d imagine you would expect similar strain with a larger server of people.

Just trying to point out potential flaws before they crop up.

Share this post


Link to post
Share on other sites
I'm going to do the initial testing with the client & server on my own machine. I also decided to make the framerate as low as possible, like 12 fps (that's what cartoons are isn't it?) to minimize the data transfer. I would also like to compress the data as much as possible.
Does anyone know if it's theoretically possible to sent out hella packets at the same time to different places? Maybe if the server used a different port for each client?

later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

[edited by - ziphren on October 25, 2003 8:33:50 PM]

Share this post


Link to post
Share on other sites
12 FPS would be dizzyingly painful to the eyes for a 3D game with the full perspective rotating constantly. Don''t bother encoding, it''ll just slow it down even more. If you mean compress, do that last, because it probably won''t give you much of an advantage. Using different ports to send several packets at once wouldn''t be any faster, because it can''t increase the physical speed of you''re connection. Remember, there''s only one cord, not one for each port

Share this post


Link to post
Share on other sites
1. 12 fps is almost totally unplayable, bare minimum should be 30

2. you have to only send out bare minimum necessary data to the server, your character''s EXACT facing and animation arn''t usually necissary, a close approximation is what most games do. Even on a high speed connection it could be annoying for a game to be using that much bandwidth.

3. if you want a mmorpg, you''re going to need a large dedicated server to host it.

4. how are you advertising your game? nobody wants to play a mmorpg with only 24 players in the world at any given time, you need to get massive player attention.

5. how are you funding your project?

6. as for the "which language to use" question, use the language which you already know how to program a standard online 3d rpg in.

good ideas are a dime a dozen, sucessfull implementation of them is rare.

oh, and as for a 3d engine to use, does everyone just kinda forget about jet3d or something? (genesis3d 2.0)
jet3d

Share this post


Link to post
Share on other sites
I can tell you are not yet that efficent in the understanding of networking in order to create a decent system. Not that im trying to be offensive or anything. Even if your coding skills are great, you have alot to read up on as far as networking goes, and I would try to build up some sort of base on that (before you implement an MMORPG on top of it).

For starters, chances are you dont want to be dishing out packets every frame to people, that is way over-bandwidth-budget for even the most major of titles, send packets every 1 second if you are doing it a per-frame basis, and interpolate between the frames.

Also, when it comes to network apps, I have always distributed chatting proticals, and simplified packet sends to the point of the client sending a message stating "Im doing this ...." the server either sends "It worked" or "It failed". If it works, it may send a few parimeters aswell. This is only for things that will affect gameplay such as status and location. If you are chatting, sending emotions, i would just send it directly to all clients in your area. If it is something like going through your menus, or reading a book, i wouldent even send a packet on it.

Just my 2c
Richard

Share this post


Link to post
Share on other sites
Thanks for the ideas and corrections, and yes, I am basically learning everything as I go.
Right now I''m not thinking about advertising and stuff like that, I just want to get the foundations developed. If anyone wants to see my design doc and will keep it confidential, I would gladly show them so I can get the extra help.

Share this post


Link to post
Share on other sites
is it possible to use streaming audio to represent data?

Since Audio can be compressed a hellahellahellahella of a lot, you could compress it, then uncompress & error-check copies of it rapidly, right?

later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
No you cannot do that. Audio compression is not conservative, and you loose some of the information, resulting in quality lose. When dealing with important data, you just don''t want to do that.

Share this post


Link to post
Share on other sites
I am in the process of reading "Chris Crawford on game design".
If you really want to focus on the design of the game I would highly suggest that you read this or any other good design book.
I can guarantee you that you will find at least some major flaws in your design while reading the first few chapters.
Good Luck,
Adi.

____________________________
I rather sprintf than sprint

Share this post


Link to post
Share on other sites
What do you mean by conservative?
I don't even have any actual design implementations laid out yet, I'm just throwing around ideas, so theoretically my design is whatever is going to make it feel the best while playing it.

[edited by - ziphren on October 27, 2003 3:41:03 AM]

Share this post


Link to post
Share on other sites
Arianne is a MMORPG project. Since its based on CrystalSpace I really should have remembered to include it.

FPS limiting won''t help your problem of network bandwidth per player. Only sending packets ever 1/10 of a second might (thats what Quake2 did), or even less often depending on how much action you envision. Something to be tweaked (perhaps players not engaged in battle need less update resolution than ones in battle with NPCs, and PvP gets the most network updates/server time). In any case, its not an impossible goal in terms of getting a small MMOG up and running.

In terms of bandwidth, even if you have an extremly liberal BOFH (Network Administrator) that will look the other way, its probably a violation of your terms of use on the connection. After that, it might be in violations of the University''s terms of use on the leased connection to subhost anything. In any case, you''re probably screwed from the legal standpoint of leaving it up 24/7 with even 64 players average.

Share this post


Link to post
Share on other sites
I want the action level to be like Unreal Tournament 2003, if anyone's played that. I think I'm just going to give the 'illusion' of realtime, and have everything take place slightly after the packets are received to make the interpolation easier.

I'm just going to make the game, and if my sysadmin freaks out or if I can't host it because of their firewalls, someone else can buy the server/connection for the game. It's going to be THE SHIAT so I don't see why anyone wouldn't want to support it. Bwahahahahahahhahhaaaa! Hee heheheheheheeeheeeheee!

later,
Ziphren

http://ziphren.iuma.com
http://www.newscientist.com/news/

[edited by - ziphren on October 29, 2003 3:10:52 PM]

Share this post


Link to post
Share on other sites
Something like this is most likely possible with the Arianne tech (or similar) so long as you don''t require it to be emmently playable on a non-broadband connection. The real trick is to narrow down the player''s choices to those that are actually meaningful (whether they are focusing on attacking, finding cover, dodging, if not in direct combat, where is the player going/who are they following). Pathfinding is to be up to AI running the server probably; a BSP ut/q3/hl level system is possible to use, but not efficient. Aiming/combat might be done on an RPG-style basis, with to hit rolls etc.

I considered doing something like this with another person in a business venture, but I backed out due to extreme over-saturation in the MMORPG market.

Share this post


Link to post
Share on other sites