(MMOG) A house is a challenge, expecially when ur 2 inches tall

Started by
24 comments, last by Jotaf 18 years, 2 months ago
I didnt say it would be a great beta when i said beta i ment the ability to walk around on a server sheesh! Ive been learning programming since i was 7 I think i can do it, plus i have my dad who is a college professer who teaches software engineering to help me figure things out along the way. He has been teaching me since i was 7 ive done many projects I started in command prompt, moved to 2D, and ive done a couple 3D projects. Ive been studying networking and I worked out my server structure, based off of what i read in a book and wrote code for it. This is a learning experience! But everything needs a concept! This was my concept (Tiny people). Like Mr. Trump said "If your thinking you mine as well think big." Im writing my game in c++ and using winsock for networking. Im not using a studio im writing my own classes that wrap DX and Winsock into what i need ill be fine but thx for the point to mip mapping. ill go look at that, your first post was helpful this one instead of insulting me maybe you could point me in the right direction. I was trying to think of solutions to the LOD problem and posted my solutions that i thought of... if you didnt like them you could of posted how you would have solved it... thx alot any1 else got some better advice?
Advertisement
I'm glad to hear you've got a solid background.

I'm not trying to be insulting - I'm just a little blunt. If I was being insulting, you'd know it. I think you're being a little naive, and if I were in your position I'd rather find that out sooner than months into a project.

I'm standing by what I've said. You're not going to get it done from concept to working beta by the time you finish high school. This is not a put down, it's just a question of how much work you think a beta is - and it's substantially more than walking round on a server. Professionally I know exactly how hard MMO development is.

Given your background I would expect you to get to what I (and I think many others) would call an alpha version - and for someone your age this is a very good achievement, even with the help of your college-professor father:

1) Working client->single server infrastructure, including login (possibly secure). Graceful logout / disconnect. Persistence to MySQL database or files.

2) MySQL / other SQL database interface classes. Ability to run queries by demand. On server caching of appropriate / relevant data.

3) Zoning by client groups, grid spatial division: Sort network traffic by groups (rooms) MUD styley. Allow /tells and /finds.

4) Chat functionality - general chatter localised to spatial region, /tells go anywhere.

5) Entity interaction - expose unique entity identifiers. Fast lookup to server-side entity object.

6) Simple mob behaviour (agro range, allowable movement range, triggered script).

7) Simple behaviour scripting (day/night cycle, mob movement)

8) Simple combat / damage system - weapon damage, fall damage, entity hitpoints.

9) Experience / progression mechanism.

10) Simple 3D client, using placeholder assets. (DX? OpenGL? - use 3rd party engine - maintaining a 3d engine takes more time- look at Ogre, Irrlicht etc. and use the associated importers/exporters to speed up asset production)

11) A 9 zone world, and appropriate assets for those zones.

12) Use stripped-down (non-platform specific) 3D engine to form server collision detection routines. (Since most areas are flat (floors) you may not wish to use heightfields)

13) Implement A* for routefinding for players and mobs using /follow functionality or similar.

14) Have implemented world simulation (update chain) code SEPARATELY to network code at all levels. If you don't segregate these, you'll end up having to rewrite most of your world code to get your server to scale to a multi-box or process architecture.

That about wraps up 'alpha'. Your beta stage should be considered once you have the combat and progression methods firmed up, and as balanced as you think you can get them, the login procedure and game-critical mechanics secure, a player load calculated, a means to host your server (by the time you're done, at home is probably going to be fine), and a means to distribute the client to your beta testers.

The simple design and programming know-how to achieve this is college-level stuff. Your father will be of invaluable assistance. Writing code out of a book without understanding how to properly integrate it into a project of this scale will harm rather than help you, even if you call it a 'learning experience'. There's learning, and learning wrong.

Ideally, you'll have a good idea about how to achieve EVERY item on the list above before you start designing your implementation. MMO's are precisely the sort of complicated project where design documentation is king. That isn't to say you should know implementation level details, but you should know how each part works in relation to the others, and the whole.

I try to give good advice, and my final piece to you is to try to get your english under control. Proper sentence structure and use of paragraphs tend to aid readability. You'll need that for your documentation, your posts here, and your code.
Winterdyne Solutions Ltd is recruiting - this thread for details!
Thankyou for the better post Winterdyne! I'm going print out that list of things. Some I've thought of, some I havent. I took a look at the mip mapping that you mentioned. The tutorial I saw used a kitchen tile as the example to make things easy to understand. I probably should call it alfa not beta sorry for that... I cant thank you enough for that wonderful list of things. I was thinking about the 3rd party graphics engine to make my life easy. Then I could worry souly about the networking aspects with little trouble with the Grapics. But I again thankyou for the list of things I'll look at the engines tonight.
It sounds like a great idea.

2 inches could perhaps be too big? It would be quite easy for a human to see?

Anyway,it could be great. One level could be the plumbimg pipes, only avaiable at certain hours when no water is running. You could be able to get in tanks in the children's rooms and drive around and shoot. You could climb the stairs like mountains.

It could end up as, each server, is a street. When you start a character, you and some others start in one house, others in another, and so on. Player versus player could exist between different houses, or perhaps between both sides of the street. Players could fight together to beat something like a cat, that will then join their team. Elastic band sling shots could be made as seige weapons. Players must also keep there houses clean, or more cochroaches could invade that house.

Weather could pose changes too. You could make a season system where each season is something like 3 days each? In winter snow forts could be made, in spring rain is more likely and a flood of the street could lead to battles in boats.
As others mentioned it sounds very much like the borrowers, but I'm well aware you may never have seen the movie or tv series and come up with this idea on your own. In which case you should look them up. Could be very good inspiration.
I agree with OdHero that 2 inches is too tall, better make it 1 instead :P
They could still use a button as a shield and a pin (one of those used for sewing) as a pretty big sword, or spear :)

I'm pretty impressed by your skills at the age of 15, but I've been there (except I was 17 or something :P ) and the best advice I can give you is that multiplayer complicates things by a factor of 100x or more. Really! You could, however, focus on making a freeform single-player game, and THEN, after it's done, consider the next step, making it multiplayer! I assure you that a complete 3D single-player game will give you enough trouble already :)

About the LOD problem, I have a suggestion that might make it a lot simpler.

Have a big mesh that represents the whole room, without all the small details. A generic kind of thing. Seeing a wall and closet from far away doesn't require a lot of polygons. They're huge of course, but DX won't mind this as long as there isn't a lot of detail!

Then, load and unload objects as they enter or leave a sphere of influence around the player. Consider a progressive alpha blending effect in the future to improve this. The objects are things like the little gnomlings' houses, the gnomlings themselves, monsters, trash, etc.

This topic is closed to new replies.

Advertisement