The Future of MOULa

Announcements and discussion regarding any projects related to Cyan Worlds' Plasma Engine including (but not limited to) CyanWorlds.com Engine, Drizzle, OfflineKI, PyPRP, and libHSPlasma.

The Future of MOULa

Postby phoenix » Fri Jul 15, 2011 12:31 pm

Shorah All

With my first age being written and working on the animations for crawling, and eventually other animations to add a bit of life to the avatar, there are a couple of things I think it is worthwhile to highlight as the open source community starts to run full steam ahead with the development of the MOULa code from Cyan. Cyan created an epic that not many games compare to. They made it non-violent and intellectually stimulating, engrossing and beautiful, with a deep history to the story. They truly did excel at what they created, then they chose to give it into our hands.... incomplete! The things that are missing in MOULa are obvious once I mention them, because not one player has not experienced it. So bear with me as I detail the short fallings with MOULa.

Short fallings:

Lag -
If one thing of the few things we really have to fix to make MOULa truly an exquisite open source game, is for our coders to focus on the lag issue as a first priority. When playing online, whats the point if your mouse hangs for a second or two, or you are typing a message and the screen freezes. You are in mid step across a boulder and suddenly nothing happens, or reaching for a switch and you get hit by screen freeze.

Networked Game coordinate system -
This is really odd to watch in the game, especially in multi player. Your buddy is running in front of you, then suddenly he is a few feet to one side, then suddenly a few feet to the other running at a tangent, then running straight again. This really breaks the continuity of the game, and for someone coming to MOULa for the first time, they would rather go play another puzzle game that does not have this issue. How many times do I see a buddy run toward a cliff and see him fall off, but then a second later, he is standing next to my avatar.

Guys... all features aside, the game needs this like a heart bypass. I may be a writer with limited programming skills, but where I excel is seeing things for what they are, and having foresight. The engine would be almost perfect if it was not for these two issues. I have worked in the film industry for over 6 years and continuity is a major issue when trying to convey a story. every time lag or jumping coordinates get forced on a player, the continuity is broken, and the world crumbles in the mind of the player.

I really want to encourage you guys to fix this. Everything else really takes second place to this if you see it for what it is. This game will exist because of the hundreds if not thousands of fans that add their value to it, but right now it is only the hard core coders that can obliterate these two nightmares from out of the game.

Later

Phoenix
User avatar
phoenix
 
Posts: 88
Joined: Wed May 19, 2010 2:29 am

Re: The Future of MOULa

Postby Chacal » Fri Jul 15, 2011 2:10 pm

Quite true.
Those two annoyances can be reduced, but they are inherent to game networking and cannot be eliminated altogether.
All clients in a networked game are sending and receiving updates to and from the server.
1- Lag is caused by the client processing the update -- applying changes to internal variables, writing to local files, changing the rendered scene.
Lag can be reduced by more efficient processing, upgrading the client CPU, graphics and I/O channels, caching local writes, caching changes outside of the visible region.

2- Rubber-banding (the sudden moves of object) is also caused by the client processing the update when client-side prediction is used.
Client-side prediction is used for smoother updating of objects positions as seen by the client.
If you see an avatar running, without client-side prediction its position would be updated only at each world update from the server, resulting in jerky movement. To compensate, the client updates the position more often, predicting the new avatar position as a function of last position, direction and speed. However the distant player's actions are not so predictable, so when the real avatar position is received from the server in the next update, it is often different from the predicted position. Rubber-banding is caused by the client suddenly redrawing the avatar at the real position.
Rubber-banding can be reduced by more efficient or intelligent prediction, more efficient collision detection on client, more efficient world updates from the server (for example, updates to player position and vectors could be sent more frequently than other updates, packets could be optimised, etc.), more frequent world updates from the server (thus impacting traffic and CPU), more bandwidth, more server CPU and memory, more distributed server archtecture, etc.

It has always been a mystery to me how I can play Battlefield 1942 with 63 other players from all around the world, running around and driving tanks and flying planes, with bullets flying everywhere (each bullet being a discrete object being updated), and see much less lag and rubber-banding than in Uru. On top of that, all position calculations and collision detection is done by the server itself, to prevent cheating (in the case of Uru, it would prevent players from using fly mode).
I guess it has been done more efficiently.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: The Future of MOULa

