Giter Club home page Giter Club logo

client's Introduction

#Project Ascension Client Join the chat at https://gitter.im/Proj-Ascension/Client Linux Build Status Windows Build status OSX Build Status

This is the official repo for the Project Ascension client interface. Borderless window system for WinAPI pulled from deimos1877's BorderlessWindow.

If you have any questions about the project, feel free to jump in our gitter room and ask!

Useful Links

License

This project is licensed under the MIT License.

Full license can be viewed here.

Contributing

If you would like to contribute, please read over the contributing guidelines

client's People

Contributors

awslattery avatar elken avatar enedil avatar fuzzybow avatar gitter-badger avatar hal9007 avatar holzhaus avatar jeandudey avatar jtramey avatar lolzballs avatar matjarosz avatar mattcider avatar orochimarufan avatar scoreunder avatar thomassross avatar tom-todd avatar torvalds avatar vaysseb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

client's Issues

Move BorderlessWindow to a submodule

Why not have BorderlessWindow be in a git submodule? That would keep it more up to date, you might even fork the BorderlessWindow repository, and put your fork in a submodule.

Don't put DDP-specific stuff into Library.cpp

You shouldn't put digital distribution platform (DDP) specific stuff into Library.cpp. Instead, define an API for digital distribution platform providers (e.g. findGames(), getExecutable(), etc) and put each one into a separate file (possibly in a Source/Platforms folder).

Otherwise, stuff will soon get very messy and unmaintainable.

This could also make it possible to choose supported DDPs at compilation time (or even make them plugin later).

I can help out, but I'm hesitant make a pull request before hearing your opinion. ;-)

Native theme

When this gets off the ground I'd really like to see a native theme. That is, a theme which uses no borderless windows, no draggable areas inside the window, no embedded title bar buttons, and only Qt widgets rather than custom themed ones. I like it when programs "fit in" nicely.

It would also make for a nice 'fallback' theme if the main one can't be used for whatever reason.

Memory Leak when creating AddGameWizard

The pages in AddGameWizard are not having a parent set, causing a memory leak. As well, the onAddGameClicked() in Library is not setting itself as a parent, and is creating a memory leak as well.

this cannot be set as a parent as it leads to inheritance of the Library stylesheet.

*source games break the steam find code

All *source games live in the Half-Life directory & I can't find the manifest listing which directory the game is in. So the choices are:

a) Find the mysterious manifest
b) Use a kv-based STL container to store the sub-directories with their game names and do a lookup.

Idea for adding non-game platforms games.

Add a feature to create a users' game repositories and install games from it.
Repositories will not store game data and will store only information about game(for example name, description and poster) and install script(which will contain meta-information like launch file address)
Script must have limited functions and have access only to install destination folder(to prevent malicious actions).
Only ability to download files, unpack archives, work with files(including editing).
Warn users when adding a repository, that the Project Ascension team has no relation to it.
This function will create a great opportunity for users. They will be able to install old games/free games/games with custom launcher in one click and get a full game platform functions icluding easy netplay, updates, community forum, etc.
Thanks!

Suggestion: Integrate Gitter.im

Gitter is a (reasonably) popular room-based chat client whereby users & devs can talk w/o having to have huge threads in issues. Might also make it easier for new people coming to the project.

You just need to auth with gitter.im, once you create a room, the api sends a PR to your README.

MinGW-w64 compilation error

The compiler can't find gdi32.lib and dwmapi.lib.

g++ -Wl,-subsystem,windows -mthreads -o debug/ProjectAscension.exe object_script.ProjectAscension.Debug  -lglu32 -lopengl32 -lgdi32 -lmingw32 -lqtmaind gdi32.lib dwmapi.lib -luser32 -lQt5WebKitWidgetsd -lQt5Widgetsd -lQt5WebKitd -lQt5Guid -lQt5Networkd -lQt5Cored
g++: error: gdi32.lib: No such file or directory
g++: error: dwmapi.lib: No such file or directory

IDEA: Using Ninja instead of make

I've done some testing with using ninja instead of make and have attached the results

Build system used Run 1 Run 2 Run 3 Run 4 Run 5 Run 6 Run 7 Run 8 Run 9 Run 10 Avg Range
Ninja 6.94s 7.00s 6.96s 7.07s 7.03s 6.86s 6.98s 7.48s 7.42s 6.90s 7.06s 0.62
Make (normal) 12.74s 12.94s 13.19s 13.11s 13.10s 13.16s 12.64s 12.68s 12.82 13.37s 12.97s 0.73
Make (parallel) 7.39s 7.66s 7.78s 7.46s 8.25s 7.93s 7.55s 7.44s 8.06s 7.79s 7.73s 0.86

