All Projects → kesiev → Rewtro

kesiev / Rewtro

Licence: mit
Papercraft videogame cartridges you can print and pirate with a copy machine.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Rewtro

Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (+47.19%)
Mutual labels:  game, retrogaming
Teleball
Build your own Arduino based retro handheld game console
Stars: ✭ 21 (-92.13%)
Mutual labels:  game, retrogaming
Cdogs Sdl
Classic overhead run-and-gun game
Stars: ✭ 422 (+58.05%)
Mutual labels:  game, retrogaming
Cross Lib
CROSS LIB - A universal 8-bit library and some games built with it
Stars: ✭ 137 (-48.69%)
Mutual labels:  game, retrogaming
Zelduh
A tile based adventure game!
Stars: ✭ 22 (-91.76%)
Mutual labels:  game, retrogaming
Snowflake
❄️ 🎮 Extensible Emulator Frontend written in C# and Javascript
Stars: ✭ 185 (-30.71%)
Mutual labels:  game, retrogaming
The Tale
Основной репозиторий проекта: сайт и логика игры
Stars: ✭ 256 (-4.12%)
Mutual labels:  game
Aitrack
6DoF Head tracking software
Stars: ✭ 262 (-1.87%)
Mutual labels:  game
Matchthreegame
A match-3 game in Unity (like Candy Crush and Bejeweled)
Stars: ✭ 255 (-4.49%)
Mutual labels:  game
Massivedecks
A comedy party game for PC, mobile & chromecast.
Stars: ✭ 254 (-4.87%)
Mutual labels:  game
Rust Psp
Rust on PSP. Panic and allocation support. Access PSP system libraries.
Stars: ✭ 265 (-0.75%)
Mutual labels:  game
Game Datasets
🎮 A curated list of awesome game datasets, and tools to artificial intelligence in games
Stars: ✭ 261 (-2.25%)
Mutual labels:  game
Robusttoolbox
Client/Server Backend for Space Station 14
Stars: ✭ 259 (-3%)
Mutual labels:  game
Coophordeshooter
C++ Coop Horde Third-person Shooter for Unreal Engine 4 (Udemy Project)
Stars: ✭ 257 (-3.75%)
Mutual labels:  game
Boxtron
Steam Play compatibility tool to run DOS games using native Linux DOSBox
Stars: ✭ 262 (-1.87%)
Mutual labels:  retrogaming
Cathook
Training Software for the game Team Fortress 2
Stars: ✭ 256 (-4.12%)
Mutual labels:  game
Rusted Ruins
Extensible open world rogue like game with pixel art. Players can explore the wilderness and ruins.
Stars: ✭ 262 (-1.87%)
Mutual labels:  game
Urde
Data interchange and engine re-implementation for games by Retro Studios | Mirror
Stars: ✭ 253 (-5.24%)
Mutual labels:  game
Linuxgsm
The command-line tool for quick, simple deployment and management of Linux dedicated game servers.
Stars: ✭ 3,063 (+1047.19%)
Mutual labels:  game
Example .io Game
An example multiplayer (.io) web game.
Stars: ✭ 260 (-2.62%)
Mutual labels:  game

Rewtro



Rewtro is a weird retro game engine inspired by fantasy consoles and code golfing that runs games encoded in a very small amount of data (2kb/3kb). This way is possible to share games using exoteric and usually data inefficient ways: i.e. sticking some PWA magic and a QR-Code reader to the engine I've made a fake gaming console for mobile devices...

...that loads games from papercraft game cartridges...

...or animated GIFs...

...simply framing them!

All the game data (graphic, sound, music, and code) is encoded into the QR-Codes and no data is stored online - and the same goes for the game console code too, once installed on your device - so scrap the paper cartridge and the game is gone. But hey... you can produce your game cartridges using just a plain printer and you can still pirate games using a copy machine like we used to do with cassette duplicators in the 80s. I hope it will bring back that retro vibes.

The game engine

The game engine implements:

  • A super simple physics engine
  • A sprites renderer that supports rotation and scaling
  • A text renderer based on pixel fonts
  • A simple event manager
  • A scene loader and manager
  • A sound synthesizer and basic music sequencer
  • Some commands for doing the math and basic logic
  • Some tilemap handling commands
  • Several custom graphics encoder/decoders
  • Some data packers, from old good zipping to custom algorithms suited for small data

And that's all. No game-specific code has been coded inside the engine. Making an actual game with these few things it's up to you.

The development tools

Games are coded using JSON structures and I've built some (pretty raw) tools you can use to code your games - together with some sample games. You can find them in the carts/ subfolder: there is a viewer for built-in color palettes, screen resolutions, controls and fonts you can use in your games.

To avoid cheating or being influenced by specific games, all presets are based on actual gaming systems form the past (Gameboy, ZX-Spectrum and Commodore 64) and most of them can be overridden by custom ones encoding them into your game code. You can also find a noise generator you can use to create sound effects that feature a pretty simple piano keyboard for sketching some music for your games.

But what you are going to use the most is the game debugger...