Postby Tsar Hoikas » Fri Jul 15, 2011 4:31 pm

The subheading "Lag" has actually been fixed in our fork of CWE (by yours truly :P). Unfortunately, Cyan has no time to fool with trivial things like patches for MOULa at the moment.

Chacal: You might be interested to know that many of those dead-stop lags are due to a log buffer being flushed because someone named "Tye" put a log message ("Tye: They still haven't fixed getSaver and getSaverID!") inside a for loop.
Image
Tsar Hoikas
Councilor of Technical Direction
 
Posts: 2180
Joined: Fri Nov 16, 2007 9:45 pm
Location: South Georgia

Re: The Future of MOULa

Postby Stucuk » Fri Jul 15, 2011 6:31 pm

Tsar Hoikas wrote:Chacal: You might be interested to know that many of those dead-stop lags are due to a log buffer being flushed because someone named "Tye" put a log message ("Tye: They still haven't fixed getSaver and getSaverID!") inside a for loop.

If possible its best to log nothing(Well apart from error messages which are only ever logged once). I found out the hard way years ago that debug log messages can cause alot of lag.
Image
-Stu
Stucuk
 
Posts: 45
Joined: Wed Jul 14, 2010 5:29 pm

Re: The Future of MOULa

Postby Chacal » Fri Jul 15, 2011 10:41 pm

WTF?
I guess it'll go under "optimization".
Good find Adam!
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: The Future of MOULa

Postby phoenix » Sat Jul 16, 2011 9:01 am

Hi Guys

Your responses are exactly the kind of power the open source community wields over software. Your replies are very informative, and thanks with helping me understand rubber banding. Its good to learn something new every day!

I may not be a hard coder with the skill you guys have, although I do think like a hacker! (the prestigious title on the programmers of old who believed in efficient and fast code -- despite the fact that the word came to be bastardised as a person with criminal intent) I have cut my teeth on assembler, c, c++ and other languages but tend to find my niche in seeing the big picture and sculpting stories.

When it comes to rubber banding, I have also seen some very good games where this does not happen. The open source "ryzom" has beautiful scenes where you can be running behind a player and it is absolutely seemless! It really keeps the story together. Ryzom also handles the lag in a unique way. When lag hits, the avatar is forced to stand still on the spot, but sound is unbroken, YET the avi can still turn around and look at things, and the general scenery still runs its animations. So yes, it has been done.

What is of real discomfort is when MOULa breaks the sound continuity and the screen freezes. That is like the feeling you get when you went out to hire a dvd from the store, you get home, make the popcorn, pour the drinks, sit down to enjoy the movie, and you cant get past the intro because the dvd has an invisible scratch. We all know what that feels like. Happy camper goes to crappy camper!

When I think of optimisation there are 3 areas that inter-relate in MOULa or any mmorpg.

1) The server side positioning system
2) The network handling and bandwidth stats
3) And how the client responds to interruptions.

The server side positioning system
If uru did track position in realtime to an absolute x,y,z instead of predictive x,y,z, it would avoid a horribly expensive dev cycle of trying to code new predictive algorythms. The timeline on that could be immense! Is it not feasible to trim out predictive "vectoring" in favour of an absolute x,y,z tracker on the server? This would effect the following two items

The network handling and bandwidth stats
As low as Uru's bandwidth usage is, I am still surprized that although the client has all the content it needs, that the connection is still so relatively heavy. I have checked the mmorpg bandwidth stats and MOULa does come in as one of the lightest, which is good, but still there is room for improvement, since all content is either already client side or updated to the client as the game loads. MOULa should aim for the lightest and tightest footprint, so that someone connecting to the server from his pc, (while using his cellphone or wireless iburst as a modem gets absolutely smooth game play) Some countries do not have adsl, and other countries still have the old internet cap. Our fan base encompasses all these people and their connection types.

And how the client responds to interruptions
The MOULa client needs to deal with interruptions intelligently. Firstly, Audio must never be broken!! It confers the idea of bad quality, even though the content may be great. This I have first hand experience of in my film making. I would rather have crappy footage and great audio, than great footage and crappy audio. This is the rule of our media. To have both is obviously the big cheese!! It is the audio that sells the illusion. Without it the fantasy crumbles. (Obviously the screen freezes are also a pain in the rump, makes it feel like a scratched dvd - the result is cold popcorn, a trip back to the dvd store, complaining to the dvd guy, waiting for a new copy, BAH!)

