Idea: Game-Related Projects
#1
Hi, I'm the developer working on games in Kodi. Here's a list of projects that I think would be cool to work on:



NVidia GameStream via Limelight

Summary

Add NVidia GameStream support to the Game API

Strategy

The NVidia GameStream protocol packs video, audio and input data over the network. A binary add-on can translate this protocol to the Game API, allowing Kodi's RetroPlayer core to play streamed games similar to emulators.

Limelight is the open source implementation of GameStream. It contains a core library written in C and some java code to handle the video, audio and input. This library would be a good foundation for the add-on and it might be possible to include it directly.

What does it touch in Kodi

All GameStream-related code will be contained in a binary addon. Modifications to the Game API and RetroPlayer will be required.

Requirements

C++, translating Java to C++, working with git and large projects.



Game library

Summary

Extend Kodi's library system to video games.

Strategy

Define a simple schema for game-associated data, such as save states or screenshots. Find a compatible ORM that we can use. Connect the ORM to our existing database system.

What does it touch in Kodi

Modifications to the database system, RetroPlayer and the game API will be requred.

Requirements

C++, SQL, ORMs



Network play

Summary

Add LAN multiplayer capabilities to RetroPlayer and the game API.

Strategy

Add TCP/IP support to the Game API.

What does it touch in Kodi?

Most code will be self-contained in binary add-ons. Modifications to RetroPlayer and the game API will be required. If time allows, integration into Kodi's services is possible.

Requirements

C++, networking



What other game-related projects can you guys think of?
Reply
#2
Simple Game metadata scraper

Basically it just reads the ROM filenames and searches against:

http://igdb.com/

or

http://thegamesdb.net/
Reply
#3
(2015-03-09, 12:20)zag Wrote: Simple Game metadata scraper

Basically it just reads the ROM filenames and searches against:

http://igdb.com/

or

http://thegamesdb.net/

we got no library to store this metadata in
Reply
#4
More games related ideas:

Games Content Download Manager in Kodi (Game Store for Games/ROMs), possibly extend Kodi's Addon Manager). This should probably have very high priority because content is king, as I believe having easy access to downloadable ROMs from within Kodi would quickly increase the userbase of RetroPlayer, which logically in turn should attract more developers willing to help improve it
173355 (thread)

Integrate networked / online multi-player gaming into Kodi's Game API and for RetroPlayer, this is however probably dependent on first having a games library inside Kodi for an implemntation not to be done in a hacky way
201868 (thread)

(2015-03-09, 11:49)garbear Wrote: Game library

Summary

Extend Kodi's library system to video games.

Strategy

Define a simple schema for game-associated data, such as save states or screenshots. Find a compatible ORM that we can use. Connect the ORM to our existing database system.

What does it touch in Kodi

Modifications to the database system, RetroPlayer and the game API will be requred.

Requirements

C++, SQL, ORMs
For reference, much of the research work behind database schema for this have been done by m.savazzi here 200911 (thread)


PS: garbear, please update the original post here with new links and how it all fits together
164725 (thread)
195552 (thread)
Reply
#5
(2015-03-09, 12:59)Hedda Wrote: Games Content Download Manager in Kodi (Game Store for Games/ROMs), possibly extend Kodi's Addon Manager). This should probably have very high priority because content is king, as I believe having easy access to downloadable ROMs from within Kodi would quickly increase the userbase of RetroPlayer, which logically in turn should attract more developers willing to help improve it
173355 (thread)

one way to achieve this is adding the ability to scan library items from add-ons. can you think of a different strategy?

(2015-03-09, 12:59)Hedda Wrote: Integrate networked / online multi-player gaming into Kodi's Game API and for RetroPlayer, this is however probably dependent on first having a games library inside Kodi for an implemntation not to be done in a hacky way
201868 (thread)

added to my list. is this what you had in mind?
Reply
#6
(2015-03-10, 02:20)garbear Wrote:
(2015-03-09, 12:59)Hedda Wrote: Games Content Download Manager in Kodi (Game Store for Games/ROMs), possibly extend Kodi's Addon Manager). This should probably have very high priority because content is king, as I believe having easy access to downloadable ROMs from within Kodi would quickly increase the userbase of RetroPlayer, which logically in turn should attract more developers willing to help improve it
173355 (thread)

one way to achieve this is adding the ability to scan library items from add-ons. can you think of a different strategy?

