Space99 - Development Forum

Want to talks about games you like, would like to see developed on the Oric, it's here.
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Just something I'm thinking about now, about colors... you should be very careful with the choice of colors, because some Oric users still uses either black and white tv sets, or are connected through the antenna. As a result some choices of colors makes it totally impossible to distinguish things.
I didn't think of that guys... :(

Well, I wouldn't have a problem with blue light when power is completely down, as it resembles what is going on :twisted: , but will think of another color for character's speeches.

In fact I have some problems when seeing colors, so any advice is appreciated :oops:
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Twilighte wrote:So i have modified the screen as you required and hopefully this also sorts the inventory cursor problem too?
I hate to look stupid, but how can I insert that .byt data in the sources so it is loaded in the screen?

I've tried to set *=$a000 just before the data, but it seems not to work...

In addition, which is the new address/positions of the cursors?

EDIT
Forgot to say
The problem with the health bars is that their are 9 or 10 segments which are difficult to divide into the more desirable bit groups of 2,3 or 4 bits.
I can adjust proportionally for the range, but i'd prefer giving a range like 0-9 or 0-17 or something like that, please advise.
We can go with 10 lifepoints, so you have a range of 1-10, even if we use 4 bits, we can suppose that any value > 10 is, in fact, 10. A value of 0 means dying. Duplicating the value so the character has 20 points is less desirable, in my oppinion, as we would need 5 bits.

Currently the chars lose 1 lifepoint per second (approx) if life support systems are low, and 1 lifepoint if a char collides with something lethal (I currently have a kind of energy ball moving around one room :twisted: ). We can increase the timer for the first case, if deemed necessary.

EDIT2
Added the decompression routine and here come some figures:
Original text size=2132 bytes, game total=33352 bytes
Compressed text size=1168 bytes, decompression routine=33 bytes, dictionary=256 bytes, game total=32677 bytes

Also added a pic for Benes (though she looks like a living skeleton) and the logic associated to cure her and her first speech (along with changing game flags so chars have acces to her room and Paul's, adding passcodes and interaction texts with all characters to reflect the new duty that has to be accomplished).
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Ok, today I decided that it was worth it to try to get room names whenever possible, so I sectioned Alpha into... well... sections, such as:
Medical Wing
Main Mission
Leisure
Hydroponics
Dinner
Research
Computer Room
Life Support
...

with a total of 22 different zones, including corridors and lounges. I added the necessary code to display the name for a room ID (minimizing size as possible, but with good speed) and it is working now. Thanks to text compression this is feasible, as you can see from this figures:

Without compression: Text=2563 bytes, Program=34114 bytes
With compression: Text=1415 bytes, Program=33255 bytes

I will post an screenshot or even a demo very soon... :)

Regards,
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

This is the routine for plotting the Life points that you keep requesting, sorry for delay...

Code: Select all

;Update Life Levels
;Both Koenig(0) and Helena(1) have life bars of the same size and byte allignment

;110101010101010101010100
;110101010101010101010100
;110101010101010101010100
;110101010101010101010100
;000000111111000000111111

;Life points will change colour as follows
;7-10 Green
;5-6  Yellow
;3-4  Magenta
;0-2  Red
;A==Life Points (0(Dead)-10(Healthy))
;X==Player1(1) or Player2(2)
;All Registers corrupted
PlotLifeBar
	;
	ldy LifeBarScreenOffset-1,x
	tax
	lda LifeBarColour,x
	sta $A000+40*127,y
	sta $A000+40*128,y
	sta $A000+40*129,y
	sta $A000+40*130,y
	lda LifeBarImage0,x
	sta $A000+1+40*127,y
	sta $A000+1+40*128,y
	sta $A000+1+40*129,y
	sta $A000+1+40*130,y
	lda LifeBarImage1,x
	sta $A000+2+40*127,y
	sta $A000+2+40*128,y
	sta $A000+2+40*129,y
	sta $A000+2+40*130,y
	lda LifeBarImage2,x
	sta $A000+3+40*127,y
	sta $A000+3+40*128,y
	sta $A000+3+40*129,y
	sta $A000+3+40*130,y
	lda LifeBarImage3,x
	sta $A000+4+40*127,y
	sta $A000+4+40*128,y
	sta $A000+4+40*129,y
	sta $A000+4+40*130,y
	rts

