Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Welcome to our site

Take a moment to join our board

All Activity

This stream auto-updates     

  1. Today
  2. Twelve

    Hello, beautiful people

    Hey! Thank you for the reply. Overall things have been great so far. Execution is key when releasing anything, and that's where I typically am most useful in this situation. I can say based on the traffic I see at current servers these days my server is fairly successful at this point. (max online has hit about 140) I've done what I can and hired or asked experienced programmers for assistance when I'm truly stuck on something. Another primary thing is watching and learning, not simply paying someone to do something for me. One of the biggest challenges getting back into the community is straight up how dead it is compared to how it was back in the day. On other forums attempting to find resources for just about anything is like going through a closet for an hour trying to find your favorite shirt, to then end up finding out it wasn't in there the whole time. I don't mean straight up leeching either, I'm referring to c3 editing content, just random "#removed" posts, etc. but even still... one of the best methods I've always used to learn different languages, and even design, is straight up analyzing someone else's content and breaking it down to figure out what does what. Anyway, fun and games.
  3. Earlier
  4. AaronHollister

    Using Artificial Intelligence To Create Beautiful Music (Part 1)

    Is there anyone who can recommend the best product among the ones listed here? https://bestmusicalinstruments.website/
  5. Spirited

    Chimera: Conquer Online Private Server Project

    Well, in the case of a real MMORPG struggling to keep up with growth, all current MMORPG servers can't scale a single map beyond a certain point. There's a technical and game quality reason to introducing server player caps. There are reasons why MMORPGs split their playerbase across realms or continents. At some point, you just can't keep accepting players, whether that's a server resource issue or client performance issue. If we want to talk experimental, you could make Kubernetes nodes completely stateless, and instead store state across all servers in Google Memorystore or Cloud SQL (which returns queries in microseconds to single digit milliseconds). If you need more nodes processing packets from players, you simply spin up more nodes. It would be expensive, but it would work... in theory. It just wouldn't scale well with smaller to medium/large loads. For most cases, the model I chose for Chimera would be a "best fit". I mean, all players running around on the same map at planet scale would freeze any computer on earth, anyways.
  6. Smallxmac

    Chimera: Conquer Online Private Server Project

    Ah yes exactly, I just thought it would be a fun thought exercise if anything. This entire project, in general, is just overkill, to be honest, but it is fun none the less. I completely agree that this is an awesome exercise in a hard distributed computing problem that should hit all the hard parts of communication, data syncing and scaling.
  7. Spirited

    Chimera: Conquer Online Private Server Project

    Good questions - Honestly with a system like this, something is always going to be a bottleneck. For Chimera, the minimum I'll process on a single node is one full map. I have no intentions of chunking maps beyond that point. The design complexity, communication overhead, and additional latency wouldn't make chunking across sections of a single map worth it. The way I design my nodes is such that every region service is essentially it's own lightweight game server, and those services all run in memory without database access. The server would easily be able to handle lots of players on a single map; I'd probably hit a self-made player limit just to prevent client bricking before hitting a performance issue. In terms of world scale, if I need more nodes to process maps, then I can add more nodes or increase resources (whichever is more cost effective in that scenario). I can also automate scaling to optimize costs or distribute work on heavy load, but let's be real, this is Conquer Online. I don't think it'd ever go over the minimum.
  8. Smallxmac

    Chimera: Conquer Online Private Server Project

    I like your approach. You follow some of the ideas that I derived when I was prototyping a scalable environment. One of the biggest concerns I had was the number of entities on a particular map. One thing I thought about was chunking regions and having nodes to handle that, but you would then just scale the issue lower. For example, the bottleneck would then be on the number of players in a particular chuck. You would also have to handle cross chunk communication and they are visible. Another idea I had was possibly scaling channels. For example, if too many people are in TC and it proves to be a bottleneck it might be an option to start a new TC map and move players to that instance. The main problem I found with that is separating the players, in some cases that might not be a possibility (GW). This is just all assuming there was a bottleneck to begin with, this is all just for thought really. What are your ideas on such an issue? If said issue is present, how would you overcome it?
  9. Smallxmac

    Hello, beautiful people

    Glad to have you here, welcome to the forum. I feel as if we have some common background in terms of when we got into Conquer Online. It would be nice to have your perspective as a GFX artist in a primary programmer community. How is your server going? What are some of the challenges you ran into when getting back into the community?
  10. Twelve

    Hello, beautiful people

    Hey there, Nice to meet you! I go by the name Twelve and I'm 26 years old. My primary profession is a Graphic Designer, it is what my day job revolves around. I've been around a few development forums for private servers dabbling in a little bit of everything over the years to be honest. Web design/development, general design (reskin, banners, anything graphical), GUI development, modelling, map development, and various languages (though fluent in near none). Originally I got into the Conquer Online scene and GunZ Online scene around 13 or 14, was around for quite a few years and then disappeared. Life grabs you by the balls sometimes, I never left the net or anything but I had rather changed my focus. I got back into gaming related content a few years back when I managed to find spare time I could devote to it. Not any development, pretty much just straight up gaming... I ended up starting a clan/community which turned out quite good over the few years things thrived. At some point we slowly parted ways and I have had more free time to get into random projects here and there once again. Somehow I ended up back at Conquer Online actually, and I am now running a server again. Things seem to be going well so far and it's giving me something to do and more to learn. I think it took me over an hour to write this one post going back and forth to Discord messages! I hope to get some good use out of this forum and also potentially be useful. Thanks for having me, Twelve
  11. Spirited

    Chimera: Conquer Online Private Server Project

    So, getting closer to figuring out all the details. I decided to look into Kubernetes for scaling and orchestration of services. In terms of language, I'm settling on Golang and I wrote a small article about why for those interested. Looking forward to having more to show, but this is it for now. Cheers. Read more: https://spirited.io/2019/04/21/an-evaluation-of-golang-for-game-server-development/
  12. Spirited

    Comet - Open Source Conquer Online Server

    That should say "open the top directory in Visual Studio Code". I'll modify that part of the readme. I kind of expected that people know how to use dotnet. Normally, open source projects don't really teach you how to use a language, they teach you how to configure the project. I'll try and incorporate as much of your feedback as I can into the readme, but just keep that in mind.
  13. foxbat

    Comet - Open Source Conquer Online Server

    "recommended but optional. After installing both, open the top directory for Comet. You will be asked to install the C# extension for Visual" I am confused with the above mention. Should I open the folder using VScode. or should i have to rightclick the luanch.json and open it using VScode?
  14. Spirited

    Tasks in Golang

    Yeah, I mean, I suppose it's a bit inspired by C# Tasks, but the name of the package is "tasks" because it's shorter than "saferoutines" or "routines". All this package does is create a panic-safe wrapper around goroutines and integrate a method of waiting. I want to also add a method for cancelling tasks using the context package, but I haven't gotten around to doing that.
  15. Spirited

    Chimera: Conquer Online Private Server Project

    This isn't exactly something I've completely flushed out yet, but it could be the resources in use such as CPU and RAM, could be the amount of players connected to a server. Whatever the bottleneck is and however that can be best anticipated.
  16. Smallxmac

    Tasks in Golang

    I was more asking about design inspiration, but that just seems subconscious to you from the background you have had.
  17. Smallxmac

    Chimera: Conquer Online Private Server Project

    How will you determine the scalability or what metrics would require a new realm node to spawn?
  18. Smallxmac

    Comet - Open Source Conquer Online Server

    @foxbat I do not understand the picture that you linked. You VSCode open in just a .vscode folder. This does not give any useable information. Examples of useful information might be build logs. I would start by learning how to create a C# project like hello world or something.
  19. foxbat

    Comet - Open Source Conquer Online Server

    i have a problem with building it. I am new to visual studio code.
  20. I think we can all agree that free-to-play (F2P) online game titles are usually pretty attractive but divisive. The money that pays for the server usually come from a very small portion of the playerbase, and that can cause some crazy side-effects such as hyperinflation, broken balance systems, low retention, etc. Looking at the current private server community for Conquer Online, it's clear that these problems are even more exaggerated. Servers allow players to spend less money for a huge amount of in-game currency, which in turn devalues the currency and increases the divide and quit rate between players. Servers die quickly, recycle quickly, and sell quickly in a loop. Recently, these servers started to make me consider the overall morality of some of these predatory practices for cash whales that keep the servers afloat, and there has to be better ways, right? I see games such as Guild Wars 2 do a good job with free-to-play, where their "whales" aren't spending thousands of dollars on a character. In Guild Wars 2, their shop is appealing to all players (more appealing to the average person who would otherwise be the free player in free-to-play games). For example, as a player not willing to spend $1000 on a game, there's no way I'd get into a game like Conquer Online or play any of the private servers; however, if a server were instead just selling cosmetics, utility items, effects, furniture, mount skins, toys, bonus stories, etc. in $5 - $10 chunks, I'd be totally down to invest a bit. On top of that, Guild Wars 2 has a currency sink where you can convert gold into their paid gems currency. This both allows free players to continue playing without paying and reduces inflation. Another idea I had around hosting my own server at some point was paying for hosting using a cryptocurrency such as Bitcoin or Ethereum (something I picked up from an Extra Credits video on blockchain). Back when it was cool to mine, I thought it'd be interesting if I allowed players to dedicate a percentage of their graphics card to cryptocurrency mining. Players would be rewarded the purchased currency in-game for the amount of hashes they computed, which in turn helps pay for the server (if the host accepts cryptocurrency payments) and doesn't contribute to hyperinflation. Generally, I don't think this is as sustainable today with how difficult it is to make graphics card based miners profitable, and how much the value of cryptocurrencies have fallen again. But if anyone has better knowledge around this than I do, I'd be interested to know what you think about the idea. Overall, I'm really interested to know what people think about free-to-play in general. Selling CPs (Conquer's in-game currency) in an online store for powering up characters to max is not sustainable, and we know that from the constant failing and recycling of servers. If you want more on the topic, here're a few videos from Extra Credits on free-to-play (and a few other related topics). Again, I'd be very interested to know what people think about this, and what their ideas or experiences are around free-to-play. Cheers. Videos around free-to-play game theory: Free to Play Is Currently Broken - How High Costs Drive Players Away from F2P Games Doing Free to Play Wrong - How Bad Monetization Harms F2P Games Microtransactions - What Does Good Monetization Look Like? Free to Play Laws - Can We Stop Predatory Practices? Blockchain Games - Can Blockchain Technology be a Game Mechanic? (Bit inaccurate, so take with a grain of salt) Videos around in-game inflation and currency sinks: MMO Economies - How to Manage Inflation in Virtual Economies MMO Economies - Hyperinflation, Reserve Currencies & You! Videos around player type balance: Balancing an MMO Ecosystem - Getting a Mix of Player Types
  21. Spirited

    Chimera: Conquer Online Private Server Project

    I'm not concerned with latency at all; the difference on an internal network is insignificant. I suppose you can say that modules are "dependent" on other modules since they communicate with them, but I'm not sure what you mean by how I handle reliability. Having this sort of distributed system aims to increase reliability (no longer a single point of failure if the game server crashes). In general, most actions can be completed by the region server without the realm server. The region servers are design to run on their own and handle realm server restarts and faults using the gateway. If it's down for too long, then an automated server maintenance could kick in, I guess. RPC between servers is over TCP right now, so it's not like I really have to think about health checks. TCP includes heartbeats out-of-the-box. In the future, I could add alerts and fault tolerance, but it's not really my main concern right now. I think that answers everything you asked me? If not, feel free to follow up.
  22. Spirited

    Tasks in Golang

    Based on need.
  23. Smallxmac

    Chimera: Conquer Online Private Server Project

    It looks like there is a large number of internal communication. Are you concerned with latency issues? Also, it seems that every module is dependent on other modules, how will you handle the reliability of modules? I would imagine some clever heathchecks with k8n would be a good place to start.
  24. Smallxmac

    Tasks in Golang

    Was this generally based on tasking or also based on the TPL?
  25. Spirited

    Tasks in Golang

    Introduction Tasks is a library for implementing an async-await design pattern in Golang for recoverable, safe goroutine execution. Allows goroutines to be waited upon, canceled, etc. using channels and wait groups. Statuses are returned for fault tolerance checks. If the child goroutine panics, the task recovers and doesn't stop the main execution of the program. Examples Below is a simple example of implementing tasks for a single task and multiple tasks. More examples can be found in tasks_test.go, where 100% of the code is covered by tests. import "spirited.io/tasks" // This is an example of a single task task := tasks.Start(nil, MyFunction) task.Wait() import ( "spirited.io/tasks" "sync" ) // This is an example of a single task var wg sync.WaitGroup tasks.Start(&wg, MyFirstFunction) tasks.Start(&wg, MySecondFunction) wg.Wait() Link https://gitlab.com/spirited/tasks
  26. Spirited

    TV Cabinet Project

    Thanks! I'm really happy with how it turned out. Also, awesome that I got an excuse to use my new camera. It's such a tiny little camera, but damn did it do a good job. I only edited the PS2's scratches out. The rest is completely unedited, and the pictures look great! It's so shocking what 10 years can do. Entry level camera for a super compact SLR vs. entry level Canon mirrorless camera now.
  27. Smallxmac

    TV Cabinet Project

    I think this is a pretty awesome look. It is great that from a normal standing height you will not be able to see the LED bar. I really don't care for seeing the actual light, rather just the effects.
  1. Load more activity
×

Important Information

By using this site, you agree to our Terms of Use.