Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Xeda112358 on November 23, 2012, 04:09:01 pm

Title: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 23, 2012, 04:09:01 pm
I might enter this into the competition, provided I have enough time to work on it :) I've been working at it on and off, and so far I've put in about 10 hours into it (I did a lot of staring blankly at my calculator .__.)

Anyways, it uses 4 assembly programs at the moment.
-Shift a portion of the screen up 6 pixels
-Shift a portion of the screen down 6 pixels
-Plot the tilemap for monster zones (tilemaps are 72 bytes, using this method)
-Draw the actual map

It uses 3x3 "tiles" on the graph screen (they aren't actual tiles, its just that you move 3 pixels at a time and everything is based on 3 pixels). The first two assembly programs are just to make scrolling through the item menu more visually appealing.

The battle engine is kind of lacking in almost all areas, but I plan to add to it as a build the game up a bit more. I just threw together a quick one to make sure the monsters worked and stuff. 18 monsters are programmed, the last three are bosses, though, so you can only face the first 15, normally.

37 items are currently in the item menu with plans to add more. Only the first 10 actually do anything, at the moment

There are very few graphics. There is also no way to obtain items, except for the first 5 you start with or through cheating.

Almost all of this was programmed in the three hours that I was waiting for laundry. The rest occurred between yesterday and today. Yesterday I added in the rest of the monsters and items that are there, now, today I added the two assembly programs and I made a map maker that generated assembly code (I wrote it in BASIC, too :P)

Over all, I am kind of having fun with this, programming mostly in BASIC :) I am still not doing any hardcore programming, though, so this is a nice way to ease back into stuff.

By the way, this is a continuation of a series I made and lost about 5 years ago :) Hopefully this will help me to revive it as I lost almost all desire to make RPGs since then.

Oh, also, the houses have a symbol above the door way. The symbol tells what house it is, but currently, there is no code for each of the house types. Instead, it just goes back to the main program loop.

EDIT: I have now added in the code for the merchant, so you can buy items. Not all items are for sale, though! Now on to the blacksmith stuff >.>
EDIT2: Okay, so now I have fleshed out the save file to be a 122 element list and it is 1112 bytes. Since it is also stored to L1 while the game is being run, that takes up 2222 bytes of RAM. I could write another small ASM program to save/load pieces of data, but is that too much ASM involvement? If I do that, the main save file will be 137 bytes and I can load only the pieces I need into L1, saving possibly 2000 bytes or so of RAM.

Hmm, I feel like this is my call, since it is a contest entry XD
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: pimathbrainiac on November 24, 2012, 01:19:35 pm
Good Luck Dude! I am making my first RPG for this comp, and it seems like I'm going to have a bit of trouble if I want to win :P

Anyway, Good Luck and Have Fun!
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Hayleia on November 24, 2012, 02:54:26 pm
Good Luck Dude!
Isn't "dude" for boys ?

Anyway, this looks great already, good luck :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 24, 2012, 05:24:31 pm
Thanks! I am on for a few minutes to post an update:

-I have all the monster sprites done (I miscounted, there are actually 19 monsters, so you can face the first 16).
-Some monsters have items that you get after you win a battle. Different monsters have different itemsets and probabilities for each item.
-Items are now more expensive at the merchant than originally planned.
-The merchant code has been added :P You can sell items and buy many of them (some items are non-buyable, but sellable).
-The position of the cursor in the item menu is saved.
-More items have been coded in. There are now only a handful left to code. Some items are only usable in battle. I need to remove this limitation for "Speed Boost", though, because otherwise, it is pointless.

I still haven't decided if I am going to incorporate any more assembly to cut down on RAM requirements,  but I feel like any more would be too much. For now, these are the biggest memory eaters:

-The main program is 6634 bytes, with at least 1216 bytes of that in sprite data
-The save file is 1112 bytes (122 element custom list) and this gets copied to L1 for in

game access.
-Pic1 is used for backing up screens, temporarily
-The item name list is 334 bytes in Str2 and also hardcoded in the main program
-There is a list when using the item menu that is 354 bytes that is also hardcoded
-The item menu uses up about 700 bytes of RAM. The data is hardcoded, but needs to be copied to lists/strings to be used :/


