Multiplayer online game


Server is now finally again:

Server moved:

To get the p3d click:

To play in broser:

Arena is up til it crashes.
World is disabled.

Any crash reports are welcome.




Once in a while this web is up:

Right click save as.
Download client

If server is up you can log in with random name and password. Both World and Arena are running.

If server is down you can still take a look in offline mode. Offline mode puts you straigh in world zone0. … d/download


Here is a heavily ripped offline client. … d/download

Use TAB key to change combat/menu mode. Rest is for you to discover :wink:(Most thing dont work due to its an offline test version). Any bug reports and console error messages are very appriciated.

Thank you for your time

While waiting for 1.7

No levels, no exp, no quests.
No lore, no storyline, no npc’s.
No character progression, no items grinding, no spells(0.0).
No classes, no achievements, no “can’t loot that player”.
No “must do that before i can do that”

Only time efficiency and player value(by player i mean you) in Arena or Open world.

Arena sneak peak:[/url]

so… quake! :wink:

looks decent, would you say it can support say 50-100 players at once with 150ms+ ping?

planning to release the source as an example?
looking forward to play it, anyway.

Looks quite promising!

  1. yes pretty much

  2. no

  3. Not today, but some day for sure.

Added some eye candy :stuck_out_tongue_winking_eye:

Look good. I’m trying the same thing :slight_smile: just my collision sucks atm and I have no “toons” for say just yet. Right now using just a box that has players name above their head, lol.

The networking will take the most time, trying to keep what you send simple. Don’t use words; use something like a number combo. It help lower the banthwith needed by alot.

Very nice!

If I may ask, what GUI libaries did you use? Just DirectGUI?

For collision i use ODE collide and resolving is written in python. Can run easily 100+ modelless players and i have player vs player collisions.

When i started with my project networking seemed the most complex one, but now i would say networking is the easiest one. For me its more important what and when i send rather than the format of the package.
PS i use both TCP and UDP.


First i did everything with directGUI,
then redid everithing on top of DirectLabel,
and then i rewrote everithing on top of extended pandaNode+plane geom (the words i use may not be absolutely correct),
then i rewrote everithing by using a simple plain geom :slight_smile:

And im am very pleased with the final result due to its simplicity and flexiblity.

PS only thing i use from directGui is directentry.

GUI shot:

Ah cool! Didn’t know you would get that advanced GUI layouts with a simple geom. Mind sharing a single button or something?

Thanks already.

I would recommend sticking with DirecGui as you will have a lot more people on the forum to help you.

Too see my gui you’ll have to wait

PS i use both TCP and UDP.

Good move, yea, I forgot to add that to my post. Use TCP for most of your things, and use UDP for movements. Use a custom build for your UDP packets, don’t make them 100% like TCP, but may want to have it store its packet number. This way, if the payer move one inch but that packet didnt get sent, it could resend it again. While if the player is moving, not all the packets need to get there, so maybe have it resend every other packet, or thats what I did. Seems to have a huge help in loweing the banwith and still look good.

Arena lobby + char customization:

this looks awesome. i’m especially interested in that GUI, as it seems to be very responsive and clean.

do you have a planned release date?

As im doing it alone and as a hobby, i dont plan.
Currently i wait for 1.7, for the distribution system and shadow mapping and language specific keyboard support.

What i currently really miss it to test the ping, lag, syncing of player movement but im afraid to release the code, so i wait.

The whole game graphics and code is 3.6mb, so im really hoping to make it work with the new browser plugin as well.

may i ask why?
sure, there is the ‘risk’ of other people taking parts of your code for their stuff, but maybe you’d also recieve some patches or even co-developers :slight_smile:

I would have nothing against someone taking parts of the code, im more afraid someone will take it all, as it is full client server scalable(just add some more hardware and more players can play) solution where users can add translations and exchange translation packages.
So with right distribution and marketing method it could go very big in very short time, and i could do nothing against it.
And if you think piffing up graphics or changing graphical content is hard, then think again coz i have invested into this project 7 month of understanding, 1 month of coding and 1 week of graphics.
And i really wanna see how far can i take it alone.(Kinda my crusade)

Just have patience, everything will unfold when the time is right,
and thanks for your indirect offer to help, will remember it.


As i know better now i can give you a better answer.
The nr of player and ping are not related.

Ping is related to the physical distance between two computers and how split(or tiled) is the line(nr of routers and stuff like that)

Nr of players a server can manage is related to:

  1. CPU power of the server
  2. Upload speed of the server
    Both can be a bottleneck.

In my case:
1.CPU can handle 50-150, the only question is can your CPU anf GPU handle it(usually more of a GPU problem)? Currently it definetly cant, as i have not optimized the performance nor done any LOD stuff.

  1. The network upload that my game requires is 250bytes*sqrt(nr of players) per second(thats max load if everybody is spamming every key they can as fast as they can).

so a 2v2 mach costs 1kb/sec.
a 4v4 mach costs 16kb/sec
having 50-100 players squiized in tight spot requires 625 - 2500 kb/sec upload speed.

My regular home internet has 100kb/s upload so i coud have max 20 people in a tight spot on a perfect day.

Now a single package that creates most of the load has:
one short 2 bytes, 5 floats 4bytes each.(wasd as short,left right angle, up down angle, posx, posy,posz)
Well len(data) shows me 24 bytes get sent.

I could:
Replce the first short by a signed char(1 byte),
limit the precision of angles 360/256 degree, so i could make both angles a signed char(1 byte each), multiply and round poses to 3short(6 bytes) by again losing precision, and i would get a packag size of 3signed char,3*short that is 9 bytes. (+1byte from other stuff totalling 10 bytes)

Now with this kind of a package i could run:
31 people in a tight spot, so still not enough to get into the 50-100 range.

PS. currently im testing stuff so packages can be sent no more often than 10 times per sec, if i up this the load will rise.

The answer i gave is not ment hostile or mocking, i just started to test network load, so i had the numbers in front of me.

But sad as it is, eventually stuff comes down to the hardware and bucks($) you have or some supernatural solutions that i dont know a thing about, if you want a massive game.

the gui is really impressive - I mind to know if you’ll release the source one day - I guess would be a great leap forward for this community.

It seems the biggest interest is towards the gui, so here it is(im afraid you all gonna be dissapointed).
I dont have button classes or scrollbar classes, i have only one frame class and out of that i craft everything i need.

Drag drop objects from one container to the other.
Use mouse buttons and wheel to see some logic examples.

well I never meant to give you the impression to underestimate the rest cos I see it is very tasty as well but that gui stuff is actually what I’m looking for the most actually and the best gui I’d seen so far here.

so you’re telling us that all the magic we see here is made using just that base classes?

Unfortunately yes, i was afraid you gonna expect to see a fancy pansy out of the box solution but all i have is a hammer and a nail.

My gui is - geom
My networking solution is - import socket
My collision is - OdeUtil.collide(g1,g2)

All i have is nails and hammers.