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

Dealing with changes to game model/JSON scheme #54

Closed
interrogator opened this issue Sep 11, 2019 · 3 comments
Closed

Dealing with changes to game model/JSON scheme #54

interrogator opened this issue Sep 11, 2019 · 3 comments
Assignees
Labels
Post-2020 maintenance Information required before project closes reopenable Closed because there's nothing to do right now, but there may be in future

Comments

@interrogator
Copy link
Collaborator

Today we found out that isAbsolute key is unused, so it was removed from JSON. That's good. Because of this, the time key format became redundant. Time is now specified like this:

{"time": {"time": int}}

Ideally, the nested object is simply replaced by an int. @christian-bernet however says that such a change is difficult to make. So, this issue is both the specific (i.e. making it simply "time": int) and the general (i.e. making it as simple as possible to update the model.

Game creators need the JSON format to be as concise and unambiguous as possible. It is already a lot of work building a game. Eventually, there will need to be a document explaining how to write your own game, and that document is going to have to explain that time is written in this redundant way. If even small changes like this can't be easily updated now (when we have few games and no users), I worry that maintenance will be super difficult later.

Can we get, at least, a few written instructions about How to update the model --- which files need to be touched, etc.. I can't imagine this part of the codebase was developed without considering the fact that the format may undergo revision in the future??

@martindusinberre martindusinberre added medium medium priority question Further information is requested Post-2020 maintenance Information required before project closes labels Sep 11, 2019
@martindusinberre
Copy link
Collaborator

Thanks, Danny, good point. @christian-bernet This isn't a priority for this particular sprint but please bear in mind that such information/documentation will be a key part of your handing the whole product over to us in March 2020 so that we can run it ourselves once the contract ends.

@christian-bernet
Copy link
Contributor

The point here is, that these json files are directly connected to the graph model we have in the application. These means, that if we change something in the json files we touch the business logic of the application. If the business logic works with a certain attribute it is not only to change the model you also have to change the business logic.

So now we can ask, why you connect these json directly to the model. This is because, we search for a quick solution for Martin to build his content him self. Because originally it was planned that a developer adds the content to the database directly. But in the project we realized that there will be a lot of revision loops to get to the final content. So this was the quickest solution.

And for the future the idea of developing a content management system for the authors of marugoto. And in my opinion this is where the direction we should go and invest our energy. So this means in my opinion that the importer is just a temporary solution.

But about the documentation
The json structure or in other words the topic models are document in the graph model of the topic in marugoto-model-topic-entities.pdf. The model marugoto-models.xml can be edited with https://www.draw.io/.

Is that enough or do you need more documentation?

@martindusinberre martindusinberre removed their assignment Oct 21, 2019
@martindusinberre martindusinberre removed question Further information is requested medium medium priority labels Oct 21, 2019
@martindusinberre
Copy link
Collaborator

Thanks, @christian-bernet
@interrogator Is this good enough for you? If so, please close the issue. Or let Christian know if you need more documentation.

@martindusinberre martindusinberre added the reopenable Closed because there's nothing to do right now, but there may be in future label Nov 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Post-2020 maintenance Information required before project closes reopenable Closed because there's nothing to do right now, but there may be in future
Projects
None yet
Development

No branches or pull requests

3 participants