These really are important issues that affect our fan base. Lets keep this topic open and start working on a roadmap.

Later

Phoenix
User avatar
phoenix
 
Posts: 88
Joined: Wed May 19, 2010 2:29 am

Re: The Future of MOULa

Postby Chacal » Sat Jul 16, 2011 10:04 am

phoenix wrote:If uru did track position in realtime to an absolute x,y,z instead of predictive x,y,z, it would avoid a horribly expensive dev cycle of trying to code new predictive algorythms. The timeline on that could be immense! Is it not feasible to trim out predictive "vectoring" in favour of an absolute x,y,z tracker on the server? This would effect the following two items


Actually I have no idea how the Uru client does it, I have not looked at the code and i doubt I would understand it. But it is pretty much the standard way of doing it. It seems to me that doing what you suggest would be terrible for players with bad connection to the server.

phoenix wrote:As low as Uru's bandwidth usage is, I am still surprized that although the client has all the content it needs, that the connection is still so relatively heavy. I have checked the mmorpg bandwidth stats and MOULa does come in as one of the lightest, which is good, but still there is room for improvement, since all content is either already client side or updated to the client as the game loads. MOULa should aim for the lightest and tightest footprint


That part is easy. There is a finite set of data needed for each object, player avatars being the most complex (x-y-z position, x-y-z movement, x-y angle, current animation, visible parameters (hair, clothing, etc). It's pretty straightforward. In light of what Adam found, I wouldn't be surprised if the problem wasn't simply bad coding instead of bad optimization.

phoenix wrote:I would rather have crappy footage and great audio, than great footage and crappy audio. This is the rule of our media.

It's like videoconferencing. You can live with a slideshow as long as the audio is good.

phoenix wrote:Lets keep this topic open and start working on a roadmap.

I'll leave that to you -- I just enjoy talking about the subject on a freelance basis. The devs will obviously be interested in any suggestion you put forward.
Chacal


"The weak can never forgive. Forgiveness is an attribute of the strong."
-- Mahatma Gandhi
User avatar
Chacal
 
Posts: 2508
Joined: Tue Nov 06, 2007 2:45 pm
Location: Quebec, Canada

Re: The Future of MOULa

Postby Tsar Hoikas » Sat Jul 16, 2011 2:07 pm

Uru sends the input state (keypresses) across the network along with some state regarding orientation, acceleration, etc. that is common to all physicals. Rubber-banding wasn't nearly an issue in UU like it is in MOUL because the client/server was designed to deal with lost, duplicated, and out-of-order data back then. The network programmer in MOUL was really and truly terrible. He is the reason we don't have official native Mac clients and linux servers.
Image
Tsar Hoikas
Councilor of Technical Direction
 
Posts: 2180
Joined: Fri Nov 16, 2007 9:45 pm
Location: South Georgia

Re: The Future of MOULa

Postby phoenix » Tue Jul 19, 2011 10:26 am

If you look at what we inherited anyone wanting to jump into age writing is swamped with navigating a variety of versions that can make a persons head spin right off its shoulders. And each version has its major issues.

We have:

1) Ages Beyond Myst which can be extended to "The Path of the Shell" (The equivalent of Complete Chronicles) but limited to single player unless updated with a patch (eg: deep island - one of many).
2) Until Uru (correct me if I am wrong, but the online update of ABM-TPOTS)
3) MOULa the first release of the mmorpg engine from Cyan (corrections welcome)
and
4) The current version of MOUL with Cyans server running through Amazon (loads of lag, broken sound, screen freeze, inefficent server usage with up to 6 connections on two or three different servers from launch to play)

Even with the avatar emote, we can spend hours animating new movements but cant test it, because it only runs in MOUL, and we dont have an offline MOUL sandbox yet.

