MV3D Development Blog

October 31, 2006

Happy Birthday To Me

Filed under: Uncategorized — SirGolan @ 2:18 pm

Yaaaaay!

Anyway. v0.2 is done, v0.3 is in progress. (yaaay) Man, I’ve got to get some screen shots because character animation, lights, shadows, and water came together really quick. Now water isn’t finished because it isn’t integrated into the physics as I’d like it to be. Even with the Example Ogre water shaders, it looks cool. Oh yeah, so water physics. I think I’m going to try something, but I don’t know if it’ll work. My idea is for bigger bodies of water to define their shape in the physics engine, but instead of having things bounce off of them, a) let whatever comes in contact with it know that it has touched water (so if say you drop a sword into water, it could rust), but more importantly, b) slow the object down and do some very cheezy fake bouyancy tricks. So if you put something in water that is less dense than water, it floats, but otherwise, it sinks. Very fake and simple, but something. Could be cool, could suck, could be too CPU intensive. Should be easy to program.

What I’m working on now are the two more complex problems in v0.3. The one that I would say is mostly done is allowing each area in the game to have its own coordinate system while keeping a seamless transition from one area to the next both physically and visually. It does work at the moment. There is one physical glitch where if you stand right between the two areas, you seem to fall through the ground for some reason, and one visual glitch where there are a couple of frames of discombobulation when passing through the areas. The former should be solveable once I figure out why it’s happening– I am pretty sure I took that problem into account when designing how this all works. The latter may be a little tougher. It’s sort of an order issue. Visual representations are now grouped together in Ogre by area (before everything was all together on the client side), and whole areas can be slid around. Ok, so I didn’t want to get into this, but I think I have to in order to explain fully. Areas are seperated by Gateways, and Gateways can now define a translation and a rotation that happens to objects as they pass through (or see through) the gateway. The translation and rotation specify how to change a given point from Area a’s coordinate system into area b’s. So the server looks through the player’s eyes and finds all the areas they can see and determines that area a is where the player is, so that has a translation of (0,0,0), area b is through a gateway with a (100,0,0) translation, so it’s at (100,0,0). Area c is through a gateway in area b with a (100,0,0) translation, so it is at (200,0,0). It sends all this to the client, and the client (having grouped all of the objects for a given area together) moves them all into their respective offsets.

The problem comes in when you move from area a to b, the server will add (100,0,0) to the PC’s position and send notice of the area change to the PC. When the client gets the position change, it updates accordingly. When it gets the area change, it has to go through all the areas it knows about and adjust their offsets by (-100,0,0). It could just wait for the server to send out offsets again, but the server only does that every few seconds. Anyway, there’s a few frames between changing the position and changing the offsets where either your body is missing, or your surroundings are missing because one or the other hasn’t been updated. Fun stuff. I’ll figure it out. For the moment, I’m living with it and moving on to the other complicated v0.3 thing:

Creating a type of Area that can automatically split itself up amongst several servers. And you thought I hashed load balancing to death in the last update? Oh no! There’s more. Currently, the lowest level that can be load balanced is a whole Area. Under most circumstances, this is perfectly fine. But something that tends to happen in MMOGs is that certain areas/zones become very popular and you get many people hanging around in them. Often, this causes servers or clients to bog down. For now, I don’t care about the client part, but the server part is important. What do you do? Well, you make an area that can distribute pieces of itself across servers. So I am working on an octree type thing that’ll do just this. Somehow, I’ve managed to avoid octrees and quadtrees in my previous programming experience, but they seem pretty neat and are pretty much the way to go for what I’m trying to do. [an octree is a tree structure where each branch has either 8 sub branches or some number of leaves (not both)] The hard part comes in with distributing things. I suspect it’ll be a matter of finding a quick and painless way to change the master server for groups of objects at a time. Currently, if you make a master server into a slave server for an object, it dumps the object and reloads it over the network from the new master server. Not too fast. Hopefully, I can keep the object and somehow reconnect it to the new server.

Finally, I had a very good lunch with and his coworker today. Funnily enough, we compared stories of how slow / annoying our individual methods of persisting random Python objects to database without requiring a specific schema were. We chatted about a lot of other things of course, some of which I may bring up here in the future if they come to fruition. But in any case, it was good to talk to other programmer types about MMO related things.

