Jump to content

Just Starting Out


Clackdor
 Share

Recommended Posts

Little background. I'm a hardware guy. I like guts. Software not so much. However, I'm an avid gamer. I've been so disappointed with the recent MMORPG releases recently. I've had this idea in my head for a long time about what I think an MMO should be. However, I KNEW, I couldn't independently develop an MMO as my first project. However, I had the thought that I could strip it down and make a limited 3D multiplayer 3D game and I'm running with it. The other goal I have with this project is to advance my C++ skills because, even as a hardware guy, keeping those programming skills sharp is important.

 

I evaluated several game engines. Many were either out of my price range, lacked community support, or were underpowered. Leadwerks seems to be a great fit and I made my purchase this week. I have a 3D architecture guy, an artist, and a database guy. I seem to have a couple of roadblocks that will really deter me. The first is 3D modeling of characters. Admittedly a pretty major deficiency for somebody who wants to make a RPG. I've taken a look at some resources such as the tools on DAZ3D, which I'm struggling with. I've looked at buying models off of turbosquid.com, but I'm not sure that is right for me other than picking up some props. About the most useful resource I've found so far in this department is the models at www.dexsoft-games.com. They have animations, LOD levels and indie pricing at 30 euros. I'd love to bounce some questions off of one of you who have used their models before. Stupid stuff like can you change their armor, change their hair style/color, etc.

 

I've come up with a modest list of milestones that are essentially small projects that build upon each other. Beta timeline would be end of 2012. Timeline for through item 4 I would love to be end of 2011.

 


  1.  
  2. Create a world (nearing completion)
  3. Create a warrior running around in the world (see above)
  4. Develop a inventory and system for said warrior (props, armor, animations, etc)
  5. Network for multiple warriors running around the world
  6. ... (rest of project)

 

For networking, I'm looking at RakNet. Can anybody make other suggestions? Maybe wait for Leadwerks 3.0 and its network support?

 

/end stream of consciousness

 

Love to hear if anybody has some advice on my rudimentary plan, character modeling, networking, or being a new game maker in general.

Link to comment
Share on other sites

For networking, I'm looking at RakNet. Can anybody make other suggestions? Maybe wait for Leadwerks 3.0 and its network support?

 

I recommend RakNet. It's a big learning curve but if you just knuckle down it becomes very easy to use as I have found recently. It is a fantastic Networking API and it integrates very nicely with Leadwerks. I am currently in the process of making a tutorial series for using RakNet integrated with Leadwerks. XD

 

Oh just a suggestion. Try and get into the networking side of it as soon as possible. It is incredibly difficult to integrate networking when a lot of game features have already been implemented. Things just don't work the same way when when you add networking. << sounds crazy but its so true. For example: A simple car demo approx = 112 lines of c++. Same car demo with networking approx = 1,233 lines of c++ . So yeh big difference :(

 

BTW I agree with you about the current state of the mmo world. They seem to be very disappointing of late. Make a good one aye ;)

STS - Scarlet Thread Studios

AKA: Engineer Ken

 

Fact: Game Development is hard... very bloody hard.. If you are not prepared to accept that.. Please give up now!

Link to comment
Share on other sites

I'm using SDL_net, because it doesn't have royal fees like RakNet has, and it's better suited for MMO since it's very fast and light and you are in control what you send, each bit and byte. It fits better with LE2 also, because there is no hardcoded framework, but you can use single commands where you like, so your networked code is just about the same as your offline code, and you don't need any additional code.

 

I have some Dexsoft models too, and also Arteria3D models. Both have animated characters for decent prices.

 

Blender 2.50 is great for making your own models too, even a programmer like me can use it, and the dae export works directly via UU3D in LE2. I use also UU3D for procedural modelling, which is kinda cool since I can say millimeter accurately where I create a Cylinder, Box, or any shape, and don't have to screw around with the mouse, which usually leads to inaccurate placement of submeshes.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

I'm using SDL_net, because it doesn't have royal fees like RakNet has, and it's better suited for MMO since it's very fast and light and you are in control what you send, each bit and byte.

 

<< You control each bit and byte that is sent in RakNet as well.

