We updated our site oregami.org
to a new technical base, and didn't forget our blog in the process. It is now fed elsewhere, not via Google (blogspot.com) any more.
Thus, this is the last post at this space, further blog posts are to be found only at oregami.org.
Monday, February 26, 2018
Wednesday, November 29, 2017
GameDB News Roundup 01/2017
Let's take another look at some developments within the video game database landscape.
(The content in this update is a bit outdated, as this will be the last GameDB News Roundup for the time being, because I want to concentrate more on subject matter work to finally bring Oregami online, and couldn't beat myself to publishing this earlier. If you want to continue writing these contents, please get in touch at our forums.)
IGDB.com released version 2 of their API this summer. And while I cannot tell the differences to version 1, version 2 is claimed to be faster, more stable and ready for heavy-weight usage. The interesting thing here is the pricing, which reveals that free use of the API is limited to 7,000 requests per day, which is rather not much. Also, IGDB's advanced search feature has been rewritten, and is now an even more powerful tool that is among the leaders of the pack. A feature that usually perfectly showcases the weaknesses embedded into the current models of genre definition, is an automated similar games search. The IGDB developers introduced this nonetheless, but also added the possibility for the users to add their own recommendations. Take a look at the recommendations page for the 1990's game Apprentice for an example.
Saturday, March 11, 2017
Thoughts about internationalization (i18n)
It comes to no surprise for Oregami to face internationalization (i18n) issues sooner or later, since we are a project that wants to become the authoritative and free data pool for the global video gaming community. While English is a good choice for the first language of the project, and German as our native language a good choice for the second, a complete documentation of video games requires spreading the work and expertise to more languages.
Saturday, November 26, 2016
Domain Driven Design, CQRS, Event Sourcing, Hexagonal Architecture & more
The road to the right software architecture can be very long. Especially when you're not a professional software architect who helps his customers with developing complex applications day by day.
What will be the Oregami way to the right software architecture? If you've been monitoring our project from the beginning, you know that we threw over the chosen technologies one ore two times already. In the beginning I only had the classical multi-tier architecture in mind and mainly thought about which Java framework to use for persisting our game objects and which database software to use for that. Until today my mind changed in many ways.
Saturday, July 9, 2016
One step back - two steps forward?
If you are watching the Oregami project you may have noticed that it got rather silent during the last months. What could be the reasoning for that? Real life!
But exactly due to RL we create everything in the open: data model, ideas, source code. Nothing gets lost, everybody can jump on the Oregami bandwagon at any time to support the first real open game database!
The cause for this blog post is my attention towards the project Spring Boot. Spring Boot was designed "to simplify the bootstrapping and development of a new Spring application. The framework takes an opinionated approach to configuration, freeing developers from the need to define boilerplate configuration" (source). When I switched to Dropwizard with the Oregami server application two years ago, there was no other Java framework with these capabilities: making web development easier with an embedded server. It was exactly what I was looking for, no more "deploying" or "publishing" fat server applications.
In the mean time Spring Boot entered the stage. In April 2014 version 1.0 was released, today the latest release is version 1.3. What if I would try to move the current development state of the Oregami web application to Spring Boot? Before I answer that let me first give you an overview of what we have running so far:
- REST-Application with domain objects like "Game", "PublicationFranchise", "GamingEnvironment" and more
- HTTP-Calls for GET (read), POST (create) and PUT (update) of these objects
- creation and editing of domain objects in the web browser
- Cross-Origin Resource Sharing
- "Session-per-HTTP-request": one database transaction per HTTP-Request
- HSQLDB for development, MySQL for the deployed application
- JPA entities with UUIDs as Primary Key
- Liquibase for easy database schema updates
- Auditing of saved objects with Hibernate Envers
- integration tests with rest-assured
Of course all these things would have to be implemented in the refactoring with Spring Boot.
But there is another important question: will we stay with the current architecture which is a REST-Server + a JavaScript Single Page Application?
During the last years there's been a war of architectures going on in my mind: a REST-API is a must, so we developed the Oregami game database as a pure REST application with a web client as JavaScript single page application. That's kind of elegant and makes fun during development. But is it the best choice? I am not the only one who thinks about this:
- Are Single Page Apps bad?
- Reimagining Single-Page Applications With Progressive Enhancement
- Why I hate your Single Page App
A few months ago I bought the book "Adaptive Web Design: Crafting Rich Experiences with Progressive Enhancement (2nd Edition)" by Aaron Gustafson. The idea of making a website available with basic web technologies at first, enhancing it afterwards step by step and therefore making sure that the website is usable with every web software on the planet, becomes more and more attractive to me. With this in mind I started to refactor my (other) website Kultpower.de. In addition to "Progressive Enhancement" I made use of a technique called "Mobile First": concentrate on devices with small screen (smartphones) primarily and then, using the same code base, enhance for bigger screens. The result so far can be seen at Kultpower.org, and I must say that I am really satisfied with it! (don't forget to try it on your smartphone)
The concept of the so-called "Roca-Style" (Resource Oriented Client Architecture) describes a collection of simple recommendations for decent Web application frontends. I will use these recommendations for a complete refactoring of the Oregami application. I will be able to reuse much of the source code (e.g. for Games, Publications etc.) and make use of the knowledge I gathered with Kultpower.org. Our current JavaScript-Client will be replaced with server side rendered HTML pages created by the template engine Thymeleaf.
So you may have already guessed it: Stay tuned! 
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.
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.
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.
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!
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.
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:
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!
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
- authentification
- Hypermedia with HATEOAS
- more complex entities (1-to-n-relations)
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.
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.
Wednesday, November 20, 2013
First Language English
The recent demise of MobyGames was sad to see, but it flooded the Oregami forums with disappointed people looking for a new home. We tried our best to answer all the questions that were asked and address all the concerns that were raised. We realized that it's about time to advance the internationalization of Oregami.
The main positive response was that we're on the right track with what we're doing. There is a growing demand for a future-proof, sophisticated, and multilingual video game database, now more than ever. Here are some examples:
Thursday, September 19, 2013
Oregami association on the horizon
It is quite hard to believe, but the first
real discussions about the founding of our Oregami association already
took place in January 2012, i. e. some 20 months ago. And founded it is
not, yet! So what were we up to all this time? And why do we want an
association hosting this project at all? A little retrospect shall give
these information, furthermore we want to give a little perspective on
the future.
MobyGames faces them, TheLegacy faces them [German], thematically different web sites also face them [German] - always the same old problems. Caused by the experiences with other database projects we committed ourselves quite early to one basic principle for Oregami: maximum independence from individuals. First and foremost, this principle should be applied to the legal base of the project, too. The legal manifestations we saw with other game databases (private, half-commercial, commercial) had, in our opinion, one crucial disadvantage: all these projects were legally run by a single person or company, two at the most, which left us with big questions about the future-proofness of their data. What would happen when this single person would lose interest, when this single company would be sold or become insolvent? What future would arise for these projects then?
MobyGames faces them, TheLegacy faces them [German], thematically different web sites also face them [German] - always the same old problems. Caused by the experiences with other database projects we committed ourselves quite early to one basic principle for Oregami: maximum independence from individuals. First and foremost, this principle should be applied to the legal base of the project, too. The legal manifestations we saw with other game databases (private, half-commercial, commercial) had, in our opinion, one crucial disadvantage: all these projects were legally run by a single person or company, two at the most, which left us with big questions about the future-proofness of their data. What would happen when this single person would lose interest, when this single company would be sold or become insolvent? What future would arise for these projects then?
Friday, March 22, 2013
Oregami featured in German podcast "The Three Vogons"
One of the best-known nerd podcasts of Germany is the one produced by "The Three Vogons".
Some months ago I was asked to join the Three for a guest interview within their next podcast. Well, how did I respond? YES !
Now the new issue of their podcast is online!
In the best of habits of "The Three Vogons", the podcast lasts for no shorter than nearly 6 (!) hours. In the category "Deep Thought" (from app. 01:39:00 on) one can listen to my interview which lasts for just under an hour. Subjects: content and history of Kultpower.de, but also the goals of our project Oregami.org, the all-new and soon-to-be non-profit online video game database.
The guys went deep into the issues and asked intelligent questions. I just hope that my answers made a similar impression, too. :-)
If you can listen to German, check it out! And then it would be best to help out with Oregami or Kultpower. Or both. :-)
Some months ago I was asked to join the Three for a guest interview within their next podcast. Well, how did I respond? YES !
Now the new issue of their podcast is online!
In the best of habits of "The Three Vogons", the podcast lasts for no shorter than nearly 6 (!) hours. In the category "Deep Thought" (from app. 01:39:00 on) one can listen to my interview which lasts for just under an hour. Subjects: content and history of Kultpower.de, but also the goals of our project Oregami.org, the all-new and soon-to-be non-profit online video game database.
The guys went deep into the issues and asked intelligent questions. I just hope that my answers made a similar impression, too. :-)
If you can listen to German, check it out! And then it would be best to help out with Oregami or Kultpower. Or both. :-)
Thursday, December 6, 2012
The weird X-Wing series or Why do we model data?
Intro
Oregami is designed to become an interactive database for computer and video games, with a similar complexity like the Internet Movie Database has for TV and film. Thus, if we talk about Oregami we quickly drift to our data model - or technical model - and to the statement that this ominous model shall be better than that of any existing video game database. But why that? What is a data model, actually, and why the heck is it not enough for us what MobyGames and TheLegacy offer?Now our beloved hobby brings along a real mountain of data: computer and video games have a title, belong to one or more genres, are published for different systems in different versions at different times, even in different countries, and so on and so forth. We want the users to be able to enter all these data into our database, but that alone clearly isn't enough. If the user checks a game entry, he / she may exemplary want to learn the systems it was released on and when. If one visits a compilation entry the included games shall be visible, and with one more click every of those game entries must be reachable for more information. Or which games of a certain genre have been released on a certain system within a given time frame?
Wednesday, October 31, 2012
Retrobörse in Bochum (Germany) on November 10th
The next event of the "Retrobörse" ist coming up: on November, 10th there will be something like a really big flea market in Bochum, Germany - by nerds and for nerds - filled with retro stuff like old computers, consoles, games and merchandising.
There will be one single booth selling old gaming magazines exclusively - which is mine. As usual I will offer hundreds of issues from mags like Powerplay, ASM, Video Games, Maniac, PcXtreme, 64er and more.
Of course - that's the reason for writing here - you may interrogate me about our online game database Oregami: What do you think about our project? What ideas or wishes do you have? How could yo help us build the best online game database "ever"?
Things concerning my "other" website Kultpower.de are permitted as well :-)
Come and enter a great retro world!

