Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: JamesV on December 21, 2015, 08:37:32 am

Title: Alien Breed 5 Episode III: Impact
Post by: JamesV on December 21, 2015, 08:37:32 am

Since 3.5 years ago when I decided to do Alien Breed 5, I've had a rough plan in my head for it to be a 3-part game, ie. the first main release, followed by two additional campaigns with new features to be added later. I've recently started working on the 3rd and (most likely) final part. It's still very early days, but I've already gotten a few cool things done.


As usual, there will be a new campaign, although it will be different in structure to Episodes I & II. There will also be new gameplay elements, some new enemies, more achievements and potentially some slight graphics tweaks in the form of more tile animations.


So far, I've reworked the level file format to allow for some of the additional gameplay elements, which will allow for more things to happen in levels. The level editor pretty much had to be rebuilt from scratch, as well as making a simple program to convert the existing Episode I & II data to the new format. I'm now halfway through implementing the calculator-side changes to all of this, so that the game correctly interprets the new level format and starts incorporating the new elements.


Additionally, whilst this will still include the standard TI-83+/84+ flash application release, over the last 36 hours I've been doing some tests to see how viable it would be to include a build for the TI-84+CE!


I've drawn inspiration from MateoConLechuga's Mono2Color project for the TI-84+CSE, and after a few experiments determined that I'll most likely have to stick with monochrome tiles & sprites so that I can run the LCD in 1bpp mode, otherwise the frame rate gets way too slow. Below you can view a demonstration showing the game in 3 different zoom levels (x1, x2 & x3). As you'll see, x1 moves super quick, x2 moves roughly the same speed as the TI-83+/84+ monochrome version (within 1fps), and x3 is a bit slower again (around 7-8fps slower). Of course this demo only includes the scrolling background, no player/enemy/gunfire sprites. However, all the tile drawing & sprite rendering is done on a 768 byte buffer, the part that slows things down is scaling this 96x64 resolution buffer up to either 192x128 (x2) or 288x192 (x3). I'm confident that drawing the sprites over the tilemap will have minimal effect with the CPU speed of the TI-84+CE (but this will be my next few experiments).


The 768 video buffer -> vram drawing/scaling routines were written fairly quickly, so I might be able to optimise them a little. I'll continue playing around and see how I can improve it. At the very least, I'd like to have a TI-84+CE version with a play screen of 192x128.


Title: Re: Alien Breed 5 v3.0.0
Post by: pimathbrainiac on December 21, 2015, 10:40:26 am
Great work as always! Can't wait to see what comes out of this? Are you planning to release a tutorial/the source for your mono-to-color method at some point?
Title: Re: Alien Breed 5 v3.0.0
Post by: c4ooo on December 21, 2015, 10:50:58 am
Do you use parctial redraw? Because different screen sizes run at different speeds, it seems to me you are not :P
Anyhow, this is cool :)
This reminds me i need to start working on my mincraft port to the CE :P
Title: Re: Alien Breed 5 v3.0.0
Post by: TIfanx1999 on December 21, 2015, 12:37:31 pm
Hey James, this is pretty awesome. Honestly, it doesn't look too bad at 3x resolution speed wise. I wonder what the bottle neck is though since the processor is a lot faster?
Title: Re: Alien Breed 5 v3.0.0
Post by: Digital on December 21, 2015, 02:10:44 pm
That sounds like it'll be a pretty good and fun game :)
yes, non CE and CE support, always great to have both, can't wait to try it out.
Title: Re: Alien Breed 5 v3.0.0
Post by: JamesV on December 21, 2015, 05:08:26 pm
Great work as always! Can't wait to see what comes out of this? Are you planning to release a tutorial/the source for your mono-to-color method at some point?
Certainly the code and details and implementation will be released - it's actually quite simple. The tiles/sprites are just drawn to a 768 byte buffer as they would be on the non-colour calcs, then it's just a special routine to scale this up either x2 or x3 as it simultaneously writes it to LCD memory.

Do you use parctial redraw? Because different screen sizes run at different speeds, it seems to me you are not
Anyhow, this is cool
This reminds me i need to start working on my mincraft port to the CE
Partial redraw? I'm only writing as much data to the LCD as required each frame, which is either 3072 bytes (192*128/8) for the x2 zoom or 6912 bytes (288*192/8) for the x3 zoom (remembering that the LCD is in 1bpp mode to resemble the non-colour calcs). Or does the 84+CE have some kind of interlacing method like the CSE that I've missed in the documentation?

