Jump to content
IGNORED

Time Wizard - a game for ABBUC Software Contest 2023


amarok

Recommended Posts

Looks great. I’d imagine that keeping track of where the player was must add quite some level of overhead to the main game loop. 
 

It would be great if you could publish a bit about the internals and/or „making of“ once the contest is over. 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

...just to add the music speeding up when manipulating time whilst the screen colours switch to grey is a very nice touch. :thumbsup: It's little details like this, aside the gameplay elements and pushing the graphics, that really elevate the game.

Seriously can't wait to play this. :) 

 

One thing - is there a plan to add more levels going forward?

  • Thanks 1
Link to comment
Share on other sites

Thank you very much for your kind words. I am really glad that you like it.

 

12 hours ago, slx said:

It would be great if you could publish a bit about the internals and/or „making of“ once the contest is over. 

Of course, I will explain how it works when I find a while. But in fact, it isn't rocket science.

But for me, it was very challenging project with exploration of completely unknown areas and technologies.

I decided to prepare a game for the contest so that I would be motivated to finish the project on time :)

 

11 hours ago, Beeblebrox said:

...just to add the music speeding up when manipulating time whilst the screen colours switch to grey is a very nice touch.

The most difficult for me was to prepare a sound engine which gives possibility to play music and sfx with different speeds including reverse direction.

 

10 hours ago, Beeblebrox said:

One thing - is there a plan to add more levels going forward?

I think there might be some new levels in the future if there is interest... who knows?

 

  • Like 4
Link to comment
Share on other sites

I really love the sprite work - looks more modern, particularly with the outline on the main character.

 

Reminds me of the thread on updating Q-Bert.  Can't remember who suggested it, but a comment was made that outlining the characters with a dark color really improved the look, and I agree.

 

The design work on this one is great - can't wait to play it.

  • Thanks 1
Link to comment
Share on other sites

49 minutes ago, amarok said:
12 hours ago, Beeblebrox said:

...just to add the music speeding up when manipulating time whilst the screen colours switch to grey is a very nice touch.

The most difficult for me was to prepare a sound engine which gives possibility to play music and sfx with different speeds including reverse direction.

 

12 hours ago, Beeblebrox said:

One thing - is there a plan to add more levels going forward?

I think there might be some new levels in the future if there is interest... who knows?

Yes, I can well imagine the sound engine must have taken some thought.

 

The possiblity of more levels sounds great. :)

  • Like 1
Link to comment
Share on other sites

@Irgendwer, you are completely right. :)

For me, Braid is one of the greatest platformer I ever played.

 

Time Wizard is inspired by Braid in terms of controlling of time. But it is not a conversion at all.

My idea was to create a new game with more arcade elements which would fit to spirit of Atari 8-bit computer.

The game world is also different and contains unique items like force fields, teleports, etc.

  • Like 6
Link to comment
Share on other sites

  • 2 weeks later...

For those interested, I have some technical information about the Time Wizard game.


I would like to take this opportunity to thank the entire Atari community for the wealth of knowledge they willingly share 🙂.
I specifically highlighted some of the people whose tools I used to create my game.

 

Project duration
It took me roughly 5 months to work on the project from the end of February to the end of July.
The git history contains 175 commits, which were made over a period of 93 days.

 

Development environment
The game was implemented in MadPascal, written by Tomasz Biela @tebe.
My development environment is Visual Studio Code with an extension to Pascal, written by Allesandro Fragnani.

vscode.thumb.png.9c7887f5bee828f0a328247447cef927.png

The source code takes about 10k lines, including about 2k of assembler code.
In the assembler, I mainly implemented the interrupt handling, the sound engine and the most critical elements that require fast calculations.
The binary (xex file) takes almost 54 kB and the whole thing is located on a 90 kB floppy disk and runs under DOS 2.5.

 

Test environment
For testing and debugging the program, I used the Altirra emulator, written by Avery Lee @phaeron.

