bbodi/rustarok

2019W30

Opened this issue · 4 comments

bbodi commented

2019W30

This is the first weekly blog post about the project.

This was a very productive week, I spent around 30 hours on the project.

Status system

The biggest achievement for this week is definitely the Status system. You can find the design document for it here, and I plan to write a follow-up post about the difficulties and differences from the original design.

Some gifs demonstrating the capabilities of the new Status system:

  • Mounts (press 'Z')
    mount
  • new skill: FireBomb. Can be put on characters. After two seconds, it explodes, damaging the target and its area. Additionally, a FireBomb is applied to the damaged neighbour characters as well.
    firebomb
  • new skills: Poison and Cure. Poison applies poison damages on the target in every second. Cure removes Poison.
    poison
  • new skill: AbsorbShield. Absorbs every damage for 2 seconds, then heals the target for the amount of damage it has absorbed.
    absorb

Other achievements

  • A README file was created for the project on github

  • Design documentation about Statuses and the new Graphic system

  • Camera follows the character (can be turned on/off by pressing 'L')

  • "Remaining time for status" bar above the character (the orange decreasing bar in firebomb.gif)

  • 'absorb' and 'block' texts are rendered if the attack was absorbed or blocked.

  • Statuses can modify incoming damages on characters (decrease their values, block/absorb them etc)

  • Font loading and basic text rendering

  • Faster walking speed makes walking animation faster

  • Skill casting animation has changed: Only the first frame is rendered during casting, and when it is finished, the whole animation is played. Now this post animation can be interrupted by other actions (e.g. casting other skill or walk away), but in the future I might introduce a mandatory delay after casting.

  • Firewall pushes back contacting entities again
    firewall_push

  • Skill bar

  • Rendering skill name during target selection

  • Browser clients and streaming works again (ultra basic and inefficient yet) (low resolution is because of github's 10MB file size limit)
    streaming2

  • Embedded web server for browser clients

  • Self casting (ALT + skill key)

The game appears to be in a fairly playable state already. Are you looking for playtesters?

bbodi commented

Thanks for your encouraging words, but unfortunately that's not the case. Especially the multiplayer part, it works on localhost, but unplayable in real circumstances.

The rendering engine is under a big refactoring, which might mitigate this issue (instead of streaming pixels to the connecting clients, now the server sends only rendering commands, which is just few KB/s).

On top of that the following functionalities seems important for a real network testing:

  • chat
  • console with admin commands (spawn entities, reset map, kill entities, revive players, assign skill/class to players)
  • designing the playable characters and their skills
  • etc

This is the most incredible and inspirational project I have ever seen on GitHub.