Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop a new chess activity #592

Closed
12 tasks
llaske opened this issue Feb 10, 2020 · 19 comments
Closed
12 tasks

Develop a new chess activity #592

llaske opened this issue Feb 10, 2020 · 19 comments
Labels
enhancement to be release Fixed, to be release
Milestone

Comments

@llaske
Copy link
Owner

llaske commented Feb 10, 2020

This issue is a challenge for students to the GSoC 2020. Every student interested to be candidate to GSoC 2020 Sugarizer projects must complete this task.

Develop a new chess activity for Sugarizer.

image

Detailed features expected:

  • The activity should be playable against computer or against another user on the network (using presence).
  • The activity should display the list of move during play.
  • The UI of the activity should be simple, self-explanatory and respect Sugar standards.
  • The activity should be correctly integrated into Sugarizer and use buddy colors when possible.
  • The activity should be integrated with Journal (save its context in the Journal).
  • The activity should use localization.
  • The activity should include a tutorial to explain the UI and an interactive tutorial to explain how each pieces move on a chessboard.
  • The activity should be responsive (work on any screen size) and should include a fullscreen button.
  • The activity should work on any browser (Chrome, Firefox and Safari) and in Electron.
  • The activity should not depend of an Internet connection (use local content only).
  • The activity should work with mouse, touch and possibly keyboard.
  • Every content/library used in the activity should rely on a Free Libre Open Source license.

Technically speaking, the activity could be written using pure JavaScript or using Vue.js inline (as in the Calligra activity). JavaScript ES6 syntax should be avoided.

The activity should be based on Chessboard JS for the UI and P4wn for the engine.

@llaske llaske pinned this issue Feb 11, 2020
@sarthak-g
Copy link
Contributor

I've two doubts:

  1. "pawn promotes to" and "computer level" feature should be there or we can skip them using their default value?
  2. Computer playing for both sides should be allowed?

@ashish0910
Copy link
Contributor

  1. Pawn should promote on reaching the end like in normal chess game .
  2. No I don't think we need computer vs computer . There should be computer vs Player or Player vs Player .

@Hemansh31
Copy link
Contributor

can we use libraries other than P4wn for the engine?

@llaske
Copy link
Owner Author

llaske commented Feb 16, 2020

You could if it match the rule above. Specifically: it work on any browser, it's open source, it not depends from a server side, it don't use ES6 syntax and feature (Service Worker, ...).

@Swayamsvk
Copy link

Actually I was developing this activity and when I opened sugarizer I noticed this error.
Screenshot from 2020-02-25 18-48-02
As I haven't changed any internal file I don't know what's going wrong.

@Hemansh31
Copy link
Contributor

@Swayamsvk could you elaborate more as to what exactly you did and if maybe possible share the code

@Swayamsvk
Copy link

I was creating a new activity.I even cloned the current code in the master branch but still, this error exists.

@Swayamsvk
Copy link

Is this due to internet connection.
I am having this error in the terminal.
Screenshot from 2020-02-25 21-24-14

@sarthak-g
Copy link
Contributor

sarthak-g commented Feb 25, 2020

Is this due to internet connection.

No, sugarizer works offline.
Is this working fine in firefox with about:config as false?

@Swayamsvk
Copy link

It works fine on firefox. But showing problem on chrome.

@llaske
Copy link
Owner Author

llaske commented Feb 25, 2020

@Swayamsvk I suggest you to clean your browser cache

@Hemansh31
Copy link
Contributor

@Swayamsvk try closing all tabs on your browser and then just running index.html from terminal

@Swayamsvk
Copy link

Thanks a lot @llaske it helped.

@ksraj123
Copy link
Contributor

Few questions,

  • what if the user plays the game vs computer for a while and then shares the activity, what is the expected functionality here? Should the game continue in multiplayer from the same state or should it reset?
  • if one user exits from multiplayer mode, should the game reset or the other user should be able to continue it with the computer?

@ashish0910
Copy link
Contributor

ashish0910 commented Mar 14, 2020

  • Yes the game will continue from same state . Although there will be reset button to restart game . We can have @llaske ' s advice on this .
  • Yes if the number of users reaches one , you should be playing against computer .

@ksraj123
Copy link
Contributor

ksraj123 commented Mar 14, 2020

Thank you for the answers, @ashish0910 @llaske I have another question related to the multiplayer mode, what happens when two people have already joined the activity and another person attempts to join it? Should the third person be not allowed to join? or maybe he could join but not do anything, just watch the game. Implementing the later interests me if the idea seems useful to you.

@ashish0910
Copy link
Contributor

Yes the third person should be allowed to join the game as spectator . But if one of the user leave the game then the spectator can take place of the player

@llaske llaske unpinned this issue Apr 8, 2020
@llaske
Copy link
Owner Author

llaske commented May 8, 2020

Thanks to all participants.
BTW we've decided that the winner of the challenge is #702
Anyone could propose improvements on the activity.

@llaske
Copy link
Owner Author

llaske commented Jun 19, 2020

Fixed in #702

@llaske llaske added the to be release Fixed, to be release label Jun 19, 2020
@llaske llaske added this to the v1.4 milestone Sep 19, 2020
@llaske llaske closed this as completed Sep 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement to be release Fixed, to be release
Projects
None yet
Development

No branches or pull requests

6 participants