Hey James, this is pretty awesome. Honestly, it doesn't look too bad at 3x resolution speed wise. I wonder what the bottle neck is though since the processor is a lot faster?
The bottle neck is probably just my inefficient routine that I put together in a rush :P

After sleeping on it, I came up with a different method this morning for copying & scaling the video buffer more efficiently. I only had a chance to test it on the 3x zoom (288x192 resolution) and it was running at pretty much the same frame rate as the 83+/84+ non CE version. I'll try it later on 2x zoom as well and see how fast it gets, but at a rough calculation it should be about 30% faster than the 83+/84+ non CE frame rate.

Either way, it's certainly workable :)
Title: Re: Alien Breed 5 v3.0.0
Post by: TIfanx1999 on December 21, 2015, 05:36:31 pm
Awesome, I'm glad to hear you were able to get a nice speed boost. :D
Title: Re: Alien Breed 5 v3.0.0
Post by: JamesV on December 23, 2015, 07:42:55 am

Today I've finished off (for the time being) the new level event scripting that will feature in Episode III: Impact (and Episodes I & II will be patched to the new format as well). The new format gives me more power to add multiple triggers & events during a level. In the below screenshot there are a few examples:


1. After a certain amount of time passes, an in-level text block is displayed, and the darkness filter is enabled.
2. When the player walks up to the computer, another text is displayed and the darkness filter is disabled.
3. Bosses are no longer triggered by a single tile - an area is set (can be any rectangular shape up to 32x32 tiles in size) that triggers a boss (technically there could be multiple bosses in a level now), and in this case also modifies two tiles in the level to seal off the room (previously this was locked to modify one tile when a boss fight started, and one more tile when a boss fight finished).
4. When the boss is killed, multiple tiles are modified to open various paths out of the room, the countdown sequence is triggered, and the level is flagged as being ready for completion.


Triggers & commands can be used in various combinations to create various events so that I can add more depth to the new levels.


