Jump to content

HTML5 Rock Raiders Remake


risingstar64
 Share

Recommended Posts

On 06/02/2016 at 0:21 AM, LinusU said:

Wow, this is quite cool! :)

 

I actually started on something similar a long time ago, it used WebGL to render 3d directly in the browser. I'll open up the repo if anyone wants to have a look.

 

https://github.com/LinusU/rock-raiders

 

Happy hacking!

 

Haven't the faintest clue how to use this on windows, I have npm installed after messing about with a webserver, tried opening cmd and cd'd to the folder and did "npm install" but it is as of this writing just frozen. 

 

On 25/01/2016 at 7:02 PM, risingstar64 said:

@ch4rl1e97 Hey! I believe in the most recent build sweep tasks can be done by raiders automatically as long as they are carrying a shovel, in addition to the player being able to manually instruct a raider to sweep. Sweep tasks are broken down into 4 individual tasks for the 4 potential amounts of rubble (ranging from a large amount of     .....----snip----  ....fixes that I intend to get to for rock raiders, at which time I will also consider implementing a proper task queue as suggested by you and @le717:) 

Oh I see thank you for that explanation! :)

 

 

post-reply note:
I just realised I went on a massive tangent here but I wrote a lot and thought it worth posting even if I'm just rambling about crap at 3am...

 

 

With  my theorised task listing, given how lel717 mentioned prioritisation, which given how we have the priorities menu in the original game it is probably something to be included. When one of the tasks is added to the list, it floats down the list past all the tasks that have a higher prioritisation, then when it reaches a point where it's comparing it's priority to a listed task and they have the same value, it slots itself in above it, so we still have that "most recently ordered task is the first to be done", but also incorporates priorities. 

 

perhaps things could get a little strange if there are many tasks being added and the player messes with the priorities a lot throughout, the ordering would be a strange mess, but frankly how many tasks are you going to give a single raider, anyway?

 

 

Actually, why give orders to single raiders? If you are heading to make bigger maps than the original then it may be, from a game play perspective, better to order groups of raiders? I've no idea how well JS will run as the map sizes increase, perhaps you could test a massive map? 

An idea I just had is workgrouping.

You can assign raiders to workgroups, or to not be in a workgroup (which in itself would be a group called "unassigned" I suppose this would make it easier to code)

I think Castle Story had something like this? I followed it's early development for a while but lost interesting over 2 years ago so I probably can't remember. 

Essentially each workgroup each has it's own task list, rather than each individual raider. like the player could decide to have some dedicated rubble sweepers, so they assign say 3 raiders to group 3, for example, then perhaps you could reuse whatever system finds rubble that needs sweeping and have a task you can add that is "Sweep all rubble", which just commands all available raiders in the group that the task is set on to find the nearest rubble pile to them, dig it, then find the next nearest, until the map contains zero rubble, (OR it finds all the rubble on the map at the time the task is created and only acts on that, OR you can define an area to sweep, or something.) At which point the task ends and the tasker moves to the next thing on the list. 

Given how most raiders will probably be unassigned, the default actions would go to this unassigned group. 

 

Actually you could keep having both these workgroup tasks and individual raider tasks.

The workgroups could be given more general tasks like "sweep all rubble in an area" or "collect all ore", and this would be the "theme" for that group, and the group passes tasks down to the raiders' task lists, so the player can still give individual raiders commands, perhaps these would be given higher priority, and the raider, when not being manually commanded, will revert to his group's given task (or task set? Say a "theme" of "resource collection" would distribute tasks of rubble sweeping to get ore, ore collection and crystal collection?)

 

 

I've just written so much, dear lord, most of this is probably impossible or just silly...

 

Link to comment
Share on other sites

  • 3 months later...
DoubleBro7

Obviously, due to how essential it is, I realize these will be in the queue for future updates, but after the implementation & bugfixing of the features you're working on now, approximately where on the list would one find the following?

+ Placing/Upgrading buildings

+ The ability for raiders to take out non-tool resources from the tool store

+ Training raiders

 

Also, minor questions/requests:

+ Given that I can't seem to find my chromebook's setting regarding the hiding of the start-bar, could you raise the game window above the bottom of the webpage? (Just found where you mention the fullscreen key. Derp.)

+ I heard there's a second level... is it accessible to us?

+ I know it's simple for us to just play it outside the browser window in the background... but do you think you could add in the BGM and a volume menu?

+ This one is totally just a personal preference thing, but are the power path tiles going to stay square, or will the classic octagonal version return?

Link to comment
Share on other sites

risingstar64
19 hours ago, DoubleBro7 said:

Obviously, due to how essential it is, I realize these will be in the queue for future updates, but after the implementation & bugfixing of the features you're working on now, approximately where on the list would one find the following?

+ Placing/Upgrading buildings

+ The ability for raiders to take out non-tool resources from the tool store

+ Training raiders

 

Also, minor questions/requests:

+ Given that I can't seem to find my chromebook's setting regarding the hiding of the start-bar, could you raise the game window above the bottom of the webpage? (Just found where you mention the fullscreen key. Derp.)

+ I heard there's a second level... is it accessible to us?

+ I know it's simple for us to just play it outside the browser window in the background... but do you think you could add in the BGM and a volume menu?

+ This one is totally just a personal preference thing, but are the power path tiles going to stay square, or will the classic octagonal version return?

1. placing / upgrading buildings will come as part of the next major update to the UI (this is already partially supported in the maps with the first few buildings, but there is no way for the player to create a building site for them yet from what I remember)
2. This is still a bit down the line, as I'd like to get most aspects of the level files into the game before I add more ways to interact like them (dynamite, construction barriers, etc..)

3. training raiders is very easy as it merely increases their level by 1 and allows them to carry an additional tool. This is also supported by the game, but once again needs to be added to the UI

4. if you download the project from the github page (I think I added a link to that in the first comment, but if not its somewhere on the first page) you can take any level file from the game and run it through the converter, but most levels (especially the later ones) will only partially load as I have not yet added support for some components of the map files

5. I never actually decided on which audio library to use, but I will almost certainly add the original music back in at some point down the line

6. I actually forgot about the directional power paths as I was pretty focused on the raider AI for awhile. The octagonal paths that connect to each other should be a pretty quick addition, I just need to add the handful of sprites for the different potential combinations of adjacent paths

 

Please note that this game is currently on the burner as I have been quite busy between college and a project that a friend of mine commissioned me to make, but when time permits I intend to make some more progress, as the game is not too far from being in a playable state :)

Link to comment
Share on other sites

DoubleBro7
On 7/4/2016 at 8:22 PM, risingstar64 said:

"1. placing / upgrading buildings will come as part of the next major update to the UI (this is already partially supported in the maps with the first few buildings, but there is no way for the player to create a building site for them yet from what I remember)"

Awesome!

 

"2. This is still a bit down the line, as I'd like to get most aspects of the level files into the game before I add more ways to interact like them..."

While I agree about most of the items you listed as examples, what I was more thinking of was the ability to withdraw ore/crystals from the tool store for the creation of power paths and buildings. Thus, if say, the raiders have taken all the resources you need back to the base, you can still decide to create a new building or such.

 

"3. training raiders is very easy as it merely increases their level by 1 and allows them to carry an additional tool..."

I was rather thinking about things like explosive experts, drivers, sailors, pilots and such forth... though I realize that none of them would mean anything without the implementation of the corresponding mechanics.

 

'4. If you download the project from the github page, you can take any level and run it through the converter, but most levels will only partially load...'

Yeah... I don't have my copy of the game currently, nor can I regularly access a computer that will run .exes. Fun times. Thanks for the advice, though.

 

"5. I never actually decided on which audio library to use, but I will almost certainly add the original music back in at some point down the line"

If it helps, I do have downloads of the BGMs I can attach... as soon as I figure out how the forum's attachment system works. lol

 

"6. I actually forgot about the directional power paths as I was pretty focused on the raider AI for awhile. The octagonal paths that connect to each other should be a pretty quick addition, I just need to add the handful of sprites for the different potential combinations of adjacent paths"

I actually completely forgot that the power paths were directional in any way. lol

And as for the scheduling thing, I totally get it. It's just heartwarming to have such solid proof that this game (ie LRR) isn't dead.

 

MINOR EDIT: As you said, it might already be under control, but the time that it was giving me issues with withdrawing ore for construction was when I wanted more power paths - I don't know if they're programmed to be treated the same way as buildings in that regard, so this might not be relevant, but if it is, I figured the more debugging details the better. I'll test it again next time I get a chance.

Edited by DoubleBro7
Clarity of wording
  • Like 1
Link to comment
Share on other sites

risingstar64

Well said! I'll keep it all in mind. And don't worry, raiders should already be able to withdraw ore/crystals from the base as needed for construction; if that isn't happening in the most recent build, it just means I assigned a low priority value to that task type, or temporarily switched it off in order to debug something. 

Link to comment
Share on other sites

  • 1 month later...
risingstar64

Small update, since I had some time this morning: introduced audio support, with the inclusion of the main 3 music tracks as well as some of the basic sound effects. Also synced up the github-pages branch, so the new changes should be functional at the pages URL (http://rystills.github.io/rock-raiders-remake/). All sounds have been converted to both m4a and ogg, so I expect near-universal browser support. Please let me know if anyone happens to test this on their browser and does not hear any audio :)

  • Like 2
Link to comment
Share on other sites

Fluffy Cupcake

Sound is working for me.

Hey if you want a better looping Solid Rock texture for when there is no ground below then you can use this one I made quite some time ago:

large.ROCK05-SelfBlend.png.d21380a57a005

 

Link to comment
Share on other sites

risingstar64
1 hour ago, Xiron said:

Sound is working for me.

Hey if you want a better looping Solid Rock texture for when there is no ground below then you can use this one I made quite some time ago:

large.ROCK05-SelfBlend.png.d21380a57a005

 

Great, I'm glad the audio seems to be working so far. If you are using Firefox or Chrome your game should also load faster, as these browsers will load the sounds in the .ogg format, which does a much better job of compressing the audio than the .m4a format. 

Thank you for this custom Solid Rock texture! it looks like it will tile much more smoothly than the normal one. I'll be sure to try it out when I get back to my computer tonight.

Link to comment
Share on other sites

  • 3 weeks later...

So I haven't posted much in this thread recently, but I felt like giving a small progress report as I finally have a chance to write. If anyone happened to check in on the git project recently, you'll have noticed that a number of bugfixes and additions have been made in the past week or so. Next on the list is to convert the abominable task system to use an actual 'Task' container object (currently 'tasks' are simply references to Collectable or Space objects, with what actually needs to be done with that Collectable or Space being inferred by the raider based on the task's properties; this system was fine for prototyping when there were only a few task types implemented, but at this point it needs to go, as one Space can easily have numerous concurrent active tasks such as to be drilled, reinforced, and blasted with dynamite, which leads to ambiguity). This is not going to be a fun change to implement, as tasks in their current, sloppy form are used all over the place in the Raider update method as well as in the user-interaction portions of the main update loop, but I hope to have enough time and energy to sit down and get it done at some point soon. Additionally, all variables pertaining to gamestate are now better maintained and initialized via methods rather than just being dumped at the bottom of the main file, and more levels have been (mostly) converted in preparation for the move to a proper UI and menu screen. I'm a bit too tired to summarize the complete list of changes at the moment, but for anyone interested I urge you to take a peek at the project commit history from these past two weeks: https://github.com/rystills/rock-raiders-remake/commits/master

  • Like 6
Link to comment
Share on other sites

  • 1 month later...

Does anybody know if there are rips available of the audio for each level's mission briefing and objective notifications? For instance, when using the WAD extractor, the text version of the mission briefing for level 1 can be found in LegoRR1\Languages\ObjectiveText.txt, and the text version of the objective notifications can be found in LegoRR1\Levels\GameLevels\Level01\01.txt, but I don't know where to find the audio of chief delivering these lines.

Link to comment
Share on other sites

1 hour ago, risingstar64 said:

Does anybody know if there are rips available of the audio for each level's mission briefing and objective notifications?

 

Well, once I think I searched through my disk of LRR and found them hidden in a file, without having to "rip" them out.

I don't have the game installed, so I can't check, but I swear its there (but beware that it might only be on the version of LRR that I have).

  • Like 1
Link to comment
Share on other sites

19 minutes ago, Ben24x7 said:

 

Well, once I think I searched through my disk of LRR and found them hidden in a file, without having to "rip" them out.

I don't have the game installed, so I can't check, but I swear its there (but beware that it might only be on the version of LRR that I have).

You're absolutely right; these files can be found directly on the disk, no need to extract anything. Thanks! I can't believe I didn't think to check that from the start.

Link to comment
Share on other sites

  • 5 weeks later...

The past couple of days I was able to introduce some minor changes that have been on the burner for some time. The game now has a proper (though extremely simple) menu and score screen, both with their respective music tracks. The pause menu (accessed by pressing p) now includes a button to return to the main menu (again extremely simple, some actual design will come later). Buttons are now more friendly as they have lightened and darkened states, though this doesn't apply on a per-pixel level yet due to some difficulties with file permissions, so text-buttons look a little weird when hovered over at the moment. The player's top score for each level is now stored using HTML5 local storage, which serves to both keep track of their highest score and tell the game whether or not the player has beaten a given level yet (necessary to implement the original game's level unlocking/progression system). Scores are currently based off of a very simple algorithm, but once I do some research into how the original game calculated score, I will update it to more closely match the original functionality. Speaking of which, levels now have win-conditions! These are using my own format defined in the level info file for now, since I just don't have the time to invest into writing a transpiler for the language that the original game used for objective scripts. Various bugfixes have also been implemented; now raiders properly take damage and can run out of health (and display healthbars at all times), landslides no longer reset the height-dependent brightness of the space that they fall on, music tracks properly reset when switching levels, etc... Soon to come is the long awaited UI update to finally allow the user to create building sites (I promise), as well as the updated Task system to allow for more task types per Space (reinforcement, repairs, and dynamite all come to mind), and mission objective audio and text (the audio files have been in place for some time, its just a matter of me sitting down and implementing them now). All of these changes are live now on the github-pages site!

Link to comment
Share on other sites

Dude. Duuuuude.

 

IDK how you did it. The code behind this is, IMO, an utter mess. But somehow, you have performed a miracle. Your Rock Raiders actually do work. They were clearing rubble and transporting ore by themselves--without me telling them to do so!

 

Mad respect, man, mad respect.

  • Like 2
Link to comment
Share on other sites

On 12/5/2016 at 9:15 PM, le717 said:

Dude. Duuuuude.

 

IDK how you did it. The code behind this is, IMO, an utter mess.

Can't argue with you there haha. This project started out with a far smaller scope than it has now, and while I've done a bit of cleaning up in the main module in recent times, the Raider class and Task system could really use a complete overhaul at some point down the line. 

 

On 12/5/2016 at 9:15 PM, le717 said:

But somehow, you have performed a miracle. Your Rock Raiders actually do work. They were clearing rubble and transporting ore by themselves--without me telling them to do so!

 

Mad respect, man, mad respect.

Thanks, I'm glad you like it so far! I actually have just about finished implementing the ability for the user to select and place buildings, but a few bugs have popped up that I don't have time to fix right now, so the building update most likely won't be released until after my finals are over. Still, with the recent additions (especially level objectives, scoring, and properly handling loading and switching between levels) we're closer than ever to being able to play through the game in full :)

  • Like 3
Link to comment
Share on other sites

Sorry to double post in such short succession, but the cause of the bug I was experiencing suddenly occurred to me while I was working today, so I was able to quickly identify and fix it. I'm happy to say that this marks the release of the building construction update! Buildings can now be selected from the building menu dropdown on the top-left section of the UI, and then moved and rotated with the mouse and the 'R' key respectively. To cancel building placement, simply right-click. The building placer functions identically to that of the original game, albeit ignoring height differences in adjacent terrain for now as I have no clue what the original formula for that was. Currently only 2 buildings can be constructed in this manner, but that will change as more buildings are added to the game. The release of this update means a few new issues must be ironed out, namely choosing the nearest building of a respective type when completing tasks (let's not have raiders walk all the way home to put away resources when there is another tool store 10 feet from them). 

Link to comment
Share on other sites

  • 4 weeks later...

I've been messing around with a hobby remake myself, and I'm blown away by what you've accomplished! I hope this project continues development!

  • Like 1
Link to comment
Share on other sites

On 1/9/2017 at 10:44 PM, zooboboo said:

I've been messing around with a hobby remake myself, and I'm blown away by what you've accomplished! I hope this project continues development!

Thank you for the encouragement :) I admittedly have not looked at the remake these past few weeks as I've been busy spending a well-needed break with my family, but I plan to pick back up where I left off soon. That means I'll be ironing out any remaining bugs when multiple building sites exist concurrently (this is crucial before I can roll out the power station update, due to the way it covers multiple spaces with a single building) and continuing to implement core features to bring more levels to a fully playable state (the dreaded Task system update still haunts me ;)).

Link to comment
Share on other sites

  • lol username featured this topic
  • 1 month later...
risingstar64

I haven't really given an update on this project recently, as most of what needs to be done at the moment is adding content. With the last update to the gh-pages branch I fixed the error related to multiple building sites conflicting with each other, so you can now safely create as many simultaneous building sites as you want without having to fear those building sites getting stuck. I recently went through and added the rest of the building types to the main branch, and will be rolling out functionality for them as they become necessary for level objectives. I have also added score saving with HTML5 local storage, so your best score for each level will now be permanently saved, allowing you to save your progress (the scoring algorithm is just a placeholder until I figure out how scores were calculated in the original game, so if anyone can bring me up to speed on that it would be a big help!) My hope is to gradually add content to the game while converting the level files in order, so that the game is as complete as possible by the time the final level has been converted. Enjoy!

Link to comment
Share on other sites

Needless to say this is an awesome project -- keep it up.

A few more suggestions I have for you (to avoid issue tracker spam):
 

  1. Add zooming
  2. Lower the font size way down and add borders/shadows and a more contrasting font color
  3. Some way of turning the debug info off
  4. Porting the game maps automatically and import them all :P
  5. Figure out game-correct scoring so I can steal your algorithm
  • Like 1
Link to comment
Share on other sites

risingstar64
11 minutes ago, darkf said:

Needless to say this is an awesome project -- keep it up.

A few more suggestions I have for you (to avoid issue tracker spam):
 

  1. Add zooming
  2. Lower the font size way down and add borders/shadows and a more contrasting font color
  3. Some way of turning the debug info off
  4. Porting the game maps automatically and import them all :P
  5. Figure out game-correct scoring so I can steal your algorithm

Thanks for the suggestions!

1. Zooming shouldn't be too difficult to implement, though the sprites are currently rendered at their native resolution, so everything besides the fonts would just be upscaled.

2. Font size is a quick change; maybe I'll add a slider for this at some point :) 

3. Most of the debug stuff is already able to be toggled with the 'debug' option, and will persist thanks to HTML5 local storage, but I will be tweaking this as the project nears completion.

4. The majority of the map files are automatically ported via mapConverter.py, but a few of them (namely NPL files) are going to take some time to implement as they will require syntax parsing rather than just converting data.

5. Working on it ;)

 

Now that you mention it, are you working on a proper remake of your own? If you are planning on open-sourcing it, be sure to let us know so we can follow your progress and lend a hand where possible!

Link to comment
Share on other sites

21 hours ago, risingstar64 said:

Now that you mention it, are you working on a proper remake of your own? If you are planning on open-sourcing it, be sure to let us know so we can follow your progress and lend a hand where possible!


I am. I'm developing it in private for now, but I'll release it when it's done. I plan on writing a series of devlog posts giving information on it.

When that happens I'll be able to help you with NERPS scripting, since I've written a NERPS interpreter for mine (at least enough to run the logic for Driller Night right now.)
It's pretty simple, and it shouldn't be very hard to integrate with your game.

If you need any other info (on LRR or in general), don't hesitate to ping me.

For now, enjoy this somewhat related fan game demo I just made:  http://www.rockraidersunited.com/topic/7778-release-rock-raiders-rumble-a-demo-fan-game/

Cheers

  • Like 1
Link to comment
Share on other sites

Alright, a few questions about tilemaps:

- When the tile in the duggmap is 0, it's always a wall, correct? Is it a wall any other time?
- Does drilling a wall simply mean setting the tile type to "ground" and marking it as not a wall?
- When a raider drills a tile, what determines if adjacent walls are also drilled?

@sheepandshepherd was graciously helping me with this on GitHub, but this seems more appropriate.

Thanks

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.