...and the game compiler and packager, that generates a foldable cartridge in SVG format to be customized and printed or an animated GIF you can show anywhere you want. Sorry for the thin toolchain: I survived with that but I'm going to improve it if there is some kind of interest.

While both the game console and the SDK tools run client-side, I've added a pinch of PHP for reading the games file list to be displayed on SDK main screen. Feel free to replace that PHP with any alternative you can think about (or suggest one).

You can have a look at a read-only version of the SDK here. Hit random buttons, test games, generate SVGs, etc. To play games in debugger use arrow keys and Z/X/C/V as action buttons.

The developer manual

There is a developer manual with explanations and a lot of code examples that cover everything Rewtro! See you there!

Released games

In the carts/ folder, you'll find the SDK and all the games I've developed for Rewtro till now. I've made 2 series of games, split by its initial:

  • The V- series contains customizable greeting card games: they include a title screen, a briefing screen, a short and relatively easy gameplay, and a debriefing screen displayed once the game is cleared. Games are customizable in text, gameplay parameters, graphics and - if you feel brave - music and sounds. You can make your cartridges making a copy and renaming a V- series JSON file into the same folder, changing the data as you want with any text editor and testing and printing the games within the SDK. That's what I did in November/December 2019.
  • The K- series contains short but more complete games, mostly inspired by classics. They are harder to change but you can print them as-is and customize the printed cartridge writing a dedication or a silly doodle on the front, more like a classic greeting card.

Remember that a QR-Cart contains the whole game code, music, graphics, AND customizations so, once the game is printed, you can't change anything. If you want to update your game, fixing a bug or a typo, you've to print the cartridge again. The previous one will be a rare bugged version of your game to be collected jealously. Welcome to the 80s!

Why?

It's Christmas time, I needed some greeting cards and decided to make some original ones this year. I liked the idea of hiding the actual greetings at the end of a customized videogame but implementing a browser game lacked the perishability of a greeting card: you want to keep them because it contains the whole experience, that is the stock message and the handwritten message. Moreover, the game itself is part of the message so why keeping that outside the greeting card?

Then, building physical retro games for specific persons and hiding messages in them gives you that Petscop's Rainer chills that's both cool and frightening.

You can also use these paper cartridges as hints in treasure hunts, put them in geocaches, spread its parts as collectible stickers, on video advertising, for fancy business cards, etc.

Rewtro QR-Carts are cheap to print and contain the whole game data, are physically shareable, fun to copy and can be easily unique. Take the best of that.

FAQs

Q: I want to make a Rewtro game too!

A: Have a look to the developer manual to learn how to setup your development environment and start developing!

Q: Which browser I can use for running Rewtro games?

A: On mobile, you can use Safari on iOS and Firefox or Chrome on Android. I just have an old iMac and a Windows 10 laptop and everything seems working on both Firefox and Chrome...

Q: Can I run a QR-Cart on a desktop computer?

A: While it's quite hard to frame a tiny QR-Code printed on paper or displayed on a mobile with a desktop cam, I managed to load a game easily running the Datasette on a tablet and displaying the code full screen (hit the buttons on top of the Datasette screen).

Q: I've created an SVG cartridge but it looks like I'm missing a font...

A: I've used the Jost free font (Jost-500-Medium.otf). Download, install, restart your favorite vector editor and open the SVG again.

Q: I received a QR-Cart from a friend but I've lost/ruined it. Can I reprint that exact copy using these source files?

A: Probably not, sorry. QR-Carts are not a reference to a database of games or customizations: they contain the full game data so, if they are lost, they can't be recovered anymore. You may try asking your friend if he can print the cartridge again... it's a great reason to meet him again!

Q: Can Rewtro load games just from a binary file?

A: Yes, it's doable, game files should be very small and this way you could make larger games but no, I don't think that the feature fits the project. Rewtro tries to store tiny games in the smallest amount of data possible (at least, that's what I tried to do) and, for that very reason, it has a limited number of commands that are thought to be easy to be encoded instead of being easy to use. This self-limitation was key to make something that loads games fast from offline low-storage systems, like QR-Codes and - maybe in the future - audio. Other fantasy consoles and game engines don't have such limitations and, for this reason, are easier to code, they can load larger games from the internet or files. For these reasons, they can handle more complex games. So: if you have a reason to share tiny games using files, feel free to tell me your idea. Otherwise, if you want something that shares larger games in a digital way, there are several easier alternatives out there!

Q: Why the V-PESCOP-Basic game looks glitched, features quite disturbing graphics and has cryptic gameplay?

A: If you know what Petscop is, you already have your answer.

Disclaimer

Consider Rewtro in beta right now. I've not so much time to work on pet projects but I'll try to evolve the game engine a little more without breaking it. There is some kind of engine version tracking in the Rewtro code and encoded in cartridges but, If you want to be extra cautious, make a snapshot of the engine and host it elsewhere - there is no URL encoded in game cartridges so you're safe.

News and contacts

I use Twitter as my main social. It's probably the best place to be updated about Rewtro and to contact me.

Credits

Rewtro exists thanks to these techs:

...and the great support of these people:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].