Omnimaga
Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Matrefeytontias on December 18, 2013, 07:42:24 am
-
FOR LATEST UPDATES, SEE LAST PAGES !
Hey guys,
After IkarugaX, it's time for me and my team (we three together make the "RMV Pixel Engineers" team) to work on another project :)
This time we chose to port a game (again) that the three of us wanted to see on a TI-83+/84+ one day, but couldn't find any version that was complete, fast and playable while remaining good-looking : Worms, by the almighty Team 17 !
I know there were several attempts to an ASM Worms, including TI-ny Worms a decade ago and Kindermoumoute and Hayleia' Axe Worms one to two years ago, but they both died, so yeah.
We started the project three weeks ago, so we had time to get several things working. You can also follow us as we progress on the game by regularly checking our site (http://mattias.refeyton.fr/rmvPixEn/), which is basically a single web page where we put articles.
Latest screenshot (10/05/2014) :
(http://img.ourl.ca/banana.gif)
Share comments :)
-
Is the world generated randomley? Also, that is looking insane o.o
-
Nope, this map has been designed with the map editor we made :P
Since maps are stored (and stay) in archive, we can write a huge lot of maps (one takes 3096 bytes) for the player to use. :)
-
WORMS ARMAGEDDON!!!
/me likes what he sees...
-
I remember seeing you post this pic in IRC a few days ago. It's looking quite nice so far. Worms is a ton of fun, so it'll be nice to see it make it to the Ti-calcs. :)
-
Any new progress on this?
Suggestion: add custom map support/multiple maps. That will add to the replayablity factor.
-
Since maps are stored (and stay) in archive, we can write a huge lot of maps (one takes 3096 bytes) for the player to use. :)
I was working on the map editor, now it's fully done. Also, I rewrote some of the game code to handle weapons as functions (like I did with IkarugaX and enemies patterns). The main avantage for that is that I will only need to add a label to a data to create a new weapon.
-
That'll be awesome with the weapons and such! Sorry that I didn't see that post :P
Which weapons will you be employing?
-
That is so cool looking, keep up the good work :thumbsup:
-
ClrDraw thanks ^^
Pimath we don't know for sure yet, because we'll take care of weapons at the very end. We have to get rid of all menus and game structure before that - by game structure, I mean the fact that one worm moves, then shoot, then damages are calcuates and displayed, then next worm is played.
-
One question tho, is this single player or multiplayer?
-
This will be 2 to 4 players, with 3 worms per team :)
-
Awesome! Much of the fun of worms is the multiplayer aspect. Facing a computer is okay, but it's much more fun when you're playing against friends. ;D
-
The worms are so cute XD
-
Awesome! Much of the fun of worms is the multiplayer aspect. Facing a computer is okay, but it's much more fun when you're playing against friends. ;D
Actually it was mainly because we had no freakin' idea on how to implement a worm AI, so it will be multiplayer only :P
The worms are so cute XD
That's what everyone said at my school ;D but noone noticed the Falcon Punch <_<
-
Looks very nice! Also is the programming team part of the TI community but anonymous like zMegaman?
Also, gCn, right?
-
Nope, one-calc multiplayer, each player plays his turn after the other on the same calc. But I might think of a gCn version now that you mention it - that will be after the game is done though.
And we're not part of the TI community nor anonymous. We're named RMV Pixel Engineers, just a team I guess. You can come see us and follow our progress at http://mattias.refeyton.fr/rmvPixEn/.
-
One thing : Holy Hand Grenade.
-
That's planned of course :P
-
But will you have to count to 3?
Not to 2 because that is to short, counting to 4 is to long, only 3 is the number you shall count up to.
-
Don't even think about 5. You shall count to 3, and 3 is the number you shall count to.
-
I believe the line is "5 is right out!" :P
Anyways, do you have any new screenies for us?
-
In nearly an hour, yeah ;)
-
Well, that was 2 hours ;D
Anyway, I've set up a proper map identification system that permits us to search for maps in the VAT and discarding other appvars ! :D
(http://img.ourl.ca/mapsFromVAT.gif)
Next, set up game structure :- Move worm,
- Use weapon,
- See the other worms fly (or not),
- Calculate and display damages,
- Go to worm of next team.
It's so not funny to work on that. Trust me.
So yeah Runer112, this is what your axiom is for :P do you find it amazing enough ? ;D
-
This is very amazing! How will the players be able to tell which worms are their own, though?
-
Since Worms are too small to have different graphics and bitmapping is too slow to have greyscale, I guess we'll display R, G, B or Y above each worm to tell its color.
-
Cool. Keep the great work coming!
-
You could also have black and white worms.
-
That makes 2 teams, not 4.
-
light grey + dark grey :P
-
he said no grayscale :P
Since Worms are too small to have different graphics and bitmapping is too slow to have greyscale, I guess we'll display R, G, B or Y above each worm to tell its color.
-
Then, as another differentiator, there could be two shapes - rounded like you currently have, and boxy sprites.
-
I have no idea how to quickly differentiate between allies enemies and which worm is currently selected. Maybe assign a 4x4 or 8x8 symbol over each worm to know which team it belongs to. And if this symbol can switch color if it overlaps an obstacle like a rock that would be ideal.
-
Then, as another differentiator, there could be two shapes - rounded like you currently have, and boxy sprites.
No, I think I'll stick with what I said earlier. That will be more practical and light code-wise than duplicating every sprite.
I have no idea how to quickly differentiate between allies enemies and which worm is currently selected. Maybe assign a 4x4 or 8x8 symbol over each worm to know which team it belongs to. And if this symbol can switch color if it overlaps an obstacle like a rock that would be ideal.
--' why does no one read what I post ... I wrote the exact same thing just two posts above yours, in the message pimathbrainiac quoted !
And you know what worm you control since the camera is on it.
-
Since Worms are too small to have different graphics and bitmapping is too slow to have greyscale, I guess we'll display R, G, B or Y above each worm to tell its color.
I think this works pretty well, though since there are technically no colors I might do the teams by number (if it were me).
-
Mh yeah, I'll display 1 to 4 above each worm depending on the team, this actually makes more sense than colors.
-
Yeah, numbers is a good idea.
Or maybe pattern on the worm?
-
... Seriously, why don't you read what I write for once.
Since Worms are too small to have different graphics
-
i mean, complete white, complete black, horizontal stripes and vertical stripes are pretty simple.....
-
Did you see a screenshot of the program ? I can't even fit stripes on Worms, they are too small (8*6) !
-
Did you see a screenshot of the program ? I can't even fit stripes on Worms, they are too small (8*6) !
yes i did see it.
So maybe white, black, checkerboard, and like a thingy like this:
X0X0X
00000
X0X0X
00000
etc.
Because i think that could fit in such a small worm....
-
I'll just go with numbers. This way I won't have to have 4 copies of the same sprite for animations.
-
How about having a mask for the pattern? :P
Anyways, numbers are fine too, i just had this idea :P
-
Too much work for not much use :P the way I handle worms, I just have to add one line of code to make worms recognizable by team with numbers above them.
-
Alright, I finally got around the game subsystem ;D I must admit it was a real pain to synchronize all variables to make certain actions possible in a particular phase. Also, worms can be damaged and die ! But no explosion yet. That'll come :P
(http://img.ourl.ca/subsystem.gif)
Next I'll take care of worms repartition into teams, because the engine doesn't actually use the team information each worm has.
-
lookin' good, keep up the good work :thumbsup:
-
:crazy: That is awesome!
-
This is so cool!!! XD I love how cute the worms are. How did you ever get the idea for this game?
-
It's based on a "real" game, you know :P I didn't get the idea.
-
Matrefeytontias, another amazing project. It looks amazing! I can't wait to play it :)
-
Bump,
So, after modifying a bit more the subsystem (it should be done now, but I can't say for sure), I added a nice transition that shows when you finish your action with one worm and switch control to another :)
(http://img.ourl.ca/brightAndNiceTransition.gif)
Worms repartition into teams still being worked on.
-
So yeah ... I've been both busy with the TI-Concours and school and lazy with everything else, but I've finally decided to work on that again. I promised I'd finish this one after all.
So since the last time I've added complete teams support, high jump (dunno how to call it in English, but you'll see it in the screenshot) and I started working on the weapons pop-up. My graphist is having fun with the 4-levels grayscale weapons sprite :P (although for now you only see the question mark sprite).
(http://img.ourl.ca/weaponsEarly.gif)
-
Hehe, looking nice! Let's get super-sonic with jumping :D
-
Sorunome I actually had some fun setting insane gravity settings for the high jump :P I could like go from one edge of the map to another (left-right and up-down) depending on what jump was used ;D
Also, the controls are exactly like the "real" Worms games : press once to do a normal jump, and twice quickly to do a high jump :)
-
This is awesome! Will it have link play, eventually?
-
I initially planned that, but since the program is already >7400 bytes, I doubt anything involving link play will fit in.
-
There's always Crabcake :D
-
I think I have less than half of the final game done ... so I'm more worrying about how much RAM I'll have left.
-
You could always compile it as an App. *shrugs*
-
I mean, including link play in the game might make it > 24k since I will also need to put in "normal" play. So an app isn't a solution since its limit is 16 384 bytes.
-
Maybe you could compile as an app and put all data in an external appvar ? Like all text, every splash and background, every LUT or whatever data you have.
-
I could do that but : I don't have data.
-
You could use Pageswap too, and then puts some bigs functions into the app
Well, you will lose performance - but not *that* much I guess ;D
The Creator who forget is works , it is baddddd :P
/me runs far far away
-
LOL TheMachine. XD But you're right anyway.
-
Well yeah, I could actually do that :P thanks for reminding me.
-
Bump,
If anyone wants to see/help with the source code, I made a git repository. Just fork it and submit pull requests :)
http://github.com/matrefeytontias/Axe-Worms
-
Massive issue with your repo : you should convert the source files to plain text. Otherwise you don't really benefit from the differential features source code managers provide. In other words, a shared Dropbox folder would be as efficient as your current setup. Not that useful if you ask me.
-
Dropbox or Github is the same for you, but Github is easier for me. So yeah.
Also :
(http://img.ourl.ca/bazooka.gif)
Not complete but I'm working on it (before you ask, images and effects don't correspond ;D ).
-
Idea: highlight the current worm by changing his sprite.
Another idea : Don't animate the turn change if the worm is it's already onscreen, move the camera instead.
-
Idea: highlight the current worm by changing his sprite.
Another idea : Don't animate the turn change if the worm is it's already onscreen, move the camera instead.
I second Both of these for changing the sprite does the in game screen support greyscale? If it does I would just fill the active worm in grey. Simple But obvious.
-
I won't change the sprite due to lots of them being used by a single worm for animation, but I can instead draw an outlined box around the active worm. I don't want to add grayscale in order to keep the game at at least 20 FPS (is currently the case). Also yeah, I'll just do smooth camera moving if the next worm is already visible.
-
Bump,
Bazooka now destroys things ! :D That also means I now have a new mechanic to easily damage the map.
(http://img.ourl.ca/destroyMap.gif)
EDIT : no need to tell me about the damage-displaying bug, I noticed <_<
-
That's epic XD
-
Yup, that's awesome :D
-
It's looking amazing! I know you don't much care for these suggestions, but an easy way to distinguish the currently selected worm could be just to display it every other frame (assuming you update the whole map every frame) or xor it to give it a fake grayscale. The box idea or better yet a little (animated!) down arrow would also work well :)
I love how you move around the map with the slope/pixel-level detection. The animations are also great. I still can't wait to play this game :D
-
Thanks :) I planned to release a playable demo after some bugfixes and after I get aiming working.
It's not that I don't care about suggestions, it's just that for now I'm focusing on more important things :P
-
Since Worms are too small to have different graphics and bitmapping is too slow to have greyscale, I guess we'll display R, G, B or Y above each worm to tell its color.
color on a monochrome calc?? O.O
Just kidding, I can't wait to try this :)
-
Bump,
I kept promising it since a couple days, now here it is ! A playable Worms demo ! :w00t:
(http://img.ourl.ca/gameplayForDemo1.gif)
So here you go, download the zip file here (http://mattias.refeyton.fr/espace-ti/worms/worms_250314.zip) and have fun ! That's an order :evillaugh:
Everything you need is detailled in the included readme. The zip also contains a map, WORMMAP0.8xv (it's our test map), which you will need to run the game, and which only contains 6 worms, so when you run the app Worms you pretty much press [2nd] and then you can play two teams of 3 worms each. :)
Enjoy and share comments :D
-
I'd have to say that looks pretty awesome :D I might throw it at my calc afterwhile, when I get some more done with my own projects.
-
I love the screen transition btw O.O
Also glad this comes along nicely. This is definitively gonna be front page material when I get around writing news and stuff.
-
Well, what they said. It does look awesome. Keep it up ! :D
-
I forgot to mention several things :/ please be king enough not to destroy.the edges of the map - top bottom left and right- since collision will occur outside the map and you don't want to destroy things outside the map with your bazooka.
-
Will it bazooka the whole RAM ? :trollface:
-
I had some fun with loading levels from random memory locations when I was working on Herocore. You get the craziest levels. With worms you will probably get a scrambled mess of pixels though because I think you save your levels as a bitmap.
-
Yup that's it. Since Herocore used tilemaps, it's way funnier ;D
-
In Pokemon, when you are visiting the RAM, you can actually walk on teleporters (like carpets or doors) that lead you in another random place :P
Anyway, nice work :D
-
That's cool hayleia :D
-
Wat ? Did you mean "matref" ?
-
No, I meant like the ram exploration stuff.
-
/me goes cry in a corner :'(
-
/me gives Matref a friendly slap on the shoulder to make him feel better :)
-
Thanks ;D
By the way, I added the banana, but since I'm not at home for the WE you'll have to wait until tomorrow or.the day after to have screenshots.
-
Holy necropost Batman ! O.O
Well, a lot of things happened lately, so I stopped working on anything for quite a long time.
But now I'm back on Worms :D what is good is that the game (that you lost) is now significantly more stable. Also, it's more optimized (around 10 kb by now, but still an app), and the banana works better ;D
You can expect screenshots by tomorrow (it's midnight here right now), this time for real ;D
-
Oh good, I was worried this project died :)
-
My team and me promised that we would finish this one. There were many unachieved Worms clone, and it would be too sad to never see the actual game on a calculator.
But for now, I promised a screenshot ;D
(http://img.ourl.ca/banana.gif)
-
Dang O.O This is seriously incredible.
-
Woa this is really cool.
-
Looking nice!
Oh good, I was worried this project died :)
Calculator projects never die. :)
-
Sometimes they do, but this one shall not.
Thanks everyone :D
-
A calc project will only die if the author dies without having released the source. :P
-
Sorry that I'm late to the party, but this looks amazing! ;D
I like the worm design and the items menu!
-
Alright, after some refactoring and thinking, I'm announcing several things that will probably unplease Worms fans, but hey, it's a calculator, I'm sure you'll understand.
First, no water at the bottom of the map. This latter isn't really big, I prefer utilizing all of it. Thus, if a worm falls off the map, it dies instantly - as it did with water.
Second, no worm exiting the map by its left or right side, for the same reason - the size of the map itself. Instead, you'll have an indestructible wall on both sides of the map. Projectiles and worms will can still fly on the top of the map though.
After getting that working, my focus will be on implementing the hand grenade - no holy hand grenade because no sound :(
Anyway, cheers, next update is soon ;D
-
I'll speak as a wormer (Worms fan)
For water, I don't really mind, this is just a eyecandy, as long we get the thing working
For walls at the side of the map, can't you really just get the worm *disappears* when it gets out? Dommage :(
Holy Hand Greande without sound is fine, I can just shout "HALLELUIAH" each time it'll explode! :p Just make it and make it flash when we have to shout! :D
-
For walls at the side of the map, can't you really just get the worm *disappears* when it gets out? Dommage :(
Well, I tried, but my collision routines really make things too difficult. I gave up after 8 RAM clears.
Holy Hand Greande without sound is fine, I can just shout "HALLELUIAH" each time it'll explode! :p Just make it and make it flash when we have to shout! :D
Remember we can only afford 16 weapons though, and really, the smoke effect looking like a holy cross is just too space/time-consuming. Sorry about that.
-
For walls at the side of the map, can't you really just get the worm *disappears* when it gets out? Dommage :(
Well, I tried, but my collision routines really make things too difficult. I gave up after 8 RAM clears.
If you could share the relevant bits of code, people (likely me) could try to help debug it and get it working.
-
I can, but I assure you it's a huge mess, as every project I do I might say. :P Here you go anyway. Run prgmWRMSETUP once to generate the required appvar. Compile whole program as app. The relevant part of the code is in prgmWORMMOVE.
Attached both text and axiom version of BITMAP4.
EDIT : by the way, compile prgmWORMSRC, and you'll need one map - attached it.
-
Y u no make a zip ? :P
-
Update,
Following the new rules (no going out of the map by left or right), most bugs have been eliminated. Also, worms now die if they fall under the map, and both worms and projectiles are now free to fly above the map with no collision error or memory corruption ;D
I guess that's a release then. I lowered the number of teams to 2 for now, because it makes more sense to have 2 teams of 3 worms than 3 teams of 2.
-
Yay that's great ! :D
-
Yay update! \o/
I should take another 84, just for playing on it.
-
t tried sending it to my 84+ but get a signature error for the app :/
-
Oh, well I guess you just have to throw it to Wabbitsign :)
I'll do that, but you need to wait some time.
-
Bump,
I did it and updated the above package, so download it again if you previously did, sorry about that ;D
-
Great, it works now thanks! And this is great! It would be nice if you could hold [sto] or [ + ] rather than press and release to move it, but i like the idea of using all those keys to select an angle. It'd be nice too if turning the other direction flipped your angle rather than resetting it to 90º. It'd also be nice if there were a button you could hold to view more of the map, for example pressing and holding [XTØn] and then being able to move the camera freely with the arrow keys. Letting go of the button would slide the camera back to it's normal position around the character.
Also, [Mode] seems to leave artifacts behind when you move the worm, though i assume that's either a debugging thing or something not finished yet since it's not mentioned in the readme ;)
Anyway, great work, Matrefeytontias :D
-
Well, the point of [sto] and [ + ] is to be very accurate (they make the aiming line move 2° by 2° !), so making them holdable makes no sense.
For the flipping things, well yeah I could do that :)
Moving the camera alone is planned, I was just focusing on other things for now, and yeah [x,t,Θ,n] was the planned key.
Indeed, [mode] is for debugging, it simply loads the next worm as active worm. You're not intended to touch it :P
-
Yep, i didn't even notice that they'd changed my +. About the keys, i figured that you'd made it that way on purpose, but i thought it'd be nice to have a slight delay (like when holding the arrows down with _GetKey) before moving the angle again as i like to just use the two buttons when i'm already relatively close ;)
-
One thing that bugged me slightly about the aiming system is that multiple angles produce the same aim guide line. This could be remedied by using a custom line drawing routine that, instead of taking integer inputs, takes fixed-point inputs. Such a routine written in Axe would possibly be in the ballpark of 3-5x slower than the standard line routine, but since the line being drawn isn't very long and you're not doing much other computation, the extra time consumed shouldn't be a problem.
Alternatively, you could probably just play with the length of the guide line and find the minimum length that gives a different endpoint for every allowed angle (of which I believe there are 64, so 16 per quadrant?).
-
Well that's because the 83+ has fat pixels :P one thing I also thought of was drawing the hypothetic bullet's trajectory if it was shot, but then I thought it would be too easy (and it's not Worms's way to do, too).
The problem is that to have different aiming lines for each angles you need a very long line. And that's not possible because it would quickly get clipped off the screen by Axe's line routine. A solution I found is saying "haha, that takes a bit of getting used to" and letting it that way :P
Also yeah, there are 64 angles per quadrant, but only 128 are accessible anyway (you can't fire under yourself).
-
When I tested it, it seemed like you only allowed 16 different angles per quadrant. You could easily get 16 unique lines out of that by either extending the line a bit or using a custom fixed-point coordinate line routine.
EDIT: Apparently the number is 32. Still might be feasible.
-
Oh oops I meant 64 possible angles at all <_< so yeah, 32 per quadrant (you move by a minimum of 2° between 0 and 128 °). Extending the line doesn't seem to be the good solution, and I can't see how a custom line routine would do better than Axe's one given that the size of pixels really is the limitation.
-
Alright some news for you,
First, I found what was making everything bug. Guess what ? It's the TI-OS's _vputS, that is used by Axe's Text(. Believe it or not, it's so unsafe it's amazing.
/!\ Funny story /!\
So what happened is that I was testing the game to see what was causing that bug, and when I quitted, I launched it again. On one of the game's bitmaps was "-10" written. So what happened is that the program tried to display text at impossible coordinates, so instead it wrote the text ... in RAM. Right in one of my variables. The b*tch.
So yeah, I'll be replacing all of my Text( calls by a custom routine (I mean only the ones that display numbers, the others are fine), resulting in both the suppression of every bug (I hope) and a speed improvement. So yeah ;D
Second, I've put a title screen and a small menu. For now, every option does the same thing, bring you to the map selection menu.
(http://img.ourl.ca/titleScreen.gif)
Third, in the map selection menu I planned to add a small preview of the map, so that justifies the fact that only one map name appears on the screen at a time (actually it's because I'm too lazy to do a listing ;D ).
And last, I planned to add save/load, so you can take a game back where you left it.
-
That title screen is looking awesome! :D
-
Wow good to know. Now I have to rewrite my debug commands. :P
Also it does look epic. :D
-
Yeah i'm pretty sure _vPutS doesn't do boundary checking or clipping, at least not vertically. Anyway, it's not going to cause problems unless it goes off the screen vertically since horizontally it'll just wrap around to the other side of the gbuf. But i wouldn't call expecting you to draw everything on the screen "unsafe" ;) If you tried to draw a sprite off the screen without proper clipping the same thing would happen. However, if all you're doing is displaying numbers, making your own routine and drawing 10 sprites (0-9) will speed things up a ton. Whenever i want to display numbers while the game isn't just paused, i use my own sprite routine.
It's looking nice, though. This game is really impressive :D
-
I draw nothing on-screen, everything goes in plotSScreen - including text (or at least supposed to) - and yeah, text isn't clipped vertically. Also, I already have digit drawing since I do display how many weapons of each type you have (in the weapons popup). Anyway, it's nice that this bug is solved because it kept corrupting my programs.
Also thanks everyone :)
-
Oh well I use direct screen text for debugging purposes so I guess it's OK. I have a custom text routine for the rest of the game.
-
Glad you found the bug. ;D
-
Just saw the new screenshot and very good job so far! :thumbsup:
-
So I was wondering, would it be that bad if each team only had 2 worms ? I know that's pretty poor, but given the size of the map, 3 worms per team is too much if you want 4 teams. Now that I think of it, 12 worms just won't fit in a 192*128 map, but 8 would.
-
So here you go : bug-free version, with a nice title screen and menu, improved map selection and all ;D
Although the main menu proposes a "load game" option, this isn't implemented yet, and will just send you to the map selection screen.
Readme included :)
-
Cool to hear ! :D
-
Heavy bump,
Since Cemetech Contest #12 is over I'm working on this again.
-
Woohoo! :w00t:
-
Awesome to hear, but I really need to try the last version as soon as possible lol. I remember playing some similar game for the computer (with tanks) years ago with another Omni user, but I forgot the name. I also liked Obliterate but this Worm games has more complex map and stuff. :)