(http://imageshack.com/a/img633/3993/5evJ0B.gif)


Now that this is done, I'm going to attempt to start adapting the code and applying the new LCD routines to make it compatible with the TI-84+CE :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on December 25, 2015, 06:29:29 pm

With some assistance from MateoConLechuga, the 3x scaling/drawing routine is now running substantially faster on the TI-84+CE. Thanks Mateo!

Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on December 28, 2015, 08:07:35 am
Hey James, those new features sound awesome! :D Also nice to hear that @MateoConLechuga was able to lend you a hand. Great work guys! Maybe you can add a splash of colour now?  ;D
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on December 30, 2015, 01:49:37 am
Hey James, those new features sound awesome! :D Also nice to hear that @MateoConLechuga was able to lend you a hand. Great work guys! Maybe you can add a splash of colour now?  ;D
I have some ideas on how to integrate a minimal amount of colours without slowing things down, although for the most part I think there will still only be two colours on screen at once in terms of the "play field" (the planned HUD could use up to 256 colours). This is simply because the video buffer is still only 768 bytes (96x64/8 = 1bpp) to enable faster scrolling and tile/sprite rendering behind the scenes. But it's still early days so who knows what I might be able to achieve - I'll be sure to experiment further! :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on December 30, 2015, 10:15:52 pm
Ah, I forgot about it being 1bpp. I was still thinking minimalistic, but a little more than 2. Hmm.... Well, I'll leave it to you to tinker. ;)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Ivoah on December 31, 2015, 12:24:37 am

With some assistance from MateoConLechuga, the 3x scaling/drawing routine is now running substantially faster on the TI-84+CE. Thanks Mateo!



It seems like it'd be nicer if it showed more of the map, instead of scaling everything up.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Eeems on December 31, 2015, 12:14:42 pm
It seems like it'd be nicer if it showed more of the map, instead of scaling everything up.
That would completely change the feeling of the game between devices though.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on January 02, 2016, 07:36:41 am
I've been thinking of a way you could somehow attach color data per tile, each tile would still only support two tiles but you could do something similar to RLE where you'd have an extra buffer keeping track of the current palette. Something like:
Code: [Select]
        ; bit 7
        exx
        ld a,(hl) ;hl' points to palette array
        exx
        sla d \ adc a,a
It's a bit slower and you'd have to inc hl' at the end of each djnz iteration. You could possibly get around using the shadow registers if you pushed bc (you could maybe move the push bc before the ld bc,288 to the vbcx3Row label), opening up C to use instead of D for the gbuf byte to rotate, then you could use DE to hold the pointer to the palette array. The palette array just tells you the first palette value, eg. 0 corresponds to palette entries 0 and 1, 1 corresponds to 2 and 3, 2 corresponds to 4 and 5, etc. That'd look something like:
Code: [Select]
        ; bit 7
        ld a,(de) ;de points to palette array
        sla c \ adc a,a
The overhead would be a bit less than my first idea, i think. Each tile would still only have two colors, but the map would be a bit more colorful. You'd also have to fill out the palette array as you draw your tilemap, but that shouldn't take up too much time. Definitely wish i had a CE right about now :D

EDIT: And if you come up with something that's too processor heavy, there's always shifting two pixels per frame which would still look really nice.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: SpiroH on January 02, 2016, 09:15:16 am
Today I've finished off (for the time being) the new level event scripting that will feature in Episode III: Impact (and Episodes I & II will be patched to the new format as well). The new format gives me more power to add multiple triggers & events during a level. In the below screenshot there are a few examples:
...
Your ability to design games is undoubtedly unquestionable, period! (+1)
However the z80 reminds me of my old student times, more than 30 years ago (sorry 'bout that). What to do you guys find in phosphorus green/yellow so passionate, if I may ask  ????
Title: Re: Alien Breed 5 Episode III: Impact
Post by: c4ooo on January 02, 2016, 11:54:35 am
Interesting...  i would assume 8bpp is faster then 1bpp. With 1bpp its hard to shift the buffer horizontally, for example, and drawing tiles get confusing.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on January 03, 2016, 03:02:41 am
8bpp is faster, the issue is that the original routines are written for the BW calcs so all sprite routines are drawn to a graphbuffer that has a 1bpp layout. Writing to a gbuf on the CE just makes it easier to maintain the code between the two calcs, otherwise you'd have to have separate code for the tilemaps and basically anything that interacts with the map (sprites, bullets, etc.). So (i assume) James just uses the same routines to scroll the tilemap.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 04, 2016, 05:15:44 am
I've been thinking of a way you could somehow attach color data per tile, each tile would still only support two tiles but you could do something similar to RLE where you'd have an extra buffer keeping track of the current palette. Something like:
Code: [Select]
        ; bit 7
        exx
           ld a,(hl)      ;hl' points to palette array
        exx
        sla d \ adc a,a
It's a bit slower and you'd have to inc hl' at the end of each djnz iteration. You could possibly get around using the shadow registers if you pushed bc (you could maybe move the push bc before the ld bc,288 to the vbcx3Row label), opening up C to use instead of D for the gbuf byte to rotate, then you could use DE to hold the pointer to the palette array. The palette array just tells you the first palette value, eg. 0 corresponds to palette entries 0 and 1, 1 corresponds to 2 and 3, 2 corresponds to 4 and 5, etc. That'd look something like:
Code: [Select]
        ; bit 7
          ld a,(de)      ;de points to palette array
        sla c \ adc a,a
The overhead would be a bit less than my first idea, i think. Each tile would still only have two colors, but the map would be a bit more colorful. You'd also have to fill out the palette array as you draw your tilemap, but that shouldn't take up too much time. Definitely wish i had a CE right about now :D

EDIT: And if you come up with something that's too processor heavy, there's always shifting two pixels per frame which would still look really nice.
These are some interesting ideas, chickendude. Thanks for the suggestions! At this stage I'll simply focus on getting the game playable on the 84+CE for starters, but you're giving some great inspiration to strive for greater results with this in the longterm!


8bpp is faster, the issue is that the original routines are written for the BW calcs so all sprite routines are drawn to a graphbuffer that has a 1bpp layout. Writing to a gbuf on the CE just makes it easier to maintain the code between the two calcs, otherwise you'd have to have separate code for the tilemaps and basically anything that interacts with the map (sprites, bullets, etc.). So (i assume) James just uses the same routines to scroll the tilemap.
Correct, the 84+CE version uses all the same sprite drawing & scrolling routines - the only difference (at this stage) is copying the "gbuf" to the LCD, which on the 84+CE converts the 1bpp data to 8bpp and scales up 3x. The main reason for sticking with the 1bpp "gbuf" is to keep the speed of the scrolling/sprite & tile drawing routines as fast as possible.


I haven't done much work on this for the past week as I've been enjoying a summer week off work, but current status is that after many hours of work, the source now cross-compiles for both the 83+/84+ app version and the 84+CE program version. Now I just need to start stepping through the 84+CE version and get the game to a playable state.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 06, 2016, 11:39:06 pm
I'm getting close to getting the game somewhat playable on the 84+CE, there are just a lot of little Z80 -> eZ80 things to patch up (eg. "ld h,0 \ ld l,a" needing to be updated to "ld hl,0 \ ld l,a"  etc.)

In terms of the new campaign, Episode III: Impact, it will be a little different to Episodes I & II. Instead of just being a linear 12 level campaign, it will have multiple routes available. The current plan is to have around 30 levels, with a single play through taking you through anywhere between 11-14 levels depending on the path you take (around 5-6 different paths available). The paths that take less levels will have a slightly higher difficulty curve than the paths that take more levels. This one won't be set on a space station either, it will be on a planet surface & multiple towers, ala Alien Breed: Tower Assault.

I've also got at least one more enemy getting added in (the "security guard" enemy from the previous Alien Breed IV game of the early 2000's that I did), and I have ideas for another 2 possible enemies that I haven't implemented before that I think would be cool :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 11, 2016, 08:51:40 am
Sounds great! ;D Can't wait to play it! I might get a TI 84+ CE just for this! :w00t:
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on January 11, 2016, 09:56:49 am
Keep in mind that he's working on a version for both machines, so you'll be able to play it regardless. ;)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 11, 2016, 11:10:49 am
Yeah, but it looks cooler in color :P
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 12, 2016, 04:18:46 pm
The game now runs and the player can move around a level. Enemies / shooting, etc. are still disabled, but should be working in the next week or two. I haven't had a whole lot of spare time to work on this lately, but I'm enjoying chipping away at it bit by bit :)

