That isn't too logical just because it's a low end computer, the only thing that should happen there is the land being downloaded from the server, I'll have a look on the server later if I see something.

Mike

May be it is a communication problem (firewall) ?Do you use a specific port ?Even so, the communication should fail, do you report an error there in the consol ?

Nothing to do with the PC. I got the samething on the 2 PC now.

I had a very clear error for it in the server log, fixed it and will apply it shortly, thanks for finding it

Often the terrain is not loaded correctly, leaving rectangular holes in the ground.

I just bought a bus while I had 21k. After I bought it, I had 1k left, and no bus.

The terrain not loading correctly is something I've been busy with for a long time but it's connected with so many things (streaming the original and changing containers from the server, calculating shadows, building up the VBOs containing landscape, infrastructure and buildings) that it's tricky to get it exactly right.

The bus thing was reported before so I'll look at that part of the code. I don't see any error message about it at the server (or client) so I'll just have to go through the code and see what it can be. EDIT: I think I found the error that causes it (the only client error I cannot figure out) so I added some extra logging around there that will clear it all up the next time it happens

Oh, and don't worry if you make less money now, I decreased the money generated seeing as people were making a million per day, but instead I increased the city growth speed with 5 times so more happens on that front

I don't know whether this is a bug or a feature, but I saw a bus stopped on a road, rendered dark red.

Stopped? It's only supposed to stop if it comes to an intersection and it needs to wait on another bus (or if it enters a station). You still get your money though as the server doesn't actually "drive" with the cars and only checks if it arrived based upon the time it should take to drive.

There is now a list with all of your stations and you can go to them by clicking on them (no more losing stations!). If you teleport to a station that's far away you might need to wait a few seconds before you can see the land.

As a side effect I found an issue that can cause the containers not to show and fixed it too.

Humm... it works on two computers here... Maybe remove the downloaded files and redownload the client? I doubt you downloaded it exactly when I uploaded the new version, but I don't see another reason why it used to work and doesn't anymore.

If you're on windows it's stored somewhere around C:\Users\[Username]\AppData\Local\Temp\lwjglcache\stateofprofit.com

As a request, the first thing to do :- a window with the list of building of our company- a window with the list of buses of our company- when a building/buses "name" is clicked, the view is centered on it

The mini map is only second on it for me.

Your wish is my command, off to look at the mini map and whatever bugs you guys find (best testers ever! )

It was a deadlock on the server caused by a person logging out when a message was sent about a vehicle update. Fixed it and made sure it won't happen again, also fixed a bug that would stop a person from logging in when the previous session didn't get closed correctly.

I'm running old style IO, when a person logs in two threads get created, one for listening and one for sending. When the listening one gets a message it performs the logic on it and goes back to listening. To be able to support many players I don't have a queue with the incoming messages that pick them all up in a single thread. I've been considering it as it'd save me a lot of synchronize blocks, but I'm not sure what it'll do to timely answers when many people connect. Thoughts?

I'm running old style IO, when a person logs in two threads get created, one for listening and one for sending. When the listening one gets a message it performs the logic on it and goes back to listening. To be able to support many players I don't have a queue with the incoming messages that pick them all up in a single thread. I've been considering it as it'd save me a lot of synchronize blocks, but I'm not sure what it'll do to timely answers when many people connect. Thoughts?

If you're going for the thread-per-client approach, you only need 1 thread per client the thread should both read and write to and from server. Once something is read, you can respond right away.

I had that first but seeing as I also send messages without it being replies (vehicle left station, city growth, someone built something where you're looking and so on) I need two threads or a slow connection from one client might block other people from getting the messages timely.

I had that first but seeing as I also send messages without it being replies (vehicle left station, city growth, someone built something where you're looking and so on) I need two threads or a slow connection from one client might block other people from getting the messages timely.

Mike

How would one slow connection affect other people receiving timely messages, and how would two threads solve this problem? Could you elaborate more?

I'm running old style IO, when a person logs in two threads get created, one for listening and one for sending. When the listening one gets a message it performs the logic on it and goes back to listening. To be able to support many players I don't have a queue with the incoming messages that pick them all up in a single thread. I've been considering it as it'd save me a lot of synchronize blocks, but I'm not sure what it'll do to timely answers when many people connect. Thoughts?

You should really use queues to detach the I/O from the logic. It will most likely solve a lot of bugs you cannot reproduce locally.

The problem is that is exponentially harder to make a multithreaded solution than it is to make a singlethreaded solution work.

Use basic structures like the ArrayBlockingQueue for extreme performance, but I doubt you need anything better than java.util.Vector.

Even better is that once you moved the logic from the I/O threads, you can get away with tiny thread-stacksizes (like 64K instead of the default 1MB). This allows you to scale the amount of concurrent players with factor 16 (if RAM is your bottleneck).

Hi, appreciate more people! Σ ♥ = ¾Learn how to award medals... and work your way up the social rankings!

You should really use queues to detach the I/O from the logic. It will most likely solve a lot of bugs you cannot reproduce locally.

The problem is that is exponentially harder to make a multithreaded solution than it is to make a singlethreaded solution work.

Use basic structures like the ArrayBlockingQueue for extreme performance, but I doubt you need anything better than java.util.Vector.

Even better is that once you moved the logic from the I/O threads, you can get away with tiny thread-stacksizes (like 64K instead of the default 1MB). This allows you to scale the amount of concurrent players with factor 16 (if RAM is your bottleneck).

Thanks for the clarification, I'll switch over to that (shouldn't be too hard).

ArrayBlockingQueue looks amazing, too bad I didn't know about that before I wrote my own using ArrayList!

The server is now running in eclipse debug mode, I warn thee server bugs!

This forum is the best btw, it's so nice to not only have people that share the interest in games, but that also can come with (very) constructive ideas and solutions based upon the deepest part of the technologies used!

Yup, either the read operations or when a message needs to be sent to 500 people it might take quite long until the 500th person gets the message if it all needs to happen consecutively instead of at the same time.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org