Iros

Use this forum to share and discuss Uzebox games and demos.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Iros

Post by L4rry »

Hi Guys!

I'm happy to share my new action, platform and shooting game called Iros.

The 5 knights of Iros have stolen your power ups and fled
to their home worlds. Destroy them and take back your swag!

Fun to be had in the binaries below:

Builds
Iros.hex (v3.0)
IROS.UZE (v3.0)
Irosgm.hex (v3.0 - God Mode)
IROSGM.UZE (v3.0 - God Mode)
IrosJamma.hex (v3.0)
IROSJAMMA.UZE (v3.0)

Game Play Demo (demo mode)


Controls
- B button to shoot things.
- A button to jump / speed up streaming text.
- SELECT button to toggle music (during game play only).
- DOWN button for lying prone.
- LEFT SHOULDER button to reset high scores (hold for about 7 seconds on the high score screen)
- Other buttons operate as expected.

Technical Features
- 10 scrolling levels (using level compression)
- Video mode 3 with scrolling activated.
- Sprite rotation.
- Demo mode.
- 2 music tracks.

Credits
- Music tracks derived from the original song Cyarons Gate by Tanner Helland licensed under CC v3.0.
- Sound effects sourced and adapted from the Uzebox wiki.

Changes Since Initial Release
(v3.0)
- Added JAMMA compatible ROMS
-- 3 lives per credit
-- Infinite continues
-- 10 second continue countdown.
-- Continue countdown acceleration option.
-- Adherence to Softswitch DIP switch standard.
- Improved scoring balance.
(v2.0)
- Each end-of-level boss now has subtle strategy variations
- Final boss has variable shot speed and behavior. Makes for a sterner challenge.
- Added attribution screen when the game boots.
- Added game release version string on the attribution screen.
- The final level bonus is multiplied by the lives remaining. The base value is now 200 instead of 500.
- Compiled with latest kernel.
(v1.8)
- Knight AI can now utilize lying prone as a strategy.
- Removed Uzebox intro to free up necessary flash for planned future expansions.
(v1.7)
- Decreased player shield by 5
- Increased knight shield by 10
(v1.6)
- Added a few more levels to the demo mode
(v1.5)
- Updated knight AI to be slightly more challenging. The player is more likely to take damage now.
(v1.4)
- Final boss now deals 50% damage per shot instead of 5%
- Added Jubatian's Video Mode 3 optimizations.
(v1.3)
- Fixed boss init error causing an initial state other than idle.
(v1.2)
- Fixed missing player shot after final level.
- Fixed sprite storm at start of boss fights.
- Fixed grammar error.
- Demo space mode now takes the ship a little higher up.
(v1.1)
- Easier difficulty by allowing physical interaction between boss and player.
- Fixed game breaking bug in space stage when in bottom right corner.
- Added Jubatian's kernel hack for extra cycles.
- Swapped A and B buttons.
- Fixed sprite teleport bug on volcano stage.
- Improved demo mode (slight redesign of first section of first stage).

I welcome any and all feedback on bugs and balancing issues. I really hope you enjoy the game :)
Last edited by L4rry on Thu Mar 29, 2018 1:05 pm, edited 25 times in total.
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Iros

Post by nicksen782 »

"BECAUASE THEY SUCK" Ha! A simple misspelling.
I noticed that the background music would stop after a while and not restart.
After ducking you have to press UP to end the duck.
Jump is B and fire is A which I found backwards.

I'm playing in the online emulator. ( https://www.nicksen782.net/a_demos/Emsc ... r/CURRENT/ ) Go to the "local" option.

I'll try it with a real gamepad on my Uzebox when I get home tonight.

I'm happy to see this new game! That music is catchy. I need some time to play it more. Remind me when you are finished on bugs and balancing to add it to the online games library.

Questions:
You said it was video mode 3. Is that the scrolling version? It seems rather smooth although I've been able to fake scrolling in the non-scrolling mode by shifting columns/rows.

I'm very interested in your sprite rotation techniques. I'm working on my own and it seems to be a largely technical battle. I didn't notice flicker in your game at all.

Great work!
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: Iros

Post by L4rry »

becauAse
Aaargh! Not only is it a spelling mistake, It's a wasted byte! Thanks for pointing it out. Would have never
noticed it otherwise.
That music is catchy
The music has been distilled from Tanner Helland's Cyaron's Gate. Amazing game music.
This is the original song that he released on a creative commons license. http://www.tannerhelland.com/1543/cyarons-gate/
Last edited by L4rry on Thu Aug 10, 2017 11:32 am, edited 2 times in total.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: Iros

Post by L4rry »

For sprite rotation, I simply abstracted the native sprite array with my own. But larger. So I have my own 'MapSprite' that writes to this new sprite memory. Along with this abstraction is an index into that array that points to the start of rotate-able sprites. The trick is to keep your slow moving, ever present sprites (like your main characters and enemies) before that index. Things like fast moving shots you store after the index. Then I built a 'RotateSprites' function that then swaps values from my abstracted sprite array to the real sprite array, but because my special index is a static variable that I increment (rotate) between game loops (VSYNC), I can 'rotate' many sprites into few sprite slots. A cool trick based on thoughts shared by d34thadder via his 'Sprite Techniques' article uzebox.org/wiki/index.php?title=Sprite_Techniques