LifeBarScreenOffset
 .byt 0
 .byt 34
LifeBarColour
 .byt 1+128,1+128,1+128,5+128,5+128,3+128,3+128,2+128,2+128,2+128,2+128
LifeBarImage0
 .byt %01110000   ;0  - Red
 .byt %01110100   ;1  - Red
 .byt %01110101   ;2  - Red
 .byt %01110101   ;3  - Magenta
 .byt %01110101   ;4  - Magenta
 .byt %01110101   ;5  - Yellow
 .byt %01110101   ;6  - Yellow
 .byt %01110101   ;7  - Green
 .byt %01110101	;8  - Green
 .byt %01110101	;9  - Green
 .byt %01110101	;10 - Green
LifeBarImage1
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01010000
 .byt %01010100
 .byt %01010101
 .byt %01010101
 .byt %01010101
 .byt %01010101
 .byt %01010101
 .byt %01010101
LifeBarImage2
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01010000
 .byt %01010100
 .byt %01010101
 .byt %01010101
 .byt %01010101
LifeBarImage3
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01000000
 .byt %01010000
 .byt %01010100
And only 132 Bytes and no loops.
I hate to look stupid, but how can I insert that .byt data in the sources so it is loaded in the screen?

I've tried to set *=$a000 just before the data, but it seems not to work...
Yep, sure that is a problem. I believe Dbug had a solution, but not sure how you did it before?
In what format would you prefer?
In addition, which is the new address/positions of the cursors?
The new addresses are...
$B5E1 for Top left cursor (Koenig)
$B5E4 for Top Centre Cursor (Koenig)
$B5E7 for Top Right Cursor (Koenig)

$B889 for Bottom left cursor (Koenig)
$B88C for Bottom Centre Cursor (Koenig)
$B88F for Bottom Right Cursor (Koenig)


$B5FD for Top Left Cursor (Helena)
$B600 for Top Centre Cursor (Helena)
$B603 for Top Right Cursor (Helena)

$B8A5 for Bottom Left Cursor (Helena)
$B8A8 for Bottom Centre Cursor (Helena)
$B8AB for Bottom Right Cursor (Helena)

And the items top left should be...
$B631(Koenig) and right in steps of 3
$B64D(Helena) and right in steps of 3

Phew!, i think thats right.
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Twilighte wrote:This is the routine for plotting the Life points that you keep requesting, sorry for delay...
Included :) Thanks.
I've tried to set *=$a000 just before the data, but it seems not to work...
Yep, sure that is a problem. I believe Dbug had a solution, but not sure how you did it before?
In what format would you prefer?
I was loading the frame from disk, CSAVING it as a tap file and then building up the game disk with it. Then I LOADED it back for testing before the game itself. Obviously not the best method, so being able to include it as .byt statements would be very convenient.
User avatar
Dbug
Site Admin
Posts: 4460
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

What about trying:

Code: Select all

.dsb $a000-*
No idea if it work, but worth trying ?
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Dbug wrote:What about trying:

Code: Select all

.dsb $a000-*
No idea if it work, but worth trying ?
It works! Thanks Dbug! I had to include header.s and tail.s myself in the project (else the C stack went into wrong memory area), but as I plan to "clean" them up, it is ok!

Twilighte, there is still an attribute change missing in the top of Helena's head. I will post an screenshot as soon as I have some time to update the cursor position.
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

.dsb $a000-*
That is excellent Dbug, now i can stop wasting memory with character sets and routines to set them up, and start using B800-BB7F.
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Ok, I thought it could be a good idea to spend some time and create these maps:

http://www.defence-force.org/ftp/forum/ ... aMapv1.zip