IMHO the only way to have a nice (and proper) rom store in kodi that looks totally integrated with the UI would be an addon with some (the minimum as possible - let's say 2) skin dependent xml files. One for console listing, another for game listing. All the other elements should be generic dialogs already present in every skin. Keeping things simple, easy to port and that do not make skinners life a pain when users start to complain the store does not work on skin x.

As it seems that multiple public domain rom websites exist, a few script.modules (or a new addon extension point - e.g: <provides>roms</provides>?) would work as an API to each website returning the available games/consoles of each website to the main addon.

Other script.modules would work as metadata providers for each returned game since metadata addons do require an existing library right? Allowing metadata addons to scan addon listitems would be really cool and handy (even for other projects). The RCB has a lot of scrappers in there, it might not be too difficult to port them to standalone python modules (in case the metadata approach is too hard to implement).

Unfortunately I've too much on my hands right now but I'm always open to contribute (if that involves python of course).
Reply
#7
I don't understand where the ROM store idea comes from. There are no music, movie, or TV show stores in kodi . . . why would there be one for ROMs?
Reply
#8
i guess, because alot of game roms that are popular are also in the public domain (i assume due to limitiations with patents?? im not sure about the cause of roms PD status), whereas, not all of the online material that can currently be accessed using kodi and is popular would be free from copyright patents.

Dam0
Reply
#9
(2015-03-10, 10:45)Dam0 Wrote: i guess, because alot of game roms that are popular are also in the public domain (i assume due to limitiations with patents?? im not sure about the cause of roms PD status), whereas, not all of the online material that can currently be accessed using kodi and is popular would be free from copyright patents

ROM store seems like about as much value as adding an amazon mp3 store. People could and may use it, but there are other methods we already use for getting music. To me there are just many more useful things not done at this point that would be a better use of time
Reply
#10
@ Dark_Slayer i agree, but would still be cool if it existed

perhaps, it is a case of being alot less work involved in the long run to implement at this stage of dev, then to add later??

D.
Reply
#11
(2015-03-10, 02:20)garbear Wrote:
(2015-03-09, 12:59)Hedda Wrote: Games Content Download Manager in Kodi (Game Store for Games/ROMs), possibly extend Kodi's Addon Manager). This should probably have very high priority because content is king, as I believe having easy access to downloadable ROMs from within Kodi would quickly increase the userbase of RetroPlayer, which logically in turn should attract more developers willing to help improve it
173355 (thread)

one way to achieve this is adding the ability to scan library items from add-ons. can you think of a different strategy?
No, I'm not taking meta data, I'm talking about download the actual Games ROM files that the user can then play.

That is, I was more thinking about a "Game Download Manager", (or you can it a "Game Download Service" if you want) , the core idea being a search service feature that would enable the browsing/searching and downloading of individual Game ROMs directly from the internet and place the files in the correct directory. Kind of how downloading the subtitle search service already work in Kodi right now, but with the ability to add service plugins for different sites offering Game ROMs to download instead of subtitles.

For reference you can read up on how the subtitles addon was made into a subtitle search service for Kodi
http://kodi.tv/making-subtitle-search-better/
177297 (thread)
180265 (thread)
3552 (PR)

And similar to the official addon repository Kodi would only come with a few official plugins that offers access to download legal public domain Game ROMs. But just like how addon repositories work in Kodi the end users would have ability to add additional unofficial plugins for other sites offering downloadable Game ROMs.

Just like the subtitle service this "Game Download Manager" could itself be a python script and as such be upgradable just as a python addon, however just like like how subtitles work in Kodi today I think that a such "Game Download Manager" should be integrated into Kodi as standard and mandatory for skinners to skin.

The whole point of this "Game Download Manager" would be to acts an app store which allow easy access for new users to easily download a few Game ROMs and get started with RetroPlayer, all without having to go into a web browser to manually download Game ROMs and then have copy those files in a file explorer.

173355 (thread)

Game Store for games ROMs. That is, provide a centralized Game Store for games ROMs inside Kodi to enable easy access to downloading of ROMs as digital content directly from inside the 10-foot GUI. To make games ROM downloadable from Kodi as easy as addons you probably need a new type of addons that can provide access to different digital distributions and content delivery networks. So when and if RetroPlayer makes it into XBMC mainline it would really nice to have an Python Script or Plugin Addon in XBMC with a nice integrated GUI as part of RetroPlayer or a general Games Manager Library, with an content delivery interface called "ROM Store" or something similar, that content delivery interface would work like XBMC's existing Addon Manager, being a digital distribution platform with repositories and browsing of available addons, but instead of offering normal addons those plugins or scripts would instead only allow you browse game ROMs. Adding a on-demand digital distribution platform for downloading ROMs to RetroPlayer in XBMC, and at least have some legal ROM site repos added by default to that, and the users themselves could add links additional repos for sites that contain other ROMs.


(2015-03-10, 04:43)enen92 Wrote: IMHO the only way to have a nice (and proper) rom store in kodi that looks totally integrated with the UI would be an addon with some (the minimum as possible - let's say 2) skin dependent xml files. One for console listing, another for game listing. All the other elements should be generic dialogs already present in every skin. Keeping things simple, easy to port and that do not make skinners life a pain when users start to complain the store does not work on skin x.

As it seems that multiple public domain rom websites exist, a few script.modules (or a new addon extension point - e.g: <provides>roms</provides>?) would work as an API to each website returning the available games/consoles of each website to the main addon.
I agree, and again that is in principle how the existing subtitle search service already work in Kodi today, and yes plugins for that subtitle search service is now all done in python, but this subtitle search service feature did initial require some C++ additions to the Kodi core for the GUI parts

http://kodi.tv/making-subtitle-search-better/
177297 (thread)
180265 (thread)
3552 (PR)

(2015-03-10, 07:32)Dark_Slayer Wrote: I don't understand where the ROM store idea comes from. There are no music, movie, or TV show stores in kodi . . . why would there be one for ROMs?
My idea comes from the existing subtitle service for Kodi, but instead of allowing users to easily download subtitles this would instead allow users to easity download Game ROMs.

http://kodi.tv/making-subtitle-search-better/
177297 (thread)
180265 (thread)
3552 (PR)

Regarding your comment about there not being a store for video and music content you must be thinking about this wrong or looking at this too narrowly, as there are already loads of addons for Kod to stream media from the internet. The only reason this is different from an addon for YouTube or Spotify is that you would download Game ROMs instead of streaming them, but this is also why I compare it to the exiting subtile service in Kodi as it too do not stream but download the (subtitle) files.

Also remember that we are foremost only talking about adding the ability to download retro Game ROMs that legal belong to the public domain, either because their copyright dates have run out or their owners have otherwise released them as public domain, or free homebrew Game ROMs which itself has its own subculture that makes games for old arcade and game consoles.

173355 (thread)

There is of course no need to discuss downloaded Game ROMs which still have valid copyrights as downloading those would be illegal in most countries. However there is nothing stopping us from discussing building a framework that also allows end users to themselves add unofficial plugin, because this would work exactly like how it is today possible to add third-party repositories for access to unofficial addons in Kodi.

@Dark_Slayer, read above and maybe you understand that arguing against the core of this idea is to argue against existing proven methods and features already available in Kodi, though for subtitles and media content addons/plugins. You already need to understand that developing for a non-profit organization is not about that is the best use of our time, it is about what is fun and what ideas triggers our personal interest. Almost no one is going to be willing work on something for Kodi that they don't have a personal interest in, even if there are "just many more useful things not done at this point".

(2015-03-10, 02:20)garbear Wrote:
(2015-03-09, 12:59)Hedda Wrote: Integrate networked / online multi-player gaming into Kodi's Game API and for RetroPlayer, this is however probably dependent on first having a games library inside Kodi for an implemntation not to be done in a hacky way
201868 (thread)

added to my list. is this what you had in mind?
Yes to start with that would do, though it would be possible to also take it to the next level by bringing a little more advanced lobby system to the GUI as well.

Again please see previous discussion about RakNet here 201868 (thread)
Reply
#12
(2015-03-09, 11:49)garbear Wrote: Game library

Summary

Extend Kodi's library system to video games.

Strategy

Define a simple schema for game-associated data, such as save states or screenshots. Find a compatible ORM that we can use. Connect the ORM to our existing database system.

What does it touch in Kodi

Modifications to the database system, RetroPlayer and the game API will be requred.

Requirements

C++, SQL, ORMs
For reference I found this discussion thread:
40715 (thread)

And I also found this old post by garbear quoted below which could be used as reference for ideas on how to write a proper proposal:
126210 (thread)
(2012-04-05, 07:15)garbear Wrote: I hope you're still considering a game library, because I think it'd be a novel inclusion in XBMC. In my application, I'm considering a picture library built on a library-abstraction framework, and before settling on this idea I wrote up a proposal for a game library. If you're still thinking of applying, I imagine this proposal could be a good source of ideas and/or information.

XBMC Game Library - Google Summer of Code ‘12

Summary
The goal of this Google Summer of Code project is to enable a robust library for games and programs within XBMC Media Center. While XBMC excels at categorizing multimedia, support for games is limited to Python scripts such as the Advanced Launcher add-on. Furthermore, a standard for displaying program metadata is nonexistent and, as a result, certain capabilities of a script like Advanced Launcher depend on user interface authors. This project aims to overcome these difficulties by implementing a database for games and programs, allowing items to be added (similar to the movie and music libraries), and providing a way for these items to be launched.

How will I achieve this
The focus of the project revolves around implementing the database, porting XBMC’s existing scraper system over to the new library, and the execution of the games and programs from the new library. The database will stem from the existing libraries and offer the same features, such as MySQL and SQLite back-ends. Items can be added by specifying an executable or a folder of applications. Similar to the existing libraries, the user will be given the option of scraping a website for metadata; if none is selected, XBMC will fall back on parsing the files for tags and other metadata. Taking inspiration from existing Python scripts, XBMC will perform proper bookkeeping when launching an application such as passing the appropriate command-line parameters, minimizing itself, and restoring itself when the application terminates.

Benefits
An immediate group of users benefitting from an integrated game library are those who have floundered with Advanced Launcher. As an example, the first intuitive step in the script (adding new games) is impossible: no folders show up! The solution of careening through various submenus is well documented in a forum post online, but can be daunting for virtually every user who installs Advanced Launcher from within XBMC.

The real impact this project will have on users can be discovered by quickly revisiting XBMC’s history. While XBMC was under development for Microsoft’s eponymous Xbox platform, an important feature was the ability to organize and launch games and “homebrew” software from the Xbox’s hard drive. Indeed, the program library was first item selected when powering the Xbox. XBMC’s original popularity is illustrious of the tendency for console gaming arrangements to also function as good media center systems. Thus, the incorporation of a game library will bridge this gap for a vast number of users.

Goals
Prior to GSoC, I will be researching existing approaches to the game library problem (including Advanced Launcher and the patches attacked to tickets #7046 and #9749 on XBMC’s issue tracker) and refreshing my RDBMS knowledge. Programming for the project officially begins on May 21.

I have identified three goals that will culminate in the completion of this project:

  1. Timeline: 1-2 weeks. Implement program execution support for standalone and file-based applications. This may require an extension to the settings (such that command-line arguments can be specified). This goal will be complete when both standalone and file-based applications can be launched from within XBMC.
  2. Timeline: 4-5 weeks. Extend XBMC’s existing database functionality to enable the storage and retrieval of game and program metadata. This goal will be complete when a library populated with test data can be browsed using the default skin, Confluence.
The mid-term evaluation, after week 7, should coincide with my completion of the game library’s underlying database. This will allow my performance to be properly judged, and if I finish prior to the mid-term evaluation, will allow me to dedicate time to improving the quality of my code and work towards the goal of my code being seamlessly merged with XBMC’s codebase.

3. Timeline: 2-4 weeks. Implement scrapers and file tag/metadata parsers for the various operating systems. This goal will be complete when a scraper can be set for a directory and the included items are added to the game library with metadata scraped from the internet.

The “soft” completion date occurs five weeks after the mid-term evaluation. The remaining week, up until the “hard” completion date, will be spent improving the quality of my code and ensuring a seamless merge. Given the schedule above, I anticipate being able to achieve my goals in the given time.

What does it touch in XBMC
The aim for this project is relative self-containment. Program execution support has been demonstrated in the past (ticket #9749) to be possible with minimum source tree impact. The new database implementation and scraper extension should likewise carry minimal impact.

Requirements
This project will require knowledge in several areas of expertise, as well as capable hardware. I am familiar with many of the required concepts, including C++ development, object-oriented design and build systems. During the ramp-up period leading to May 21, I will need to revisit relational databases and regexes (which XBMC’s scraper engine currently relies on). I can provide both a Linux and Windows environment for testing my code. In the past, I have tested compilation under a Mac virtual machine, but general development would be too tedious. Fortunately, UCLA’s CLICC program provides daily rentals of Mac laptops and accepts applications for longer rental periods.


Cheers,
Garrett
Reply
#13
(2015-03-11, 11:39)Hedda Wrote: @Dark_Slayer, read above and maybe you understand that arguing against the core of this idea is to argue against existing proven methods and features already available in Kodi, though for subtitles and media content addons/plugins. You already need to understand that developing for a non-profit organization is not about that is the best use of our time, it is about what is fun and what ideas triggers our personal interest. Almost no one is going to be willing work on something for Kodi that they don't have a personal interest in, even if there are "just many more useful things not done at this point"

Well it's just my opinion. Subtitles aren't content. At best they are metadata for existing content they need to be attached to

To be fair, if everything had been framed as a "ROM Streaming Add-on" rather than a "ROM Store" I wouldn't have said anything to begin with. If pdroms has an api that can be used and streamed from within retroplayer then great. If pdroms isn't up to the task and nothing else really fits the bill, perhaps it's time for there to be a better more kodi-centric site similar to the way fanart.tv was created
Reply
#14
(2015-03-12, 16:02)Dark_Slayer Wrote: Well it's just my opinion. Subtitles aren't content. At best they are metadata for existing content they need to be attached to
But creators opinion is other:
http://english.cri.cn/12394/2014/11/25/3685s853841.htm
http://www.frikipandi.com/public/post/wi...pirateria/

Public roms are legal over the (almost) whole world
Reply
 
Thread Rating:
  • 0 Vote(s) - 0 Average



Logout Mark Read Team Forum Stats Members Help
Idea: Game-Related Projects00