altirra.thumb.png.19a61ecf6c166bb7a09fe32f2aef5bb6.png
I also used my old Atari 130XE computer with SIO2PC as a floppy drive emulator.

 

Title and end graphics
The title and ending screens (visible after passing the entire game) are displayed in Antic E bitmap mode.
To get more than 4 colors I used DLI interrupts and the player/missile graphics.
I originally drew the images in Inkscape, then exported them to bitmaps with the target resolution for the Atari.
I did the final adjustments and corrections to the images in MS Paint.
paint.thumb.png.a11174f97084150a616308d8f0aebafe.png

Finally I used my Python scripts to convert the bitmaps to the resulting files for Atari.
In this way, I was able to generate 2-bit color depth graphics files in the MIC format and the PMG data as well.
Additionally, I got snippets of DLI handler source code responsible for changing the colors and positions of PMG in individual screen lines.

 

Board graphics
All the graphics of the board and status area are in ANTIC 4 character mode.
I prepared a total of 4 fonts - one for the texts and GUI elements (also visible in the main menu), the other for graphic elements on the board.
The remaining 2 fonts contain graphics used for animation of some items on the board.
I prepared the fonts in the Atari Font Maker program, written by Martin Šimeček @matosimi and Peter Hinz @RetroCoder.

fontmaker.thumb.png.03dd0806c3eb68debabd55ba63f8c886.png

 

Hero graphics
The hero is drawn using PMG - the total size of the sprite is 10x18 pixels.
I used overlapping/combining of players to get more colors of the hero.
A total of 36 animation frames have been created to make the hero alive.
To design the graphics, I used the SprEd editor, written by Wojciech Bocianowski @bocianu.

spred.thumb.png.2aa09db5864b4344d5f15bd4ab181176.png

 

Music and sounds
One of the ideas of Time Wizard is the ability to rewind the game time including playing sound effects and music.
I decided to create a simple engine that allows playing music and sounds at different speeds including backwards.
This engine has some limitations and does not give as much playback flexibility as, for example, Raster Music Tracker in terms of effects, filters, etc.
However, in this case, this was not essential - more important was the efficient playback of sound at different speeds.
In the end, 3 channels are used for music playback and the fourth one for sound effects.
I prepared the music and sfx in Raster Music Tracker, written by Radek Sterba and Vin Samuel @VinsCool.

rmt.thumb.png.4b2f88fce433a731b85a4ac3f05d57c2.png

By the way, in the game you can hear the following classical music pieces:
- "Kyrie Eleison" by W.A. Mozart
- "Waltz of the Flowers" by P.I. Tchaikowsky
- "Dance of the Little Swans" by P.I. Tchaikowsky
- "Voices of Spring" by J. Strauss
- "Sonata No. 8 Op. 13" by L. Van Beethoven

 

Compression
The game uses graphic, audio and other data that takes up a lot of space.
That's why I decided to use data compression to fit everything into RAM.
After several attempts, I decided to use the zx5 (de-)compressor, written by Einar Saukas and Krzysztof Dudek @xxl.
Almost 45 kB of data is compressed to less than 16kB, which gives a compression level of approximately 35%.


Levels
I prepared a very primitive level editor in Python and the PySimpleGUI library.
The editor is not very convenient to use, but I didn't have time to implement something more sophisticated.

level.thumb.png.a0bc19af04818280d9e5698d538e0e8a.png

 

And that's pretty much all the basic technical information.
If you have any questions, feel free to write - I will try to explain as best as possible.

  • Like 22
  • Thanks 5
Link to comment
Share on other sites

Thanks for sharing (I didn't read all details yet, but I'll look closer later).

 

No big surprises in terms of tools.

 

One thing I can say, (depending on requirements) font creation for such graphics can be immensely eased/shortcut with proper use of Graph2Font. I create graphics in Photoshop, import them into Graph2Font, then open the resulting font in FontMaker for final manipulations.

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...