They are preliminary versions of Moonbase Alpha (at least the sections the player might visit). Beware there could be some changes (there are some details to correct here and there). I suppose that giving the player a final version of these maps along with the game could be a good idea, as it is supposed that he knows the station quite well and it does not spoil the plot.

Anyway, there can allways be "hidden" sections :twisted:

As usual comments/suggestions/errors are greately appreciated.
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Ok, I tied everything up a little bit and created a new downloable demo for you!

Before downloading, please notice that I have not tested everything I added lately, so there could be some bugs here and there. Please report them.

Some room layouts are not correct yet and some puzzles are not finished (most are not even started), but the overall thing works.

Have also included something that should improve playability. Surely you will notice, so please tell me what you think.

As I said I have some problems when distinguishing colors, so tell me if any combination is not suitable/readable or simply looks ugly.

http://www.defence-force.org/ftp/forum/ ... ace99c.rar

Comments/suggestions are welcome, as allways.

Enjoy.
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

Hi, sorry for delay, not yet got music editor to make any sound atm, but did get time to experiment with Benes in bed :twisted:
Do we want her lying down or sitting up?

for example, is this ok?

Image

Otherwise sitting her up is a little awkward to design and would require more precious bytes.
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Twilighte wrote:Hi, sorry for delay, not yet got music editor to make any sound atm, but did get time to experiment with Benes in bed :twisted:
Do we want her lying down or sitting up?

Otherwise sitting her up is a little awkward to design and would require more precious bytes.
Laying is better, imho. Your design is great! I had already made another for the demo (you can see it in the maps posted above), but it is horrible, even if it only uses 1 tile above your already designed beds :)

If we remove the flats I proposed (still awaiting your oppinion on this), we could end up with 5-4 free tile ids. I am sure you can do wonders with that :)

On another note, we really need feedback from those of you testing the demo. Bugs, things that do not work, ideas, comments... are indeed needed, so don't be shy and post here... There are many visits, and little posts :roll:

Regards,

EDIT I have just received Fabrice's new version of disk.s without using page 4 and it seems to work nicely. Unfortunatelly I cannot just make the program start at $400, as it refuses to load from disk, so I will get data into page 4 and page 2 by loading it from disk. Easy to do with the dictionary... We will see what other crunch of data is exactly 256 bytes...

Another thing is that now only Microdisc is supported. Could this be a problem? I am not used with Oric disk systems...
User avatar
Dbug
Site Admin
Posts: 4460
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Post by Dbug »

Feedback on the demo :)

Well, first I have to say that it looks graphicaly very nice, and runs very smoothly too. Controls react very well, and the presence of loading and saving code is a great plus for being able to test correctly !
Also big big plus is the "collisiong sliding" code. It works very very well.

Now, what can be improved:
- When you release a demo please include a small text file indicating the list of all keys that are usable in the game, I had to figure myself the keys... if people cannot start testing properly very fast, you get no feedback or very bad feedback at best.
- It needs an option to allow to "load game" if a save game is detected at launch.
- Needs a confirmation "yes/no" when restoring the game, because at one of the control pods I mistakenly loaded instead of saving.
- The moving "cloud" or "sparkling particule cube" in the second room does not appear like a foe until you collide with him losing half you life points...
- The "Jon I need your help in meds" should be disabled when getting the new mission after you talked with people in the meds department.
- Would be nice to get full health regen in the meds department if you have been hit.
- In the "hydroponics" room, walking on the border is impossible, keeps changing room...
- Impossible to access the nuclear suits room, or the adjacent room with a robot with weels (near the place where you find the battery) for the same "changing room" reason. Actually found the alternate path, that was not obvious graphicaly... because it looks like the side door is one you could access comming from the main room... instead of a separation door between the suits room and robot room.
- The "Go and prepare the medicine. I will take care of Benes." message when actionning the robot does not makes much sense ???
- The lack of in game map is really handicaping I think. Even a slow map rendering generated from the data when you enter the "communication pods'" would be very helpfull.

And it's all I could test.

Very positive oppinion at least, I think it will be a great game !
User avatar
Chema
Game master
Posts: 3019
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Post by Chema »

