Link's Awakening clone

Figured I’d just go ahead and make my own thread for this.

I know I really need to break away from the weapons and introduce something that will add more to it, but haven’t gotten the urge to do so yet. I really want to start working on something else like the mobs or interiors, though.

Anyways, version 0.3.7:
http://dustyshouri.dreamhosters.com/LinksAwakening_v0.3.7.zip

Changelog is included in the zip now but:
–> v0.3.7

  • Bomb coded. This includes explosions as well.
  • Shovel code has been introduced. Can dig, no effects yet.
  • Had to code a delayed method invoking system. This is used to invoke a
    method after a delay, which was used for the shovel(hole appears half-way
    through the animation) and bomb(doesn’t destroy all objects at once, but
    randomly).
  • Magic powder added.
  • Pushing/stuck animation bug has been resolved. Your animation no longer
    gets stuck when pushing against a wall.

I’m really happy with the delayed invoking system. It’s easy to take stuff for granted in Graal, like being able to just type sleep(.5) and having a delay… but nothing like that is available here :frowning:

Good work Shiny.

Question; can anyone edit this?
[Whoops, I mean the LoZ clone there.]

[QUOTE=Noob709;73279]
Question; can anyone edit this?
[Whoops, I mean the LoZ clone there.]
[/QUOTE]

Most you can do now is edit the maps with Tiled, however the only data the maps hold now is the tiles and mob data. Will probably eventually include NPC’s… and that’s probably it. Chests, links and such will probably be stored externally, and since there’s no scripts you won’t be able to make new monsters/bosses or weapons, anything like that unless I release the source.

[QUOTE=Shiny;73128]

  • Had to code a delayed method invoking system. This is used to invoke a
    method after a delay, which was used for the shovel(hole appears half-way
    through the animation) and bomb(doesn’t destroy all objects at once, but
    randomly).
    [/QUOTE]
    You could do what I did for Dungeons. Create your own custom animation scripting system and expose everything to it. :smiley: I did a simple command-based scripting system that executed the list of commands each frame. It could do stuff like generate particle effects, send out attack events, change animation, and other various things.

Wow, great job Shiny :slight_smile:

ive been watching the videos you put up on youtube. I think I’m the only “like”.

[QUOTE=Nalin;73288]You could do what I did for Dungeons. Create your own custom animation scripting system and expose everything to it. :smiley: I did a simple command-based scripting system that executed the list of commands each frame. It could do stuff like generate particle effects, send out attack events, change animation, and other various things.[/QUOTE]
I’m literally fairly new to Java and to coding(aside from my experience with Gscript). I’ve thought about being able to parse commands and such but I honestly wouldn’t know how to go about it.

Merged doublepost_______________

[QUOTE=kalzor;73403]ive been watching the videos you put up on youtube. I think I’m the only “like”.[/QUOTE]
Probably, I don’t have many subscribers(most of them came from my Minecraft texture pack) and I don’t really have any place to share the videos lol. The only place I’ve posted this elsewhere was ZFGC and it’s gotten literally zero attention there, while the 500th crappy Gamemaker fangame with horrible controls and mechanics gets all the response :wink:

[QUOTE=Shiny;73409]
I’m literally fairly new to Java and to coding(aside from my experience with Gscript). I’ve thought about being able to parse commands and such but I honestly wouldn’t know how to go about it.

[/QUOTE]

My system is as simple as you can get really. It is a command based system. Basically, each line is a command. It is as simple as this:

0:
applyforce 3 0 0 true

3:
generateattack 5
generateparticle dust 0 0

On the zero-th frame (before we even start the animation), apply a force of 3 in the x direction, 0 in the y and z directions, and true says that this is relative to the direction the player is facing. (in Dungeons, they are left or right facing).

On the 3rd frame, generate an attack of 5 damage and generate a dust particle at position (0, 0) relative to the scene object.

You just break up the script into an array of lines, then tokenize each line. I first go through and separate the commands into frames. Each number: line creates a new frame and all subsequent commands go into that frame.

// Split commands into individual frames.
frame = new dictionary<int, list<string>>
current_frame = new list<string>

foreach string s in lines:
  if s contains ':'
    current_frame = new list<string>
    frame[s.grab_frame_number] = current_frame
  else
    current_frame.add(s)

...

// Later on, execute all the commands for the frame.
f = frame[animation_index]
command = f.token(0)
switch command
  case "generateattack":
    damage = s.token(1)
    ...
  case "generateparticle":
    type = s.token(1)
    ...    

The first token is the command and all subsequent tokens are the parameters. I throw it into a giant switch() statement (in C#, you can use switch with strings) and go from there. Super simple. :smiley:

I have thought about making my own actual system, though, with a recursive-descent parser. Maybe some other time.

So, this is probably a stupid question,

but how can I actually “play” this clone? I can’t seem to find any kind of executable file or any sorts…

Shiny are you still working on this, or…?

[QUOTE=-Ghost-;76471]
So, this is probably a stupid question,

but how can I actually “play” this clone? I can’t seem to find any kind of executable file or any sorts…
[/QUOTE]

It’s a java game. You have to have Java 6 installed and you can run the .jar via javaw.exe(found in your java folder)

[QUOTE=Yenairo;76477]
Shiny are you still working on this, or…?
[/QUOTE]

Haven’t had a chance lately. Terraria is a time-consumer rofl.

[QUOTE=tricxta;76634]Easy way to get over it:use a character editor,get the best items, find out how lame they are and finally get tired of it :)[/QUOTE]
Marumasa is awesome, wtf are you talking about? Also, of course getting the best items via cheating will make the game boring, you’re skipping the entire purpose of the game.

Just a note that this project is now on GitHub: https://github.com/dustyshouri/LinksAwakening
(dustyshouri authored 2 months ago)
I should take some time to study it a bit.

[ATTACH=CONFIG]2975[/ATTACH]

Yolo…

[QUOTE=Zartox;93703]
Just a note that this project is now on GitHub: https://github.com/dustyshouri/LinksAwakening
(dustyshouri authored 2 months ago)
I should take some time to study it a bit.
[/QUOTE]

Downloaded, this is going to be fun >=)

If you’re looking to learn then my stuff is not a place to start. This was a learning project for me, so there’s a lot that’s wrong with it.

Regardless, probably still fun to mess with I suppose.

Yer, I was wondering why you were going about some stuff the long way in your code.

Maybe one day I’ll revisit it. There were a few things I noticed that I’d probably have to do like caching all the sounds(because apparently whatever I was doing had to load them on the fly when they were called so there were hickups in the framerate the first time a .wav was played) and the MIDI method I was using was apparently broken somehow. It worked fine being run from Eclipse but running standalone it had no volume adjustments.

Besides that there were the obvious things, like me not properly utilizing entities and such.