The dev cycle of this has already proven to be quite expensive for us, because when we could be sharpening one flavour, our tools are constantly in migration. Take the latest version of Blender. As great and functional as it is, I gotto now learn a whole new interface from scratch, pushing my dev cycle back even more months. I cant rotate the scene the way I used, have to remember a whole new set of layouts, and on top of that switch between versions of Blender to get things done. (I am not joking when I say I have 4 versions of blender installed, and 2 versions of Uru split into 4 or 5 modifications) For me that is madness. Open Source is great, but unless we have a stable dev cycle, we end up pushing people away rather than attracting them. The tools have to migrate a little slower to allow people to firstly adapt, and secondly to be creative. No creativity = no content. Its a left brain versus right brain thing. The one you feed is the one that grows.

I love Open Source and the proof is in my software collection. I reckon 90% of my software is open source, because it gives me the kind of freedom I want, and I dont lack anything that may be on the market these days. But when versions are released for the sake of coding rather than stable usage, we end up with new gui layouts like the latest version of MS Office. It does exactly what the old one did, just they wanted to brand it as NEW! so they jumbled up everything and confused the hell out of our mothers and fathers who are getting old and set in their ways. BTW, I been using Open Office 3.1 for years now. I know it, it is powerful and can do whatever I need it to do. The buttons stay the same, and its stable.

This brings me back to the question about a roadmap. Since the hard core fans like yourselves are committing to a GoW CWE version, it would be great to see what you guys are really thinking, as in a summary page for the engine, tools and content. Reading through threads on the forum with conflicting viewpoints and heated arguments over features is all great but it would help if we had a concise summary of what you guys are planning. Then it makes it worth it.

It would be so useful to have a central GoW repository, where you can download tuts, tools, engine, code, content... whatever. And with the forum in another link on the site.

From what I can glean so far GoW is dropping ABM TPOTS development in favour of CWE with Dirtsand and Blender 2.57 as the level editor. But you can imagine how confusing it is for a newbie to wade through which thread is for what version. They end up trying stuff that wont work with the setup they have. They spend all that time trying it out, writing on forums, just to have someone tell them a few days later, "Oh sorry, that wont work for that version!"

I can fully understand that various versions can be aimed at certain levels of age enthusiast, like...

1) Newbie: ABM-TPOTS with Blender 2.49b and alcscript in single player mode (helps em get the feel of the age building)
2) Semi-Intermediate: extending ABM-TPOTS with SDL and Python
3) Intermediate: Patching and connecting to 3rd party shards, Setting up your first shard
4) Advanced: Running your own CWE client and dirtsand server

Sure, it would work but it makes re-learning tedious because the rules change. What you learn in ABM-TPOTS you cant apply in MOULa. Top that off with a new interface everytime blender upgrades, you spend half your life learning new interfaces instead of using really stable tools that are designed to get you building!

That is why a roadmap is so important. It makes that dev cycle efficient!

My vision for the engine is to run my own server with completely original content that ties into the Cyan content. When a player reaches a certain book in the Cyan version, they would link to my shard to experience a different aspect of the same story. They would be able to link back from a book on my shard to relto on the Cyan server, or to another shard. But as for my shard, it would be 100% original content. No Relto, Bevin, Aegera, etc.

Now extend that to other shard servers. With each running their own content, linking into Cyans story, we get a truly huge game play experience.

GoW has truly surpassed any other community age development I know of. You guys have re-coded the engine to use the more recent directx sdk of 2010, your pyprp is constantly evolving (now at version 2), blender has been wrapped for URU (so to speak) at version 2.57 and you have a killer forum that covers every subject under the uru sun.

I look forward to the day when we can download an GoW-CWE-Dev-Pack, ready to install with all the essential goodies in their rightful place.

GoW-CWE-Dev-Pack
1) CWE engine with shard jumping ability
2) Dirtsand in executable form, on dhcp or fixed ip, "with sandbox mode"
3) Blender - whatever version that keeps us creatin' and not configurin'
4) All the tools and utilities in a standard heirachy relative to what they do
5) GoW tutorials from building you own "relto" (ie: your own "landing age" or "home page", and not Cyans one) to running your own shard in a structured and concise format.

Please guys, can we have a roadmap. I got ages to write, but spend more time learning new tools because the tools they keep a-changin'!

Phoenix
User avatar
phoenix
 
Posts: 88
Joined: Wed May 19, 2010 2:29 am


Return to Plasma Development

Who is online

Users browsing this forum: No registered users and 0 guests

cron