This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Hayleia
Pages: 1 ... 14 15 [16] 17 18 ... 239
226
« on: August 24, 2014, 02:05:20 am »
Lol, what ClrDraw said Jokes apart, I don't really know if that would be doable because how do you not zoom ? By having a constant zoom, right ? But are you constantly zooming on characters which will mean a lot of camera movement (that would probably not improve motion sickness), or do you keep the camera "far" which will mean that you don't see sprites well at all, you don't know what the opponent is doing and you don't even know if the game registered your keypresses ? Note that I am not against it, I just don't know exactly how motion sickness could be avoided without killing the gameplay. edit@Runer112, I tried what you said on IRC yesterday. I didn't touch what's before the main loop, but here's what's in the loop now: !If P-1 While 1 If getKey(15):Goto RET:End Receive() EndIf +1 -1->{P xor 1+°PInput} Send({P+°PInput},65535) Else Send({P+°PInput},65535) While 1 If getKey(15):Goto RET:End Receive() EndIf +1 -1->{P xor 1+°PInput} End
It is a lot better, there's no major slowdown. I guess that the previous code actually missed some Send due to a too short delay, then waited for a frame before receiving what the other calc sends, which was not the right byte. But there's still some desync (by desync, I mean that the movement on one calc is not the same as on the other) I guess that's because of errors when transmitting because sometimes the calc2 doesn't register a key that I pressed on the calc1, and sometimes the calc2 registers a key that I didn't press on calc1 -.- edit againI now tried this (basically sends three times and takes the majority for each bit) in the loop: !If P-1 °A-2->r1 For(3) While 1 .If getKey(15):Goto RET:End Receive() EndIf +1 -1->{r1+2->r1} End (A and B) or (B and C) or (C and A) ->{P xor 1+°PInput} For(3) Send({P+°PInput},65535) End Else For(3) Send({P+°PInput},65535) End °A-2->r1 For(3) While 1 .If getKey(15):Goto RET:End Receive() EndIf +1 -1->{r1+2->r1} End (A and B) or (B and C) or (C and A) ->{P xor 1+°PInput} End
Still desyncs -.- Any ideas ?
227
« on: August 23, 2014, 02:52:46 pm »
Good luck! Hopefully you can finish the engine and main stuff such as menus before you have to put the axe into the project so that hopefully people can make their own characters. Maybe this could be submitted to the OPRT thing to gather more interest. That said, there will definitively be a news about this if it gets further so it could result into more interest.
Thanks And yeah, if I don't finish it, I submit it to the OPRT with a todo list Suggestion for a (very simple) protocol to establish one calculator as a master and the other as a slave:
- Wait for a pseudorandom amount of time (to mitigate the chance of both calculators entering the next steps within microseconds of each other).
- Read the link port.
- If in its default state (0b11), pull one line low and wait. This calculator will become the master (or the slave).
- If not in its default state, unless the other calculator is running some other code, this should mean the other calculator is waiting in the state above. Pull the other line low and wait for at least 100 microseconds to make sure the signal is received. This calculator will become the slave (or the master).
- Release the link lines.
All further transmissions can then be guided by each calculator knowing its role in the transmission (sender or receiver).
I am still having problems. Here's what I have before the main loop to decide who is who (basically what your code is for): Text(0,,"Waiting for other calc") DispGraph While 1 randplotdot1->P Text(0,,P>Dec) Send(P,°Delay) While 1 If getKey(15):Goto RET:End Receive() EndIf +1 -1->Q Send(P,°Delay) EndIf P-Q
ClrDraw Text(0,,"You are P",P++>Dec) DispGraph Pause 3600 Pause P*20+1
That works sometimes, but this is not the problematic part. Here's what I have in the main loop: !If |port 1->|port While 1 If getKey(15):Goto RET:End Receive() EndIf +1 -1->{P xor 1+°PInput} Pause 20 Send({P+°PInput},°Delay) Else Pause 20 Send({P+°PInput},°Delay) While 1 If getKey(15):Goto RET:End Receive() EndIf +1 -1->{P xor 1+°PInput} End
And this works sometimes too, which is annoying in the main loop. Try (with the attachement) to short hop (tap up and quickly release it) several times for example, you'll see that there will be a moment where the Fox on the other calc doesn't jump (and I don't even talk about the major slowdown).
There is also a problem with port commands. I made that sstupid program: While 1 Text(0,,port>Dec) EndIf getKey(54) 2->port While 1 Text(0,,port>Dec) EndIf getKey(15) 0->port
And it outputs "3" then "1", then quits and the calc works. Now replace the "2->port" with a "1->port", and the "0->port" with a "3->port". It outputs "3" then "2" then quits and the calc is slowed down. It seems like when doing ->port, there's an implicit xor 3 being done.[/code]
228
« on: August 23, 2014, 11:15:47 am »
Thanks I just don't agree with the "not a whole lot of stuff to do" Just spriting one character is annoying, then creating and linking states is long
229
« on: August 23, 2014, 10:59:15 am »
Actually, this would require minor changes to the engine, such as the way ledge detection works (which doesn't work yet ). The rest would be character-related, not engine related And thanks
230
« on: August 23, 2014, 12:18:44 am »
Thanks all ^^ Now make sure to add Reuben as character.
Lol, I'll make a tuto and you'll be able to make it if you want I have some time now but when September comes, I am not sure I'll be able to do anything more so I plan on working on the engine (and I make Fox to test the engine) but I don't plan on making characters. Especially if you use Calcnet.
Well I don't use CalcNet yet. One of the problems with it being that (if I am not wrong) it is DoorsCS dependent. And I was planning to compile as an app to save RAM (matref should work on a routine to replace the current scaled sprite routine that uses SMC), which is incompatible with the "compile as shell" option. So I'd need to get CalcNet routines in my program. Maybe someone who knows how to make Axioms could work with Kerm to package CalcNet into a standalone Axiom (of course credits will be given to everyone) ?
231
« on: August 22, 2014, 10:54:01 am »
Nope, but the way hitboxes (will ) work, they will be possible. Hitboxes are actually not fuly implemented, There's just enough to show-off ( ) but it's far from being finished. That's also why not all attacks have hitboxes yet (plus the fact not all attacks are present yet anyway). Also, if you don't know what to do with those demos, put yourself not far from an edge but not too close either, then Illusion towards the edge and try to cancel just in time to be as close to the edge as possible without falling You can also try to place an UpSmash between the floating platforms
232
« on: August 22, 2014, 10:44:23 am »
Thanks ^^ I am still improving the camera by the way. As you can see in that screenshot, it is no longer always centered on the characters, it also tries to get part of the map always in the field of vue. This helps a lot when you push someone off the bridge edge and try to recover after that since you still know where the map is. (is that color better aeTIos ? ) Obviously, here, the effect is exagerated, no need to center the map more towards the map when the characters still are on the map.
233
« on: August 22, 2014, 07:39:03 am »
Thanks ^^ Still not using the right colors for the backgrounds of your screenshots
Well there is still improvement since purple
234
« on: August 22, 2014, 07:20:43 am »
Finally, this project gets a topic So yeah, as some of you have already seen on IRC, I am working on a Super Smash Bros. Melee clone for monochrome z80 calcs. If you don't know that game, here's a link that may interest you. Before annoying you with text, here's a screenshot of the current progress. On that screenshot, you can only see one Fox moving. That's only because I don't want my left hand to play against my right hand but I checked, everything works with the other Fox too. For now, they are played on the same calc (with different keys obviously) but for future versions, I was thinking about two solutions: either you use a second calculator as a pad without its screen being used or I use CalcNet as geekboy suggested. That's for future versions anyway, I have other problems to solve. Now, why "Smash Bros. Open" ? Simply because of a play-on-words with "Open". Those watching the tennis know that "Open" can refer to a competition, which fits a game such as Smash Bros. pretty well. Those using Linux might think of open-source programs and other openness things. To clarify that openness, let me give you an example. A question that I was often asked is "Will there be only Fox ?". And the answer is "Yes and no". I will probably only make Fox. But the engine is really modular which (will) allow you to create your characters and play them ingame without even having access to the source code (they will be in appvars in other words). Even if you want to play as an invincible leek that one-shot with every hit ! As for the source code, it will probably be published (once cleaned up a bit) in order to allow people who want to add missing features (such as items) to do so. Speaking of which, the source code is completely unoptimized, but it is done on purpose. This way, people who want to edit it can do so very easily instead of digging through my usual unreadable code (even though not necesarily more optimized ). In fact, the source code is currently 51092 bytes with comments and preproc constants, while the executable is not even 13000. Another question people can wonder is "6MHz or 15MHz ?". And the answer is "both" for now. What slows down the program most is drawing the map. So we can play at 15MHz with a "complicated" map, such as in the screenshot, or at 6MHz with a "simplistic" map that only contains rectangles. That's still a bit slower than the 15MHz version with the complicated map, but it is very playable in my opinion. CreditsBadja for scaled sprite routine. Matref for packing those routines into an axiom. Quigibo and Runer112 for Axe. Downloadhttp://ti-pla.net/a110486I think you'll easily guess the keys I use to control one of the Foxes. For the other one, the keys are the numpad, log and x 2. I don't see anything else to say for now so I'd say I'll answer questions if you have any
235
« on: August 22, 2014, 01:47:27 am »
Also, equivalents of the assembly push and pop instructions could be useful (maybe use the nPr and nCr tokens).
This already exists in a functional basis as Select(A,B). Although having the ability to do this across multiple lines seems appealing for optimization purposes, providing fully manual stack access would be a language design disaster. Every language I can think of doesn't provide this functionality for this reason. Ideally, the compiler will eventually be smart enough itself to make the kind of optimizations that tempt this design.
The problem with Select(EXPR1,EXPR2) is that we can't put commands such as Copy (for example) in EXPR2, which I often wanted to do in my programs (I don't care much about EXPR1, I always put nothing here). We can work around it with a sub that leads to the Copy but it is kind of a waste. Plus, I don't see why refreining people from using commands directly if they can use anyway it by just wasting 4 bytes.
236
« on: August 21, 2014, 11:48:20 am »
Maybe then you can use one of the tokens that we can find in the "Caractères" menu (available when we use a translating app) ? like the "¿" or the "¡" (not an "i", a reversed "!") for example ?
I don't think this is a good idea : to use these tokens, people would have to install a translating app, 16kb lost, and tokens translated, which is not very convenient for English people. Otherwise, Axe could automatically add this menu in the catalog, which would be a great thing.
I agree that any tokens used by Axe should be enter-able without external tools. Maybe it's time for a catalog hook, though... But making sure it works with localization apps might be tricky. Now that I think about it, the current token hook probably doesn't play nice with localization apps. I should look into that.
No need to install a translating app. Just temporarily install one on Wabbitemu for example, create a program with all "special tokens", send that program to your calc and then you just have to recall that program and erase useless tokens Of course, the catalog hook is a better idea, but with the stupid solution I proposed, the release with the Catalog hook can come after the release supporting "special tokens".
237
« on: August 20, 2014, 11:47:43 pm »
You never use Disp ?
Nope, I most often use Text and sometimes use Output, but never Disp. Yes, n is more logical for a newline, but would i be more logical for a token not to be interpreted by the parser ? And people are used to i to insert a new line, to introduce a new line, to *lack of ideas*...
Well I thought that " n" for newline and " i" or "!" to escape was good, not because newline starts with an "n" but because " n" looks like "\n" and " i" and "!" look like "\". The ! idea crossed my mind as well, and would also be a contender for an escape character. But the issue I have with it is that I'd ideally want it whatever token is chosen to be used for other escape sequences as well; being able to use it to include special characters in string data comes to mind. But I'd imagine that it isn't uncommon for ! to be found in string data, and the semantic change would instantly break some or all strings that used it.
Maybe then you can use one of the tokens that we can find in the "Caractères" menu (available when we use a translating app) ? like the "¿" or the "¡" (not an "i", a reversed "!") for example ?
238
« on: August 20, 2014, 01:19:52 pm »
Not only beginners unfortunately. What's great with France is that 15MHz calc are (were) not many so French Axe coders seem to avoid the Full command
239
« on: August 20, 2014, 01:12:36 pm »
Well I never use Disp so I never use i, so I don't really care if it is renamed n Plus the fact you said n is more logical for a newline. I also like Zemmargorp's idea about the "!", which not only lets Disp untouched but also lets you an open door for your complexes
240
« on: August 20, 2014, 12:02:28 pm »
Is the "3" token used ? Or the "n" one ?
Pages: 1 ... 14 15 [16] 17 18 ... 239
|