English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   project.Amiga Game Factory (http://eab.abime.net/forumdisplay.php?f=69)
-   -   Scorpion Engine (http://eab.abime.net/showthread.php?t=97450)

earok 21 May 2019 09:15

Scorpion Engine
EDIT: Samples, along with a preview binary of the compiler, are on the Git repo. Feel free to download and have a tinker.



This is going to be bit of a ramble. I've been unwell lately, hopefully discussing what I've been working on will get me in better spirits.

I've been working on an engine (derived from my previous Kiwi's Tale/AlarCity work, which in turn will form the basis of the final AlarCity engine), and it's becoming another "easy" game maker tool for Amiga. There's three things about it in particular that (hopefully) set it apart.

1. It's designed first and foremost to allow the creation of games that run at 50HZ on A500. Granted, it's not perfectly optimised, but if you're not pushing things too much it'll be a playable game on a lower end Amiga. (And there are options for running your game at 25HZ, and there's no shame in that either - SWIV did of course).

2. The project compiler runs on Windows, and uses modern tools (Tiled for level editing, PNGs for graphics) for some things, classic Amiga formats (mod, 8svx, anim5s) for others. PNGs are converted through a user-defined palette into bobs and raw bitplanes - using the alpha channel to generate a mask.

3. It uses a simple to understand bytecode "virtual machine" (a small part of the functionality of Ink) manage things such as dialogue, branching logic and the game sequence. I'll go into that a bit more further down the post.

I've got a couple of projects I've been using as a test bed for the engine, one is a minor remake of a very very small part of the Zelda fan game "Return of the Hylian".

(Note, I'm not intending to do much more on the port. Maybe someone else can when the engine is finished, but I'm merely using it as an example and eventually tutorial for the engine)


The actual download for the very small and inconsequential part of the game (no enemies yet) is at http://earok.net/games/ScorpionTest001.lha

I haven't released the actual compiler yet - asides from the current lack of support for proper enemies, I keep changing how the compiler works which in turn breaks backwards compatibility. Once it's a bit more stable and feature rich, I'll put it out there, I don't know when that'll be exactly.

Here's some code examples from the intro story near the start of the video.


=== PART1 ===
~music = mod_intro
~level = map_intro
~wait = 50
The Kingdom of Hyrule has been in peace since Link,<br>the last knight of Hyrule, had defeated the malicious<br>Ganon and reclaimed the precious triforce from him.

Fairly straight forward. The tilde ~ indicates we want to set a variable. So we're setting the music, the level, and making the game wait for 50 frames before moving on.

After that, we're simply indicating we want to show text. The <br> indicates where we want to insert line breaks.

Immediately after display the text, we want to pan the camera across to the next screen.


=== INTROLOOP1 ===
{ camerax < 256 :
~camerax = camerax + 2
~wait = 1
Here we just say - if the camera x position is less than 256 pixels across, we bump it by two pixels, wait for one frame, and then loop back to the start.

Within the game itself, we can trigger events that call back into the Ink script. Example, with the chest


You found a shield!!!<br><br>Your defence rises by one point.
Here, we're saying we want to flag the chest1opened variable as true, play the happy sound, play the pick up shield animation, display some text, change the player's object to being link+shield, and then return control back over to the game engine.

That's it for now. I'll post some more random updates over the next few days.

turrican3 21 May 2019 09:22

It looks very very interestingand easy to understand.

i hope you'll feel better. :great

Predseda 21 May 2019 10:14

You are awesome, man!

robsoft 21 May 2019 10:40

Ooh, this is really interesting. Great effort, looking forward to seeing where you go with it.

Dunny 21 May 2019 10:46

We're desperately in need of "game makers" that allow a good expression of one's imagination while not simultaneously requiring an 030 and a RAM expansion.

I shall watch this with interest.

spoUP 21 May 2019 23:32


jotd 21 May 2019 23:37

Windows-based game maker with modern asset formats; running on low-end amigas: superb!!!

saimon69 22 May 2019 08:08

As musician i wonder of you will be able to support multi-mod song with jump to position xx, will help to do more immersive soundtracks

earok 22 May 2019 08:28

Cheers guys, I hope I don't disappoint!

Next steps, I'm going to implement a stack for functions, streamline static images/huds/menus (combine these all into one type that shares the functionality of all three), and work on a secondary sample/tutorial game. Enemy AI is on the backburner while I tidy up some of the core functionality.


Originally Posted by saimon69 (Post 1322863)
As musician i wonder of you will be able to support multi-mod song with jump to position xx, will help to do more immersive soundtracks

That might be possible. For memory reasons, Scorpion only loads one mod at a time. It is possible to change songs at real time in reaction to events, but it'll pause while the game loads the next song (assuming you're playing from an HDD or CD, this shouldn't be too much of a problem).

The library I'm using for playing music has this function, which I could expose to the scripting language (I don't really know much about trackers, but I presume setting the Position is what you want to be able to do?)



This command tells the play routine to jump to the pattern requested in

NOTE: There is no error checking done at this time. It would be wise to know where you're going.

earok 22 May 2019 13:54

I have to rant.

Every time I see comments on news about this (they keep coming up on my Facebook feed so I can't easily avoid them) I keep seeing people either saying I shouldn't be porting Zelda or I'm stupid for doing so.

FFS, I'm not even really porting it, I'm just using a tiny part of an open source fangame (one that's existed for years on OS4 Amiga and numerous other platforms without Nintendo being dicks about it) as kind of a test/experiment/tutorial thing.

Edit: It just feels like I can't try to do a moderately cool thing for Amiga without people having people being dicks about it :/

Predseda 22 May 2019 14:51

Don't worry, it just happens. Take it easy ;)

rcman 22 May 2019 16:52

Earok thank you so much for your hard work.

Hope you're feeling better


saimon69 22 May 2019 20:07


Originally Posted by earok (Post 1322927)
Edit: It just feels like I can't try to do a moderately cool thing for Amiga without people having people being dicks about it :/

Welcome to Amiga Community ^_________________^ (kidding)

malko 22 May 2019 20:42

Whaou earok !
It's a wonderful engine that you are cooking for us (and on A500) :bowdown
T H A N K S ! :great

Retro-Nerd 22 May 2019 20:53

Looks realy great, Earok. I guess viddi is pleased too. Maybe his next project uses your new Game maker. :)

earok 23 May 2019 21:57


I'm live on AmigaBill's stream

Zener 24 May 2019 11:54

Very impressing stuff!!!

I am sure it has been a lot of work to put this together, thanks for your hard work, I hope you are feeling better

redblade 25 May 2019 14:08

Wow looks great. Looks like it could be used easily to bring over Metal Gear and Metal Gear Solid Snake.
Will be great to see some jojo72 releases with this engine

turrican3 25 May 2019 14:27


Originally Posted by earok (Post 1322865)
Cheers guys, I hope I don't disappoint!

Are you joking ?? You did amazing stuff already!!

earok 25 May 2019 20:19


Originally Posted by redblade (Post 1323610)
Will be great to see some jojo72 releases with this engine

Honestly, I doubt he wants anything to do with the engine after the way he messaged me on Facebook after I called him out for bringing his dispute to a Facebook group I moderate.

And I'm fine with that.

All times are GMT +2. The time now is 09:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.

Page generated in 0.11440 seconds with 11 queries