Look at the 'LBMapSprite', 'LBMoveSprite' and 'LBRotateSprites' functions listed below each other from the start of this line: https://github.com/lawrencebrooks/iros/ ... ils.h#L197
These functions rely on the addition of two extra macros used in the 'KERNAL_OPTIONS' in the make file. 'MAX_EXTENDED_SPRITES' and 'ROTATE_SPRITES_FROM'. Here's the full setting:
KERNEL_OPTIONS += -DMAX_SPRITES=16 -DMAX_EXTENDED_SPRITES=20 -DROTATE_SPRITES_FROM=15 -DRAM_TILES_COUNT=28 -DTRUE_RANDOM_GEN=1 -DSCROLLING=1 -DVRAM_TILES_V=32
Last edited by L4rry on Thu Aug 10, 2017 8:04 am, edited 3 times in total.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Iros

Post by Artcfox »

Very cool game, with awesome music! I haven't gotten past the first level though. I can't seem to time my jump shots to hit the cannons quick enough to avoid taking damage to my shield, and then get demolished by the boss.

I wish there was a way to swap A and B, so the controls match my muscle memory for jumping.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: Iros

Post by L4rry »

I can't seem to time my jump shots to hit the cannons quick enough to avoid taking damage to my shield
All shots snap to the closest tile boundary. So it's not your timing, it's a 'feature'. An optimization to ensure minimal use
of ram tiles. You do get use to it though. You can always jump over that pesky turret too :mrgreen: With regards to the boss, lying
prone and waiting for him to approach has been known to work ;)
I wish there was a way to swap A and B, so the controls match my muscle memory for jumping.
I'll definitely sort this out in a future build. I developed and tested this game using the emulator and a Logitech
controller which has the A and B buttons swapped. When I tested it on the hardware yesterday for the first time I had
the same issues with muscle memory.
Last edited by L4rry on Thu Aug 10, 2017 12:16 pm, edited 1 time in total.
User avatar
L4rry
Posts: 242
Joined: Sun Dec 28, 2014 7:19 am
Location: Cape Town, South Africa

Re: Iros

Post by L4rry »

I've added links to god mode builds in the original comment if you feel you are getting frustrated but would still like to work your way through the game. I've also fixed that spelling mistake in all the builds linked there.
User avatar
D3thAdd3r
Posts: 3221
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Iros

Post by D3thAdd3r »

Sweet it is always fun to see a new Uzebox game, and I had anticipation going for what the next game would be like since you released Tank Fu 8-)

I'll repeat what has been said to point out the music is quite nice in this game. Platformer and space shooter in 1 game; I dig it. Graphics are nice, and I enjoy the transition animations from planet to space and vice versa. Levels are well designed, and it is quick to pick up and learn. I have done 2 x 30 minute play sessions so far....man though, this game is unforgiving on the difficulty. I can't put it down because I can't believe how many lives it takes to get to the 3rd level boss only to be destroyed instantly(usually takes me ~6 times to beat the 1st level now). Perhaps I will get a bit better and be able to beat this one.

I found 1 game breaking thing, which is on the second level if you move your ship all the way to the bottom of the screen and stay there, and at the end of the level do not destroy the last enemy and move all the way to the right of the screen(staying on the bottom). The enemy will perpetually scroll from one side of the screen to the other, but you will not be able to back the ship up to shoot it so basically the player has to start over. I will see if I can reproduce it again.

On the 3rd level I think at the first volcano there is an enemy on the right side of the screen as you approach. If you stand at the right distance, he will hop to the right and loop back around to the left of the screen(or maybe just his sprite but not his logical coordinates, as I just walked past). Last thing also not critical, when you approach the 1st level boss(and maybe this has to do with something about firing a lot..or not) it seems a bunch of bullets come from no where quickly across the screen up high. Not sure how to reproduce this reliably but I see it fairly often.

Anyway, this is something totally different to any other Uzebox game, very well done L4rry!
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Iros

Post by Artcfox »

I feel like a total wuss trying out the God mode build, but I really wanted to check out the level designs, so I thought of it more as a "visual tour" of the game. :-)

I love the level design, and the different enemy behaviors. The visuals are great, I especially love the pyramid level. I'll have to play the normal version a lot more in order to get better at it though.

My daughter saw me playing and wanted to try "the version where you can't die" so I think the God mode is perfect for her, and she is so happy to be completing levels all by herself, and discovering things: "Look Dad, I stole the boss's darts that shoot up!!!" So this is pretty awesome, thanks for making this kid-friendly mode.
User avatar
Artcfox
Posts: 1382
Joined: Thu Jun 04, 2015 5:35 pm
Contact:

Re: Iros

Post by Artcfox »

D3thAdd3r wrote: Thu Aug 10, 2017 9:49 pm I found 1 game breaking thing, which is on the second level if you move your ship all the way to the bottom of the screen and stay there, and at the end of the level do not destroy the last enemy and move all the way to the right of the screen(staying on the bottom). The enemy will perpetually scroll from one side of the screen to the other, but you will not be able to back the ship up to shoot it so basically the player has to start over. I will see if I can reproduce it again.
We just ran into this bug in the space level after the city level. There are no enemies on the screen, but the ship got stuck in the bottom right corner with no way to move.

Edit: Also, on the very last level, destroying the portal in the middle we lost the ability to shoot. Even after pressing Start, then X to game over and restart the game didn't allow us to shoot in the new game; it required a power cycle in order to shoot again.
Post Reply