PaperWorld3D@FlashBelt

April 25th, 2008 by Trevor Burton

Dave Schroeder has very kindly invited me to talk at FlashBelt this year.

After meeting Dave at FITC Toronto i’m really looking forward to it. I’ll be talking about the new PaperWorld3D set up i announced in the last post as well as using the FORCE for creating complex multi-user apps.

I’ll be posting all the source for the demos i’m presenting and hopefully Jerry will charge up his battery and film the session and we can post it up on this blog for those of you who can’t make it to Minneapolis.

I’m hoping to show some demos of works-in-progress that i’m building using PaperWorld3D and FORCE so you can see what’s possible.

If you’re going to be there get in touch and let me know, or at least come and introduce yourself and let me know what your experience with PaperWorld3D has been. I’m really keen to get feedback from everyone!

Need a Multi-User Application? Use the F.O.R.C.E

April 25th, 2008 by Trevor Burton

One of the overwhelming problems with PaperWorld3D so far has been the steep learning curve. People are having trouble getting the demo to even work, never mind get to grips with the underlying principles involved.

This is a Bad Thing.

So, to try and remedy this situation i’ve looked at splitting out the important bit of the project - the part that actually manages syncing objects across multiple clients - from the framework implementation.

The result is that PaperWorld3D is now a simple library of code that handles the network layer for your multi-user application. You don’t have to jump through hoops and learn loads of new stuff just to stop getting errors thrown…. nice.

But that’s not the end of it. If you want to build a large-scale multi-user application using Red5 server with the Jedai framework and PaperWorld3D working together as your network layer. If you want to be able to quickly and easily wire up your applications using the power of Spring and Prana then there really is only one solution out there: The FORCE!

Flash Oriented Realtime Communication Engine

FORCE is essentially the framework element of what has been PaperWorld3D up to this point - this includes the initialisation mechanism, the intelligent loading mechanism, the utilities and the build and deploy scripts. But it’s quickly going to develop into so much more. So watch this space and keep your eye on the repo over the next week or so.
I’m hoping this is going to allow those of you who have been unhappy with the complexity of PaperWorld3D so far get up and running (and possibly forgive me a little?) i have been listening and i feel your pain, i’m hoping that breaking things out like this is going to make it easier for you all to get going and to understand what’s actually going on under the hood.

I’ll post again when the repo is updated and i’ll give you the address to the new FORCE project once i’ve got everything set up myself.

PaperWorld3D online demo

April 9th, 2008 by Trevor Burton

[EDIT] The online demo is down right now while i fix some of the issues that were raised - it’ll be back up after FITC Toronto in a new and improved version!![/EDIT]

I’ve just put up a demo version of the code from the googlecode trunk for you all to play with. There’s no shooting just yet i’m afraid, but that’ll be going in very soon. In the meantime you’ll just have to make do with flying around in the little environment i’ve set up.

Screenshot 1

Use your mouse to orient your ship and the ‘W’ and ‘S’ keys to increase and reduce your speed (respectively) - you ship will move forward in the direction your facing.There’s a limit of 10 users per room, so when the eleventh person joins it’ll spawn a new room.There’s no preloader/progress graphic at the moment, so you may have to wait a while depending on the speed of your connection, i’ll get some progress feedback in there soon.I’ll keep an eye on the server as we’re hoping to use this demo as a means of testing concurrency. So we can get some solid numbers on how many users the current set up can support and whether I need to tweak things server-side at all.

Screenshot 1

It could well be a little flaky depending on how many people hit the server - remember, this is a test - not a production game, so expect some issues, if you do have problems then let me know by posting at the google group http://groups.google.com/group/paperworld3danyway, enough caveats: http://92.48.67.26/publicdev/

PaperWorld3D at FITC Toronto

April 6th, 2008 by Trevor Burton

Chris Allen of the almighty Red5 has kindly allowed me to hijack a few minutes of his presentation at FITC Toronto to talk briefly about PaperWorld3D and show some of the new stuff i’m working on.

I’ll be giving a brief overview of the framework and showing a new demo that includes some very interesting new functionality that’s being worked on right now…

The video of the presentation will be published on this site and the demo will be published as soon as possible afterwards so you’ll be able to play with what you’ve seen.

If you’re at all interested in PaperWorld3D and you’re at FITC Toronto then grab me and say hi!

PaperWorld3D Code released!

April 4th, 2008 by John Grden

Exciting times indeed - VERY exciting times!!

Yahoo! just picked up the press release about the release of v0.1 of PaperWorld3D’s server and client side code! This is an incredible day - a day long remember (Star Wars love anyone?)