Here is a little screenshot for your time :)
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 24, 2012, 06:01:55 pm
Very impresive

1 little question (sprry if i'm wrong) but what if you stored all of the item's name's etc in a list (letters -> numbers of alphabet) and call in a routine to convert them back into a list? Or would that be larger and slower? Just asking...

Btw: nice to see how people get a good use out of point-on(x,y,2
 ;) and how do you "tile" your map? Is it hardcoded or string or matrix?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 24, 2012, 07:21:48 pm
1 little question (sprry if i'm wrong) but what if you stored all of the item's name's etc in a list (letters -> numbers of alphabet) and call in a routine to convert them back into a list? Or would that be larger and slower? Just asking...
That would be slower and larger. In a string, each uppercase letter and space only takes 1 byte. In a list, each element is 9-bytes.
Btw: nice to see how people get a good use out of point-on(x,y,2
 ;) and how do you "tile" your map? Is it hardcoded or string or matrix?
The drawing of the houses is an image I created using a variation of an old program I made. It was a BASIC program that let you draw on the graph screen using rectangles. It would keep track of each rectangle in L1 and L2, then when you finished, it would create an assembly opcode in Str1 that would draw the same image. By the way, when I made that program, I didn't understand assembly, I just learned how to tweak some opcodes. The modified version that I used creates a more optimised code and recognises more types of rectangles.

As for the dots, I was toying with three ideas, but I settled on one.  The first idea was going to be to use GridOn and set up the window accordingly, and erase the dots I didn't need. However, I decided instead to create an assembly opcode where I could use bits to define which dots were on or off. This made the map 72 bytes in all, to cover all 31*18 tiles. My other idea was to hardcode the map as a string, using 32 characters to represent 5 tiles at a time (as this would be optimal). It was too slow and the maps were too large for my liking (It cost about 144 bytes in all, but oh well)
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 24, 2012, 07:37:57 pm
Cool
But yeah i'm bad at assembly and opcodes and i like the fact that a program can be contained in 1 file xD but i might have to use some asm after all eventually

But for now my drawing routine for pure basic is: a for loop in a foor loop, that loops trough a matrix
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 24, 2012, 07:57:14 pm
Each element in a matrix uses 9 bytes, so I would suggest storing multiple pieces of data per element. Maybe you can use a list of 18 elements for the tilemap and each element has a 31-bit number for the data in each row. I might have to do that myself >.>

EDIT: Also, my sprite drawing routine is pure BASIC, so it takes about 5 seconds to draw a 16x16 sprite using hexadecimal.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 24, 2012, 08:07:42 pm
Each element in a matrix uses 9 bytes, so I would suggest storing multiple pieces of data per element. Maybe you can use a list of 18 elements for the tilemap and each element has a 31-bit number for the data in each row. I might have to do that myself >.>

EDIT: Also, my sprite drawing routine is pure BASIC, so it takes about 5 seconds to draw a 16x16 sprite using hexadecimal.

Could be a good idea ;)

How do you draw hex sprites in basic? Or do you use a sub asm prog to translate it to basic points that need to be on?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 24, 2012, 09:01:14 pm
:D Like this:

If Str2 is your 16x16 hex sprite and the coordinates are (X,Y):
Code: [Select]
For(A,0,15
For(B,1,4
inString("0123456789ABCDEF",sub(Str2,4A+B,1))-1
For(E,1,4
Ans/2
If fPart(Ans
Pxl-On(Y+A,X+4B-E
iPart(Ans
End
End
End
It isn't too fast, but it works well enough. In this way, a 16*16 sprite takes 64 bytes, but if I had used a list instead, it would have taken 72. It would probably be faster using an 8 element list (where each element handles two rows of pixels), but the hardcoded data would be larger in many cases.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 05:19:43 am
Wow that's one cool code xD
With your approval i'dd like to use this in some of my programs (credits to you again xp)
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 09:01:07 am
Feel free to use it and modify it (you can change it to do different sized sprites).
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 10:32:12 am
How would i do that? In example 8x8 sprite, would that be: change the A loop end to 7 en the B loop end to 2?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 10:58:06 am
Code: [Select]
For(A,0,7              ;Changed
For(B,1,2              ;Changed
inString("0123456789ABCDEF",sub(Str2,2A+B,1))-1   ;changed to 2A, not 4A
For(E,1,4
Ans/2
If fPart(Ans
Pxl-On(Y+A,X+4B-E
iPart(Ans
End
End
End
That's it :D
EDIT: Forgot to change the 4A to a 2A :P
EDIT2: Just for a bonus, though the sprites are kind of a bother to make for this method, this will let you draw 8x8 sprites using two elements in a list:
Code: [Select]
For(A,1,2
L1(A
For(B,4A-4,4A-1
For(C,0,7
Ans/2
if fPart(Ans
pxl-On(Y+B,C+X
iPart(Ans
End
End
End
Or if D is a complex number, with the real part being the upper 4 rows and and the imaginary part being the lower four rows:
Code: [Select]
For(A,0,1
real(Di^A
For(B,4A,4A+3
For(C,0,7
Ans/2
if fPart(Ans
pxl-On(Y+B,C+X
iPart(Ans
End
End
End
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 11:13:24 am
Ok thx ;p but it worked with 4A as well...

Oooh wait,  my string was still 64 long xD so nvm :p

EDIT: i read it very good now and i now get the logic behind it ;p
Thx for learning me yet another thing xeda ;)
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 11:18:10 am
That was the same issue I had XD I thought it was working until I realised my string was still 64 long as well XD

Also, I edited my post above if you are interested in using a list or number for your sprite. It would also be pretty easy to create a tool to give you value for the sprite, too. An example list or number is:
{2172731964,1010991489
or
2172731964+i1010991489

This means you could store a bunch of 8x8 sprites to a complex list and each element is its own sprite.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 12:11:47 pm
EDIT2: Just for a bonus, though the sprites are kind of a bother to make for this method, this will let you draw 8x8 sprites using two elements in a list:
Code: [Select]
For(A,1,2
L1(A
For(B,4A-4,4A-1
For(C,0,7
Ans/2
if fPart(Ans
pxl-On(Y+B,C+X
iPart(Ans
End
End
End
Or if D is a complex number, with the real part being the upper 4 rows and and the imaginary part being the lower four rows:
Code: [Select]
For(A,0,1
real(Di^A
For(B,4A,4A+3
For(C,0,7
Ans/2
if fPart(Ans
pxl-On(Y+B,C+X
iPart(Ans
End
End
End


What do you mean with if D is a complex number? what is the D var representing?
And i guess with complex numbers, it's meant to represent the A,B,C,D,E and F ?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 12:42:57 pm
Complex numbers are of the form a+bi, where i is located at [2nd][.]. If you aren't familiar with complex numbers, here is a quick rundown:

i^2=-1
So if you do (3+2i)(2+i)=6+3i+4i+2i*i=6+7i+2(i^2)=6+7i-2=4+7i. On the calculators, complex numbers can be used and they use 9 more bytes than a real number. Likewise, complex lists use about twice the memory as a real list. However, the advantage is that you can store multiple pieces of data in one var. real(4+7i) will return 4 and imag(4+7i) will return 7.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 01:19:59 pm
I know what complex numbers are ;) i'm in a very hard mathematical study :p
But with the lists, how do you have the hex sprites set up? cause an A or 10 doesn't fit in properly...
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 01:22:42 pm
Well, it isn't hex. Basically, the code is converting the decimal number to binary, but it is being copied to the graph screen where 1 is pixel on and 0 is pixel off.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 01:25:21 pm
I know that but then the maximum is 9, so the only combinations are:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 01:27:28 pm
Oh, I am not going digit by digit, I am using the whole number. For example:
2172731964=10000001100000010100001000111100
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 01:28:22 pm
ooooh ok now i get it

so 10000001100000010100001000111100
is splitted to
1000
0001
1000
0001
0100
0010
0011
1100
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 01:44:13 pm
Yes, except it is done in 8 digit chunks. Also, the routine I gave copies the binary backwards, just as a heads up.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 02:08:18 pm
Ok thx ;) and that's smaller/faster...?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 05:34:11 pm
The code is smaller and a little faster, plus it has the advantage that you can store all of your sprites in a list (or as some other kind of number).
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 05:37:19 pm
Lol
But it's not good for tilemapping xD
Tilemap tiles are best when they are like: line(...) ?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 05:39:37 pm
Yes, that is probably the best way to do those.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 05:43:50 pm
Ok :p
So sprites are the best just when having 1 or 2 sprites on the screen and you don't want to hardcode them, and have them all in a routine. Ok i get it
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 05:47:14 pm
Now for an update :D I made a few editors to help me speed up map making and I made a few other miscellaneous adjustments :) Now you get to see all the shtuff in action >.>
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 05:55:56 pm
Looks realy cool ;)
What does the left down house do?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 05:57:37 pm
Nothing yet, but it will be the blacksmith/weapons smith. Basically, you give the person a little money and the required material and after a while, they will have your weapons/armor created.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 05:58:31 pm
Cool ;p good luck
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 06:00:15 pm
Thanks XD I have about 40 weapons and armor things planned, so I will try to add all that in this week (I had a four day vacation from school, but now we are in our last two weeks for the semester).
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 06:01:27 pm
For me it's 1.5 weeks to exams... :o
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 25, 2012, 06:02:51 pm
Good luck on them! I have two essays this week and then next week presentations, then final exams for four classes x.x
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 25, 2012, 06:04:19 pm
Thanks
And good luck to you 2 for them, sounds like you could use...
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 29, 2012, 10:14:45 pm
I spent about an hour earlier today reorganising some code to use my LblRW program. I know I said I didn't want to use any more assembly programs, but this is definitely helpful. First, it lowered my program size by a few hundred bytes, making it so that the size of this program balances things out. Also, the peak RAM usage of the previous version compared to the peak RAM usage of this version is now about 800 bytes less. I also use much fewer variables and the player name is now stored inside the program instead of Str1 :) Now if I make a method to store all of the save data internally, instead of in a list, I estimate that I can save an average of over 1500 bytes from the peak RAM usage (and the user won't have to have a 1112 byte list).

Because I am using LblRW, now, a bazillion If statements were taken out of the battle engine, speeding things up. Also, I can now return which items were acquired from battle using a small 20 or 30 bytes of code instead adding in the hundreds of bytes I was avoiding (about 400).

You might notice the lack of a player sprite in battle... I plan to make an in game sprite editor so that players can customise their sprite :D Again, this is made much easier because of LblRW :3
/me is happy :3
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 30, 2012, 12:23:27 pm
Wow, cool update :o lower prog size + faster, can it even get better? you're godlike!!! xp
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on November 30, 2012, 12:44:39 pm
Thanks! I could make a large-ish assembly program (about 1000 bytes, probably) that could make this program a lot smaller and faster, but if I did that, I would just write the whole program in assembly :P
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on November 30, 2012, 12:45:42 pm
lol :p
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on November 30, 2012, 10:27:14 pm
wow, this is looking awesome! Keep the great work up! :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: epic7 on November 30, 2012, 11:55:22 pm
I think you spelled "preferences" wrong :P
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 01, 2012, 08:02:17 am
Yes, yes I did, thanks!
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: willrandship on December 01, 2012, 08:06:18 am
How do you do that health bar? Do you store the pic of it empty?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 01, 2012, 08:08:05 am
No, I just use two Line( commands (and two Pt-On( commands for the tips).
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: willrandship on December 01, 2012, 08:11:35 am
but how do you get it to decrease?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 01, 2012, 08:28:47 am
Oh, I just use Line(x1,y1,x2,y2,0) to erase part of the line.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: willrandship on December 01, 2012, 08:31:50 am
Yet another hidden BASIC command I didn't know :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 01, 2012, 08:34:39 am
Hehe, it's really useful! Before I learned about it, I used Pxl-Off() in a While loop (but that was years ago when I made the first version of this game).
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 03, 2012, 08:02:35 am
I was going to post a screenie, but I found a bug that I accidentally made yesterday >.> If you go into battle with no health, you automatically win :P Anyways, I also rewrote the saving routine yesterday, so now it takes about 10 seconds to save a game. I created an all BASIC routine to convert L1 to Str1 (appending the data), and so I now store the save file internally. The save file is about 200 to 300 bytes this way, and the code for converting the list is about 300 bytes, so the net savings for this is 1112-300-225=512 bytes (I added in a progress bar and some other things). I am also working on adding in the player sprite (it is currently all zeroes), and the editor for it. Size is looking like it will start to be a problem since I have about 5000 more bytes that I will probably add for all of the weapons, armor, and spells, but all the programs combined are >9000 bytes, now D: I am probably going to need to use more assembly to handle memory troubles like this o.o Probably TPROG or COPYPROG (the old version) should do the trick. I will do something like this:

Create a launcher program, keep the main program and battle engine (and probably a few other subprograms) in archive.
Copy the main program to a tempvar, execute it. When a battle or some other event occurs, exit the program, passing a value to Ans
Convert the value to figure out which program needs to be loaded, then load that program from archive and run it.
When it is finished, copy the main program back to RAM and relaunch.

The only issue that I see with this is that I will need to devise some method of entering a program in an appropriate place (If I just enter the main program, it will reload from the last save state, so I will need to edit one of the first lines of code to jump to a different label) o_O This is making my brain get loopy.


Oh, in other news, I have a story that I am still working on:

It is the eve of December 21st, 2012. You know the whole Mayan calendar thing and you know the details, so you are quite sure that nothing is going to happen--it is a laughable matter, actually. You close your eyes and you fall asleep into a deep dream. You find yourself in a different world, but you see a path, so you go to step on it. You hear a sound behind you, though, so you turn and you see it a house. There is an old lady standing in the doorway and she says, "You be careful now, child, lest one of the Twisted find you." She turns around and walks through the door-- you realise she was a ghost. You are a bit shocked, but you walk down the path-- you can see a fence in the distance. Before you can get there, though, you are attacked. You know this is a dream, so you fight back-- you instinctively know what this creature is and you know what your strengths and weaknesses are. You know you can use some magic and you know you are trained in fighting. After defeating your attacker, you take some of their stuff that you need-- you have a long journey ahead and they won't be needing it. You then get the feeling that you are surrounded by assailants, they hinder you, but do not stop you. You find another house, this time you see that it is a store, so you enter and purchase some items to help you recover from your injuries and feed yourself. When you exit the shop, there is a person in a mask, waiting. The person speaks a simple phrase, with no introduction, then fades away: "When Samocal wins, you will never wake up and Earth will fall."

Does this sound like a good story?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on December 03, 2012, 06:43:50 pm
</walloftext>
Well, the story is ok, i like it kinda
And yeah, i would go with archiving and unarchiving progs to achieve more space :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 03, 2012, 06:45:30 pm
Cool, thanks! I was worried about the whole program archiving thing. If I can still figure out a better method, though, I would like to.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on December 03, 2012, 06:47:49 pm
Maybe some data compression or re-write as a app?
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 03, 2012, 06:53:05 pm
I've used some data compression, but I want to keep as much of this BASIC as possible. I might convert it to Assembly, Grammer, or Hybrid BASIC at a later date, though.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 07, 2012, 12:25:59 pm
Here is a quick little update. I started work on the blacksmith and I've programmed in 3 weapons. Currently, you can view the three weapons and see what it will cost and what material you need. If you don't have enough money or material, a line is drawn through it. There are some minor bugs in the screenie (I forgot to reload the player name after exiting the Blacksmith menu). Also, in this screenie I show the new saving options. The default is the slower option that hardcodes the save file into the program, but you can change to quick saving which stores to an external list.

Also, you can see the modified options in the battle menu and "Weapon" is replaced with the name of the currently equipped weapon. I still haven't even touched the spells XD
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on December 07, 2012, 01:17:44 pm
Nice update
I really like your game :D

I hope this gets finished :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on December 08, 2012, 02:16:28 am
Nice update, i hope your game gets finished in time :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 08, 2012, 08:00:03 am
Yeah, I have to finish by the 20th, because after that I won't have internet for 10 days XD
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Spyro543 on December 08, 2012, 09:40:27 am
I think there should be some kind of stat point system for your character. Let's say you start off with 5 stat points...when you increase a stat, it uses 1 stat point. When you lower a stat, it gives you 1 stat point. As you adventure and fight, you should be able to gain stat points. There should be a building where you can then change your stats, maybe a church.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 08, 2012, 09:48:24 am
Hmm, initially you can choose how your stats are balanced (to an extent) and different monsters give some experience toward specific stats. For example, facing a Florita will give you a general experience and when you level up, your stats will increase according to how you have it balanced, but you will also get 2 experience points toward the health stat. Every 10 experience points gained will raise the stat by 1. I want to later add in different regions with different monsters so that you can become specialised by facing certain creatures.

Also, I realise now that it might make more sense if the "Mastery Experience" is gained by something like this: When you face a strong creature and you win, it should assumen you have developed your defensive ability, if you face a creature with high defense, you have developed your strength, and if you face a creature with high health or speed, your health and speed will increase. I should change how the mastery experience is given before the end of the contest XD
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 09, 2012, 10:30:48 pm
Yay, another update :3 The blacksmith now is completely functioning. Before she would tell you what materials were needed and how much it would cost you, (and if you didn't have enough of something, there was a line struck through it). However, there was no way to actually obtain the item. Now, the blacksmith will take the money and material, work on it, then when the item is done, you can pick it back up (different items will take a different amounts of time to make) Time is measured in steps, by the way, not by a clock. In the original version, I used the built in clock on the 84+, but I know now that the 83+/SE doesn't have a clock XD.

Anyways, when you get your first weapon or some other equipment, an option will be available at the stats screen to change your equipment. You will be told what stats are affected, if any (Gold Dagger, for example, increases your base magic strength by 10 points). Also, I know have the built in sprite editor so that users can edit their sprites from the Miscellaneous menu. Oh, and because there are now two 16x16 sprites being drawn, I got rid of the BASIC routine and I am now using a small assembly opcode. Needless to say, sprites are drawn much more quickly now XD

Now that I am using so many assembly routines, I won't feel so bad about using a List→String assembly program to make saving much faster. I won't have to fret about the speed anymore and I can focus on the storyline :3

I'm pretty sure that I am forgetting something, but I hope this is a solid update! Oh, the program is now getting close to 11000 bytes x.x On the plus side, I can't wait to abuse the assembly programs I have, now. I mean, I can now use the 16x16 sprite drawer to make tilemaps o.o I won't, though XD Maybe I will use it for spell animations.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on December 10, 2012, 07:21:13 am
Looks nice

Tho i noticed when it has to say svea in battle, it sometimes says !WL:
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 10, 2012, 07:25:12 am
Yeah, that is one of the things I have to fix. When I finished adding in the blacksmith, I forgot to set Str1 back to the player name.

In other news, I have tomorrow and the following two days where I either have finals or work, then I have until the 20th to finish this up XD I don't think it will be finished, but I'll still submit it.
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: stevon8ter on December 10, 2012, 07:58:47 am
Yeah it's very playable so you make a good chance :D
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: DJ Omnimaga on December 19, 2012, 02:00:30 pm
This looks quite nice Xeda, especially for an hybrid BASIC program. I also like the sprites used in battles. :)
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on December 19, 2012, 08:31:49 pm
Looking nice xeda, don't forget to turn the indicator off :P
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on December 21, 2012, 09:53:18 am
I already submitted it a few days ago (last Monday) :P I always forget about the run indicator >.> Still, that would have required another assembly program XD
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Sorunome on December 21, 2012, 04:25:46 pm
Or just some hex :P
Title: Re: [2012 Apocalypse Contest] Battle 4000
Post by: Xeda112358 on October 24, 2016, 10:16:49 am
I never posted my program download :( Of course it isn't finished, but in case people wanted to take it apart, here is the code I submitted for the contest.