Tests were done w/o ccache, and were performed as such:

rm -rf build  
mkdir build  
cd build  
cmake .. / cmake .. -G "Ninja"  
make / ninja / make -j$(expr $(nproc) + 1)

Thoughts? Ninja already exists in Ubuntu's repos, so no external PPA is needed for travis (see diff). Time saves aren't much now, but as the project scales it could prove useful. Tested on my fork on travis, the average time saves are around 10-20 seconds or so make vs ninja, and about 5-10 seconds ninja vs parallel make.

Better Icons

Current icons are pretty blurry. As well, we should standardize on one official logo to use.

UI changes

  • Does "ASCENSION" really need to be capitalized?
  • Optimally, "Project" and "ascension" would be on the same line
  • The headings are quite spaced out, maybe make them a bit smaller.

Database error reported by /u/TIFUbyredditting

Bug Description

Versions

  • Operating System and version
  • Project Ascension build number or snapshot version
    • Windows 10
      ##Severity
  • Trivial, Minor, Major, or Blocker
    • Major

Steps to Reproduce

  • Step by step instructions on how to reproduce the bug.
  • Please be as detailed as you can, we need all of the information we can get.
    • Unknown, see screenshot below

Actual Behavior

Expected Behavior

  • Explain what should be happening instead of the actual result.
    • Launcher should launch

Troubleshooting/Testing Steps Attempted

  • What did you do to try and fix it?
    • Prayed to Gaben (no response)
    • Posted to subreddit

Workaround

  • If you found a way to make the program work in spite of the bug, describe how you did it here.
    • Unknown.

Invalid Magic Value

Adding Steam games through the wizard shows this error:

Parsing Steam vdf, located at: "C:/program files (x86)/steam/appcache/appinfo.vdf"
Invalid magic value!
The game id: 377160 was not found in the Steam appinfo.vdf.
QObject::startTimer: Timers can only be used with threads started with QThread

Improve UI

Hello,

I think you might consider to rewrite your UI in QML while the deadline isn't tomorrow.
This is the future of Qt and you can do more with less code.

Regards,
NK.

Create Library UI Programmatically

We still a left over .ui file for the Library tab.

.ui files are easy to start with, but not every expandable in the future. As well, for the plugin system, a programmatic UI will be much easier to start with.

Many other UI elements have already been changed.

I'll probably be able to do this within the next couple days.

Potential registry/QDir issue

Description

for shits and giggles, I ran this on my work pc where I have neither steam, nor origin, nor uplay installed. The result was two false positives and a subsequent crash of the program.

reported by /u/rhetoricalkarma

Expected Action
Not find any directories, as Steam/Origin/uPlay are not installed

Actual Action

  • Two false positives
  • Application crashed

Steps to Reproduce
Unknown.

System
Windows 10 Pro x64

Screenshot(s)
Screenshot

QT c++11 Flag

Hay so I tried compiling with cmake and aparently ubuntu 14.04's version is "too old". Anyway I fired up qtcreator to build the client and it came back with a number of c++11 related errors. I looked around and according to this StackOverflow question the "CONFIG += c++11" only works for QT 5. I switched it with "QMAKE_CXXFLAGS += -std=c++11" which older QT versions and gcc/clang support. After that everything compiled fine.

I know this project is in really early development but if it doesn't require QT 5 (I don't see a dependency list) the second form I listed above should be used. I just wanted to point it out and it is fine to just dismiss this if QT5 is a planned requirement.

Build system

When the client will have a build system to make it cross platform?

Reopen issue #5

The icons haven't been added to the launcher yet, why not wait to close it with the actual changes on merge?

Also { ͡• ͜ʖ ͡•}

Some DB connections are not being closed.

QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

Need to close all connections for the DB. Should be able to fix today when i get home.

Reduce Semaphore Buildtimes

@elken as you're away for the weekend, when you get a chance, please resolve the dependency issues with Semaphore's build status. We implemented a hot-fix this afternoon to resume passing builds.

I don't have a libraryFolders.vdf file.

I'm on debian. I have no libraryFolders.vdf in my steam installation. it wasn't there. i removed that condition in ./src/drm/steam_drm.cpp

otherwise it wouldn't detect steam.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.