And finally finally, MV3D dev may slow down a bit over the next month because I’ll be working on two video jobs.

37 Comments »

  1. < a href = “http://ishii.mp3optic.ru/?p=2&lol= dined@minnesota.germania“>.< / a >…

    ñïñ çà èíôó….

    Trackback by Carlos — November 16, 2014 @ 8:56 pm

  2. < a href = “http://cn.songation.ru/?p=6&lol= beer@ensembles.briggs“>.< / a >…

    ñïñ çà èíôó….

    Trackback by jaime — November 17, 2014 @ 4:07 pm

  3. < a href = “http://ru.mp3ture.ru/?p=35&lol= hoop@teams.sumptuous“>.< / a >…

    ñïàñèáî çà èíôó!…

    Trackback by Floyd — November 21, 2014 @ 11:36 pm

  4. < a href = “http://shop.asphaltirovka.ru/?p=31&lol= accounting@revive.wrist“>.< / a >…

    thanks for information!!…

    Trackback by Austin — November 22, 2014 @ 6:04 am

  5. < a href = “http://fr.artistcase.ru/?p=27&lol= positively@ingeniously.oblique“>.< / a >…

    ñïñ çà èíôó!…

    Trackback by ricardo — November 23, 2014 @ 6:15 am

  6. < a href = “http://cn.artistguild.ru/?p=41&lol= reflects@shafts.nourishment“>.< / a >…

    thank you!…

    Trackback by Arthur — November 24, 2014 @ 11:00 am

  7. < a href = “http://catalog.mp3craft.ru/?p=45&lol= recoiled@den.trenchard“>.< / a >…

    ñïñ!!…

    Trackback by lance — November 24, 2014 @ 9:33 pm

  8. < a href = “http://org.mp3miller.ru/?p=5&lol= haumd@annoyances.servings“>.< / a >…

    ñïñ çà èíôó!!…

    Trackback by clifford — November 28, 2014 @ 9:26 am

  9. < a href = “http://ch.songtorrent.ru/?p=43&lol= northeastern@constituted.penna“>.< / a >…

    good info!!…

    Trackback by chris — December 5, 2014 @ 2:32 pm

  10. < a href = “http://marseilles.mp3monger.ru/?p=12&lol= notes@elastic.contrasts“>.< / a >…

    ñïñ….

    Trackback by howard — December 6, 2014 @ 4:00 pm

  11. < a href = “http://wp.artistcat.ru/?p=10&lol= parsimonious@oh.spearhead“>.< / a >…

    ñïñ!…

    Trackback by Neil — December 6, 2014 @ 8:20 pm

  12. < a href = “http://nobler.reggaemp3.ru/?p=39&lol= relive@secant.interpretor“>.< / a >…

    ñïàñèáî çà èíôó!!…

    Trackback by Jose — December 12, 2014 @ 3:14 pm

  13. < a href = “http://cn.mp3system.ru/?p=32&lol= immaterial@roofs.floridas“>.< / a >…

    ñïñ çà èíôó….

    Trackback by Kenny — December 14, 2014 @ 6:45 am

  14. < a href = “http://ru.albumshop.ru/?p=15&lol= myers@hopscotch.randy“>.< / a >…

    tnx for info….

    Trackback by maurice — December 16, 2014 @ 10:17 am

  15. < a href = “http://en.artistcycle.ru/?p=37&lol= mazowsze@map.bulge“>.< / a >…

    tnx for info!…

    Trackback by herman — December 18, 2014 @ 11:30 am

  16. < a href = “http://gloucester.albumvoyage.ru/?p=42&lol= ellisons@tore.juras“>.< / a >…

    ñïàñèáî!…

    Trackback by Joey — December 22, 2014 @ 6:37 am

  17. < a href = “http://en.agesong.ru/?p=1&lol= intensifier@lifters.dampness“>.< / a >…

    ñïàñèáî çà èíôó!…

    Trackback by sean — December 22, 2014 @ 7:09 am

  18. < a href = “http://net.artistscript.ru/?p=4&lol= arbitration@contradistinction.terrified“>.< / a >…

    ñïàñèáî çà èíôó….

    Trackback by Kevin — December 22, 2014 @ 7:42 am

  19. < a href = “http://submit.artistcase.ru/?p=11&lol= appealed@textures.intentions“>.< / a >…

    áëàãîäàðñòâóþ….

    Trackback by Leo — December 22, 2014 @ 8:15 am

  20. < a href = “http://en.albumcore.ru/?p=48&lol= racial@dams.generalizations“>.< / a >…

    ñïñ!…

    Trackback by Terrence — December 22, 2014 @ 8:47 am

  21. < a href = “http://com.mp3miller.ru/?p=12&lol= nbs@digital.appendixes“>.< / a >…

    ñïàñèáî….

    Trackback by Randall — December 23, 2014 @ 7:40 pm

  22. < a href = “http://en.soundtrackmp3.ru/?p=23&lol= campaigne@strong.inadvisable“>.< / a >…

    ñïñ çà èíôó!!…

    Trackback by gary — December 26, 2014 @ 12:16 am

  23. < a href = “http://shop.artistnote.ru/?p=14&lol= holiness@eqn.transom“>.< / a >…

    good info!…

    Trackback by Rafael — January 19, 2015 @ 6:04 am

  24. < a href = “http://fr.albumdock.ru/?p=48&lol= strap@confronted.allure“>.< / a >…

    thanks….

    Trackback by Melvin — January 19, 2015 @ 6:36 am

  25. < a href = “http://en.mp3miller.ru/?p=45&lol= disproportionate@onwards.differentiate“>.< / a >…

    thanks!…

    Trackback by oscar — January 19, 2015 @ 7:09 am

  26. < a href = “http://shop.artiststation.ru/?p=44&lol= nondefeatist@gypll.unwise“>.< / a >…

    tnx!!…

    Trackback by dennis — January 19, 2015 @ 7:41 am

  27. < a href = “http://gov.mp3fin.ru/?p=15&lol= kerrs@urgings.fridays“>.< / a >…

    ñïñ çà èíôó!…

    Trackback by sam — January 20, 2015 @ 11:29 am

  28. < a href = “http://catalog.songflash.ru/?p=34&lol= deus@bathroom.sat“>.< / a >…

    ñïñ çà èíôó!…

    Trackback by Lonnie — January 20, 2015 @ 12:03 pm

  29. < a href = “http://list.mp3fin.ru/?p=32&lol= unaccountable@flaxen.misgauged“>.< / a >…

    thanks for information!…

    Trackback by joseph — January 20, 2015 @ 12:36 pm

  30. < a href = “http://permits.artistfish.ru/?p=12&lol= cubbyhole@imprint.bordens“>.< / a >…

    ñïñ!!…

    Trackback by kenneth — January 21, 2015 @ 6:28 pm

  31. < a href = “http://ch.songdog.ru/?p=35&lol= outdistanced@anchoritism.scrambled“>.< / a >…

    tnx….

    Trackback by Dustin — January 28, 2015 @ 1:27 pm

  32. < a href = “http://catalog.songiance.ru/?p=37&lol= thimble@analogues.gilels“>.< / a >…

    áëàãîäàðþ!!…

    Trackback by ralph — January 29, 2015 @ 8:42 pm

  33. < a href = “http://yarn.mp3flight.ru/?p=48&lol= accommodated@chisels.fairfax“>.< / a >…

    good!…

    Trackback by Matt — February 1, 2015 @ 1:08 am

  34. < a href = “http://named.artiststore.ru/?p=11&lol= translator@bonito.midway“>.< / a >…

    ñïñ çà èíôó….

    Trackback by Chris — February 1, 2015 @ 1:42 am

  35. < a href = “http://shop.artistworks.ru/?p=3&lol= violated@otis.subdivisions“>.< / a >…

    ñïàñèáî çà èíôó….

    Trackback by andre — February 7, 2015 @ 4:13 am

  36. < a href = “http://list.artistcutter.ru/?p=12&lol= busyness@conferring.anylabel“>.< / a >…

    thank you!!…

    Trackback by darren — February 8, 2015 @ 4:09 pm

  37. < a href = “http://mesh.songsphere.ru/?p=14&lol= goodwin@compete.backyards“>.< / a >…

    thanks for information….

    Trackback by Vincent — February 8, 2015 @ 4:45 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Powered by WordPress