Updates GSoC 2018 - Save/Module UX

Serj

New Member
Contributor
Heya!
This thread will contain all updates about Game / saved world / module preview image content project.

Summary: The project aims to improve UI/UX of some in-game screens and to give users more opportunities to manage their saved games, set up modules, deal with dependencies, etc.
Mentors: Martin Steiger, arpitkamboj, Cervator, Rostyslav Zatserkovnyi, iojw, Scott Moses Sunarto
Student: Serj Ar[]ne, slack: @Serj ar[]ne
Project Board: https://github.com/orgs/MovingBlocks/projects/12
Communication: #gsoc-ux channel in slack. Weekly meeting at 2PM every Sunday, Eastern Daylight Time.
Devlog: https://ar0ne.github.com/gsoc
 
Last edited:

Serj

New Member
Contributor
Week #1: 05.14 - 05.20
week1.png


## What have you achieved in the last week?

First of all, first week I've spent working on UI updates for SelectGameScreen.
Secondly, I added preview for saved game world. If we don't have it yet, it'll load default image.
Now we capture this preview image when user decides to exit and save it to /saves folder as a "preview.jpg" file.
Additionally, I added short description with information from GameManifest: main world generator and list of modules.

## What are you currently working on?

As you may see, my idea was to use ScrollableArea and ColumnLayout for short description box. That's not good!
In this case we have a big empty area under the "Modules" label. And it looks ugly:(
So, next week I'll proceed work on the UI. Also I'm waiting for feedback for my PR.
Finally, I didn't cover my changes by unit tests yet.

## List of PRs and opened/closed Issues

#3361

## Any blocking, problems ?

Nope
 

Serj

New Member
Contributor
## What have you achieved in the last week?

@Cervator and @rzats reviewed my PR, so I did some changes, some refactoring, add comments, etc.

Also I've tried few ideas how to improve UI experience.

Some of them are pretty discussable. So, I'm waiting for feedback and maybe fresh advices.

Additionally, I added few unit tests and changed default preview image.

## What are you currently working on?

I'm going to start work on new screen "Details".

Also I'm waiting for final review of my PR at least from major part of my mentors.

Probably I'll make last changes after final review and then we could merge the code.

## What problems are you currently facing?

I realized that I can't write good unit tests and cover all classes. Mostly for UI-screen classes.

Unfortunately, I can't do it now, maybe later I'll open additional small PR just to finish that item.

I have really tight deadline and I can't waste time for it now :/

## Is anything blocking you from making progress?


PR needs final review and comments from community.

## List of PRs and opened/closed Issues

[#3361]
 

Serj

New Member
Contributor
## What have you achieved in the last week?

week3.png


I've started work on new GameDetailsScreen. At present, it still needs some polishing and after that I'm going to open PR.
At the moment you could see all details from game manifest, e.g. active modules, their descriptions, biomes, worlds, etc.

Also, recently we found few small issues regarding my previous PR for SelectGameScreen and preview images.
I've fixed them and open PR #3380, hope we will merge them during this week.

## What are you currently working on?

Polishing UI and refactoring code of new GameDetailsScreen.

## What problems are you currently facing?

Nothing special, just trying to create screen which will be useful as much as possible, and have a good look.

## Is anything blocking you from making progress?

Nope.

## List of PRs and opened/closed Issues

Issues:
* #3378

PRs:
* #3380
* Not ready yet. (Will update it soon)
 

Serj

New Member
Contributor
## What have you achieved in the last week?

I've fixed few defects from my last PR and we already merged the code.
Also I've finished my work on new GameDetailsScreen and prepared PR for merge as well.

## What are you currently working on?

For the next week my targets are:

* start work on "dependency manager" widget
* figure out standard for including logos / screenshots in GitHub repositories

## What problems are you currently facing?

At present we don't have ability to hightlight active buttons/tabs in UITabBox widget.
I've created an [issue #3384] and put down it to my backlog for now.
Gonna improve it later and update GameDetailsScreen.

## Is anything blocking you from making progress?

Nope.

## List of PRs and opened/closed Issues

Opened:
* [PR #3382]
* [Issue #3384]

Closed:
* [PR #3380]
* [Issue #3378]

## Something else (pictures of new content, code snippets, new wiki content, ?)

Check it out! :)

 

Serj

New Member
Contributor
# What have you achieved in the last week?

During the last week I was cleaning up code and user's interfaces. Fixed some issues from backlog and opened few PRs.

## What are you currently working on?

I still have few unfinished PRs/features, and I'd like to close them firstly. After that, I'd like to start work on new widget for linking to Github or whatever, something like "Open in Browser".
And I gonna finish work on UIImageSlideshow widget (don't have opened PR yet).

## What problems are you currently facing?

Nothing special.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

Closed:

* [Issue 3391] - Fix NPE on game details screen after releasing v2 Core
* [Issue 3394] - Removed Behavior editor button from Main Screen
* [Issue 3310] - Using F5 (show BT editor) in-game during multiplayer causes crash via NPE
* [PR 3395] - Rewrite modules tab

Open:

* [PR 16] - Improve biomes in PolyWorld module
* [PR 3397] - Rewrite modules tab
 

Serj

New Member
Contributor
## What have you achieved in the last week?

I have been working on two new UI widgets for image slideshow and button "Open In Web Browser".
Also made some refactoring of GameDetails screen (modules and biomes tabs).
Added popup message if errors appear during loading details for saved game.

week6.png

## What are you currently working on?

Next week I'm going to start work on module details screen.

## What problems are you currently facing?

Nothing special.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

* [PR #16: Refactoring of whittaker biomes](https://github.com/Terasology/PolyWorld/pull/16)
* [PR #3397: Improve the biomes view](https://github.com/MovingBlocks/Terasology/pull/3397)
* [PR #3405: New button widget "Open In Browser"](https://github.com/MovingBlocks/Terasology/pull/3405)
* [PR #3406: Image slideshow widget](https://github.com/MovingBlocks/Terasology/pull/3406)
 
Last edited:

Serj

New Member
Contributor
## What have you achieved in the last week?

This week I've fixed my PRs according to comments of reviewers. And I believe we could merge them now.
And also I've started work on the new Module Details screen. Add module's details, navigation between dependencies and etc.

## What are you currently working on?

Currently, I'm still polishing UI/UX and going to open PR really soon;)

## What problems are you currently facing?

Trying to work with @theflash98 on issue (https://github.com/MovingBlocks/Terasology/issues/3402) and figure out other problems with newly implemented screens.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

New:
* [PR #3408: Fix UI for new screens](https://github.com/MovingBlocks/Terasology/pull/3408)

From the previous week:
* [PR #3405: New button widget "Open In Browser"](https://github.com/MovingBlocks/Terasology/pull/3405)
* [PR #3406: Image slideshow widget](https://github.com/MovingBlocks/Terasology/pull/3406)
 
Last edited:

Serj

New Member
Contributor
## What have you achieved in the last week?

This week I've implemented a bunch of useful features from backlog and opened PRs. I refactored selection screens, also add support of Up&Down keys to UIList.
Additionally, now we can highlight buttons, e.g. active tab of UITabBox widget. And few more cool updates of UI:)

## What are you currently working on?

Still developing ModuleDetails screen. Unfortunately, current version is still quite draft and I need extra time to finish all my ideas.

## What problems are you currently facing?

Nothing special.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

* [PR #3426: Refactor of selection screens](https://github.com/MovingBlocks/Terasology/pull/3426)
* [PR #3424: Up-Down-Enter keys support for UIList widget](https://github.com/MovingBlocks/Terasology/pull/3424)
* [PR #3427: Small fix of margin on game details screen](https://github.com/MovingBlocks/Terasology/pull/3427)
* [PR #3429: Highlight active tab buttons](https://github.com/MovingBlocks/Terasology/pull/3429) & [Issue #3384](https://github.com/MovingBlocks/Terasology/issues/3384)
* [PR #3425: Add fully qualified name (module:name) for biomes](https://github.com/MovingBlocks/Terasology/pull/3425)
 

Serj

New Member
Contributor
Week #9

## What have you achieved in the last week?


This week I've updated my PR [#3426], added more useful features and ideas from [#3400].
Additionaly, we merged a bunch of PRs from the previous week:D

At the moment, ModuleDetails screen looks like this:

screeeen.jpg

There are still few moments that I need to resolve several things (images, better UI/UX) and then we could review/merge it.

## What are you currently working on?

Finishing ModuleDetails screen and other issues from PRs.

## What problems are you currently facing?

Nothing.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

* [PR #17: "Source" field for module.txt](https://github.com/Terasology/PolyWorld/pull/17)
* [PR #3436: Remove old useless attributes from ui files](https://github.com/MovingBlocks/Terasology/pull/3436)

Still working on:
* [PR #3424: Up-Down-Enter keys support for UIList widget](https://github.com/MovingBlocks/Terasology/pull/3424)
 

Serj

New Member
Contributor
Week #10

## What have you achieved in the last week?



I think I've finished my work on design of ModuleDetails screen, and tweaks for UIList.
Now needs a review and feedback, and if it's fine and we won't produce more ideas, then probably we'll merge it in the next few days.

## What are you currently working on?

My next goal is to add new UI for FlexibleConfigs. Which would allows us to tune published variables and manage them.

## What problems are you currently facing?

Nothing.

## Is anything blocking you from making progress?

Nothing.

## List of PRs and opened/closed Issues

* [PR #3441](https://github.com/MovingBlocks/Terasology/pull/3441)
* [PR #3424: Up-Down-Enter keys support for UIList widget](https://github.com/MovingBlocks/Terasology/pull/3424)
 

Serj

New Member
Contributor
## What have you achieved in the last week?

I've closed several tasks from backlog and gonna finish more.
After small fixes/improvements my current PRs will be merged.

## What are you currently working on?

Trying to fix old ideas and items from this issue [#3400](https://github.com/MovingBlocks/Terasology/issues/3400).
Also still playing with FlexibleConfigs and trying to figure out how can I help with this issue.

## What problems are you currently facing?


Honestly, FC looks complicated than I expected. But I still think that some Proof-of-Concept from me might be useful.

## Is anything blocking you from making progress?


Nothing.

## List of PRs and opened/closed Issues

* [PR #18: [PolyWorld] Fix category name](https://github.com/Terasology/PolyWorld/pull/18)
* [PR #3454: Improvements for UIImageSlideshow widget](https://github.com/MovingBlocks/Terasology/pull/3454)
* [PR #3452: [Defect] Not always all modules are available for filtering](https://github.com/MovingBlocks/Terasology/pull/3452)
* [PR #3448: Tweak advanced game setup screen + small improvements](https://github.com/MovingBlocks/Terasology/pull/3448)
* [PR #3450: Add categories to module details screen](https://github.com/MovingBlocks/Terasology/pull/3450)
 

Serj

New Member
Contributor
## What have you achieved in the last week?

This week I decided to polish UI classes, improve and optimize my code from previous months.
Decided finish all ideas that were in my head and tried to close as much as possible from [issue #3400].
And I've made changes in design of GameDetails screen.

week12.png


## What are you currently working on?

Playing with last Omega build (978) and testing new features:)

## What problems are you currently facing?

When my last PRs will be merged I'll proceed work on FCs, but looks like for now those tasks are out of scope of gsoc.

## List of PRs and opened/closed Issues

* [PR #3459: Save screenshots regularly](https://github.com/MovingBlocks/Terasology/pull/3459)
* [PR #3460: Clean up UI classes](https://github.com/MovingBlocks/Terasology/pull/3460)
* [PR #3457: Hotfix](https://github.com/MovingBlocks/Terasology/pull/3457)
* [ISSUE #3464: Module details when a module exists with unresolved dependencies causes crash](https://github.com/MovingBlocks/Terasology/issues/3464)
 

Serj

New Member
Contributor
### Final Report

That's time to describe a work that has been done during last few months.
Bellow you could find summary report, different links to blog, PRs, etc.

Organization: MovingBlocks
GSoC Project: Save / Module UX
Board: https://github.com/orgs/MovingBlocks/projects/12
Forum: Terasology Forum

## List of Pull Requests:

github_activity.png

Here is a [link] to all my PRs (except small fixes for different game modules).

## Final Product

This summer I worked on improving user experience, upgrading existing UI/UX, and adding new useful features to the game.
I've implemented several new screens which provide descriptive information about saved games, game modules and other in-game entities. Also I tweaked some existing UI widgets and added new (slideshow, "open-in-browser"). Moreover I extended saved games by association to them previews (screenshots) of in-game process. Apart of that I've fixed numerous small issues that I met during the work.
In other words, all my activities were aimed to help users enjoy the game and have fun of managing it.

Some screenshots of new game menus:

f_screen_1.png

f_screen_2.png


## What?s next? / What?s left?

A bunch of new screens were introduced as part of GSoC by folks for their projects this summer.
They haven't fully united and polished yet and might have potential conflicts.
But when it get ready, I'd happy to make final clean up.
Some of ideas described [here].

Additionally, I still want to contribute to FlexibleConfigs topic.
It is really huge and interesting project, unfortunately, it has been incorrectly estimated and gone out of scope of the summer.

## Conclusions

I'd like to say thank you to my mentors and community for opportunity to work on this project during this summer. It was really interesting and I have learnt a lot. Thanks so much for reviewing the code, giving suggestions and ideas, etc. I can't do it without you.
I also want to thank Google for running the program and helping open source communities like Terasology make awesome things, learn and develop.
 
Top