There will be one single booth selling old gaming magazines exclusively - which is mine. As usual I will offer hundreds of issues from mags like Powerplay, ASM, Video Games, Maniac, PcXtreme, 64er and more.
Of course - that's the reason for writing here - you may interrogate me about our online game database Oregami: What do you think about our project? What ideas or wishes do you have? How could yo help us build the best online game database "ever"?
Things concerning my "other" website Kultpower.de are permitted as well :-)
Come and enter a great retro world!
Monday, August 27, 2012
A visit to the Gaming Veterans (aka "Spieleveteranen")
Some days ago I was able to take part in the latest edition of the
Gaming Veterans' Podcast and, thus, was able to chat with some of the
old stagers of German gaming journalism: Heinrich Lenhardt, Anatol
Locker, Winnie Forster and Jörg Langer may not be known to international
readers, but are quite famous amongst German retro gamers. For the last
years I've had my share of contact with them through my German retro
mag site Kultpower.de and I can assure you that they're nice guys whose
experience and competence in the games business blow you away every
single time.
But this time, I had something to tell to them and to all the listeners out there: What's the gist of our project OREGAMI?
Here's the digest:
But this time, I had something to tell to them and to all the listeners out there: What's the gist of our project OREGAMI?
Here's the digest:
- we want to give birth to a new, open and comprehensive online database about everything related to the world of computer and video games.
- we want to found a non-profit association to host the project organizationally, legally and financially. The details can be found here.
- we are actively searching for new team members in order to be able to fulfill our self-created time schedule.
- right now we're looking for Java programmers. More info for hackers are here.
- soonish we will be looking for Law experts to, exemplary, discuss licensing issues regarding database contents, screen shots, etc.. The respective discussion takes place here in the forums [German].
- upcoming will be our search for Designers for a cool and fresh, but usable look of our website. Interested people can show up and discuss with us right now, too, of course. :-)
Wednesday, August 8, 2012
Technical three-way with Jenkins, Git and Tomcat
The goal was clear: Our Java code shall be regularly compiled by a
Jenkins build server, then deployed to our Tomcat server. So far, so
good. But implementing this automatic workflow saw quite some obstacles
to jump over.
When it comes to code versioning my personal programming past mainly brought me close to CVS and Subversion, but both don't really hold up any more today, so I decided to use git for source code maintenance. And because so many famous projects cannot be wrong, I chose Github as our online hosting service for this.
For professional reasons I am used to my program code being built at least once a day, so the Jenkins build server was an obvious choice. And a Tomcat server for our Java web service should be an easy target to deploy to, or so I thought.
When it comes to code versioning my personal programming past mainly brought me close to CVS and Subversion, but both don't really hold up any more today, so I decided to use git for source code maintenance. And because so many famous projects cannot be wrong, I chose Github as our online hosting service for this.
For professional reasons I am used to my program code being built at least once a day, so the Jenkins build server was an obvious choice. And a Tomcat server for our Java web service should be an easy target to deploy to, or so I thought.
Sunday, July 1, 2012
As of now: open for everyone!
For some one and a half years now, we 're tinkering around with some
people on our new and ultimate online database for computer and video
games named OReGamI (full name is "Open Registry of Game Information").
Within over 800 forum posts we've already created a large amount of the
very important data model, built the foundation for the coding with Java
and, now, are ready to take the next step: publishing our unfinished work.
Why that, you may ask? Because we want everyone of you to take part in the complete development process of this ambitious project. This can mean reading into our forums as often as you want, or sniffing around in our Java code base.
And when there's something you wanna tell us regarding our ways, or wanna comment on a certain issue, just do it! Register at the forums and post to the public area what's bothering you. If you'd like to join us and actively take part in the development, you should send some info about yourself to Sebastian using gene[at]oregami.org. We're always open for new people, be it gaming experts, programmers, designers or lawyers.
We're curious to meet you!
Some final words: We're German and in order to not introduce an additional language barrier, we started this project using our native language. But this is not a Sauerkraut project. It can't be, because we wanna document the global history of video games. So, we're slowly trying to switch to the English language whereever possible.
We started by offering the contents of our shiny new website bilingual. Substantial information about our project crave for readers.
Why that, you may ask? Because we want everyone of you to take part in the complete development process of this ambitious project. This can mean reading into our forums as often as you want, or sniffing around in our Java code base.
And when there's something you wanna tell us regarding our ways, or wanna comment on a certain issue, just do it! Register at the forums and post to the public area what's bothering you. If you'd like to join us and actively take part in the development, you should send some info about yourself to Sebastian using gene[at]oregami.org. We're always open for new people, be it gaming experts, programmers, designers or lawyers.
We're curious to meet you!
Some final words: We're German and in order to not introduce an additional language barrier, we started this project using our native language. But this is not a Sauerkraut project. It can't be, because we wanna document the global history of video games. So, we're slowly trying to switch to the English language whereever possible.
We started by offering the contents of our shiny new website bilingual. Substantial information about our project crave for readers.
Subscribe to:
Posts (Atom)