<< You only pay for RakNet once you make $100,000. At which point paying for it is nothing.

<< RakNet is fast

<< It is only not light if you decide to include every single file. You only use the things you need

 

But either way I don't care. I'm sure SDL_net is good too

STS - Scarlet Thread Studios

AKA: Engineer Ken

 

Fact: Game Development is hard... very bloody hard.. If you are not prepared to accept that.. Please give up now!

Link to comment
Share on other sites

My suggestion would be not to start with a networked game. It adds complexity which when you are just starting out is hard to deal with. My suggestion would be to create a very basic single player game first so you get the ideas behind many concepts that go into making games before diving into networking.

Link to comment
Share on other sites

I'm getting the sense that Networking is actually more challenging than Modeling. Networking doesn't really scare me because I understand networking. The challenge there for me would be determining what information to send back and forth that minimizes traffic and latency and maximizes security and gameplay.

 

Modeling and animating, on the other hand scares me. I am not an artist and I think the learning curve might be high.

Link to comment
Share on other sites

They are just 2 very different things with different skills required. Understanding how networking works is generally not that hard (if you are technical to start with), just like understanding how modeling works isn't hard either (again if you are technical to start with). Actually doing the 2 though is when things can get tricky. When coding networking for a game a good portion of your code (pending you are using a library to do all the socket stuff) is coming up with "tricks" to mask lag.

 

If you are coming from more of a hardware perspective you probably do things to make sure the network is working in top shape. However there will always be lag and you probably just accept that for the most part and tell people there isn't much you can do about it so they have to wait for 2 seconds to open a file on this shared network drive. From a gaming perspective you have to do something about it as waiting even 250ms is often not acceptable. So you have to code smoke and mirrors to give the illusion that there isn't any wait time. That's really the biggest part about making network games. That and security as that can get pretty deep. Figuring out how to send data back and forth is generally the easy part.

 

I think normally when people start with networking games they go through some stages. You can send player input to the server and have both client and server run the simulation. This will lead to characters being out of sync. You then realize you have to find a way to keep them in sync, which normally means having the server (since it's the "boss") send back corrected locations to the client. You then realize you can't just move the client to these corrected values because it'll "jump" around on the screen so instead you have to smooth out the corrections over multiple frames on the client side.

 

You also realize you can't send keystrokes to the server and wait for the server to come back with where you are in the game world because that lag is to much (locally when you test it'll be fine because your ping will be like 10ms or so). I think I read anywhere over 33ms and humans can notice the lag from key press to seeing the action being done on their screen. So now you have to send the command off to the server but also do the command locally so as to avoid this input lag.

 

Then if you get into shooting or any sorts that opens up another can of worms because by the time you press your shoot button the server's version of the world is different than yours. Some common ways to handle this is storing off snapshots of the world for the last x ms on the server so when the client sends a shoot msg you can "rewind" the server world to see where everything was at the time (by using the ping time of the sent command as well) to see if the client hit something.

 

If you have ever played an online RTS some will mask lag by running an animation locally of the unit you said to do something. The animation time is to mask your command being sent to the server and waiting for the reply. AOE did this. When you would give a command your little guy would salute and say "yes sir" which took like 1/2 a second and it was there to mask lag.

 

So just some info on what to expect when trying to make a network game.

Link to comment
Share on other sites

Hi - I'm the forum lurker, waiting till the time is right to jump out of the dark corners to start creating 'my game'.

 

I just wanted to thank you guys:

Clackdor - it's a nice thing to see how you plan it, from where you come, and where you wanna go.

It's good to be upfront and honest to the people (and to the self of course).

 

Rick - your post was the most compact but also comprehensive and very useful article I have ever read about any important subject.

Thank you very very much!

 

Clackdor, one more thing:

From my projects, I can tell you: listen to the guys telling you to start small.

The main problem is the motivation and the dissipating of ones energy with details.

So start small: "ship" the stuff you have done, reward yourself, iterate to the next level.

 

Maybe you can also read lums ('Metatrons') tutorial about the guess-a-number game, which is a basic 3d game with easy play procedures you can follow.

I would really suggest starting with something very easy - once you 'got the moves' you will advance faster.

 

I wish you best of luck.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...