A lot of people at IFI seem to be interested in game design & programming. However, acquiring the necessary skills is a long-wound process, and typically not immediately very rewarding. Getting people to actually try and play your game can be a difficult challenge with the growing number of indie titles on steam, desura & co. This project is meant to help budding game developers out, by giving them an easy quick-to-target distribution platform they can use to deploy their game and get some instant cash.
The arcade machine itself contains normal computers running standard operating systems, and is extensible as far as platforms go. This means porting previously made games is easy, and they can use whichever framework, libraries, APIs et cetera they normally would. The software used to control the system is available as open source.
The machine runs a menu application the user can use to select which game he/she wants to play. When the user selects a game and inserts a coin, the game starts, and the user can play for a certain amount of time. Depending on the game, this can be given in minutes (time-based), or a certain number of lives/retries the user has available (skill-based). Once the time is over, the game may offer the user to insert more coins for continues, extra levels et cetera, or simply exit. Upon exit, the game returns a high-score to the system, and the user is offered the possibility to enter him/herself into a highscore list.
To ensure all games get a chance to be played, the machine has an internal "rating" system that uses input signals such as "date added", "number of plays", "number of playthroughs", "number of aborts" et cetera. This way, newer or infrequently selected games can be shown on the top of the list along with the most popular titles.
Currently, playing is free. However, once finished, the machine is supposed to take money for playing. A database is used to log the amount of money each game made invidiually, so that developers can be paid out by the individual success of their games. It's currently not decided whether the machine will have a moneyslot that only takes one type of coin (1NOK, 5NOK, ...) or several different ones, and whether it's possible that different games require different amounts of money. It is also a possibility that students could use their RFID Student ID card for easy payment.
Hardware inside the machine is flexible and can be changed on-demand. It generally includes a PC with powerful hardware. The main control system is linux-based, but the dynamic hardware architecture allows windows, xbox360, Wii et cetera titles to be deployed as well. If you have made a game for unusual hardware, and no emulators are available, feel free to contact us, and we can see what we can do to add the necessary hardware to make things work.
The control panel currently consists of two sets of inputs, each equipped with one 8-axis joystick and 5 buttons (one on top of the joystick). Each of the control sets is connected to custom-programmed USB chips, mimicking USB Keyboard input devices. That means your game does not need any additional support, drivers et cetera, it simply needs to have the correct keybindings for the controls. There are several additional buttons on the control panel, however, these are reserved for system control (adjusting volume levels, aborting the currently-running game, et cetera) and cannot be accessed by games.
The arcade machine currently contains a set of normal speakers that can be used for normal audio playback. The addition of a hardware MIDI synthesizer as well as a programmable SID soundchip are underway.
The screen is a 16:10 DELL widescreen with a resolution of 1920x1200.
Games running on the arcade machine simply have to implement a simple text-based protocol via STDIN/STDOUT. The minimum set of commands that have to be implemented is the three main system commands, but implementing other parts of the protocol can be beneficial to make use of the additional periphery the machine offers. Games are started and stopped automatically by a system daemon called "arcaded". This daemon will also control volume levels, special periphery, screen overlays, the menu, money transfers, highscore lists and databases, et cetera. When a game exits, it is required to return the users achieved score to the system daemon, which will then automatically offer the user to enter his/her name in a highscore list. Other (optional) services the daemon currently provides for games are: Starting/stopping of games, overlay displaying keybindings when a game starts, highscore lists, volume control, soundtrack playing. Since the system can take care of so many "housekeeping" jobs like the highscore list, the game programmer does not generally have to implement a HUD, GUI and many of the other usually tedious things.
Developers are offered a database of specially-crafted assets they can use in their games. This includes things like graphics, sound effects, soundtracks, code snippets, et cetera, but also things like man-power; we have contractors that can program certain parts for you, professional compors who can compose music for your games, artists, animators et cetera. Most or all of these assets will be re-licensable, if you later on wish to publish your game on other platforms such as steam, desura, XBLIG/XBLA, Apple AppStore, et cetera. If you are an artist of any form or description, and you wish to make content for our games, feel free to contact Jonathan Ringstad (see the bottom of this page.)
For programmers a brief manual with "Do"s and "Don't"s is provided, along with documentation on how to use the special features of the machine. Developing games for the machine is free, and we generally help the process along on a case-by-case basis, write glue/wrapper-code, verify and playtest the game, et cetera. Whenever hardware is added or upgraded, we will take care that all games still work properly, and if problems arise, contact the developers to work out a solution. Providing sourcecode of your games to us is not necessary, but can be helpful for the process. The general process works so that we ask you to send us a demo or description (if the game is still very unfinished) of your game, and then decide whether it could work on the arcade machine or not. If you wish to deploy/develop a game on the machine, simply contact Jonathan Ringstad (see the bottom of this page.)
Our longterm goals are:
- Provide people who want to develop and deploy games with an easy-to use platform, and with an easy-to-achieve goal
- Provide said developers with instant cash return
- Developers can, but should not be forced to, adapt their game to work better on the arcade machine. We keep control over deploying games on the machine, and can provide some glue-code for integration on a case-by-case basis.
- Create an awesome gaming platforms for the people at IFI
If you want to participate or contribute to the project in any shape or form, be it by planning, administrating, programming, designing, composing, playtesting et cetera, contact Jonathan Ringstad (see the bottom of this page.)
- Jonathan Ringstad (Lead design, administration, hardware architect, software architect, graphic & sound supervision)
email: jwringstad 'at' gmail 'dot' com jid: firstname.lastname@example.org
- Sigmund (Menu & other GUI development)
- Persijn (Game developer of 'Rainbow Ship', betatester)
- Roger Antonsen (Logistics, administrativa)
- Jonas Libak (Hardware & control system engineering)
- Haakon Storm Heen (Composer)
- Hichael Mareno Søbstad (Composer)
- Spencer Nunamaker (Composer, sound effects)
Games under development