Text & menus aren't properly implemented yet, but I'll (most likely) be overhauling them on the TI-84+CE version to have higher definition splash screens and font.




Keep in mind that he's working on a version for both machines, so you'll be able to play it regardless. ;)
Yeah, but it looks cooler in color :P
Correct, there will be a flash application version for the TI-83+/84+ monochrome LCD calculators, and a program version for the TI-84+CE calculator. Both will be the same game with the same features, with the exception of the TI-84+CE version having bits of colour here and there. And yes, it does run a lot smooth / nicer on the TI-84+CE screen :P
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 12, 2016, 05:46:00 pm
Nice progress! Can't wait! :w00t: Let me guess: you're going to enter it in the POTY 2016 contest when finished?
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on January 12, 2016, 06:14:17 pm
In order to be eligible for POTY it has to be featured at ticalc. It isn't a matter of entering it or not. Though, I'd say this is definitely going to be feature worthy imo.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on January 17, 2016, 12:56:23 am
Wow, at first i thought that was a screenshot of the 83+ version, it does run much smoother/faster on the CE. That's exciting, i'd like to take a stab at porting some of my old projects over to the CE :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 17, 2016, 08:21:04 am
Do it! I couldn't play Robot Wars on my TI-84+ because my RAM chip is only 24KB, but if I get a CE next, and you port this, I could play it instead of looking at the beautiful title screen, without the ability to start a new game.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 18, 2016, 10:27:41 pm
Wow, at first i thought that was a screenshot of the 83+ version, it does run much smoother/faster on the CE. That's exciting, i'd like to take a stab at porting some of my old projects over to the CE :)
It's not super hard, just depends how much "hardware dependent" code you have (such as accessing port $10 on the 83+, etc.) and also accounting for the 24-bit multi-registers. I'm happy to send you my gbuf -> LCD drawing & scaling routine if you need it :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 22, 2016, 06:06:25 pm