Dbug wrote:Feedback on the demo :)

Well, first I have to say that it looks graphicaly very nice, and runs very smoothly too. Controls react very well, and the presence of loading and saving code is a great plus for being able to test correctly !
Also big big plus is the "collisiong sliding" code. It works very very well.
I am happy that you liked that... :) Now with the feedback...
Now, what can be improved:
- When you release a demo please include a small text file indicating the list of all keys that are usable in the game, I had to figure myself the keys... if people cannot start testing properly very fast, you get no feedback or very bad feedback at best.
My fault, I agree... I will include a txt file with the keys in the next upload. For everyone reading this keys are as allways:

Code: Select all

'M' - Step forward/advance selection (menus)
'B' - Step backwards/get back selection (menus)
'-' & '=' - Menu selection (back and advance... Oric keys.. might be different symbols in a PC keyboard)
'Z' & 'X' - turn anticlockwise and clockwise
'CTRL' - Activate/pick/talk/use selected object/OK in selections
'ESC' - Drop object selected
- It needs an option to allow to "load game" if a save game is detected at launch.
Indeed... And still it lacks the "getting back to initial state" when you die...
- Needs a confirmation "yes/no" when restoring the game, because at one of the control pods I mistakenly loaded instead of saving.
Will add this, because I think you are very right and it is important. Same for saving.
- The moving "cloud" or "sparkling particule cube" in the second room does not appear like a foe until you collide with him losing half you life points...
This is trickier... In the real game you will only lose 1 point per hit (as it changes direction on collision), but you stating it does not look like an enemy is more difficult for me... In fact it is copied from Knight Lore... Twilighte I need fixing this pic! :)
- The "Jon I need your help in meds" should be disabled when getting the new mission after you talked with people in the meds department.
This should be working... Something is broken here, as it seems for another item you mention below... I will check.
- Would be nice to get full health regen in the meds department if you have been hit.
Yep. There is a way to get full health again (you surely remember from the plot discussions) but it is not obvious.
- In the "hydroponics" room, walking on the border is impossible, keeps changing room...
- Impossible to access the nuclear suits room, or the adjacent room with a robot with weels (near the place where you find the battery) for the same "changing room" reason. Actually found the alternate path, that was not obvious graphicaly... because it looks like the side door is one you could access comming from the main room... instead of a separation door between the suits room and robot room.
Both are related with a fault that exist in the change room code. I will fix it. Also will try to improve the layout so it is no more confusing.
- The "Go and prepare the medicine. I will take care of Benes." message when actionning the robot does not makes much sense ???
No, of course. As I said something is broken here... even if I tested it completely, surely I made some change that broke this code. Will fix it.
- The lack of in game map is really handicaping I think. Even a slow map rendering generated from the data when you enter the "communication pods'" would be very helpfull.
:shock: Sure, but I cannot figure out how to do it with our memory constraints...
And it's all I could test.

Very positive oppinion at least, I think it will be a great game !
Thanks indeed. Very deep and nice work Dbug... It will be very helpful.
User avatar
Twilighte
Game master
Posts: 819
Joined: Sat Jan 07, 2006 12:07 am
Location: Luton, UK
Contact:

Post by Twilighte »

I wonder...
When i developed Times of Lore, the position on the map was decided by where i was in the virtual world. Perhaps a similar thing could be done here.
I am thinking that perhaps a portion of the Message area could be assigned with a grid, The player starts somewhere in this grid, and as they pass through the north door, so the north side of the box is replaced with a door graphic and they are positioned in the next room. If they walk west into the next room (it is a long room) then the west wall in the grid is removed. The idea is that it will gradually draw a map of your surroundings. The problem is only that we'd need to store this map in a very compact way, in order that when we change levels, and return to a level we were on before, we could restore the "known maze".

The alternative is to create a general map using paper attributes, where each colour represents each area of the world. then we inverse the area we are in. This would need to be an extension of the above idea and would only serve to give a general idea where we were.
Twilighte I need fixing this pic!
Ok, i'll look
Post Reply