MSX Game Engine

Page 1/3
| 2 | 3

By samsaga2

Resident (52)

samsaga2's picture

20-04-2018, 17:28

My last invention. A game engine for MSX 1. Something like Arcade Game Designer for ZX Spectrum.

Release: https://www.dropbox.com/s/5be16109zn3ac0w/mge.zip?dl=0
Source code: https://github.com/samsaga2/mge

If you execute the mge.jar file it will compile resources files into a test.rom. Right now it's not very useful. It is in a early age and it has a lot of missing features. I will add sprite animations, tilemaps, music and sfx.

Sorry no docs right now.

Login or register to post comments

By santiontanon

Hero (593)

santiontanon's picture

20-04-2018, 18:17

Nice! I know lots of people in the forums had asked for something like this in the past! I hope it picks up and lots of people start creating new MSX games!!!

Any details on the features is supports right now? Smile

By Grauw

Enlighted (7405)

Grauw's picture

20-04-2018, 19:26

Nice, looking forward to seeing the progress.

p.s. To get rid of key click, set CLIKSW in system RAM to 0 Smile.

By Wlcracks

Master (146)

Wlcracks's picture

21-04-2018, 08:23

Cool!

By geijoenr

Expert (91)

geijoenr's picture

25-04-2018, 18:49

Is that an MSX game engine in clojure?

By geijoenr

Expert (91)

geijoenr's picture

25-04-2018, 18:51

I am also working on something like this, a bit more close to "production" though, and in C instead of Clojure (I am bit saner than samsaga2, I hope; but for sure he is having more fun).

https://github.com/retrodeluxe/rlengine-msx1

By Grauw

Enlighted (7405)

Grauw's picture

25-04-2018, 19:39

Oh, I hadn’t noticed samsaga2’s assembly code is witten in Clojure as a DSL… That’s pretty awesome!

I also want to make my Glass assembler a fully functional language, though with a more conventional syntax, but getting a good Java codebase for the syntax tree and particularly lazy evaluation is something I’m still struggling with. I wish I could talk to some of my old professors :). And the thought of just programming in Haskell or Scala has also occurred to me :D.

By N.I

Master (133)

N.I's picture

26-04-2018, 15:09

It is wonderful to compile with a single java command.

By samsaga2

Resident (52)

samsaga2's picture

28-04-2018, 18:32

Yes, it's written on clojure and I've written a whole assembler only for this (i'm a little insane). Why Clojure? Because I can use clojure functions and macros to generate assembler code. I don't need to write an external utility to convert a png to a screen 2 image. I only have to write a clojure function that writes directly assembler code. And also it's fun!

I have the screen (or level) scripts and sprites working. I have collisions and basic movements. The next will be write something to do sprite animations and loading tilemaps (via Tiled Map Editor). And when the sprites part is done I will add one axis scroll, music and sfx.

And the scripts are not interpreted. They are compiled to assembler. They are very simple but because I want the compiler to be small and simple. There is an init function per sprite what is called only once and and update function what is called on every frame. Every sprite has a small number of local variables and all the scripts has access to a fixed range of global variables.

The test example it's very selfexplanatory.

By samsaga2

Resident (52)

samsaga2's picture

11-05-2018, 18:09

Last version: https://www.dropbox.com/s/5be16109zn3ac0w/mge.zip?dl=0

New features:
- Two color sprites (a max of 16 sprites on screen)
- Sprite flicker
- Sprite collisions
- Full screen 2 image loading (compressed using lz77)
- Sprite animations using scripts

The next will be music & sfx (maybe using trilotracker).

By santiontanon

Hero (593)

santiontanon's picture

11-05-2018, 18:28

Very cool! Curious about the compression thing you mention using lz77 for compression, how does it compare to pletter or exomizer in terms of compression and speed? I've been juggling between pletter (very fast decompression time) and exomizer (better compression rate) for a while, and wondering about other options.

Page 1/3
| 2 | 3
My MSX profile