Just wanted to make a thread for a project I have been working on for the past 11 days.
I have tried many different game dev frameworks and engines including most recently buying an ARDUBOY handheld game console and making a game for it and then purchasing the PICO-8 fantasy console and making a game for it.
I liked development on those. I really like the fantasy computers and game consoles a lot. They are incredibly well done but anyone who works with them will find their projects will grow beyong what can be done in those systems.
After some time, I thought what I really want is a way to make AppGameKit development be much closer to development on those fantasy computers & consoles. I thought one of the big differences is the fantasy machines all come with built-in sprite editor, map editor, sound fx editor and music editor. All content created with those built-in editors is readily available in your program. There is nothing you need to do except start referencing the content.
So I fired up AppGameKit and started working on a sprite editor and a system to easily work with the images produced by it.
The Sprite Editor is complete and makes a huge difference for me personally.
But I wanted to go further. I thought... I might not want to get into trying to create some self-contained fantasy machine BUT what I could do, and think would be much better, is to create a fantasy machine framework.
For the past 4 days I have been working on this.
So... let me introduce...
Retro Game Fantasy Computer Framework
The Retro Game Fantasy Computer is a fictional machine that was released(not really) at the end of the 80s taking 8-bit power to the extreme! Unfortunately, companies had brainwashed people into thinking 8-bit was dead and "the cool thing to do" was to get a 16-bit machine.
The Retro Game Fantasy Computer Framework supports two resolutions.. 256x144 and 160x90.
It has 10 different built-in palettes of 24 colors each.
Incredibly, it has 256 sprites available...
8 sprites that are 32x32 in size.
32 sprites that are 16x16 in size.
80 sprites that are 8x8 in size.
There was some space left in there so the engineer decided to make use of it.
For this reason, the system also has 136 sprites that are 1x1 in size... aka particles.
Here is a sample game I made using the Retro Game Fantasy Computer Framework system...
Here is the game in 256x144 mode...
And the same game running in 160x90 mode...
The way this all works is sprites use shared spritesheets.
Each spritesheet holds up to 256 images.
When loading a spritesheet (or tilesheet) you specify the sprite size and palette (one of the internal 10 pre-defined 24 color palettes) that corresponds to the spritesheet.
Retro Game Fantasy Computer Framework will load the spritesheet and set up everything automagically.
BUT... it goes beyond this! You see Retro Game Fantasy Computer Framework
doesn't limit you to just one spritesheet total.
The 8 32x32 sprites have their own 512x512 spritesheet holding up to 256 images associated with one of the 10 palettes.
The 32 16x16 sprites have their own 256x256 spritesheet holding up to 256 images associated with one of the 10 palettes.
The 80 8x8 sprites have their own 128x128 spritesheet holding up to 256 images associated with one of the 10 palettes.
As you can see this system provides a lot of power. Now you are able to have up to 768 unique sprite images available at any moment.
In addition, as you have probably realized, this also means the total number of colors displayed on screen can be increased as well.
You can use a different palette for each of the spritesheets!
24 colors (really 23 because one needs to be transparent) for the 32x32 sprites.
24 colors (really 23 because one needs to be transparent) for the 16x16 sprites.
24 colors (really 23 because one needs to be transparent) for the 8x8 sprites.
While
it is recommended to choose one palette and use it for all of your sprites for cohesion you can, in fact, have a total of 69 colors displayed on screen with your sprites.
Likewise, the tilesheet also uses one of the 10 palettes providing another 24 colors.
Basically, the easy way to look at this is... use one palette for your sprites and a different palette for your tiles. Again, you may want to use the same palette for both for cohesion.
One thing you might be wondering is...
What happens if someone makes a spritesheet outside of the Retro Game Fantasy Computer Framework Sprite Editor?
The palette could be completely different from the 10 built-in Retro Game Fantasy Computer Framework palettes!
Yes that is true. So what happens is when you ask Retro Game Fantasy Computer Framework to load a spritesheet it checks the colors in the spritesheet and if they do not match the colors in the palette you specified...
Retro Game Fantasy Computer Framework remaps the spritesheet colors to the specified palette.
Obviously, this is not the ideal way to work. Just use the Retro Game Fantasy Computer Framework Sprite Editor for best results. But still... Retro Game Fantasy Computer Framework does make the spritesheet compliant with its "hardware".
The images on the left are some screenshots of Public Domain Amiga games that contain up to 41 colors.
The images on the right are the same images after Retro Game Fantasy Computer Framework remapped them to palette 0.
Let's get to the heart of the Retro Game Fantasy Computer Framework system...
With these computers and consoles of the 80s, sprites do not need to be created. They already exist and are managed by the machines.
The same is true for the Retro Game Fantasy Computer Framework. The 256 sprites already exist and are managed by the system. They do not need to be created.
This and other similarities to machines from long ago all help to make the game dev process more straightforward.
Another way development is made easier & faster is the readily available editors. Currently, the Sprite Editor is done.
It has the same 10 palettes built into it and creates sprite sheets exactly the size the Retro Game Fantasy Computer Framework needs.
The Retro Game Fantasy Computer Framework system (and tile map world editor) will support tile maps of 256x144 cells.
For 8x8 tiles this is 8x8 (64) screens worth of world space in 256x144 mode and 12x12 (144) screens worth of world space in 160x90 mode.
For 16x16 tiles this is 16x16 (256) screens worth of world space in 256x144 mode 25x24 (600) screens worth of world space in 160x90 mode.
For 32x32 tiles this is 32x32 (1024) screens worth of world space in 256x144 mode and
a massive 50x48 (2,400) screens worth of world space in 160x90 mode.
In addition, each of these tile maps has 4 layers. 3 layers are for display (although each can be hidden) and the 4th layer is not displayed by the Retro Game Fantasy Computer Framework.
This 4th layer is a marker layer. Sometimes called tokens and also referred to as simply the "logic" layer.
It is here where you can stamp tiles that represent enemy positions, area boundaries and so forth.
There will be a tile map world editor available in the coming weeks - THIS NOW USES THE TILED MAP EDITOR WHICH IS AVAILABLE FOR WINDOWS, MAC and LINUX..
As you can see... the Retro Game Fantasy Computer Framework provides enough tile map world space to support the most ambitious projects.
Besides...
there is nothing stopping you from creating multiple sprite sheets and tile maps. After all, you are programming the Retro Game Fantasy Computer Framework system in AppGameKit using the Retro Game Fantasy Computer Framework API. This means you can have a sprite sheet and perhaps a tilemap for your title screen. You can have a sprite sheet and a tile map world for each level of your game.
The Retro Game Fantasy Computer Framework Framework is how we develop games for the fantasy machine.
Implemented in a single file, the system contains everything I need to make 2D retro game development easier and faster.
The API is very comprehensive and continues to be expanded since I will doing all of my development in the Retro Game Fantasy Computer Framework Fantasy System going forward.
Well... that's it! This is what I will be working on until I get it all completed.
This is one of the most enjoyable projects I have worked on in a long time. It is the kind of thing I have wanted for years.