Oldest Path of Exile Screenshot

I do have a simple question, what sort of program languages do you guys use? Or should that be obvious to me?
Happy Days Abound.
They use C++
https://www.artstation.com/pstaszkiewicz
"
zeto wrote:

I'm curious if you have any additional resources that I might not have seen yet. I program entirely as a hobby, as I'm a lab rat during the week, so it's sorta difficult to find good write-ups and examples of such things when you aren't in the field.

The most complicated issues in architecture seem to be threading optimizations, inter-component or system communication special cases, and queue optimizations (most examples I've seen just iterate every entity/component without regard for need)


I don't have any specific resources to recommend at hand, but I have seen a ton of articles over the years. A bit of googling should find a lot of articles on the topic.

For iterating over components, we have two lists for each component type. One for "sleeping" components and one for "awake", but currently this is only performed on a per entity level.

As the players move around the level we increment / decrement a counter on each tile that represents the number of nearby player characters. When the counter goes to zero, the entity is slept and all the components move to the sleeping lists. This keeps the total number of things we need to iterate over reasonably low.

I'm planning at some point on allowing the components to sleep / wake up independently, but due to the relatively small number of entities that are in all of the players views at any one time (hundreds, not thousands), it hasn't really been an issue so far. Still, each bit of performance we can eek out of our servers means more players per server, which drives our server costs per user down.

In terms of threading, we don't have any general system for it at the component level. The reason for this is different depending on if you are looking at our clients, or servers.

On the server, we don't do any threading at all. This is because each instance server is it's own process. We can run hundreds of instances on each server so threading buys us absolutely nothing because the parallelism is already taken care of.

On the client, we could use threads at this level but I don't know how much of a win it would be. There are already several specific systems that can run in independent threads and take a fair amount of time in the frame (animation, particles, path-finding).
Path of Exile II - Game Director
Alrighty then most of that stuff I've probably already seen.

The sleeping thing is very similar to a priority queue I created that separates things that do not need to be updated vs. things that do. I had also planned on doing some AI based randomizing upon waking up so my slept zone felt a little more as if stuff had been going on while the player was gone. This is mostly because in my project the goal is to provide an RPG world that has purpose unto itself (AI is moreso a 'purpose engine' so crits actually do things and create a dynamic world) and then just throw players into it who will have their own purpose.

I don't think that in an ARPG that aspect is important due to the "player+steamroller = who cares what these crits were doing" effect ;) Albeit in some cases it may give some encounters some flavor if creatures aren't just standing there waiting to get destroyed.

Instancing and the ability to split and combine instances is probably one of the most powerful things to come out of "recent" gaming development, so I'm very interested to see how it goes here. I know that some sticking points with other projects have been smooth communication across their 'cluster controllers' to allow inter-instance communication; however that may not even be a consideration for POE as the game style is much different.

Anyway thank you for the conversation :) I really enjoy the technical aspects of design and execution as well as algorithms. The mere fact that the lead programmer and higher-ups actually use a forum at all to talk to the community is astonishing to me. Usually you get some sort of robotic pion PR guy who reads standard responses out of a book. :P
If you have account problems please [url="http://www.pathofexile.com/support"]Email Support[/url]
"
zeto wrote:

Instancing and the ability to split and combine instances is probably one of the most powerful things to come out of "recent" gaming development, so I'm very interested to see how it goes here. I know that some sticking points with other projects have been smooth communication across their 'cluster controllers' to allow inter-instance communication; however that may not even be a consideration for POE as the game style is much different.


Communication between servers in the backend is certainly a big topic for PoE. It's funny because you end up implementing something that looks a lot like the internet. Our internal network has "routers" and hosts with addresses that have a network/host split.

"
zeto wrote:

Anyway thank you for the conversation :) I really enjoy the technical aspects of design and execution as well as algorithms. The mere fact that the lead programmer and higher-ups actually use a forum at all to talk to the community is astonishing to me. Usually you get some sort of robotic pion PR guy who reads standard responses out of a book. :P


Thats fine. I enjoy discussing our techniques and I'm always interested in learning new things from other developers, so feel free to ask any questions you have about the technology we use and I'll answer them so long as it is not specifically about a feature we haven't announced yet.
Path of Exile II - Game Director
C++? Awesome! I'm going to try and learn that this summer... ummm... any pro tips for understanding it?

I'll be able to learn it, but yeah, I plan on pounding it into my mind anyway possible... I'm tired of not understanding things.

If I can understand physics... this can't be too bad.
Happy Days Abound.
physics nd programming are teh same thing lol. There both for noobs.
Cheaper than free... Speedtree
Honestly unless you have a use to learn it i would say go far away. C++ is a pain in the ass. I actually have this one. Its not a bad book by any means. If you have friend in college and are IT majors they will prolly give you some free ones.

"
http://www.amazon.com/dp/0321246950?tag=cpnonsqueeze-20&link_code=as3&creativeASIN=0321246950&creative=373489&camp=211189
Yes good sir, I enjoy slaying mythical creatures.
Thanks, lol, I don't plan on running away from programming, it's something I've always wanted to understand. So now that I have the time to learn it I plan on giving it my all.

It's like when I started typing. I could never type without looking at the keyboard, but I'm getting better!
Happy Days Abound.
As far as usage goes, I think you'll get more use out of a higher level language. I would look into java/C# and scripting languages like php/python.

I think they will serve you better as a non-professional than C++ will.
If you have account problems please [url="http://www.pathofexile.com/support"]Email Support[/url]

Report Forum Post

Report Account:

Report Type

Additional Info