Damian Pastorini

Members
  • Content Count

    27
  • Joined

  • Last visited

Everything posted by Damian Pastorini

  1. Hello everyone! Long time without post any updates and that's because this is a big one. I've created two new websites, one for me dwdeveloper.com, and one for the project reldens.com Along with this I've also deployed a new beta of the project: v4.0.0-beta.14 which includes a lot of new features! The main ones: - Inventory system. - Equipment. - Improvements on responsive screen and mobile experience. - A bit better performance related to some recursive unneeded queries to the database. - And a lot of other changes that you can check on the change log. For last I've also created accounts on Patreon and Ko-fi so any support will be really appreciated, this project can be a reality sooner if I can get any support. Obviously by support I never mean only money, I'm also looking for anyone that would like to collaborate on the graphics side and improve the demo. Any feedback will be appreciated! I've put a lot of effort on this and I will keep doing it! So I hope you like it! Regards, Damian
  2. Some time without publish a new release, so here's beta.11! - GitHub: https://github.com/damian-pastorini/reldens - NPM: https://www.npmjs.com/package/reldens - Demo: http://dev.reldens.com/ - Installation guide: https://github.com/damian-pastorini/reldens/wiki/New-v4.0.0-beta.x-Installation - Discord: https://discord.gg/HuJMxUY What's new on this beta? - Made bundler optional and created an await class for the original process. - Packages updates. - Fixed issues from GitHub #54, #60, #62, #63. - Fixed monitor and included authentication. - Exported modules @reldens/utils and @reldens/storage. - Included SQL script for upgrade from beta.8 to beta.9. - PvE, PvP, different attacks short and long distance are fully working, though there still some improvements to be made these are fully operational. - Pathfinder was improved and pathfinder layers were included. Here's the last video: https://www.youtube.com/watch?v=msyK2Lc9HpE
  3. Hello everyone! I'm back on the project and v4.0.0-beta.7 is about to be released! https://github.com/damian-pastorini/reldens/pull/51 What's included in this beta? - Issues fixed! 5 issues were reported and the 5 were fixed https://github.com/damian-pastorini/reldens/issues - Battle mode is been implemented, you will be able to start a battle and set a battle time-off which will be considered after the last player attack (still incomplete since there are none rules for what happens on this mode, but it's already available to setup any). - PvP with (for now), short distance attack was implemented using the battle mode. - A new "Forest" map was included with some enemies. PvE is still in progress but will be available with the beta.7 release. - A path finder was implemented (though it still can be improved, it's working for a start point), now you can click on the scene and the player will move to that point. With this implementation enemies will also go after you. - Health bar is now visible for the current player. - Some new animations are been implemented and others were fixed: hit player and die. - All dependencies were updated: Colyseus 0.12.x, Phaser, etc. Here's a small video to show you the progress! https://www.youtube.com/watch?v=3MRsYyXk1Bo
  4. Alright! Considering how much behind the v3 was getting I've decided to do a beta release for v4! This version is available on NPM: https://www.npmjs.com/package/reldens And the installation is easier than before: https://github.com/damian-pastorini/reldens/wiki/New-v4.0.0-beta.6-Installation For that matter I've created an Skeleton repository: https://github.com/damian-pastorini/reldens-skeleton The dev server was updated as well http://dev.reldens.com And between all the huge refactor now you will find: - Almost everything now works based in events, so this will allow you implement a lot of customizations without need to rewrite almost anything. - In any case there are still some configuration files and the idea of having a "game-theme" was implemented, so you could easily use the skeleton theme for start. - At the same time a lot more stuff is now configurable just by changing some values in the database. - Maps animations were implemented (in the skeleton example you can see the river moving). - Objects with animations are also available in both public (broadcast), and private (for single client). For example: the doors will open > the player will change the room > but for the other users that are seeing the door open, a few seconds later the door will be closed. - A basic NPC was implemented. NPC's are used like another object type that will just respond on specific actions. In the skeleton example you can click on the NPC (the guy with the hat) and it will show a message. - Targets System was implemented, you can click on any player or NPC, and the target will be selected. - With targets, short distance attacks are now available, if you are close enough to a player and click on it, then you can click on the action button or press the space bar to attack (for now we only have that action). - Related to attacks, the stats are now affected, atk and def are (for now) simple compared to validate the attack, and when the attack success (for now always since the atk and the def are the same for all the players), the HP will be reduced. - And for last! Now we have the Game-Over event when a player that die will be kicked out! Sorry, that was the quickest thing I was able to come up with. In terms of roadmap, issues and progress tracking I've started to complete the project board with all the tasks: https://github.com/damian-pastorini/reldens/projects/2 Hope you like all the new improvements, I'll keep adding new stuff and fixing the parts that can be improved. Best, Damian
  5. Player move Player is about to be pushed on v4 branch! - https://github.com/damian-pastorini/reldens/tree/v4.0.0 - https://github.com/damian-pastorini/reldens/wiki/V4-NPM-Ready
  6. Hi @Kroonax it seems you message went through! I'll just leave here the link to the thread in GitHub for anyone to check: https://github.com/damian-pastorini/reldens/issues/38 Again I really appreciate your input and interest on the project! Best, Damian PS For anyone interested in test the last updates on the project please check: https://github.com/damian-pastorini/reldens/tree/v4.0.0-npm-setup-v1 And then follow: https://github.com/damian-pastorini/reldens/wiki/V4-NPM-Ready
  7. Hi everyone! Just to keep this post updated, v4 is going to be available on NPM, the way the platform could be implemented and installed will change lot. We will have a default theme for your to easily start a new project where you will find examples on how to do a lot of stuff. The V4 will also include a lot of new features not available in V3, so here's a small video to show you what you will get from the current branch: As always any feedback will be welcome!
  8. hi @cpu_sam, I've recommend you to check on v4 code, https://github.com/damian-pastorini/reldens/tree/v4.0.0 and join the discord channel if you have any questions, I'll be glad to answer https://discord.gg/HuJMxUY Best,
  9. Hi everyone! Just re-found this post and decided to keep it updated. My old MMORPG platform is taking great shape! I've put it a new name I like "Reldens", and started to publish in a new repo: https://github.com/damian-pastorini/reldens The current release is v3.1.2, it has a lot of improvements and more features than the initial version published in this post, between the improvements: - Full server physics as authority for every action. - New graphics set. - Better TiledMaps handlers which are used in the server side to create all the required objects using a few name conventions. - Full chat implementation, with global, private and room chat. - Basic players stats. You can find the current docs here: https://github.com/damian-pastorini/reldens/wiki And the demo: https://dev.reldens.com/ At this point version 3.x will be the last one since the new coming v4.0.0 has huge changes! The entire architecture was modified, the code was optimized a lot and tons of new features will be included: https://github.com/damian-pastorini/reldens/tree/v4.0.0 I hope you like it!
  10. Hi @presidenten , that's even more overhead on the server, for that matter I would use just headless Phaser but now I'm looking into just get the physics from it to validate actions. P2js looks as a good option but is been a bit complex to understand for me so far. I'll be posting as soon I get something good working. Best,
  11. I know I look crazy posting and replying but, ok, it seems Phaser on server side is not the best option (long and really old post): Best,
  12. A few more notes: I'm looking to validate players position, since speed values could be changed on client side, to get for example a faster player or a faster attack, also collisions, to validate range attacks, titled maps walking areas, etc. I know I could find other solutions to avoid use a full Phaser instance on server side (I mean not using Phaser), since I'm already loading scenes data from the DB. So, I could for example validate the walk area on the map, or when to change scenes (in my case maps), but since Phaser has all these already "calculated" I though that could be easier to re-use the game and scenes instances. Doing some research I recently found the following: http://www.html5gamedevs.com/topic/20587-how-to-make-a-phaser-game-running-on-the-server-side/ > but here none recommends to use Phaser on server side. https://medium.com/@16patsle/running-phaser-3-on-the-server-4c0d09ffd5e6 > and so far I wasn't able to make this second example work as I need (still getting Phaser issues while trying to create a HEADLESS game instance). I've also found that I could use http://zombie.js.org but again looks like an overload of work / server resources to just get positions, collisions, etc, which are all pretty basic features.
  13. Hi everyone, I was looking for some info about this but didn't find any so far... Does anyone had worked with Phaser 3 on the server side? What I'm looking for is to move scenes logic on the server to avoid client side hacks. I've tried to create a Phaser game instance on the server but I'm getting a lot of errors like "window not defined"' and so, since it all the code seems to be deeply related to the browser. Maybe I can call just the scenes or the physics classes? Any recommendations will be appreciated! Thanks!
  14. Hi @Wavertron, almost all the other implementations I saw were made with plain Socket.io / WebSockets, and all the sessions handlers and states sync were done "manually", which I was preferring to avoid. Another options I saw were: - Pomelo, but last update was 2 years ago... https://github.com/NetEase/pomelo - ActionHero: https://github.com/actionhero/actionhero But Colyseus looked easier and cleanest. Do you recommend any other? Best,
  15. Hi @mattstyles, I've just published my first "working" base for the game: Best, Damian
  16. Hi everyone! Before anything I wasn't sure if this was the correct place to post this, please moderators move it as you consider if this should go to some other place like Projects and Demos. https://github.com/damian-pastorini/dwdgame Also, please consider that this is my first implementation ever! I've never used neither Node.js, even less Parcel, Colyseus or Phaser, my world before this first incursion in game development was all about PHP and Magento, so that should give you an idea from where I'm coming. This quite awful but working example took me 75hs, including the time I've used for research and for decide which platform use for the server and the client. After all the research, Node + Colyseus and Phaser 3 looked as the better start point since I was familiar with JS and HTML of course but had zero knowledge about Unity (the other option I would like to use), but I've prefered make the learn curve not so slow. So.... This is a really simple base MMORPG game created based on the Colyseus samples: https://github.com/gamestdio/colyseus-examples And on the Phaser 3 implementation from Jacky Rusly: https://github.com/jackyrusly/jrgame As you will see I've considerable modified how the jrgame was interacting with Socket.io in order to make it works as how the Colyseus example was working, I've thought that was the better way to do it (follow up on server ready samples and break apart the client sorry Jacky!) The game basics are login through DB, loader, scene change, players sync, but nothing like chat, items, or attacks was implemented here (so far). Here's the link to the repo: https://github.com/damian-pastorini/dwdgame Please feel free to create any tickets or pull requests for questions, fixes or improvements, I would love to get good feedback! I don't have a public link to show it yet but I'm planning to create a dev server soon (for now you will need to install it and run it to see it), at the end it will look like: https://jrgame.herokuapp.com But you will see the login screen first which in the server side will connect to the DB and all the players sync was done with Colyseus. I saw comments from people looking for Colyseus integrated with a DB engine (in this case I've chosen MySQL), so at least that part should be useful. I really hope this help more than one person, maybe someone like me who would love to get this as starting point. Best, Damian Reply
  17. Well... I'm using Parcel but I think it's for rebuild Phaser itself but to rebuild the code I use that implements Phaser. I'll share with you the game-base once it's relative working (is a Colyseus + MySQL + Phaser 3 implementation for a MMORPG), hopefully I will get some feedback as good as yours Thanks both!
  18. Hi everyone, My name is Damian, I'm new in Phaser. I was working with a code sample that has the following: <script> const WEBGL_RENDERER = true; const CANVAS_RENDERER = true; </script> <script type="text/javascript" src="./client.js"></script> I'm really not sure for what are the const's, I'm working in a "2d-titled" game and nothing changes if I comment both. Any recommendations or clue about if I should keep them and why? Thanks!
  19. Hi @Pave, I'm new into Phaser but maybe you can check this example: https://github.com/jackyrusly/jrgame There's a "direction" parameter sent, is that what you are looking for? Best
  20. Hi @farhan, I'm not Phaser expert (actually, 2 weeks with it ), but I'm having issues using load.spritsheet, and in the middle of debugging saw something that maybe will help you: In the preload method you could try by using the "baseUrl" attribute, like: preload(){ this.load.baseURL = 'http://external-url.com/'; } Give it a try it may work, I'm doing the same to see if that fix my issues
  21. Believe me it was pure luck checking comparing my code with the original Now I'm having other issues since I've been using require / module.export for my Colyseus code and the Phaser example is all about import and export, and it seems one is from commonjs and the other es6, so can't be mixed I'll let you know and share a link to the game base as soon I get it fully working Best,
  22. OMG!! OMG!! OMG!!! YOU ARE NOT GOING TO BELIEVE THE ST...D ISSUE!!!! Maybe this helps to someone else as well... if you are doing tests and you are new including or importing, or requiring scripts in your project as me, and at some point you like to go a bit deep and use something like Parcel... make sure you use the proper script tags for you scripts... Just use plain: <script src="path-to-your-file"></script> Be smart don't go crazy like me and then forget something like this in your code: <script type="module" src="path-to-your-file"></script> Or nothing inside will work properly if it's not really a module.... Please someone set me on fire
  23. @mattstyles, now I have read and followed up with each line, I also understand the issue but can get with the fix. I the commented example (the jrgame), Phaser is already configured and working with Parcel, and even after literally copy the same structure from that repo and using the same Phaser version (3.6 instead of 3.11 what I got with npm install), still throw the error. What I read about was that some libs like jsdom can be not properly implemented and override the global value so I've started by simply removing the other modules one by one but I still get the same issue I'll keep digging into now, hopefully I get the answer and final fix soon enough (before my head break apart ) Thanks for your help!
  24. WOOOOWWWWWWWW!! ok... remember I'm too newbie (only 2 or 3 weeks old) LOL Let me process everything and get back to you BTW: I'm following this example > https://github.com/jackyrusly/jrgame in which the guys is using Phaser with Socket.io, I basically copy/paste the code and started to replace Socket with Colyseus (not much brain needed for that and I'm still missing something....). Thanks for all the info! It's really great to find people like you
  25. Hi @mattstyles, thanks for you great replies! 1 - For now I will keep it "hardcoded" but I also saw some stuff around babel, but that will make it more complex for me so I will leave it for later. 2 - I've assumed that using npm was better since I'm now able to require and include the libs everywhere. I've tried to combine resources but I wasn't able to do it easily, for example I had jQuery from npm and jquery-validation.min.js and I didn't find an easy way to make jQuery available for the validator (yes, that newbie I am, maybe is not even possible and I was just trying stuff until I found jquery-validator was also on npm LOL). Anyway, it's good so far. 4 - Well, in this matter I will share some interesting links about it: https://discuss.colyseus.io/topic/143/phaser-3-integration-server-and-client > I've created this one after I saw the last comments from this one > https://discuss.colyseus.io/topic/25/webpack-bundle-colyseus-typescript Basically the main idea is to have client-side logic which executes first, then server-side logic which executes, and if they mismatch, the game state is updated to the authoritative one dictated by the server. But as commented on the links, sounds hard as hell... I think I'm a bit safe in this matter anyway because the logic on my MMORPG will be the basics for a titled map, collision (between players, NPC, enemies, and "bullets" which could consider a lot of stuff, you understand what I mean, not actual bullets, but collision from "actions", magic, bullets, other throw items, etc)and that should all of it... So I will need Phaser on both sides, that's why using it from npm. That said and in reply to your questions: A: I'm using any browser for tests, usually FF or Chrome (tried to avoid FF since it has a max-socket connection limit of 200 which is a pain...), in both cases I have the same issue, since it's happening on the client side. I didn't have time to check on possible fixes today, I'll do it tomorrow. Doing a quick double-check in Chrome I've got more details on the console: Uncaught TypeError: Cannot read property 'performance' of undefined at Object.parcelRequire.../node_modules/phaser/src/polyfills/requestAnimationFrame.js (requestAnimationFrame.js:20) at newRequire (game.fbe42c12.js:48) at localRequire (game.fbe42c12.js:54) at Object.parcelRequire.../node_modules/phaser/src/polyfills/index.js../Array.forEach (index.js:8) at newRequire (game.fbe42c12.js:48) at localRequire (game.fbe42c12.js:54) at Object.parcelRequire.../node_modules/phaser/src/phaser.js../polyfills (phaser.js:7) at newRequire (game.fbe42c12.js:48) at localRequire (game.fbe42c12.js:54) at Object.parcelRequire.js/game.js.phaser (game.js:1) Maybe that gives you a better clue. B: I'm not even sure how to confirm what build I'm using (again, too newbie), but since I only have one "start" script in the package file I'm guessing it's a pro build? I only have 1 environment (maybe that also helps to confirm). Hopefully I would get a cool code-base to share when I finish with the base implementation (only missing Phaser so far), it could be the start point for many projects. Thanks again!