News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_ervin

Chunky Pixel Curator

Started by ervin, 15:07, 26 January 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ervin

Hi all.

This thread is a continuation of the development thread that can be found in the Programming sub-forum.

Here is the old thread:
Chunky Pixel Curator - WIP

As I continue adding rooms to the gallery, I'll upload new versions to the first post in this thread.

Some quick information for those new to the project:

Chunky Pixel Curator is my tribute to the Amstrad CPC.
It takes the form of a gallery that can be walked (or run!) through, and contains big chunky sprites being scaled in real-time in 3D.

To run the game, type:
RUN"CPC"

After the introduction screen, you'll appear in the foyer.
It's important in this room to approach the information sign, as it describes some useful controls.

For anyone interested in mapping the gallery, go for it!
The map layout won't change between versions (except for the addition of new rooms), so maps will still be correct even as new versions are uploaded.
;D

The first version uploaded to this thread contains the following rooms:

Blagger
Bruce Lee
Fruity Frank
Harrier Attack
Knight Lore
Manic Miner

I'm particularly chuffed with how the cauldron looks in the Knight Lore room.
8)

Enjoy!

CraigsBar

Is there anyway we can help with this? Perhaps with ideas for rooms, writing the text or providing sprites etc? I hope you plan on including some GX/plus only rooms with content and sprites from those games too. Pang and switchblade would be excellent here.

I have some ideas for other rooms too and would like to help out with content if I can.
IRC:  #Retro4All on Freenode

ervin

#2
That would be brilliant!!!
Getting help putting sprite sheets together would be fantastic.

I'm also open to ideas for rooms, and how they should be laid out (with a few technical caveats of course).
If you like, I can send you my list of the games that I plan to create rooms for.

Unfortunately putting in Plus games is beyond the scope of the project.

It has been written to run on any CPC with a disk drive.

I'd also need to figure out how colour values are stored on the Plus, and my tools would need rework, in order to convert ripped sprites to the correct format.

CraigsBar

Sure, send me the list I can see what I can do (or add) to it.
IRC:  #Retro4All on Freenode

ervin


trabitboy

Not really a productive comment, but this blows me away  ;)


I can't wait to try it on a real machine !!!!!

ervin

Thanks trabitboy, I hope you enjoy it!

ervin

#7
New version alert!

The following rooms have been added:

Mutant Monty
Oh Mummy
Pyjamarama (turned out really well)


Axelay

Great stuff!  :)


Just out of interest, I have a vague recollection of you talking about some sort of road effect previously.  Was that a different idea to the rooms you are using now?

ervin

#9
Thanks!
;D

Yeah, the history of this program is interesting, and rather convoluted.

My first Z80 program was a re-write of 3D Maze from ACU.
I learned ccz80 and assembly during that rewrite, and it got me thinking I could do a version with solid blocks instead of vector walls.
And that led to the chunky pixel idea, as it meant I would then be able to avoid pixel masks. It was simply one byte per chunky "pixel".

Then (back in 2010!) I thought about figuring out how to display solid blocks with real-time scaling instead of pre-calculated sizes.
It led down a long road (pardon the pun) of examining sprite scaling arcade games, particularly those of Sega.
I love Space Harrier and Outrun, and I thought I could do an into-the-screen runner of some sort. Hence the name Chunky Pixel Collision.

That then evolved into a racing game idea with a road.
Meanwhile my sprite scaling routines were getting faster and more like those of Sega (I think so, anyway!).
8)

I had difficulty with creating a road, as I wanted it to not only curve side-to-side, but also go up and down, as if there were hills coming toward the player.
That difficulty put the project to the side for a number of months.

Then one day I thought I would try putting Bresenham's line routine to use in my program, in an effort to draw the road outlines with lines.
This led to real-time 3D calculations, and then I tried placing my scaled sprites in accurate 3D positions, and it worked!

During all of this, the CPC was approaching its 30th birthday, and I thought I could perhaps create something to celebrate the history of the CPC.
That's when the idea of a gallery surfaced, as well as the name Chunky Pixel Curator.
I thought it would be something that would be nice to offer to our awesome community, as well as fulfilling a lifelong dream of creating an interesting, original CPC program.
(Of course, the graphics aren't original).  ;D

The 30th anniversary has been and gone, but work continues on Chunky Pixel Curator.
I hope to finish it sometime this year. There is a lot left to do (including yet another small technical issue, sigh...), but it is an *immensely* rewarding project.
Seeing others enjoy it is the highest accolade of all.

Anyway, if you've read this far, thanks for letting me indulge in a bit of history.

I hope to post another update soon!

ervin

#10
Wow, 2 weeks have passed since that rather self-indulgent post of mine!
How time flies!

Anyway, time for an update!  8)

The latest version has had a few changes made under the hood.
No doubt not everyone will agree with the changes, but they have been made with the best intentions.

