Monday, 16 September 2019

Update 3 - The big big biiiiig map

Update 3 - The big big biiiiig map

Could have been bigger

The map is big. It's a 32000x32000 pixels map. And it could have been bigger. You can make map as larg as 64000x64000 pixels. But it would take a lot of time to make such an enormous map. That's the main reason I made a smaller map. 

Almost the same size of a regular map in memory 

Also it's big, this map take only 6k of rom. A regular sonic map take about 5k. This map is 36x bigger in pixel than a regular sonic map but only 1.2x bigger in memory.

The secret

The map has a fractal structure. Which means it is devided into subparts. 
First of all there are tiles which are 8x8 pixels in size. 
Then you have metatiles which are 2x2 tiles in size.
Then you have clusters which are 8x8 metatiles in size.
Then you have super clusters which are 8x8 clusters in size.
Then finaly the map or hyper cluster which size vary. In this video it's 32x32 super clusters in size.



  A tile

 A metatile

 A cluster


 A super cluster

A minnor drawback

There is actualy a con to this map structure. Smaller maps take a lot of space in comparaison to large maps. For instance a 10240x512 will be 4k. It's 195 times smaller in pixel size than a 32kx32k map but only 1.5 smaller in memory. This is due to the fact that the size largely depend on the number of clusters. 1 cluster take 8x8=64 bytes. 60 of them take 60x64=3840byte almost 4k.

To fix this I need to devide the map even more. To have cluster made of sub clusters (or big metatiles) 


I hope to cut in half the amount of memory taken by clusters.

Behind the curtain

I had to do massive optimisation on the scroller. The part of the code that draw tiles as the camera moves in the games. I had to learn Z80 assembly. I actualy never realy coded in assembly before. I only had small experience with code made by the compiler. 

Also because I'm coding on a laptop with a bad posture, my back was begining to hurt me a lot.
So each days I need to do streching and yoga in order to continue coding. I really want to continue this project. I'll do what ever it takes to do it. Even if I have to meditate each day :)

What to do next?

The end goal ,like I said in the video is to make a fully functional 2d seamless open world engine for the master system. And for that now I need to be able to put objects in the scene/map.

I will also need to optimize the code, convert my c code into asm code.

Sunday, 25 August 2019

Second update (Modules)




The seconde update for the master system game maker is here. This tool will heavily works raound modules.

You can add modules to the world. 3 for now:
-gravity to add gravity
-auto scroll to make game like Rtype where the screen move by itself
-palette roll to make palette roll effects

With the las one you can produce very intersting effects like "3d" movement like in the special stage of sonic 3 on the megadrive or like in space harrier.
You can see this effect on the video.
 


You can add modules to objects. 4 for now:
-Jump give the ability to jump to the object
-Movement give ability to move to the object
-Auto movement make the object move automaticly. In addition with the auto scroll module, that will make a vertical/horizontal scroller like R-type.
-Control to give the ability to control the object with the game pad

Animation is an mandatory module to select and manage sprite sheet.


More featrures

There are actualy other new features that I don't mention in the video.
You can use metatiles of 16x16px and 32x32px.
There are also clusters of 128x128px.
This is for compression purpose.
I will make an update solely on this when it the map engine will be more advanced.
You'll be able to make maps of 32000x32000px.

People are testing the tool

Some people (only 2) are testing/debugging the tool. I hope to make a video about that soon.


Thursday, 1 August 2019

First update (Slope / Top down gameplay)



The new features in action:

This is the first update for the master system game maker.
You can now put slopes like in sonic.

You can paint the collision mask for each individual tiles.
You need to select the tile:
And then just paint the collision mask:
Each tile can have all sides masks painted. Therefore collides from any directions.

Collision still work even if you put a front tile in front of a collision tile.


There's also a sprite sheet editor.

A left sideed version of the animation is automaticly generated if is needed.

And a input editor.


Right now sequence of inputs doesn't work. But will be implemented.
You can now make top down rpgs like phantasy star :)



Code generation:

The software now is generating code according to the animations and the input configuration.
You can realy make a game. Not just edit one.


Slope demo: slopeDemo.sms
RPG demo :RPG_Demo.sms

Friday, 26 July 2019

Let's start




I'm proud to annonce that I am currently working on a software to make games for the master system without a single line of code. I've got so many ideas for this project.  It will be great guys!! I want to make something very easy to use but at the same time highly versatile. So that you can make the game you intended for in only few clicks.



Also I want to hide the limitation of the console as much as possible. Like palette and sprites will be managed automatically. But some time, restrictions will come along. You just can't put hundreds of sprites on screen at the same time. So the user will warned that limit as been reached and it should change something. Like the number of sprite for instance.

You can see a video that showcase the different features which work on the SMS:

It's in early stage of development. Only one week for the SMS Engine( You can see bugs in the scrolling).
By the way. I want to thanks all the people who worked on tools and libs for the master system. The available tools and libs to develop on the system are wonderfull! This project wouldn't be possible without those.
Thank you so much guys! You did an amazing job.

Currently working features:

 Tile editor
 Main character settings (position, speed, jump power)
 In app test (Test directly in the tile editor)
 Preview (Test with sms screen resolution)
 Emulator test


Features that will be available soon:

 H/V flipped tile
 Front tile (Priority flag)
 Custom input action
 2 Players mode
 Random map size/shape
 Switch and doors
 Mob


Feature that will be added eventually :

 Seamless open world engine
 Parallax
 Water level (like in sonic)
 Coop editing (Edit a map with your friends in real time online)