Monday, May 23, 2016

GameDB News Roundup 01/2016

In 2016, we want to continue our little series of blog entries about new developments within the video game database landscape.

The biggest news this cycle, again, came from the team of the IGDB.The core team of the site obviously found investors to believe in their success, and thus the developers are now working full time on the code. You can check out their headquarters and core people in their first episode of "Insight" videos. Also, in a turn of events unseen before, the lead developer of IGDB shared the technical base of the site in a 46 minute video.

Thursday, September 10, 2015

GameDB News Roundup 02/2015

Let's take another look at new developments within the video game database landscape.

The biggest news this cycle made IGDB, who launched the first version of their API. An API offers standardized access for fetching all kinds of data from a database, so they can be used elsewhere, and is therefore an important thing to have. This first IGDB API offers access to game data, companies, people, franchises, and platforms, which seems quite comprehensive so far. There's also the possibility for game shops to integrate their game products to the price comparison feature of IGDB.

Sunday, July 5, 2015

Sorting out the platform mess

 

Introduction

It's no secret that every game needs some hardware (HW) to run on, and most of them also need some basic software (SW) like an operating system (OS) on top of that HW. But the traditional platform model we see at many, if not all, video gaming sites out there is a wild mix of HW and SW. You see consoles like the PlayStation, OS's like Linux or Windows, "platform-independent" SW like a Browser, or even Arcade boards lumped together into one single layer of platform data. This get-together of all the different technical platforms in one place leads to quite some problems when it comes to documenting game releases.

Wednesday, June 3, 2015

GameDB News Roundup 01/2015

This blog post shall be the start to a series of news items which shortly summarize the latest developments in the video game database landscape. As we closely watch a number of projects, it's only logical to collect all the news in one place.

In the last months, three databases reported new contribution milestones regarding the number of games in the databases. MobyGames reached 50K "unique games", the rather new project IGDB reported reaching 10K games, and the Italian project UVL even celebrated 100K games lurking in their database. Now does that mean that MobyGames is five times as successful as the IGDB, and the UVL is twice as successful as MobyGames? Obviously not.

Saturday, December 27, 2014

Software at Oregami

At Oregami we are using a bunch of open source software products, or commercial products that are freely available to open source projects like us to get things done. This blog post will tell you what we are using!

Software for Development

IntelliJ IDEA

You are a Java developer? Chances are high that you are using Eclipse IDE which is available under a free license. I am using Eclipse now for many years myself, and I got "used to it".

Somehow I got aware of IntelliJ IDEA from Jetbrains, which they call "The Most Intelligent Java IDE". It is not completely available for free: they offer a free "Community Edition", but many useful features are only available if you buy the "Ultimate Edition". Fortunately, Jetbrains offers an Open Source License for the Ultimate Edition. IntelliJ IDEA is available for Mac, Linux and Windows.

Wednesday, June 11, 2014

Open source RESTful server application (Dropwizard - Google Guice - JPA Hibernate)

Around one year ago I decided to use the Java framework Dropwizard for our server application. Since then I read a lot, I learned a lot and I implemented many things.

As the recently published new Dropwizard version required some re engineering of our application, I used the opportunity to start all over again from the beginning to strengthen my knowledge about the whole implementation. I want to permanently understand every single detail of it, that's the only way I can extend and document it in a meaningful way. It should also help other people to get involved in the development!

In order to be able to provide my technical progress to the outside world in a useful way, I created a complete new ToDo application which is generic, thus stripped of the whole Oregami context. You know the drill with those to-do's: an incomplete thing with a list of features (name, description, state, ...) that still need doing.

Today the generic application contains the following stuff:
  • RESTful app based on Dropwizard version 0.7.0
  • Dependency Injection with Google Guice
  • Hibernate / JPA 2.1 as persistence framework
  • HSQLDB as (in memory) database
  • "Transaction-per-HTTP-request" with Guice PersistentFilter
  • Support for cross-origin resource sharing
  • JPA entities with UUIDs as key
  • a pattern for accessing and manipulating entities with HTTP REST calls
    (Resource => Service => DAO => entity)
  • a pattern for ServiceResult objects which contain ServiceErrorMessages (which can later be bound to the corresponding web form fields in the client)
  • continuous JUnit tests to assure correct functionality
In the near future the following aspects should be added:
  • authentification
  • Hypermedia with HATEOAS
  • more complex entities (1-to-n-relations)
The complete source code is available for everybody at Github as dropwizard-guice-jpa-seed.

Disclaimer: Of course you might find out that something can be done in a better way. In this case don't hesitate and help me to improve the code! Use the usual pull request mechanism at Github to do so. The same applies for extensions of the functionality!

Notes for developers:

Start the application with the class "ToDoApplication" with the parameters "server todo.yml".

List all tasks with:
GET => http://localhost:8080/task


Add a new task with:
POST => http://localhost:8080/task

Header:
Content-Type:application/json
JSON-Body e.g. :
{"name" : "task 1", "description" : "This is a description"}


Modify a task:
PUT => http://localhost:8080/task/[id]
Header:
Content-Type:application/json
Accept:application/json

JSON-Body e.g.:
{
    "id": "402880944687600101468760d9ea0000",
    "version": "0",
    "name": "task 1 with new name",
    "description": "This is an updated description",
    "finished": "false"
}


Important hint:
I recommend you use the great chrome extension Postman to make such HTTP calls!

Friday, January 31, 2014

Nomen est omen: the naming of games

One of the main recurring criticisms of MobyGames - despite all its serious flaws in other parts of their data model - is the naming of the game entries. As MobyGames is, and always has been, a US project, every game is only accepted into the database using its US release title as the "main title". Missing that, a release title of other English-speaking countries is accepted, and only if there's no English title available, the original title of release is allowed, regardless of origin. When a main title is found for the game, every other title is only accepted into the database as an "alternative title".

There's one big problem with this approach. It may well be that the rest of the world doesn't care one bit about the US release title of a game. Imagine a Japanese player browsing MobyGames, only to find the fourth entry of the Final Fantasy series listed as "Final Fantasy II", just because it was the second FF game released in the US. There must be a better way to do this, so, let's conduct some research about how other game sites are approaching this issue, and allow me to introduce you to the planned Oregami solution. For reference, I will always link Final Fantasy IV as an example game.