Thanks to the guys at Influxis and Red5Server.com, we’ve been able to see PaperWorld3D’s vision come to live MUCH sooner than we’d thought was possible. From day one these guys have seen the vision and been ultra excited about seeing and making it happen. I’m just amazed at Trevor to be honest. Like I was saying over on my post about the release, he’s stayed on target for so long and at many times, he was truly the only one who kept it alive.

My hats off to Trevor - if you could leave him a shout of appreciation here, I think he’s well deserving to hear it! So leave him a note if you’d be so kind

I’m really VERY excited about this! Not only because of Paperworld3D and where we’ll go with it, but because of the many MANY game ideas that were half flushed out and shelved because of the lack of back-end support I needed to pull them off. I’m also excited for the Flash community - this is a HUGE gift and an amazingly powerful set of libraries to easily create multi-player applications and games.

If you’d like to sign up and be apart of the PaperWorld3D team, here’s the link:

http://66.135.55.59/paperworld/

ROCK ON !!

So, what exactly is PaperWorld?

March 30th, 2008 by Trevor Burton

PaperWorld is many things - it lets you create multi-user applications, yes, but it also gives you the tools to create large games, quickly, localise them to a particular language or region, and manage everything in your workflow - so your designers don’t need to code, and your coders don’t need to design, and anyone with a basic knowledge of xml can edit a config file and setup or edit a game quickly without having to recompile and deploy.

So how does it do all this?

The basic building block of a PaperWorld application is the module - A module is made up of a set of files (referred to as ‘components’ in PW3D) - each of which has a specific purpose.

By creating these files and putting them into a convenient directory you can load them when you need them as a single block - PaperWorld takes care of the heavy lifting - you just list the modules that are needed for a game and PaperWorld takes care of it all for you.

Each module has its own conf.xml file, which describes all the files that it contains. When you tell PaperWorld3D you want to load a particular module it loads this xml file and then loads each component of the module that’s listed, so when the module is ready all the contents of these files are available to you.

That’s all very interesting, but how do i create a multi-player game?

Creating a multi-player game with PaperWorld couldn’t be easier (trust me, i’ve tried) - if you’re familiar with using Papervision3D you’ll have no trouble at all. A new type of Scene - RemoteScene - handles all the difficult bits for you - and a new type of object - PaperworldObject handles syncing itself with the server and among all the connected clients. You just have to tell PaperWorld which model your object will use:

var scene:RemoteScene = new RemoteScene();

scene.addChild(GamePlayer.getInstance().avatar);

That’s it, simple enough?

The RemoteScene registers with the server, if there’s already a scene there, it makes sure that any objects already in the scene are given to your client and presented to you. If not then a new Room is created and a new simulation starts up.

The PaperworldObject handles keeping itself updated and synced amongst the clients, so you don’t have to worry about client-side prediction, adapative smoothing, handling latency - it’s all done for you, transparently, by the PaperWorld3D framework.

There Can Be Only One.

In PaperWorld3D there is only one simulation and it runs on the server. All the clients connected to that simulation see a slightly delayed version of it. So everyone is slightly wrong, but the server knows what’s right.

When a user does something with an input device (!) like pressing a key to go forward or moving their mouse then that input is sent to the server. It’s sent as a Boolean value (like forward=true or roll=false etc. etc.) and the server interprets that input using an Avatar object.

The Avatar ecapsulates behaviour

The Avatar is a class that interprets input. So it could interpret forward=true as moving itself forward by 10 units, or it could just as easily interpret forward=true as ‘make a hotdog’ or ‘tell a joke’ - you write the Avatar so you decide what action it takes for a given input command - it can be as simple or complex as you like.

The same Avatar exists on the client and the server for each object in the scene, so the client’s local object will interpret input in the same way as the server does, it then just gets corrected when an update is received from the server.

Is That All?

Absolutely not, there’s a huge amount of functionality and cool stuff in the PaperWorld3D framework (and even more coming very soon) this post is just designed at giving you a rough idea of how things work and how easy it is to use.

If you want to know more about how all this works then there’ll be a series of articles on this blog giving you the low-down on what happens behind the scenes (pun intended) and how you can extend and build upon what’s in the libraries.

Welcome to PaperWorld!

March 3rd, 2008 by Trevor Burton

The PaperWorld blog is the place to come for news, announcements tutorials and everything else you might need to know about PaperWorld.

PaperWorld is a game engine framework for the flash platform - enabling everyone to develop realtime 3D games and multi-user applications.

“If you can do it in Papervision, you can do it multiplayer over the network with PaperWorld.”