Hi everyone, anyone interested in making a game like Fortnite or PUBG? I know if would be a massive challenge with possibly a huge team needed but I think we could all learn alot from collaborating on something like this and really push to see the capabilities of Playcanvas. I myself can code, have experience with designing games for mobile, and made some music but Im not really a expert in a certain domain and am willing to help in any capacity or even organizing everything.
For the idea I sort of wanted to take the concept from the Flood and use it as a way for players have to survive the city getting flooded and take each other out as the circle gets smaller.
hey i think that your idea is pretty good i have a few ideas of my own we could collaborate if you wanted to.
SIt’s definitely possible. But will require quite a lot of work. Like outlined below:
Most important is to set up a multiplayer-supported project , and perhaps using a framework like maybe Photon or something. https://github.com/utautattaro/Photon-for-PlayCanvas/
Integrate terrain engine ( for large terrain)
The terrain engine isn’t set up yet to allow for mixed flat areas and haven’t tested multiple patches of terrain, though it should be possible to do so. In a typical PUBG map i assume there will be flat areas where buildings will be placed and such…and not everything will a single terrain but a mix of terrain chunks and designated flat zones . I currently disabled LRU cache for simplicity but this is something likely needed for mobile. ALso, LODs may end be pretty bad as far as geometry accruacy is concerned, and I haven’t added feature to enforce min-required LOD chunks, which is useful for let’s say snipers aiming through scope through various terrain chunks that may need to enforce highest LOD to have accruate terrain geometry representation over reduced FOV. THis is something to take note of with regards to action-based games on LOD terrain. All action-based FPS games with terrain LOD (eg. like Mechwarrior Online/World of Tanks), etc. also suffer this hitbox accruacay problem with regards to LOD terrain and is something to take note of and handle specifically for each game as far as mitigation is concerned. Perhaps, LOD isn’t required and just simple prepped meshes woudl suffice in certain levels. It all depends.
Integrate quake-like collision engine. (note: this works with the terrain as well)
Find props and models. But they all need proper LOD variants. Indoor/exterior only variants. All this requires LOD customisation beyond simply just slapping the stock model on terrain, assuming you are going to spray it all over the map. Unless, you’re going for a LOFI style game with low poly cartoon models used from outset, then it’s a different story. But generally, LOFI also involves LODing. Rocks and continuous mesh geometries are easy to LoD with tools available to reduce polycount automatically. Trees with leafy parts, not so and tends to be customised with billboard fallbacks, but a good library to use is a https://gumroad.com/l/qyKQ#
Codewise, use portals and object-based LOD for optimization for indoors/outdoors. Once you get down close to terrain, LODs can be swapped out with individual higher detailed mesh instances but with hierachical frustum culling. Need to use a different culling implementation of meshInstances instead of Playcanvas’ default one (per object).
Outdoor chunks of buildings/Forests/rocks/etc. uses hierachical bounding volume LODs for optimization. As player jumps into the map from miles above, it detects the hierachal boudnig volumes nodes which have “gotten too close”, and breaks down the volumes into smaller chunks with the next higher LOD levels being rendered. All this happens with a custom Playcanvas onPreCull hook that runs the custom hierchical frustum culling process as well to cull away objects outside of view or end up using the lower LOD combined batches instead. This might require digging into the engine source code to get around it’s existing pre-set limitations to how things are being render-managed by default.
Tall grass and bushes shader would be nice to add. Not too sure how easy it is for someone to integrate a performant grass shader implementation like https://github.com/spacejack/terra did with threejs. But take note that with a limit on render systems for lower end devices, some means of “hiding” characters like sinking them into the ground would be needed if they are partially concealed by vegetation. So far, I have not seen a performant/standard implementation on Playcanvas.
Integrate water. (Anyone can come up with standalone project of just the water alone in After the Flood?). And also, a LOFI version without real-time reflections. Then, see how it fares with LOD terrain.
Figure out a proper workflow to bring all assets/props/etc. onto/around the LOD terrain (yes, admittingly because LOD terrain is heightfield based for large world…they don’t get rendered in Playcanvas editor like other regular models), so, coming up with another means of saving levels and prop/entity arrangements,etc. ie. a level editing workflow is required in such cases. Even for batched objects, this is something that can’t be handled/previewed entirely in the general purpose Playcanvas editor itself. (Even Unity editor has this problem unless you customise it a lot, which Playcanvas lacks,…ie. editor scipting itself.)
Essentially, it’s a lot of work if you consider the entire scope of a full PubG game. But it’s something that i think Playcanvas (or any other webgl engine) for that matter, is capable of…and can even run on mobile browsers. (with lofi version, of course…since it isn’t native there’s a mem limit involved on browser). The advantage of Playcanvas is the cloud-based editing and collaboration allowing both artists and coders to easily jump in and contribute, making crowd-sourcing a possibility. However, because you are running on a relatively young engine like Playcanvas, there will be disavantages as far as game-dev features are concerned compared to other more mature engines/frameworks out there that had been around 5 years or decades earlier.
And final consideration: What’s the point of doing another sub-standard clone of something else? Is there demand for an easily acccessible web browser version of PUBG? What are the things that can set it apart as far as the limitations/benefits of being on a browser is concerned? WHat is the design style to go for when it comes to art/assets in order to get the best balance of performance/aesthetic on the target platform?
Start small: with a basic multiplayers template. Let users fork from there and post their updates across varied iterations.