The TI-84+CE build now functions essentially the same as it's TI-83+/84+ counterpart (sans text). You can now play through a level collecting items, killing aliens, etc.


Next up I'll be splitting the level data out into appvars for the 84+CE build, as the program is currently sitting just shy of the 64KB limit.


Thanks to MateoConLechuga (and everyone who has assisted him) for CEmu, which I used to capture the below video :)


(http://imageshack.com/a/img910/1250/uwGz8J.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 22, 2016, 06:29:25 pm
Was that a glitch? The tile-out thing stopped and looked kind of choppy there for a sec.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 23, 2016, 07:46:07 pm
Was that a glitch? The tile-out thing stopped and looked kind of choppy there for a sec.
That was just the game quitting out to Cesium - it's currently set up to quit when a level is complete, just for testing purposes as I have made the level transitioning code "CE compatible" yet.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on January 29, 2016, 05:15:23 am
A little bit more progress over the last week - I've started working on colour menu screens & text.

(http://imageshack.com/a/img921/434/4SKJYY.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on January 29, 2016, 08:48:59 am
Wow! It's awesome!  *.* I am definitely getting a CE. :thumbsup: And if I ever learn to code, I'll port every cool game I've ever played(which is pretty much all of them) in FULL color!  :w00t:

Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on January 30, 2016, 10:26:01 pm
The title screen looks nice James! :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on January 30, 2016, 10:31:41 pm
The title screen looks beautiful!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on February 01, 2016, 04:57:34 am
Bought the CE! Just waiting for the game...
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 01, 2016, 04:31:33 pm
Bought the CE! Just waiting for the game...
Congratulations on your purchase! AB5 will still be some time.. But hopefully it's worth the wait! :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 03, 2016, 05:38:35 am

After stumbling back on this video of Mateo experimenting with a Mario CE engine (http://myimages.wdfiles.com/local--files/start/marioTest.mp4), I decided to do some experimenting myself.


This is only very quickly put together, no sprite clipping or vram flipping, and not optimised at all, but it's enough to show that maybe a full colour version of Alien Breed is possible on the CE...


(http://imageshack.com/a/img923/5568/CPFu4R.gif)


The sprites are still 8x8, but are now 8bpp (256 colours), and again scaled up x3. Like Mateo's Mario CE, all tiles are fully redrawn each frame instead of "scrolling". If I implement vram flipping and optimise the routines, it will look much better (in fact, it looks much better on the actual calculator than the above gif).


If I went ahead with this method, I can maintain the same code base between the monochrome 83+/84+ calculators and the colour 84+CE :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on February 03, 2016, 08:09:51 am
The weird artifacts at the border i assume are from the lack of sprite clipping? It seems you're missing a column when the map isn't aligned, though i guess for the CE being byte aligned isn't such a huge deal since every pixel is byte-aligned :D The speed is looking nice, though i imagine drawing all those color sprites is gonna be a pain in the neck, hehe.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on February 03, 2016, 08:47:21 am
Cool so far! Would it be hard to put the heath/ammo bar in red/blue on the playing screen?
I can help with sprite drawing with Piskel App if I have time in school.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on February 03, 2016, 02:08:59 pm
That's wonderful James! I'm quite excited to see this in colour. ;D
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 03, 2016, 04:13:02 pm
The weird artifacts at the border i assume are from the lack of sprite clipping? It seems you're missing a column when the map isn't aligned, though i guess for the CE being byte aligned isn't such a huge deal since every pixel is byte-aligned :D The speed is looking nice, though i imagine drawing all those color sprites is gonna be a pain in the neck, hehe.
Correct - because there's no sprite clipping it glitches out a little, and it currently only draws 7 rows / 11 columns when it's not aligned. Only because I threw this together in a rush to see how it looked. Once I get more up to speed with the LCD controller and vram flipping, as well as clean up the sprite rendering, it will look much neater :)

Cool so far! Would it be hard to put the heath/ammo bar in red/blue on the playing screen?
I can help with sprite drawing with Piskel App if I have time in school.
Yeah eventually there will be a stats bar for both players at the top and bottom of screen, same as the original Amiga version (http://www.myabandonware.com/media/screenshots/a/alien-breed-88m/alien-breed_12.gif). The sprite drawing shouldn't take me too long, I'll be using the original Amiga sprites, but probably simplified to 8x8 instead of 16x16.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 23, 2016, 06:55:16 am
I decided to try using 16x16 tile sprites (as opposed to 8x8 scaled up x3 in the previous screenshot), which resulted in the below (don't mind the yellow artifacts, they don't actually happen during execution). It certainly looks better quality, but in my opinion it's now a bit too small on screen.

(http://imageshack.com/a/img924/8325/SYDhxf.gif)

For the sake of maintaining gameplay compatibility between the 83+/84+ monochrome version and the 84+CE version, the play screen needs to show 12x8 tiles, and the tile width/height needs to be a multiple of 8. I'm contemplating next trying 12x12 tile sprites scaled up x2 to make them 24x24, which is a multiple of 8.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on February 24, 2016, 05:26:52 am
That does look a bit small, i think 12x12 would look nice, but honestly the original scaled 8x8 sprites looked fine to me.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 24, 2016, 11:45:01 pm
That does look a bit small, i think 12x12 would look nice, but honestly the original scaled 8x8 sprites looked fine to me.
I'll give 12x12 scaled up x2 a go sometime in the next few days hopefully, and we'll see how that looks. Otherwise 8x8 scaled up x3 will be my fallback position :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on February 25, 2016, 09:07:32 am
Cool, i'm sure you're getting tired of converting all these sprites, but it's definitely looking really nice. Once i get some cash saved up i'd love to pick up a CE, too. I almost bought one when they first came out, but couldn't bring myself to fork over the import fees the resellers were charging here in China. It seems like a really fun machine to program for, though. I must admit i'm a bit jealous of the byte-aligned pixels and memory-mapped LCD :P
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 25, 2016, 10:17:13 pm
Cool, i'm sure you're getting tired of converting all these sprites, but it's definitely looking really nice. Once i get some cash saved up i'd love to pick up a CE, too. I almost bought one when they first came out, but couldn't bring myself to fork over the import fees the resellers were charging here in China. It seems like a really fun machine to program for, though. I must admit i'm a bit jealous of the byte-aligned pixels and memory-mapped LCD :P
To be honest, I've currently only converted 3 tiles for the purpose of testing/experimenting. But yeah I'm not exactly looking forward to converting all 150+ tiles, and then all the sprites as well, although I will find it rewarding once I get it done :)

I'm finding the CE a lot of fun to code on. For anyone who enjoyed the 83/83+/84+ series, it's essentially the colour version that we've always wanted!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on February 26, 2016, 07:45:44 am
Did you ever do any coding for the 85/86? Despite the odd screen size i've always thought programming for that would be a lot of fun, too, in particular with the memory-mapped LCD. I know one of these days i'll pick up a CE, as it is as you say the color calc we z80 programmers always wanted!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on February 27, 2016, 07:48:46 am
That does look a bit small, i think 12x12 would look nice, but honestly the original scaled 8x8 sprites looked fine to me.
I'll give 12x12 scaled up x2 a go sometime in the next few days hopefully, and we'll see how that looks. Otherwise 8x8 scaled up x3 will be my fallback position :)

@JamesV What size are the original sprites? Have you considered doing non-scaled 24x24 or just using the original sprites? (if applicable)?
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 28, 2016, 07:55:10 pm
Did you ever do any coding for the 85/86? Despite the odd screen size i've always thought programming for that would be a lot of fun, too, in particular with the memory-mapped LCD. I know one of these days i'll pick up a CE, as it is as you say the color calc we z80 programmers always wanted!
I did back in the day, released an RPG called Banchor: The Hellspawn (http://www.ticalc.org/archives/files/fileinfo/383/38380.html) back in 2006. It was a lot of fun, even though it laboured through roughly 5 years of development hell over various incarnations! :P


@JamesV What size are the original sprites? Have you considered doing non-scaled 24x24 or just using the original sprites? (if applicable)?
The original game sprites are 16x16, which is what I used in that last test. I have considered using non-scaled 24x24, but with 150+ tiles and many sprites as well, this will add up (even using 4bpp). I'll be trying 12x12 scaled x2 shortly, so we'll see how that looks :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on February 28, 2016, 07:58:01 pm
Is porting that RPG on your CE dev list?
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 29, 2016, 05:33:26 am

Here's another test using 12x12 tile sprites, scaled up x2. I think this is my favourite so far. It scrolls 3 pixels per frame, so 1 tile every 8 frames, making it the same as the non-colour version (which is what I want, to maintain gameplay compatibility).


(http://imageshack.com/a/img924/6835/1XsnXR.gif)


Don't mind the messy screen edges, as I still haven't implemented any clipping.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on February 29, 2016, 08:41:45 pm
Yea, I see. 16x16 looks too small. What about 16x16 double sized? With the 12x12 you have to rework 150 odd sprites right? That's a lot of work. :/
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on February 29, 2016, 09:52:51 pm
Yea, I see. 16x16 looks too small. What about 16x16 double sized? With the 12x12 you have to rework 150 odd sprites right? That's a lot of work. :/
Unfortunately 16x16 scaled up x2 would mean that I couldn't fit 12x8 tiles on screen at once, which is one of my requirements so that playability is essentially identical between the colour & non-colour versions. The sprite reworking will take a little while, but it should be worth it for the end result. I'm not 100% set yet on 12x12 though, as I'll only do that if I can limit tiles to 16-colours. If I decide to go with 256 colours, I'll revert back to 8x8 tiles scaled up x3.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on February 29, 2016, 10:05:36 pm
Yea, I thought that might be the case since it wouldn't fit in the same amount of tiles on screen as the non color version. All things said though, I think 12x12 scaled up looks the best. If you do 8x8 though, you should be able to put it out quicker since you won't have to deal with two different sprite sets.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on March 02, 2016, 02:19:36 am
Ok so for the time being, I'm going to stick with 8x8 scaled x3, because I want to use 256 colours & also it will likely be easier to work with.

I've updated the 8x8 sprite version by adding in some more colour texture and implementing clipping and VRAM flipping.

(http://imageshack.com/a/img921/4947/YgKcrZ.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on March 02, 2016, 04:26:32 am
I think the 8x8 sprites look good. The scrolling is fast and looks really smooth, are you redrawing the entire screen each frame or shifting and filling in? Adding an HUD will fill out the rest of the space nicely. Are the artifacts on screen emulator/screenshot glitches?
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on March 02, 2016, 02:44:37 pm
Adding an HUD will fill out the rest of the space nicely. Are the artifacts on screen emulator/screenshot glitches?
He does plan on adding a HUD, like the original. I also think he said somewhere that the artifacts are not in the program, but are screenshot glitches. Then again, I'm not exactly sure. :-\
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on March 02, 2016, 08:21:22 pm
Adding an HUD will fill out the rest of the space nicely. Are the artifacts on screen emulator/screenshot glitches?
He does plan on adding a HUD, like the original. I also think he said somewhere that the artifacts are not in the program, but are screenshot glitches. Then again, I'm not exactly sure. :/
Correct, I'll be adding some HUD elements at the top and bottom, and the artifacts are just GIF glitches. I guess I could post this test program here if anyone wanted to download it just to see how it looks on their calculator? :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on March 03, 2016, 06:51:25 am
Adding an HUD will fill out the rest of the space nicely. Are the artifacts on screen emulator/screenshot glitches?
He does plan on adding a HUD, like the original. I also think he said somewhere that the artifacts are not in the program, but are screenshot glitches. Then again, I'm not exactly sure. :/
Correct, I'll be adding some HUD elements at the top and bottom, and the artifacts are just GIF glitches. I guess I could post this test program here if anyone wanted to download it just to see how it looks on their calculator? :)
I thought you'd never ask! YES! :w00t:
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Eeems on March 04, 2016, 07:35:15 pm
Adding an HUD will fill out the rest of the space nicely. Are the artifacts on screen emulator/screenshot glitches?
He does plan on adding a HUD, like the original. I also think he said somewhere that the artifacts are not in the program, but are screenshot glitches. Then again, I'm not exactly sure. :/
Correct, I'll be adding some HUD elements at the top and bottom, and the artifacts are just GIF glitches. I guess I could post this test program here if anyone wanted to download it just to see how it looks on their calculator? :)
I'd be down to run tests if you'd like.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on March 06, 2016, 04:02:42 pm
I haven't done any further work on this over the last 5 days, but you can download a copy of the latest scrolling test shown above if you want to see what it looks like on a calculator :)

Ab5Test Download (http://www.jvti.org/files/downloads/ab5test.zip)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on March 15, 2016, 04:07:41 pm
Here's a quick progress screenshot of integrating the colour engine into the game :)

(http://imageshack.com/a/img923/7942/W2aI8R.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on April 03, 2016, 11:30:44 pm
The color version looks amazing, James!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Dudeman313 on April 05, 2016, 06:05:54 pm
I know, right? It's just so fancy! :D
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on September 03, 2017, 06:12:55 am
After some time away from working on this, I've made some minor progress. I decided to go back to 16x16 sprites, and increase the view range to 16x12 tiles on the 84+CE. Here's an early screenshot.

(https://i.imgur.com/WuhdzOK.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on September 03, 2017, 10:47:30 am
Looking good!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: Eeems on September 03, 2017, 01:17:54 pm
That's looking awesome! Keep up the good work @JamesV
Title: Re: Alien Breed 5 Episode III: Impact
Post by: chickendude on September 04, 2017, 12:10:48 am
James, that's looking amazing. It's absolutely beautiful in color!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on September 06, 2017, 05:48:56 am
Thanks! I've added a few more tiles, and the machine gun & twin laser sprites as well (but I haven't drawn the explosion animations or door opening animations as yet).

(https://i.imgur.com/cTKrPDN.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on September 11, 2017, 05:46:21 am

The shooting sprites are now finished, and I've also improved the functionality a little to more closely match the Team 17 original. Here you can see the machine gun (still with no wall collision/explosion animation), twin laser, flame arc, plasma rifle and flamethrower all in action in colour:
(https://i.imgur.com/bGTUqpF.gif)


Whilst I was at it, I've updated the shooting sprites and functionality on the monochrome version to match as well. On the left are the old sprites from v2.1.0, and on the right are the updated sprites which are just scaled down and monochrome'd from their colour counterparts:
(https://i.imgur.com/AxPbDkO.gif)  (https://i.imgur.com/UiRjvym.gif)


I guess these screenshots also show what the same level/section looks like in both the colour and monochrome versions (I'm yet to do the colour spaceship tiles) :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: coops on September 11, 2017, 09:32:54 am
Wow, that looks really good! Glad to see something done with the monocrome calcs!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on September 11, 2017, 06:20:40 pm
Wow, that looks really good! Glad to see something done with the monocrome calcs!
Yeah, I really want to keep the monochrome version of AB alive. I'm not sure I'll develop much in the way of new games for the monochrome calculators, but never say never! There are a ton of games I wanted to make over the years but never got around to :P
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on September 12, 2017, 06:51:52 pm
I like it! I'm also happy to see the old version get an update. :D
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on October 13, 2017, 07:45:43 pm

I decided to attempt to recreate the menu screen from the original Amiga game, and it's now working! The camera is flying through a star field, panning on x/y at varying speeds, and alternating on z between flying forwards and backwards (also at varying speeds). The stars are each drawn in 1 of 8 shades of grey, depending on their current depth.


Unfortunately the GIF doesn't really do it justice with pixel artifacts resulting in some static stars and the flashing logo border not appearing very smooth.. But it looks much nicer running in CEmu, and even nicer again on calc :)


(https://i.imgur.com/JpwiL8b.gif)


I'll try to back port this to the monochrome version as well.
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on October 14, 2017, 08:19:50 am
I like it, looks nice! :)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on October 16, 2017, 05:21:27 am
The TI-83/84+ monochrome equivalent:

(https://i.imgur.com/gWfL6QK.gif)
Title: Re: Alien Breed 5 Episode III: Impact
Post by: TIfanx1999 on October 18, 2017, 06:23:45 pm
The monochrome version came at quite nicely. Great job!
Title: Re: Alien Breed 5 Episode III: Impact
Post by: JamesV on November 03, 2017, 03:40:26 am
Small update on the CE version.. I've added in a couple more tiles, finished the explosion and door opening animations (although the latter isn't demonstrated here), finished the one-way laser beams, and drawn a placeholder alien sprite :P I'm having trouble getting the aliens to look how I want when reducing the original 32x32 sprites down to 16x16 (I suck with pixel art), so I might need to ask for help at some point - I'll see how I go :)

(https://i.imgur.com/gfuebsF.gif)