I've removed the ceilings, walls and back doors (the entry door is still there).
Sounds silly, but (apart from a *very* small framerate increase) there is a good reason for it.

I was finding that with the number of sprites in some rooms, the walls and ceiling were adding visual noise, and making the rooms feel cluttered. It looked messy, and made it hard to make out the sprites clearly in some cases.
The 3D-ness of a room is still preserved, as the floor is still displayed, so it's still obvious where you are standing in a room.

Also, I've adjusted the colouring of the floor and entry door.
They are now drawn in a colour that is close to the colour of the room itself (except for the foyer, which has the same blue/yellow screen as the CPC has at startup).

The reason for this is that I want the floor and entry door to be clearly visible, but not a "highlight" of the room, if you know what I mean. I just want them to sit in the background, as it were, just doing their jobs quietly. This way they don't distract the player from the sprites, which are after all the main attractions.  :D

I've also added an animation delay. This can be set on a per-room basis, and is the number of screen updates that happen before the next frame of a sprite's animation is delayed (the game still runs at the same speed though).

So in some rooms where the animation was too fast (e.g. Fruity Frank), I can slow down the rate at which the sprites animate. Technician Ted, however, seems to look best with the sprites animating at the same rate as the screen updates, so that room has no animation delay.

Now Roland climbing his rope looks a *little* less dodgy, as he is going up and down at a slightly less manic speed!  :P

I've made some adjustments to 2 rooms:
- Knight Lore has had the famous boot added.
- Pyjamarama has had the pot plant replaced with the chair. Looks much better.

The following rooms have been added:
- Roland on the ropes
- Spannerman
- Technician Ted (this room is a bit sparse, but the animation of the original sprites looks *great* when enlarged like this)

And that should just about do it for games from 1984!

For the next update, I need to make one more technical change, and that's the way rooms are loaded from disk.

I won't be able to have 250 files on the disk, due to AMSDOS limitations, so I've come up with a way to store multiple EXO files in one BIN, and then extract the appropriate piece of a file, according to a table of file names and memory addresses.

More soon!



TFM

Lot's of work added! I like the blue in the Harrier attack room.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

ervin

Thanks TFM.  8)

I've almost finished the multiple-EXO-files solution.
It's working really well, except for one little bug...

TFM

Sleep over it. That's what I do now with a problem here.  :laugh:
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

ervin

Woohoo!!! It works!
8)

Now I have multiple EXO files contained within a BIN file, so I should be able to fit all the graphic data on one side of a DSK.
(Well, as long as the average size of an EXO file doesn't go too high!)


ervin

#15
Hi everyone.

Just a quick update...

I've uploaded a new version that includes the technique of storing EXO files within a BIN file.
Not that this will be noticeable to the player, but anyway...  ;D

Something of more use to players is the new ability to select the starting room from the welcome screen.
At the bottom left corner is some red text displaying the starting room, and explaining how to change it (i.e. arrow keys).

Also, each room's info screen now displays the room number.
8)

I've also been working on a brute-force version of the bin-packing problem, in order to fit as many EXO files into one 3KB BIN file as possible, with as little wastage as possible.
This is so I won't have too much empty space within each 3KB block on the DSK, sitting there taking up space but doing nothing.
This will come in very handy as the number of rooms (and therefore EXO files) increases.

Enjoy!


TFM

Hi!


Well, I don't know if this is doable... but if you got some space left, then you _could_ add a map feature to the "information screen". I don't know if such a map wouldn't get too big, but it would be nice to see where you're actually are.  ;)


Great progress anyway!!!  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

ervin

#17
You wouldn't believe it, but an old version (before I released the first public version) actually had a crude map in it!
Unfortunately I ran out of memory and had to remove it.

Since then, I've changed and optimised the game's memory map a lot, so *maybe* there is a chance I can squeeze it back in.  8)
We shall see...

However, in order for a map to make sense, I'd need to add left/right entry doors to each room, so that you can back-out of each room not just through the centre, but left and right as well. Then I could join the rooms like hexagons on a strategy game map.

This way they would all fit on a map screen (whereas now, the map starts from a single point - the foyer - and fans out quite dramatically from there).

[EDIT]

Actually no... it'll be too time-consuming to add left/right entrance doors... too much door and collision detection code will need to be revisited, and that code is quite complex. I shudder when I think of going through that code again.

I'll leave the doors and room connections as they are, but I might be able to have a map display where it only shows the current "year". For example, if you're in the Roland on the Ropes room, you're deemed to be in the 1984 section of the gallery. Therefore the map will show where you are in the 1984 section. There can be a pointer to the previous section, as well as the next section.

This scheme will also make it easier to fit map information onto the screen!
8)

How does this sound?

By the way, I've now got a black mode 2 screen appearing when M is pressed...
However, I've only got 915 bytes of space left to fit the map code into!  :o



TFM

WoW! Pretty cool ideas!

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod