hawkthorne / hawkthorne-journey

Digital Estate Planning: The Game
projecthawkthorne.com
1.09k stars 452 forks source link

This thing on? #2568

Closed kyleu closed 6 years ago

kyleu commented 6 years ago

Hey there - love the game, I didn't find it until a few weeks ago. I've been toying with the game assets and built the start of a web-based multiplayer game using the assets directly. Is anyone from the project still interested in seeing the project grow?

CalebJohn commented 6 years ago

Hi Kyle! Glad to see someone is still interested in the project. Actually one of our contributors @niamu is also working on a browser port of the game you can see a post about it on reddit. I would suggest getting in touch with him asap! That said if you're talking about making a different game that just uses the assets, that's cool too! Just note that all assets are under a creative commons license and can be used freely, just not for anything commercial. As a rule of thumb, we don't mix money with this project, whether is be donations or payment.

I look forward to seeing what you do, please keep us up to date!

kyleu commented 6 years ago

Hi Caleb, thanks for your quick response. Check it out

https://hawkthorne.net

I was looking to test some code-generation software I'd built, and a game seemed like a perfect fit. When I found hawkthorne-journey, with all its juicy assets and hefty lua code, I immediately wanted to bring it to the web.

The project uses hawkthorne-journey's assets, untouched, but the logic has to be ported over manually. Almost all of the boring automatable work has been completed, though collision, physics, and a whole lot of game logic remain. It uses the Phaser CE JavaScript game engine, and both the client and the server are written in pure Scala (weird choice, I know). This is mostly just an experiment with functional programming applied to game development with a shared server and client logic. Most of the tech is derived from Boilerplay and generated from Database Flow, other (license-compatible) projects of mine.

It's a standard Scala project, built with SBT. The app requires a Postgres database and valid credentials configured in ./conf/application.conf. Once installed, executing sbt run will start the application on http://localhost:13000. Multiplayer is built but currently broken. Single player loads all levels to varying degrees of completeness, but the lack of physics make for a boring game. There's a few hundred links on the home page, you'll find something you like :)

As you can see, it emulates hawkthorne-journey's gameplay and design. If there's interest, I'll write uo a walkthrough of the major systems. Once multiplayer is finished, there's a whole other design and balance phase. I know I'll need help, and am eager to work together and contribute.

I've made the repo public. I'd love to strike up a conversation about where this project ends up, maybe it should be announced to the subreddit.

Project Source: https://github.com/KyleU/hawkthorne

Github Wiki: https://github.com/KyleU/hawkthorne/wiki

Admin Site: https://hawkthorne.net/admin/system (sign in with "admin@hawkthorne.net" and "hawkthorne", lol security comes later)

Let me know what you think. Pardon the server speed, I'm running 12 Scala web apps on the same $10/mo box that I think is located in Germany...

niamu commented 6 years ago

Wow @KyleU this is a great start. As @CalebJohn mentioned I've got my own experimental web variant of Hawkthorne over at niamu/hawkthorne-return but my plan was to never emulate the original game at all. My rough plan was to attempt to find a way to have a multiplayer game and make as many changes as needed to collisions, maps, and story to support that.

Like you I also favour functional languages, although my choice was Clojure. I spent a considerable amount of effort on relatively useless things so far such as a TMX parser that converts to JSON at compile time so there's no more saving maps in multiple different formats.

I also spent a bit of time trying to learn Phaser and you can see that work on the phaser branch but after I while I was battling frame rate issues with maps that had too many layers. (Most likely due to my lack of knowledge about Phaser as your demo works very smoothly)

We should talk more on our Slack channel. I'll send you an invite and we can figure out how to pool our efforts.